Gerador Configuração SSHD
Zero-Trust Infrastructure Security

Gerador de Configuração de Proteção para Servidor OpenSSH (sshd_config)

Crie arquivos de configuração sshd_config reforçados para produção no Linux, exigindo autenticação por chave pública, cifras AEAD modernas, timeouts rigorosos e bloqueio de root.

CVE-2024-6387 RegreSSHion Protection Active
Predefinições:

Changing to a non-standard port stops 99% of automated port 22 credential bots.

DebianBanner (OS Fingerprinting)
Disabling stops OpenSSH from exposing specific Debian/Ubuntu package versions.
# ==============================================================================
# OpenSSH Server Hardened Configuration (sshd_config)
# Target File: /etc/ssh/sshd_config
# Standards: CIS Linux Benchmark / Mozilla Infosec / NIST SP 800-53
# Generated by ToolsAA: https://toolsaa.com/tools/sshd-config-generator
# ==============================================================================

# ------------------------------------------------------------------------------
# 1. Network & Address Binding
# ------------------------------------------------------------------------------
Port 2222
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

# ------------------------------------------------------------------------------
# 2. Host Key Infrastructure (Ed25519 & RSA)
# ------------------------------------------------------------------------------
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key

# ------------------------------------------------------------------------------
# 3. Logging & Auditing (VERBOSE records key fingerprints for auth tracing)
# ------------------------------------------------------------------------------
LogLevel VERBOSE
SyslogFacility AUTH

# ------------------------------------------------------------------------------
# 4. Authentication & Access Control
# ------------------------------------------------------------------------------
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
KerberosAuthentication no
StrictModes yes
MaxAuthTries 3
MaxSessions 3
LoginGraceTime 30
AllowGroups ssh-users wheel

# ------------------------------------------------------------------------------
# 5. Cryptography Hardening (Ciphers, KEX, MACs & HostKeyAlgorithms)
# ------------------------------------------------------------------------------
KexAlgorithms [email protected],curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
Ciphers [email protected],[email protected],[email protected]
MACs [email protected],[email protected],[email protected]
HostKeyAlgorithms ssh-ed25519,[email protected],rsa-sha2-512,rsa-sha2-256

# ------------------------------------------------------------------------------
# 6. Session Lifecycle & Security Defenses
# ------------------------------------------------------------------------------
ClientAliveInterval 300
ClientAliveCountMax 2
TCPKeepAlive no
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
GatewayPorts no
PermitUserEnvironment no
Compression no
MaxStartups 10:30:60
UsePAM yes

# ------------------------------------------------------------------------------
# 7. Banners & Information Disclosure
# ------------------------------------------------------------------------------
PrintMotd no
PrintLastLog yes
Banner none
DebianBanner no

# ------------------------------------------------------------------------------
# 8. SFTP Subsystem
# ------------------------------------------------------------------------------
Subsystem sftp internal-sftp
Classificação de segurança
Score: 100/100(A+)
Política criptográfica
Post-Quantum & Curve25519
Proteção contra vulnerabilidades
CVE-2024-6387 Mitigated

Padrões criptográficos modernos

Restringe o OpenSSH a troca de chaves pós-quântica e Curve25519, cifras AEAD ChaCha20-Poly1305 e AES-GCM, eliminando totalmente vulnerabilidades legadas CBC e 3DES.

Redução de superfície de ataque Zero-Trust

Impõe autenticação exclusiva por chave pública, impede acessos diretos com senha de root, mitiga ataques RegreSSHion (CVE-2024-6387) e encerra sessões ociosas.

Arquivos modulares drop-in e script seguro

Gera configurações completas ou arquivos divididos para conf.d juntamente com script bash com teste de sintaxe prévio via sshd -t antes de reiniciar o serviço.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor: Gerador de Configuração de Endurecimento (Hardening) do OpenSSH (sshd_config) — Guia de referência

Crie arquivos de configuração sshd_config reforçados para produção no Linux, exigindo autenticação por chave pública, cifras AEAD modernas, timeouts rigorosos e bloqueio de root.

Parâmetros principais e controles

PermitRootLoginenum (no | prohibit-password | yes)

Controla se o superusuário root pode se autenticar diretamente via SSH. A definição como 'no' força o acesso administrativo por usuários comuns com posterior elevação via sudo.

Padrão: no
PasswordAuthenticationboolean (yes | no)

Define se a autenticação por senha é permitida. Definir como 'no' elimina senhas e impõe estritamente chaves públicas assimétricas.

Padrão: no
Ciphersstring list

