Neste artigo veremos como proteger nossos servidores Unix utilizando console de administração via SSH contra ataques de brute-force usando o plugin pam_abl para PAM (Pluggable Authentication Module).
Configure seu serviço SSH para ouvir em uma porta diferente da porta padrão 22. O daemon do SSH não vê problema algum nisso. :-)
Apenas certifique-se que seu firewall esteja liberando a porta para onde você irá direcionar o serviço. Para fazer o serviço ssh escutar conexões na porta 2222 por exemplo, basta editar o arquivo /etc/ssh/sshd_config e modificar o valor da porta para 2222, após isto, basta restartar o SSH daemon.
Este método irá parar atacantes que estejam apenas scaniando SSH servers na porta default, porém um scan avançado irá revelar o SSH. Apesar de simples, isto pode ajudar seu servidor a sair do escopo da maioria dos ataques e fazer o número de tentativas de login caírem dramaticamente.
Desabilite autenticação por senha
Passwords são mais fáceis de serem quebradas em relação à chaves privadas. Configure o SSH para autenticar usuários utilizando chaves privadas e desabilite totalmente a autenticação por senha. Isto irá garantir que apenas usuários portando credenciais de chave privada correta possam acessar o serviço. Para desabilitar autenticação via senha, edite o sshd_config e modifique o parâmetro PasswordAuthentication para "No".
Caso você prefira utilizar senhas à SSH Keys, certifique-se de usar senhas fortes para todos os usuários.
Limitar conexões
Este método limita o número de pacotes SYN (pacote solicitando nova conexão). O efeito disto será transparente para usuários válidos, mas com certeza irá atrasar bastante atacantes que estão efetuando conexões repetidamente. Para você estabelecer um limite de conexões por host na porta 2222 para 3 por minuto pode fazer da seguinte forma:
# iptables -A INPUT -p tcp --dport 2222 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
# iptables -A INPUT -p tcp --dport 2222 --syn -j DROP
Desabilite o acesso remoto para root
Se você permite o login remoto do usuário root em seus servidores, deve desabilitá-lo imediatamente. Será possível ainda logar como um usuário sem privilégios e depois obter uid=0 usando o comando su.
Para desabilitar o login do root no SSH edite o arquivo sshd_config e altere o valor PermitRootLogin para "No".
Com estas dicas, acredite ou não, você adicionou uma grande barreira para a maioria dos atacantes que rodam script ofensivos em hosts.
[4] Comentário enviado por y2h4ck em 14/06/2007 - 15:01h
Bom, oque vc disse ai é o mesmo que dizer assim :
"Legal seu artigo sobre Network, pena que o TCP/IP apresenta vulnerabilidades."
Bom, pesquisando no SecurityFocus, não encontrei nenhuma para pam_abl :)
[6] Comentário enviado por removido em 14/06/2007 - 15:44h
Também não encontrei, mas é uma pena para o pacote do PAM ter uns módulos com vulnerabilidades. Sempre é bom dar uma pesquisada nesses módulos do PAM para ver se tem alguma vulnerabilidade. Que bom que o módulo pam_abl não tem.
[8] Comentário enviado por Journeyman em 15/06/2007 - 10:48h
Realmente muito bom o artigo.
Eu pessoalmente estava sofrendo ataques por força bruta na porta 22, isso aocntecia principalmente quando eu estava baixando torrents de coisas pra linux. Quando eu estava baixando a última versão do debian, por exemplo, o arquivo de logs "enlouqueceu" de tantas tentativas de acesso na base da tentativa e erro!
Nunca mais tive esse problema depois que troquei a porta de acesso (na realidade fiz um redirect de porta no roteador pra n ter que alterar os arquivos de configuração, o que auxilia no caso de reinstalações) e limitei o número máximo de tentativas pra 3.