De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Dando mais segurança ao serviço SSH com fail2ban e samhain

Colaboração: João Eriberto Mota Filho

Data de Publicação: 07 de agosto de 2010

Recentemente, divulguei duas atividades no meu [Twitter http://twitter.com/eribertomota] e no meu Blog que chamaram bastante a atenção das pessoas. Tratava-se de duas máquinas, que foram disponibilizadas na Internet, com SSH ativado e senha de root extremamente simples. Vários bots (robôs na Internet) descobriram a senha e avisaram aos seus donos. Com isso, narrei on-line, em tempo real ou quase real, tudo o que acontecia. Uma verdadeira festa de invasores.

Na primeira vez a senha foi descoberta por volta de 1 hora. Na segunda vez, em cerca de 15 horas. Isso, certamente, serviu para mostrar a muitos que senhas fracas não devem ser adotadas. Aquela história de "vai ser só de hoje para amanhã" não é uma boa atitude. As duas experiências estão nas seguintes URLs:

Sei que já deram aqui milhões de receitas para aumentar a segurança de serviços SSH. Mas vale a pena reforçar alguns procedimentos e sugerir outros, geralmente, desconhecidos. Vou falar sobre o Debian mas, com poucas adaptações, tudo o que for visto aqui poderá ser aplicado em outras distros.

Inicialmente, a mais óbvia. Troque a porta default de 22 para alguma que esteja acima de 5000. Os bots, geralmente, só testam senhas em SSH configurados na porta 22. Para trocar a porta, no Debian, edite o arquivo /etc/ssh/sshd_config e procure pela linha Port 22. Depois de alterar a porta, reinicie e o serviço com o comando:

 # /etc/init.d/ssh restart

Há várias coisas legais que podem ser feitas, tudo já divulgado aqui no Dicas-L por outros autores. Desabilitar o login pelo root, só permitir login utilizando certificado etc. Mas digamos que você precise do método de autenticação tradicional, com usuário e senha. Uma coisa é certa: nada de senha óbvia. Use senhas com oito caracteres ou mais, contendo letras, números e caracteres especiais. Além disso, instale o fail2ban.

O fail2ban é um sistema de verificação de falha de autenticação. Pode ser utilizado com inúmeros serviços. Um deles é o SSH. Então, digamos que alguém tente um login por SSH e erre X vezes o usuário, a senha ou ambos. O IP desse usuário será bloqueado por N segundos. É isso que o fail2ban faz. Inicialmente, instale-o com:

 # apt-get install fail2ban

A seguir, edite o arquivo /etc/fail2ban/jail.conf e, na seção [ssh], altere a entrada

 maxretry = 6

para

 maxretry = 3

Ainda, abaixo da citada linha (maxretry = 3), acrescente:

 bantime = 3600

Reinicie o serviço fail2ban:

 # /etc/init.d/fail2ban restart

No caso, o fail2ban foi configurado para, na ocorrência de três tentativas sem sucesso de autenticação SSH, bloquear por 1 hora (3600 segundos) o IP do atacante. O bloqueio se dará por Netfilter (ativado pelo fail2ban via comando iptables).

Por fim, o pior problema que pode acontecer numa invasão é você nunca ficar sabendo que ela ocorreu. Então, você precisa do samhain. O samhain é responsável por lhe avisar quando qualquer arquivo ou diretório que esteja na relação de vigilância dele for alterado. Uma das formas de ser avisado é por e-mail. Então, instale o samhain com o comando:

 # apt-get install samhain

Considerando que você esteja querendo vigiar por e-mail o servidor que recebeu o samhain, instale o sendmail em tal servidor para que este possa enviar e-mails.

 # apt-get install sendmail

O sendmail será instalado de forma que só a máquina local possa enviar mensagens (não haverá portas abertas para fora). Isso poderá ser verificado com o comando:

 # netstat -tunlp

A seguir, edite o arquivo /etc/aliases e, no fim, insira a linha:

 root: seu_endereço_de_email

Ou seja: quando o samhain enviar um mail local para o root, ele será redirecionado para o seu e-mail. Para validar a configuração anterior, execute o comando:

 # newaliases

Se for necessário, no arquivo /etc/samhain/samhainrc você poderá configurar quais arquivos e diretórios devem ser observados ou não. Dentro do arquivo tem toda a explicação de como fazer. Leia o arquivo desde do início. Você poderá utilizar wildcards etc.

É lógico que existem outras artimanhas e programas que podem ser utilizados. Mas com o que escrevi aqui, com certeza, o grau de segurança do seu servidor SSH aumentará bastante.

Enjoy!

Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)