Filtrer les script kiddies
Publié le
Si vous disposez d'un serveur sous unix et que vous en avez assez de voir des script kiddies tenter d’accéder à une faille par adresse ip directement, vous pouvez utiliser ce petit script qui ajoute un filtrage iptables
(avec log dans /var/log/syslog
) aux accès par adresse IP :
#!/bin/sh
# variables generales
ipfile="/tmp/current-wan-ip"
ipservice="ifconfig.me"
iptables=/sbin/iptables
# recuperation de l'ip
IP=`curl -s $ipservice`
if [ "${#IP}" = "0" ]; then
echo "[FW] Echec de la recuperation de l'ip WAN"
exit 10
fi
# lecture de l'ancienne ip
OLDIP=""
if [ -e $ipfile ]; then
OLDIP=`cat $ipfile`
fi
# test si l'addresse a changee
if [ "$OLDIP" = "$IP" ]; then
echo "[FW] Pas de changement d'adresse IP WAN"
exit 10
fi
# enregistrement de la nouvelle ip
echo $IP>$ipfile
echo "[FW] Mise a jour d'iptables"
if [ "${#OLDIP}" != "0" ]; then
echo "[FW] Suppression de l'ancienne règle ($OLDIP)"
${iptables} -t filter -D INPUT -p tcp --dport 80 -m string --to 700 --algo bm --string "Host: $OLDIP" -j LOG --log-prefix="Firewall IP scan "
${iptables} -t filter -D INPUT -p tcp --dport 80 -m string --to 700 --algo bm --string "Host: $OLDIP" -j REJECT --reject-with icmp-port-unreachable
fi
echo "[FW] Insertion de la nouvelle règle ($IP)"
${iptables} -t filter -I INPUT -p tcp --dport 80 -m string --to 700 --algo bm --string "Host: $IP" -j REJECT --reject-with icmp-port-unreachable
${iptables} -t filter -I INPUT -p tcp --dport 80 -m string --to 700 --algo bm --string "Host: $IP" -j LOG --log-prefix="Firewall IP scan "
exit 0
Pensez à rendre votre script exécutable via :
chmod +x nom_de_votre_script.sh
Et ajoutez le dans votre crontab
.