Utiliser tarpit avec iptables sous ubuntu server 10.04
Par Dju » 16 juin 2010 (00:05) - Serveur
Lorsqu'on a une machine sous linux qu'on souhaite protéger, la première qu'on fait est d'établir des règles de firewall.
On va autoriser juste ce que l'on souhaite, et "dropper" le reste, c'est à dire ne pas répondre aux autres connexions, afin de ne pas trop perdre de bande passante et de ressouces.
Et pour ce faire, un module particulièrement pratique existe pour iptables, j'ai nommé TARPIT.
Pour savoir ce que fait tarpit, je vous invite à aller lire cet article de Philippe Humeau qui explique très bien la chose.
Maintenant, il s'agit de l'installer. ici, l'install' est faite sous US 10.04, avec un kernel récent >= 2.6.32
Tout d'abord, on aura besoin de quelques packages :
aptitude install build-essential pkg-config linux-headers-$(uname -r)
Si vous avez un ubuntu 9.04/9.10 ou une debian, il vous faudra également une version récente d'iptables :
wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.8.tar.bz2
tar xvjf ./iptables-1.4.8.tar.bz2
cd iptables-1.4.8
./configure
make
make install
Ensuite, il nous faut récupérer les sources de la dernière version de xtables, et les compiler pour avoir tous les modules nécessaires :
wget http://freefr.dl.sourceforge.net/project/xtables-addons/Xtables-addons/1.27/xtables-addons-1.27.tar.xz
tar xvJf ./xtables-addons-1.27.tar.xz
cd xtables-addons-1.27
./configure
make
make install
EDIT: et pour debian squeeze :
aptitude install xtables-addons-common xtables-addons-source
module-assistant auto-install xtables-addons-source
walaaa, maintenant on a tout ce qu'il faut pour jouer avec tarpit :p
une très bonne manière de l'utiliser est à la fin de notre script de firewall.
On a fait successivement toutes nos déclaration pour accepter tel ou tel port/destination/source etc....%
A la fin, on met généralement une ligne droppant les paquets non désirés :
iptables -A INPUT -i eth0 -j DROP
et juste avant cette ligne, on va mettre notre tarpit :
iptables -A INPUT -i eth0 -p tcp -j TARPIT
(notez que le tarpit ne fonctionne QUE en tcp, pas en udp)
Une fois la règle ajoutée et votre script de firewall relancé, on fait un petit test pour voir comment notre machine est vue de l'exterieur.
On peut par exemple utiliser nmap ip.de.votre.serveur pour voir le résultat: tous les ports semblent ouverts !
Mais bien sur, si on tente de faire une connexion sur un de ces ports, rien.
En regardant en même temps sur notre serveur avec un tcpdump, on peut voir que notre serveur réduit la taille de la fenêtre tcp à zero, ce qui est le résultat souhaité
Désormais, tous les petits malins lancant des scans de ports, se feront tarpiter, et verront leurs misérables tentatives ne pas aboutir, bien sur, mais également saturer :D
Maintenant, cette règle ci dessus ne sert qu'à dissuader les scanneurs de ports. On peut bien sur l'adapter à un contenu spécifique afin de se proteger plus efficacement d'attaques ddos, ou des woot-woot-at-isc.sans.dfind http par exemple.
What a blog seen hardly like these blogs nice stuff i9n the blog thanks for the blog dude thanku very much....:) nmpoku 675126
Fil des commentaires de ce billet
URL de rétrolien : https://blog.crifo.org/trackback/58