1.1 Fundamentos da Segurança no OpenSSH
Nesta seção vamos cobrir os aspectos básicos da segurança no OpenSSH, oferecendo uma sólida compreensão sobre o que é necessário para proteger suas conexões SSH.
1.1.1 O que será abordado?
Iremos explorar desde princípios básicos, passando por dicas de implementação até práticas recomendadas para endurecer a segurança do seu ambiente SSH.
1.1.2 Princípios Básicos do SSH
O SSH (Secure Shell) é um protocolo que oferece uma maneira segura de acessar um computador sobre uma rede não segura. A segurança é realizada através de métodos de criptografia robustos, e o protocolo permite tanto autenticação remota quanto a transferência segura de dados.
1.1.3 Dicas de Implementação
- 1.1.3.1 Melhores Práticas Recomendadas: Sempre atualize o OpenSSH para a última versão disponível para aproveitar correções de segurança e novos recursos de proteção.
- 1.1.3.2 Verificar o Status do SSH: Use o comando
systemctl status ssh
para verificar se o serviço está ativo e rodando.
- 1.1.3.3 Usar o Teste de Configuração do SSH: Execute
ssh -T user@host
para testar se a configuração atual permite uma conexão segura.
- 1.1.3.4 Fazer Alterações em Sistemas Remotos: Certifique-se de ter uma sessão direta ou um plano de contingência antes de fazer alterações em um sistema remoto.
- 1.1.3.5 Implantação em Pequenos Passos: Implemente mudanças incrementais e verifique cada etapa antes de prosseguir.
- 1.1.3.6 Mostrar Conexões SSH Ativas: Utilize
ss -tnlp | grep ssh
para exibir todas as conexões SSH ativas.
1.2 Protegendo a Configuração do Servidor SSH
Uma configuração segura do servidor SSH é crucial para prevenir acesso não autorizado e ataques.
1.2.1 Preparações Necessárias
Antes de alterar configurações, faça um backup do arquivo de configuração atual do SSH localizado em /etc/ssh/sshd_config.
1.2.2 Configurações de Segurança do SSH
- Uso do X11Forwarding: Defina
X11Forwarding no
para desativar o encaminhamento X11, que pode ser explorado para realizar ataques.
- Desativar rhosts: Certifique-se de que
IgnoreRhosts yes
está definido para não confiar em arquivos rhosts.
- Verificação de Nome de Host DNS: Ative a verificação de nome de DNS com
UseDNS no
para diminuir o risco de ataques de spoofing.
- Desativar Senhas Vazias: Garanta que
PermitEmptyPasswords no
está definido.
- Limitar Tentativas de Autenticação: Defina
MaxAuthTries 3
para limitar tentativas de autenticação fracassadas.
- Autenticação com Chave Pública: Prefira usar chaves públicas em vez de senhas com
PubkeyAuthentication yes
.
- Desativar Login Root: Defina
PermitRootLogin no
para evitar acesso direto ao usuário root.
- Configurar o Protocolo SSH: Apenas utilize
Protocol 2
, que é mais seguro que a versão 1.
- Uso de AllowUsers e DenyUsers: Controle o acesso especificando quais usuários podem ou não podem logar no sistema.
- Usar HashKnownHosts: Defina
HashKnownHosts yes
para aumentar a privacidade e a segurança das conexões.
- Restringir Comandos Permitidos: Use a opção
PermitOpen
para limitar os comandos que podem ser executados via SSH.
1.2.3 Restrições Adicionais
- Configurar o Firewall: Implemente regras de firewall para apenas permitir conexões SSH de redes confiáveis.
- Uso de Servidor de Salto: Utilize um servidor de salto para servir como intermediário para todas as conexões SSH, aumentando a segurança.
1.3 Configurações de Segurança do Cliente OpenSSH
1.3.1 Configurações do Cliente
- Ver Todas as Configurações Padrão e Ativas: Execute
ssh -G
para ver todas as configurações.
- Configurações de SSH para um Único Sistema: Modifique o arquivo ~/.ssh/config para ajustar as configurações específicas do sistema.
1.4 Ferramentas para Segurança do SSH
- Ferramenta Lynis: Lynis é uma ferramenta de auditoria de segurança para sistemas Unix-like, incluindo Linux e macOS.
- Ferramenta ssh-audit: ssh-audit é uma ferramenta para auditar as configurações de segurança de um servidor SSH para encontrar potenciais vulnerabilidades.
1.5 Recursos e Referências
- Leia a Página de Manual: Consulte
man ssh
e
man sshd
para uma referência completa do OpenSSH.
- Referências Bibliográficas: Para aprofundar seus conhecimentos, recorra a livros e publicações especializadas sobre segurança de redes e criptografia.
Este tutorial é uma publicação do BlueHat Tech Blog.