ADeLLA.org ADeLLA.org

Accueil du site > Documentation > Réseau > Configurer IPTABLES avec WEBMIN

Firewall

Configurer IPTABLES avec WEBMIN

lundi 17 mai 2004, par daniel


Objectif :

Configurer un pare-feu sous Linux à l’aide de l’excellent outil WEBMIN.

Prérequis :

voir : WEBMIN : Généralités


Installation :

Installer le paquetage iptables.

urpmi iptables


Configuration :

Configuration avec webmin/Réseau/Linux Firewall

Netfilter dans la pile IP :

IPTABLES est configurable à l’aide de trois tables :

- Table FILTER (filtrage)
- Table NAT (Translations d’adresses / Masquage)
- Table MANGLE (marquage des paquets)

Pour notre Firewall, nous utiliserons la table FILTER (on la sélectionne puis on clique sur showing iptables)

Les filtres sont traités dans l’ordre.


Cible des paquets :

- ACCEPT : Paquet accepté
- DROP : Paquet jeté (poubelle)
- LOG : Enregistrement sur /var/log/messages
- USERSPACE : Espace utilisateur (requiert module IP_QUEUE) exploité par exemple par fireflier (pare-feu applicatif)
- REJECT : renvoi d’un paquet de rejet (dans certains cas de figure uniquement ex : ICMP)
- RETURN, REDIRECT, MASQUERADE, ....

Configuration avec Webmin : Pour les cibles qui ne sont pas directement sélectionnables dans l’interface de Webmin (autre que ACCEPT, DROP, USERSPACE), on sélectionne Run chain puis on rajoute le nom de la cible (par exemple LOG) à droite dans la zone de texte.


Conditions :

- Interfaces (ppp0 pour liaison modem, eth0 pour première interface ethernet, lo pour local...)
- ports (ex : 53=DNS)
- Protocoles (UDP, TCP, ICMP, ...)
- Adresses IP (source/destination)

Configuration avec Webmin :
- Interfaces, adresses et choix du protocole à filtrer : On peux spécifier un masque de la manière suivante :
127.0.0.0/255.0.0.0 (réseau 127.0.0.0 avec un masque à 255.0.0.0).

- Filtres TCP et UDP : On peux spécifier plusieurs ports en les séparants par une virgule. Il est possible aussi de définir une plage de port (port range).

- Filtres ICMP :


Suivi de connexions :

De plus, Netfilter est capable de faire un suivi de connexions. Il y a 3 états :
- NEW Nouvelle connexion
- ESTABLISHED Connexion établie
- RELATED Connexion ayant une relation avec une connexion existante
- INVALID ne répond à aucun des 3 états précédents

Configuration avec Webmin :

Pour chaques options désirées, on a le choix entre :
- Ignored (On ignore cette option)
- Equals (Egal)
- Does not equals (Non égal)

Exemple :
- Nous voulons accepter tous les pings (protocole ICMP) sauf ceux venant d’internet : If protocol is ICMP and input interface is not ppp0 and ICMP type is echo-request -> ACCEPT

Ce qui se traduit par : Si l’interface d’entrée est différente de ppp0 (internet) ET Le protocole est ICMP ET le type de paquet ICMP est demande d’echo (ping) ALORS ON ACCEPTE LE PAQUET.

Pour le suivi de connexions, vérifiez que les modules ip_conntrack, ip_conntrack_ftp (pour le ftp) et ip_conntrack_irc (pour l’IRC) soient chargés :

[root@villou villou]# lsmod|grep conntrack
ip_conntrack_ftp 72116 0
ip_conntrack 32432 4 ipt_MASQUERADE,ipt_state,iptable_nat,ip_conntrack_ftp

sinon, chargez les modules :
[root@villou villou]# modprobe ip_conntrack_ftp

Pour qu’ils soient chargés à chaque démarrage, il faut rajouter les modules manquants dans le fichier :
- /etc/modules pour un noyau 2.4
- /etc/modprobe.preload pour un noyau 2.6


Table FILTER :

Pour chaques tables, définir une action par défaut (si aucun critère ne s’applique). Je vous conseille de mettre cette règle à DROP (poubelle)

Paquets entrant (d’une interface vers processus locaux) :

Paquets en transit (d’une interface vers une autre interface = passerelle) :

Paquets sortant (processus locaux vers une interface) :

Possibilité de créer ses propres cibles, par exemple on veut enregistrer les paquets suspects dans un journal (log) puis les jeter (drop) : On créé une cible que nous appelerons par exemple LOG_DROP qui aura comme cible LOG puis DROP. On utilise pour cela add a new chain named :

Les "LOG" sont enregistrés dans /var/log/messages.
Vous pouvez utiliser la commande suivante dans une console (en tant que root) pour visualiser les "logs" au fil de l’eau :
tail -f /var/log/messages

- Service : /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
- Fichier de configuration : /etc/sysconfig/iptables


Articles connexes :
- article 24

Visiter l’excellent site de Christian Caleca pour des informations très complètes sur IPTABLES : http://christian.caleca.free.fr


16/05/2004

Répondre à cet article


Suivre la vie du site | Valid HTML 4.01! | Valid CSS! | Plan du site | Espace privé | SPIP