É comum os usuários que implementam servidores diversos, preocuparem-se com a segurança do seu equipamento.
Uma coisa comum na Internet afora, são as tentativas de acesso externo de forma indevida, principalmente daqueles
servidores com IP fixo, ou que utilizam No-IP, etc... Isto é necessário quando se tem algum servidor Web ou FTP, por exemplo.
Montando um script robot
Eu montei um servidor básico para um cliente, com firewall simples e compartilhamento de arquivos
Samba,
porém, em poucos meses tivemos problemas de ataques
brute force via SSH, e mesmo com as portas do SSH
alteradas e limitação de root por lá, aconteceu uma invasão.
Então, resolvi mexer da cadeira... (rs)
E como tudo na vida passa pela adaptação, resolvi criar um Script Shell para manter a segurança, então criei o script que
passo a compartilhar com a comunidade, logo abaixo.
As primeiras coisas importantes são criar dois arquivos que servirão de auxílio para o script. O local onde eles se encontrem
não faz diferença, faça em locais com os quais seja fácil a sua consulta, se necessário.
Eu criei na pasta de log mesmo, mas você pode alterar para o local que desejar. Aqui estão em
/var/log/.
Os arquivos são o
/var/log/negados e
/var/log/robot.
Vamos ao script:
#!/bin/bash
verif=`tail -100 /var/log/auth.log |grep Failed |grep password |grep invalid`
if [ "$verif" = "" ] ; then
exit 1 ;
fi
tail -100 /var/log/auth.log |grep Failed |grep password |grep invalid > /var/log/robot
ip=`tail -1 /var/log/robot |sed -e '/^$/D' | cut -d " " -f 13 | tr -d "'"`
if cat /var/log/negados | grep "$ip"
then
exit 1;
fi
echo $ip >> /var/log/negados
echo iptables -A INPUT -s $ip -j DROP >> /etc/init.d/iptables.conf
/etc/init.d/iptables.conf
Caso utilizem alguma outra distribuição diferente de derivados
Debian, verifiquem os caminhos do arquivo do
"auth.log" e também do IPtables, basta adaptar.
É um script simples, mas que resolve. Nega acesso a qualquer IP que errar a senha de usuário.
Se na sua empresa existirem usuários que acessam, e que possam cometer erro de login, basta colocar os IPs dentro do
arquivo negados que ele passa direto sem adicionar ao IPtables, assim como aquele IP que já estiver por lá.
* Uma outra coisa muito importante, é colocar este script para que rode num curto período de tempo, evitando estragos por
parte do invasor, por isso, recomendo que seja adicionado ao
Cron. Aqui coloquei num Cron por minuto.
Espero que seja útil esta minha primeira dica para o
Viva o Linux, e espero publicar muitas outras...
Obrigado!