Ipchains : Présentation et Exemple
Syntaxe de la commande Ipchains
Généralité
La commande ipchains est une commande root. Son utilisation reste simple. En effet, la logique de mise en place d?une règle est basée sur le fonctionnement du firewall. Celle-ci s'effectue en trois temps :- Dans un premier temps il est nécessaire d'isoler la chaîne concernée. Comme nous l?avons vu, il en existe trois de base : INPUT, OUTPUT, FORWARD.
- Ensuite, il faut écrire une règle qui permettra d'isoler une série de trames.
- Enfin, il faut préciser le sort des trames isoler.
Pour isoler une chaîne:
# ipchains -[AIRD] chaine
Pour écrire une règle:
# ... -[sd] adresse -[p] protocole -[i] interface
Pour définir le sors des trames:
# ... -[j] police
Opération sur les Chaînes
Nous allons maintenant détailler les différentes actions possibles sur une chaîne. Nous partons du principe que la chaîne existe déjà. En effet, comme nous le verrons dans la session Opération Bonus, il est possible de créer d'autres chaînes à partir des trois chaînes principales.# ipchains -[AIRD] chaine
- L'option A : Ajout d?une règle à la chaîne.
- L'option D : Supprime une règle à la chaîne.
- L'option I : Insert une nouvelle règle à la chaîne.
- L'option R : Remplace une règle à la chaîne.
Opération sur les Règles
Il s'agit ici de construire une règle qui répond à un besoin précis. Pour se faire, ipchains propose 3 types de données pour définir une règle.- Les adresses manipulées
- Le protocole utilisé
- L?interface concernée
Les adresses
Pour créer une règle, il est possible de préciser l'adresse concernée, et ce, en distinguant si l'adresse est une adresse source ou destination. il existe quatre façons de préciser cette adresse:- Soit par le nom d'une machine
- Soit par l'adresse d'une machine
- Soit par l'adresse d'un réseau de la forme x.x.x.x/255.255.255.0
- Soit par l'adresse d'un réseau de la forme x.x.x.x/32
Le protocole
Ipchains propose de spécifier le protocole concerné. Les protocoles possibles sont : tcp, udp et icmp. Pour les protocoles tcp et udp, le port peut être spécifié, et ce, de plusieurs manières :- Soit en donnant un unique port. Exemple : 1032
- Soit en donnant un intervalle de port. Exemple : 1032:2000
- Soit en donnant un intervalle en ne précisant qu?une seule borne. Exemple : 1032 :
En ce qui concerne le protocole icmp, il est possible de préciser le type ou le code icmp.
Ces codes sont :
Numéro | Type | Utilisé par |
0 | echo-reply | ping |
3 | destination-unreachable | Tout trafic UDP/TCP |
5 | redirect | Routage |
8 | echo-request | ping |
11 | time-exceeded | traceroute |
L'interface
Elle peut être du type 'eth0', 'ppp0'... Les interfaces sont listée par la commande :# ifconfig
Traitement d'une trame
Une fois une règle fixée sur une chaîne, il necessaire de fixer le sors de la trame. Pour cela, ipchains propose trois type de police:- DENY supprime le paquet comme s'il n'avait jamais été reçu
- ACCEPT accepte le paquet
- REJECT supprime le paquet, mais génère une réponse ICMP vers la source pour lui dire que la destination n'est pas accessible.
Opération Bonus
Il est possible de créer, modifier et supprimer des nouvelles chaînes. Celle ci ne sont pas réellement des nouvelles chaîne. Ce ne sont en fait que des sousy-chaîne des trois chaîne existante. Une utilisation intelligeant est proposée dans la section exemple. Voici les options possibles:- L'option N : crée une nouvelle chaîne
- L'option F : supprime une chaîne
- L'option L : Liste les règles d?une chaîne
- L'option Z : Supprime toutes les règles d?une chaine