0
Posted by alex on Apr 12th, 2008

firewall.pngSous Linux on a droit à un outil très flexible qui agit comme firewall, routeur, passerelle et etc... Cet outil s'appele iptables.

Bon soyont honnête, il est puissant et flexible, mais il est chiant à configurer et il ne garde pas sa configuration, il faut donc la refaire à chaque démarrage.
Ensuite pour bannir un IP du serveur nous avons le /etc/hosts.deny qui est très pratique. Pratique ? Oui sans aucun doute. MAIS celui ci n'agit pas au niveau de la couche réseau du kernel directement comme le fait iptable, il est lu par les différents programmes. C'est à dire que si un programme n'est pas conçu pour le lire, alors le IP en question peut toujours s'y connecter...

Voila qu'on a un problème hein... Après avoir longuement réfléchie à la meilleure façon de proceder je me suis dit "Pourquoi ne pas utiliser le hosts.deny, mais de le faire interpreter par iptables ?".

Je m'explique:

Je ne voulais pas avoir de fichiers de configuration supplémentaires juste pour stocker la liste de IP à bannir. Comme le shell est un outil très puissant, j'ai pensé qu'à l'aide d'un petit script j'arriverais à faire gober le hosts.deny à iptables pour qu'il lise la liste de IP.

Le hosts.deny, comment c'est fait ?

C'est simple la syntaxe est la suivante: SERVICE:IP

Soit par exemple: SSH:241.23.43.65

Ou pour bloqué le IP sur tous les services ALL:241.23.43.65

Une entrée par ligne.

La solution:

Tapper cette petite ligne la dans le shell pour rafraichir les règles avec les IPs dans hosts.deny. Seules les IP précédée de ALL: seront bannies.

awk -F: '$1 =="ALL" {system("/sbin/iptables -A INPUT -s "$2" -j DROP")}' /etc/hosts.deny

awk prends chaque ligne du hosts.deny, compare la première colonne si elle égale ALL,si c'est le cas on appele iptables avec le IP à bannir.

Attention: Les règles disparaissent au redémarrage, il est donc bien de mettre cette ligne la dans le /etc/rc.local aussi pour qu'elle soit executé au démarrage, ou dans un cronjob pour que vous puissiez ajouter des IPs sans vous souciez de raffraichir !

Et voila, les Ip dans votre hosts.deny seront refusés violement par votre PC :)

Have fun

0 comment
Connectez-vous ou postez en tant qu'invité:
Your Name Your Email


Vérification: 0160
Go to Top