Bloqueia ataques do tipo bruteforce
Publicado por Anonymous Misteryous 06/08/2007
[ Hits: 9.876 ]
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
Script para acertar hora e data do sistema no linux.
Plugin para o Nagios monitorar o vencimento do certificado Zimbra
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (1)
Criar um script para testar pen drive (5)
Problema com alias usando locate (4)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba