TARPIT & Iptables

TARPIT est un outil qui possède plusieurs utilités (Honeypot, anti-DDOS, anti script-kiddie …). L’outil s’utilise avec iptables, il permet de remplacer DROP. La différence est simple, DROP jette le paquet et ferme la connexion distante, alors que TARPIT jette le paquet et met la connexion distante en attente, la laissant inutilisable jusqu’au timeout du client, ainsi une fois toutes les connexions utilisées, la machine attaquante ne peut plus avoir d’accès réseau. De plus la méthode TARPIT génère nue plus grosse consommation CPU côté attaquant.

Attention chérie, ça va couper !

Tout d’abord pour utiliser TARPIT il va falloir installer quelques paquets (testé sur Debian Jessie). Pour cela :

apt-get update
apt-get install iptables module-assistant xtables-addons-common
module-assistant auto-install xtables-addons-source

Ensuite il faut rajouter les lignes ci-dessous dans votre script iptables :

# Cette ligne fait croire, à la personne qui scanne le serveur que le port 25 est ouvert 
# et bloque son accès réseau, si il s'acharne.
iptables  -I INPUT -p tcp -s 0.0.0.0/0 --dport 25 -j TARPIT
# Cette ligne fait croire, à la personne qui scanne le serveur que les ports 1 à 24 sont ouvert 
# et bloque son accès réseau, si il s'acharne.
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 1:24 -j TARPIT
# Cette ligne permet de bloquer les connexion avec des paquets contenant un mot clé 
# (exemple phpmyadmin, admin, w00tw00t ...)
iptables -I INPUT -p tcp -s 0.0.0.0/0 -m string --string "la_chaine" --algo bm -j TARPIT
# Cette ligne permet de bloquer les connexions trop rapide (DDOS, script ...)
# Ici, si une machine fait plus de 2 connexions par seconde, elle est bloquée
iptables -I INPUT -p tcp -s 0.0.0.0/0 -m state --state NEW -m limit --limit 2/second --limit-burst 1 -j TARPIT
# Cette ligne bloque une IP ou un sous-réseaux particulier
iptables -I INPUT -p tcp -s 192.168.0.0/24 -j TARPIT