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 :
  1. 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.
  2. Ensuite, il faut écrire une règle qui permettra d'isoler une série de trames.
  3. Enfin, il faut préciser le sort des trames isoler.
Voici donc la syntaxe de la commande ipchains :

	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 I se différentie de l'option A par la possibilité de préciser l'emplacement d'une règle. En effet, lors de l'arrivée d'une trame, les règles associées à la chaîne sont parcourues linéairement. Si la trame répond à une règle, elle est immédiatement traitée. Les règles suivantes ne sont donc pas évaluées. L?option I permet de manipuler la table des règles en décidant l?insertion d?une règle avant/après une autre. Les options D et R répondent à la même logique.

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

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:

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 : Dans ce dernier cas, si la borne inférieure n?est pas spécifiée, l?intervalle commence à 0, si la borne supérieure n?est pas spécifiée, l?intervalle se termine au port 65535.
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:

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: