123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/bin/bash
- case "$1" in
- start)
- #création de la chaine personnalisé pour SSH
- iptables -N SSH
- iptables -N SSH_FAIL
- iptables -N SSH_ACCEPT
- #si un paquet est a destination du port 22 il sera renvoyer vers la chaine SSH
- iptables -t filter -A INPUT -p tcp --dport 22 -j SSH
- #chaine SSH
- #on ajoute une exception pour le système de blocage (règle à adapter)
- iptables -A SSH -s 192.168.1.122 -i eth0 -j ACCEPT
- #Lorsqu un nouveau paquet arrive on place l adresse ip source dans la liste SSH
- iptables -A SSH -m state --state NEW -m recent --name SSH --set
- #si un nouveau paquet arrive qu il est dans la liste SSH qu il a moins de 60s et qu'il a été reçu au moins 3 fois alors il est jeté
- iptables -A SSH -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 3 -j SSH_FAIL
- #dans les autres cas on accepte
- iptables -A SSH -m state --state NEW -m recent --name SSH --rcheck -j SSH_ACCEPT
- #SSH_FAIL
- #Si un paquet arrive dans cette chaine c est qu il doit être jeté
- iptables -A SSH_FAIL -j LOG --log-prefix "SSH FAIL :"
- iptables -A SSH_FAIL -j DROP
- #SSH_ACCEPT
- #Si un paquet arrive dans cette chaine c est qu il doit être accepté
- iptables -A SSH_ACCEPT -j LOG --log-prefix "SSH ACCEPT :"
- iptables -A SSH_ACCEPT -j ACCEPT
- ;;
- stop)
- #supression du point d'entrée
- iptables -t filter -D INPUT -p tcp --dport 22 -j SSH
- #vider la chaine SSH
- iptables -F SSH
- iptables -F SSH_FAIL
- iptables -F SSH_ACCEPT
- #suppression de la chaine
- iptables -X SSH
- iptables -X SSH_FAIL
- iptables -X SSH_ACCEPT
- ;;
- esac
- exit 0
-
|