Bloqueia ataques do tipo bruteforce
Publicado por Anonymous Misteryous 06/08/2007
[ Hits: 10.229 ]
Script para bloqueio de ataques do tipo bruteforce em servidores ftp.
Atualmente para proftp slackware, mas, somente mudar o caminho onde o log se encontra.
Está comentado a parte do bloqueio do ip via iptables, somente envia email ao admin alertando.
Comentário são bem vindos sempre!
#!/bin/bash
#Danyllo Carvalho
#A ideia da expressao attemps eh do Mastah
#Aquele abraco
principal(){
echo ''
echo ''
echo -e '\e[33;1m Bloqueio de tentativas bruteforce em ftp \e[m'
echo -e '\e[33;1m Danyllo Carvalho\e[m'
echo -e '\e[33;1m Bruteforce_block.sh\e[m'
echo ''
echo ''
data=`date +%Y_%m_%d`
ips=$(cat /var/log/proftpd.log |grep -i "no such user found" | awk -F" " '{ print $15}')
attempts=1
if [ -z "$ips" ] ; then
exit
else
# fi
for ip in $ips;
do
lastip=$ip
if [ "$lastip" == "$ip" ] ; then
attempts=$(expr $attempts + 1)
#Eis a matada do Mastah, com certeza eu demoraria bem mais tempo pra sacar dessa forma
#Lista as ocorrencias e cria essa expressao como condicao, so vai printar se for maior ou igual a #15 ocorrencias
if [ $attempts -ge 15 ] ; then
echo "Possivel ataque por forca bruta detectado -------> $ip"
attempts=1
lastip=""
fi
fi
done
sleep 2
fi
enviar
}
enviar(){
maquina=`uname -n`
mensagem="Bom dia, Venho atraves deste informar-lhe que os seguintes enderecos estao tentando um ataque do tipo Brute Force no servidor $maquina, o seguinte endereco foi logado ($ip), o qual pode ser bloqueado manualmente no termino do script.Admin"
echo -en "\n\n\n"
echo -e '\e[33;1m Enviando Relatorio, por favor aguarde...\e[m'
echo -en "\n"
sleep 2
#Essas sao as variaveis que voce vai alterar de acordo com seu smtp, o #servidor que vai enviar as mensagens
(echo 'HELO localhost';sleep 1
echo 'MAIL FROM: admin@seuserver.com';sleep 1
echo 'RCPT TO: admin@seuserver.com';sleep 1
echo 'DATA';sleep 1
echo 'MIME-Version: 1.0';sleep 1
echo 'FROM: danyllo';
echo 'TO: Administrador <admin@seuserver.com>';
echo 'SUBJECT: Tentativa de ataque';
echo '';
echo '';
echo "$mensagem.";
echo '';
echo '';
echo '.';
echo 'QUIT'; ) | nc -t ip.seu.smtp. 25
#Limpo o log fazendo o backup do mesmo pela data em pt_br
cp /var/log/proftpd.log /var/log/proftpd.log_$data
cat /dev/null >/var/log/proftpd.log
exit
}
bloqueio()
{
echo -en "\n\n"
echo -e '\e[33;1m Ja foi enviado um email ao administrador, deseja bloquear o endereco de onde parte o ataque? (y/n).\e[m\n'
read resp
if [ "$resp" == "y" ] ; then
#iptables -A INPUT -s $ip -j DROP
echo "IP $ip foi pra lista de drop"
else
echo " RESPOSTA FOI NAO!"
fi
}
principal
Instalando e Integrando o SWATCH com SNORT
Firewall do mikrotik, limitando icmp (ping)
O que fazer após instalar o Debian 8 - versão em Shell Script
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