Especifica os algoritmos de criptografia simétrica permitidos em ordem de preferência, impondo modos AEAD modernos (chacha20-poly1305, aes256-gcm) e rejeitando o modo CBC.

KexAlgorithmsstring list

Define os algoritmos de troca de chaves (KEX) permitidos, priorizando curvas elípticas (Curve25519) e eliminando grupos legados de 1024 bits do Diffie-Hellman.

Padrão: curve25519-sha256,[email protected],diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
ClientAliveIntervalinteger (segundos)

Configura o intervalo de inatividade em segundos após o qual o servidor envia pacotes keepalive pelo túnel criptografado.

Padrão: 300
ClientAliveCountMaxinteger

Determina a quantidade de mensagens keepalive não respondidas antes que o servidor SSH encerre sessões desconectadas ou inativas.

Padrão: 2

Dicas profissionais e melhores práticas

Execute 'sudo sshd -t' para analisar o

Execute 'sudo sshd -t' para analisar o arquivo /etc/ssh/sshd_config em busca de erros antes de recarregar o daemon. Se o comando não produzir saída, a sintaxe está completamente válida.

Nunca feche sua conexão atual ao

Nunca feche sua conexão atual ao aplicar mudanças no sshd. Abra uma nova aba de terminal e teste uma nova conexão ('ssh -i ~/.ssh/id_ed25519 usuario@host') para validar o acesso antes de sair.

Diretivas condicionais em 'Match

Diretivas condicionais em 'Match Group' ou 'Match User' aplicam-se a todas as linhas subsequentes até o próximo bloco Match ou fim do arquivo. Mantenha todas as diretivas de segurança globais antes da primeira declaração Match.

Em distribuições recentes que utilizam

Em distribuições recentes que utilizam ativação por socket ('ssh.socket'), mudanças de porta exigem reiniciar o soquete com 'systemctl restart ssh.socket' para entrar em vigor.

Problemas comuns e solução de problemas

Erro 'Permission denied (publickey)' após desativar a autenticação por senha.

Verifique se o diretório ~/.ssh possui permissões 700 ('chmod 700 ~/.ssh') e se o arquivo authorized_keys está com 600 ('chmod 600 ~/.ssh/authorized_keys'). Se o diretório base do usuário permitir escrita para grupo ou outros, o recurso StrictModes do OpenSSH negará o acesso.

Falha ao iniciar o sshd com erro 'Bad configuration option' ou 'Unsupported algorithm'.

Execute 'sudo /usr/sbin/sshd -t' para encontrar a diretiva descontinuada ou o algoritmo incompatível. Versões antigas do OpenSSH (anteriores a 7.6) podem não suportar algoritmos modernos como curve25519-sha256.

Conexão recusada ou timeout após alterar a porta padrão do SSH.

Libere a nova porta no firewall ('ufw allow <porta>/tcp' ou 'firewall-cmd --add-port=<porta>/tcp --permanent'). Caso utilize SELinux, registre a nova porta através de 'semanage port -a -t ssh_port_t -p tcp <porta>'.

Perguntas frequentes (FAQ)

Qual a diferença de segurança entre 'PermitRootLogin no' e 'prohibit-password'?▼

'no' impede completamente qualquer autenticação direta como root, exigindo login via usuário comum com posterior elevação via sudo. 'prohibit-password' desabilita senhas interativas para o root, mas ainda permite acesso com chaves SSH, o que é útil para rotinas automatizadas de backup.

Por que cifras CBC e MACs baseados em MD5/SHA-1 devem ser desativados?▼

Cifras no modo CBC (Cipher Block Chaining) são vulneráveis a ataques de oráculo de preenchimento (como o CVE-2008-5161) para recuperação de texto simples. Hashes MD5 e SHA-1 possuem vulnerabilidades práticas de colisão, violando normas de conformidade como PCI-DSS v4.0, SOC 2 e NIST SP 800-53.

Como inspecionar os parâmetros ativos em execução no meu servidor OpenSSH?▼

Execute 'sshd -T' no servidor. Ao contrário da simples leitura do arquivo de texto sshd_config, o comando 'sshd -T' exibe as diretivas avaliadas em tempo real com todos os valores padrão efetivamente carregados pelo daemon.

Como a diretiva MaxAuthTries ajuda a mitigar ataques automatizados de força bruta?▼

Configurar 'MaxAuthTries' com um valor baixo (como 3) limita a quantidade de tentativas de autenticação que podem falhar em uma única conexão. Integrado com ferramentas como fail2ban ou nftables, isso interrompe ataques automatizados de dicionário logo nas primeiras tentativas.

Ferramentas e utilitários relacionados

Todas as ferramentas →