Table des matières Page précédente Page suivante

IV-2 Un exemple : Netfilter_cfg

Parmi tous les outils de configuration d'Iptables que vous pouvez trouver, j'en propose un moi-même. Je sais ce que vous pouvez penser : "Ce type a fait un long document sur la sécurité Linux, et à la fin, une fois que l'on est bien endormis, hop il propose un vulgaire script qu'il a bricolé sur un coin de table ?" Smiley Et bien non, pas du tout ! Le propos n'est pas là. Il s'agit tout simplement de mettre un peu plus en applications tout ce que nous venons de voir jusqu'à présent.

Lorsque j'ai commencé à m'intéresser aux problèmes du firewall sous Linux, j'ai dût répondre à des besoins particuliers :
  • Ma machine passe régulièrement d'une connexion Internet RTC à une connexion ADSL ou par passerelle, voir à pas de connexion Internet du tout. Il me fallait donc un script qui puisse s'adapter facilement à ces changements de configuration, sans que ce soit trop pénible pour moi.
  • Étant de nature assez soupçonneuse vis à vis d'Internet, il me fallait utiliser des commandes "iptables" utilisant mon adresse IP Internet (comme vu précédemment). Donc il fallait que ce script trouve tout seul cette adresse IP.
  • Enfin, il m'arrive de me connecter sur Internet, et de rendre temporairement accessible certains serveurs tournant sur ma machine. Je voulais donc un script qui puisse ouvrir le plus simplement possibles certains ports de ma machine.
De tout ces besoins différents est né "netfilter_cfg". C'est un honnête petit script de près de 1800 lignes écrit en bash. La syntaxe utilisée se veut claire, le script est bien commenté, et il est régulièrement maintenu.

Bien entendu, il est distribué sous la licence GPL, ce qui vous permet de l'utiliser et de le distribuer librement, d'étudier et de modifier son code source. Vous pouvez aussi proposer vos propres patchs pour ce script, et même d'en faire une variante à votre nom (à la condition d'indiquer clairement quelle est la source du script originel).

Les points forts de Netfilter_cfg sont :
  • Support de multiples interfaces locales : On peut déclarer autant d'interfaces réseaux internes ("eth0", "eth1", "eth2", etc...)
  • Connexion externe : RTC / ADSL / passerelle : On peut utiliser tout ces types d'interfaces pour se connecter à Internet. La détection du type de connexion, ou son absence, est automatique.
  • Supporte le Conntrack / IP masquerading : Seul le port forwarding n'est pas implémenté. Si nécessaire, je pourrais le développer par la suite.
  • LOG / ULOG / Filtrage de logs : Ces différentes techniques de logs sont possible.
  • Suppression de certains LOG : Il est possible de ne pas logger certains types de trames, afin d'éviter de surcharger les logs. C'est spécialement utile pour éliminer par exemple les demandes de connexions P2P. Elles sont notamment spécialement importantes en début de connexion.
  • Gestion de serveurs : TO / FTP / ... : Ce script gère pour l'instant le passages des trames des serveurs de type Tactical Ops et FTP. Par la suite, d'autre serveurs pourrons être gérés.
  • Affichage des règles : Afin de permettre à l'utilisateur de comprendre un peu mieux les règles Netfilter générées, toutes les commandes Iptables utilisées sont affichées ou stockés dans un log.
  • Évolutif : De la manière dont ce script est implémenté, il se veut le plus évolutif possible. Vous pourrez rajouter facilement de nouvelles fonctionnalités, voir me proposer d'en rajouter.
Exemple d'utilisation :
[root@phoenix ]# /usr/local/sbin/netfilter_cfg
+ Utilisation des paramètres par défaut :
  --drop-rules' : on
  --spoofing-filter' : on
  --nat' : off
  --wan-ftp-server' : off
  --wan-to-server' : off
  --wan-ping' : off
  (Utiliser '--help pour avoir de l'aide')
+ Règles iptables modifiées. Utilisez 'iptables -L -n' ou 'iptables -L -n -v' pour afficher la liste des tables
+ Fichier de debug : /var/log/netfilter_cfg
Lancé sans paramètre, "netfilter_cfg" configure la sécurité au maximum. Pour la plupart des utilisations standards, il suffit de le lancer de cette manière au démarrage de votre machine, ou dès que votre connexion à Internet est établie. On peut difficilement faire plus simple, non ?

Pour avoir la liste de ses paramètres :
[root@phoenix /]# /usr/local/sbin/netfilter_cfg --help

                   netfilter_cfg v0.5.4

Usage: netfilter_cfg [--drop-rules <on|off>]
          [--nat <on|off>] [--spoofing-filter <on|off>] [--help]
          [--wan-ftp-server <on|off>] [--wan-to-server <on|off>]
          [--wan-ping <on|off>]

Options :
--drop-rules      Active/désactive le rejet automatique de certains paquets
                  Défaut : on
--nat             Active/désactive le fonctionnement en passerelle Internet
                  Défaut : off
--spoofing-filter Active/désactive les règles anti-spoofing
                  Défaut : on
--wan-ftp-server  Active/désactive le serveur FTP Internet
                  Défaut : off
--wan-to-server   Active/désactive le serveur Tactical Ops Internet
                  Défaut : off
--wan-ping        Autorise ou nom la machine à répondre aux ping
                  Défaut : off
--help            Affiche l'aide

Exemples :
  netfilter_cfg --nat on --wan-to-server on --wan-ftp-server off
La machine est configurée pour faire du NAT et serveur Tactical Ops.
Le serveur FTP est arrêté
Pour plus d'information sur ce programme, visitez la page officielle.

Pour votre information, j'utilise ce script à chacune de mes connexion Internet. Et j'ai commencé à le diffuser autour de moi, avec jusqu'à présent un grand succès ! Des néophytes en matière de Linux l'utilise d'ailleurs, sans pour l'instant rencontrer de problème.

Table des matières Page précédente Page suivante
Valid XHTML 1.0! Valid CSS!
Site de référence : http://olivieraj.free.fr/ Last modified: Sat Jul 19 02:35:01 CEST 2003