SSH - Detecta ataque por brute force e bloqueia o IP do atacante.
Testado em slackware 9 e 10. "não sei se funciona em outra distribuição".
O funcionamento dele é simples, verifica no arquivo de log se ouve tentativa de acesso utilizando os usuários comuns em ataques brute force "admin,guest, test etc.." - Se alguma ocorrência for encontrada é gerada um arquivo com IP's dos atacantes. O sistema cria um script acrescentado uma regra de INPUT no iptables, bloqueando o ip do invasor.
Pode ser inserido no crontab em intervalos de 10 minuto ou menos.
O funcionamento dele é simples, verifica no arquivo de log se ouve tentativa de acesso utilizando os usuários comuns em ataques brute force "admin,guest, test etc.." - Se alguma ocorrência for encontrada é gerada um arquivo com IP's dos atacantes. O sistema cria um script acrescentado uma regra de INPUT no iptables, bloqueando o ip do invasor.
Pode ser inserido no crontab em intervalos de 10 minuto ou menos.
Descrição
Testado em slackware 9 e 10. "não sei se funciona em outra distribuição".
O funcionamento dele é simples, verifica no arquivo de log se ouve tentativa de acesso utilizando os usuários comuns em ataques brute force "admin,guest, test etc.." - Se alguma ocorrência for encontrada é gerada um arquivo com IP's dos atacantes. O sistema cria um script acrescentado uma regra de INPUT no iptables, bloqueando o ip do invasor.
Pode ser inserido no crontab em intervalos de 10 minuto ou menos.
O funcionamento dele é simples, verifica no arquivo de log se ouve tentativa de acesso utilizando os usuários comuns em ataques brute force "admin,guest, test etc.." - Se alguma ocorrência for encontrada é gerada um arquivo com IP's dos atacantes. O sistema cria um script acrescentado uma regra de INPUT no iptables, bloqueando o ip do invasor.
Pode ser inserido no crontab em intervalos de 10 minuto ou menos.
#!/bin/sh
# Desenvolvido por José Roberto da Silva
# Testado no slackware 9 e 10.
#
####
tempip="/etc/rc.d/scripts/temp/blocked-ips.tmp";
blockip="/etc/rc.d/scripts/temp/blocked-ips";
script="/etc/rc.d/scripts/temp/fir_blocked";
# separa todos os ips que tentaram bruteforce utilizando os usuarios guest/teste/admin
cat -n /var/log/messages | grep -P "(guest|test|admin|user)" | grep -i sshd | awk -F" " '{ print $11}' > $tempip;
# faz backup da lista de ips bloqueados
if [ -f $blockip ]; then
cat $blockip >> $tempip;
fi
# remove ips duplicados
sort -u $tempip | grep -v ^$ | grep -v user > $blockip;
# gera um script que bloqueia o ip através do iptables
ips=$(cat $blockip);
echo "iptables -F INPUT" > $script;
for ip in $ips ; do
blocked=("iptables -A INPUT -s $ip -j DROP")
echo $blocked >> $script
done
chmod +x $script
$script
guest .. etc
se ele for realizar um ataque de força bruta ele pelo menos terá um usuario valido no sistema conhecido e que ele saiba que tem acesso shell ...
entao a abordagem tem que ser contrario ...
ele analisar o log e se determinado usuario tiver varias entradas erroneas ... digamos ...
mais do que 5 num determinado espaço de tempo curto ...
pq se o script analisar o log todo pode pegar varias tentativas em time stamps differentes ...
e isso geraria falso positivo ...
entao acho que e melhor vc revisar seu script pq ele ta sem logica
a ideia e boa
mas a aplicação ta sem nexo.
falow