Segurança e compliance¶
O Herd já nasce fortalecido por padrão — um servidor recém-instalado vem com um perfil de segurança sensato, sem você precisar configurar nada. Esta página explica o que vem ativado, como auditar e como ajustar.
O que vem fortalecido¶
| Área | Padrão no Herd |
|---|---|
| SELinux | enforcing |
| Firewall | firewalld liberando só SSH e Cockpit (mais dhcpv6-client); mdns desligado |
| SSH | só por chave; sem root; limites de tentativa (veja abaixo) |
| Senhas | qualidade mínima (pwquality) e idade de senha |
| umask | 027 em sessões de login (arquivos novos não ficam legíveis por "outros") |
| Pacotes | gpgcheck=1 (verificação de assinatura no dnf) |
SSH — política padrão¶
Arquivo: /etc/ssh/sshd_config.d/50-capivaraos-herd.conf
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
X11Forwarding no
MaxAuthTries 3
LoginGraceTime 30
AllowAgentForwarding no
Política de senha¶
- Qualidade —
/etc/security/pwquality.conf.d/50-capivaraos-herd.conf: tamanho mínimo 12, ao menos 3 classes de caracteres, sem repetições/sequências longas. - Idade —
/etc/login.defs: máximo 90 dias, mínimo 7 dias.
Cifras (crypto policy)
Ciphers/MACs/KEX do SSH e TLS seguem a crypto-policy do sistema (já forte por padrão no Fedora), em vez de valores fixos no Herd.
Auditar: herd-compliance-scan¶
O Herd embarca um scanner OpenSCAP com o conteúdo do SCAP Security Guide do Fedora. Rode:
Isso avalia o sistema contra o perfil standard e gera:
/root/herd-compliance-<data>.html # relatório legível (abra no navegador)
/root/herd-compliance-<data>.xml # resultados XCCDF (máquina)
/root/herd-compliance-<data>.arf.xml # ARF: evidência re-renderizável / auditoria
Para ver os perfis disponíveis ou rodar outro (aceita os mesmos apelidos do
herd-harden — standard, ospp, cis-l1, cis-l2, pci
— ou o id completo):
ARF é a evidência
O .arf.xml é o formato machine-readable que guarda datastream + resultados
juntos: dá para re-gerar o relatório depois sem escanear de novo e é o que
ferramentas de auditoria/agregação consomem.
Copiar o relatório para ver no seu PC
(ou abra o arquivo pelo Terminal/Arquivos do Cockpit.)Perfil básico do Community
O Herd Community foca em um baseline sólido (SSH, firewall, SELinux, senha,
umask). Controles mais pesados como auditd completo, AIDE e o perfil
CIS integral são o caminho do Enterprise; o datastream embarcado já
traz os perfis cis/cis_server_l1 caso você queira avaliá-los.
Ajustar¶
Toda a configuração vem do pacote capivaraos-herd-hardening. Você pode
sobrepor conforme a sua política.
SSH — habilitar senha (com ressalva)¶
Pense duas vezes
Autenticação por senha no SSH aumenta a superfície de ataque (força bruta).
Prefira chaves. Só habilite senha se realmente precisar, e combine com
fail2ban/limites de origem no firewall.
Crie um drop-in que vem depois do nosso (ordem alfabética):
sudo tee /etc/ssh/sshd_config.d/60-local.conf >/dev/null <<'EOF'
PasswordAuthentication yes
EOF
sudo systemctl restart sshd
Ajustar idade de senha¶
sudo tee /etc/security/pwquality.conf.d/60-local.conf >/dev/null <<'EOF'
minlen = 14
EOF
# idade: edite /etc/login.defs (PASS_MAX_DAYS / PASS_MIN_DAYS)
Adicionar sua chave SSH¶
install -d -m 700 ~/.ssh
echo "ssh-ed25519 AAAA... voce@maquina" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Vai aplicar ospp/cis ou o modo FIPS? Não dependa de ed25519
Esses perfis trocam a crypto-policy do sistema para FIPS, que não
aceita chaves ed25519 (nem cifras fora do conjunto FIPS). Gere uma chave
RSA (ssh-keygen -t rsa -b 3072) ou ECDSA (ssh-keygen -t ecdsa -b 384)
antes de fortalecer e confirme um login novo. Para o baseline padrão, a
ed25519 continua ótima. Veja Fortalecimento em 1 comando.
Boas práticas para produção¶
- Exponha o mínimo: só as portas necessárias no
firewalld. - Acesse o Cockpit por VPN/túnel, não aberto na internet.
- Mantenha o sistema atualizado (
dnf upgrade) — updates de segurança do Fedora. - Rode o
herd-compliance-scanperiodicamente e trate o que fizer sentido para o seu ambiente.
Criptografia em repouso e FIPS (opcional)¶
Dois reforços que ficam desligados por padrão (para não travar servidor headless e nuvem) e você habilita quando a sua política pedir.
Criptografia de disco (LUKS)¶
Protege os dados em repouso (disco roubado/descartado não vaza nada). É uma
decisão de instalação. Como o instalador do Herd é em modo texto (não tem
o checkbox "Criptografar" da versão gráfica), a criptografia é definida pelo
kickstart — desde a 1.0.1 o pacote cryptsetup já vem no payload da ISO,
então o install cifrado funciona offline. Use o template do
kickstart do Herd:
Aponte o instalador para esse kickstart gerando uma ISO própria
(KS=meu.ks ./build-iso.sh, veja o repositório)
ou passando inst.ks=<url> no boot.
Conferir depois:
Servidor headless: a senha é pedida no boot
Um volume LUKS pede a senha a cada boot. Sem console (físico/IPMI/serial),
a máquina não sobe sozinha depois de reiniciar. Para auto-desbloqueio em
servidor, o caminho é NBDE — clevis com TPM2 (selo local) ou
Tang (chave pela rede). Não use LUKS na imagem de nuvem (qcow2).
Modo FIPS¶
O FIPS 140 força o uso apenas de módulos criptográficos validados e restringe os algoritmos permitidos. Útil para requisitos governamentais/setoriais.
No Fedora 44 não existe mais fips-mode-setup
O Fedora removeu o fips-mode-setup.
O FIPS agora se liga com fips=1 no kernel — de preferência na
instalação (ligar depois "tem bugs sutis e não é mais recomendado", segundo
o Fedora). O initramfs já traz o módulo fips e a crypto-policy vira FIPS
sozinha quando o kernel está em modo FIPS.
Recomendado — na instalação: no menu de boot da ISO, edite a entrada
(tecla e/Tab) e acrescente fips=1 à linha do kernel. O sistema
instalado já sobe em FIPS.
Pós-instalação (com a ressalva acima): no Herd o /boot é uma partição
separada, então o fips=1 precisa vir acompanhado de boot=UUID=<uuid do /boot>.
Este bloco detecta o UUID sozinho:
if findmnt /boot >/dev/null 2>&1; then
UUID=$(sudo blkid -s UUID -o value "$(findmnt -no SOURCE /boot)")
ARGS="fips=1 boot=UUID=$UUID"
else
ARGS="fips=1"
fi
sudo grubby --update-kernel=ALL --args="$ARGS"
sudo reboot
Conferir:
Para desativar: remova o fips=1
(sudo grubby --update-kernel=ALL --remove-args="fips=1") e reinicie.
Teste o acesso antes de depender disso
O modo FIPS restringe algoritmos: em especial, chaves SSH ed25519 deixam de ser aceitas (use RSA ou ECDSA), além de cifras e certificados fora do conjunto aprovado. Confirme o login SSH numa segunda sessão logo após reiniciar, antes de fechar o acesso que você tem.
Créditos e licenças de terceiros¶
O herd-compliance-scan usa o SCAP Security Guide
(projeto ComplianceAsCode). O Herd redistribui o datastream do SSG para Fedora
(ssg-fedora-ds.xml), licenciado sob BSD-3-Clause:
Copyright (c) 2012-2017, Red Hat, Inc. All rights reserved.
A redistribuição e o uso, em código-fonte ou binário, com ou sem modificação, são permitidos desde que atendidas as condições da licença BSD-3-Clause (retenção do aviso de copyright, das condições e do disclaimer; sem uso do nome dos detentores para endosso). O texto integral acompanha o pacote
capivaraos-herd-hardeningem/usr/share/licenses/capivaraos-herd-hardening/e está disponível no repositório do SSG.
Os nomes de perfil (standard, cis, cis_server_l1 etc.) vêm do próprio SSG.
"CIS" refere-se aos benchmarks do Center for Internet Security;
o Herd não reproduz o texto dos benchmarks, apenas executa os perfis
correspondentes disponibilizados pelo SSG.
Conteúdo produzido com auxílio de IA, em revisão contínua. Encontrou um erro? Abra uma issue.