Page 1 
Powerpoint Templates
Page 2 
I. INTRODUCTION 
II. FONCTIONNEMENT DE IP-TABLES 
1. Qu’est ce IP-TABLES? 
2. Principe 
3. les Tables , les chaines et les cibles 
4. Diagramme de traitement des paquet 
III. DEMONSTRATION
De nos jours, l’une des méthodes fondamentales de 
sécurisation des réseaux informatiques est le filtrage 
des paquets. 
Aujourd’hui tout le monde sait ce que c’est qu’un firewall 
ainsi que son utilité sur un réseau, un serveur ou même 
un ordinateur personnel 
Depuis la version 2.4, Linux contient un module destiné 
au filtrage réseau: Netfilter. Il se configure au moyen 
d'un outil appelé iptables. 
Page 3
IPTables est un outil Linux (exclusivement) pour 
gérer le pare-feu qui est intégré au noyau Linux 2.4 
(et supérieur). L'architecture du noyau pour le 
système de pare-feu s'appelle 'netfilter'. 
Netfilter est un module, et fonctionne en mode 
Noyau. C’est lui qui intercepte et manipule les 
paquets IP avant et après le routage. 
• IPTables est la commande qui permet de 
Page 4 
configurer Netfilter en espace Utilisateur.
• Lorsque la carte réseau reçoit un paquet celui-ci 
Page 5 
est transmis à la partie netfilter du noyau. 
• Netfilter va ensuite étudier ce paquet (les entêtes 
et le contenu) et en se basant sur des règles que 
l'administrateur aura défini, il va choisir de laisser 
passer le paquet intact, de modifier ce paquet, 
de le transmettre à une autre machine ou encore 
d'interdire le passage.
Tous les paquets inspectés par Netfilter passent à 
travers des tables de traitement prédéfinies (queues). 
est constituée d’un nombre arbitraire et non 
est une suite de règles qui sont prises dans 
l'ordre, dès qu'une règle correspond à un paquet, elle est 
déclenchée, et la suite de la chaîne est ignorée. 
Page 6 
limité de chaînes. 
est l’endroit où sera envoyé le paquet si le 
motif de reconnaissance de là règle correspond et qui 
donnera l’action a exécuter. 
Nombre variable de critère permettant d’évaluer un paquet
Page 7 
Tables Il existe trois principales tables 
Table Description 
filter Cette table permet de filtrer les paquets. 
Typiquement ce sera pour les accepter ou non. 
nat Avec cette table, on peut réaliser des translations 
d'adresse (ou de ports). 
mangle Règle pour la modification des paquets. Permet de 
marquer les paquets (MARK), Modifier leur TTL, leur 
TOS. On peut agir sur l’en-tête du paquet ainsi 
qu’aux champs qui lui sont associé par le système 
La table Raw est principalement utilisée pour placer des marques sur les paquets 
qui ne doivent pas être vérifiés par le système de traçage de connexion. Ceci est 
effectué en utilisant la cible NOTRACK sur le paquet. Si une connexion rencontre 
une cible NOTRACK, conntrack ne tracera pas cette connexion
Page 8 
Ce sont elles qui contiendront 
les règles à appliquer aux paquets. 
Chaines 
Chaînes de Netfilter 
Chaîne Table Description 
PREROUTING 
Mangle, nat 
Par cette chaîne passeront les 
paquets entrant dans la machine 
avant routage. 
INPUT 
Filter, mangle 
Cette chaîne traitera les paquets 
entrants avant qu'ils ne soient 
passées aux couches supérieures 
(les applications). 
FORWARD 
Filter, mangle 
Ce sont les paquets uniquement 
transmis par la machine sans que 
les applications n'en aient 
connaissance. 
OUTPUT 
filter, nat, mangle 
Cette chaîne sera appelée pour 
des paquets envoyés par des 
programmes présents sur la 
machine. 
POSTROUTING 
Mangle, nat 
Les paquets prêts à être envoyés 
(soit transmis, soit générés) seront 
pris en charge par cette chaîne.
Page 9 
Il s'agit du traitement que l'on décide 
d'appliquer au paquet Cible 
Cible Description 
ACCEPT Les paquets envoyés vers cette cible seront tout simplement acceptés et pourront 
poursuivre leur cheminement au travers des couches réseaux. 
DROP Cette cible permet de jeter des paquets qui seront donc ignorés. 
REJECT 
Permet d’envoyer une réponse à l’émetteur pour lui signaler que son paquet a été 
refusé. 
LOG 
Demande au noyau d’enregistrer des informations sur le paquet courant. Cela se fera 
généralement dans le fichier /var/log/messages (selon la configuration du programme 
syslogd). 
MASQUERADE 
Cible valable uniquement dans la chaîne POSTROUTING de la table NAT Elle 
change l’adresse IP de l’émetteur par celle courante de la machine pour l’interface 
spécifiée. Cela permet de masquer des machines et de faire par exemple du partage 
de connexion. 
SNAT 
Egalement valable pour la chaîne POSTROUTING de la table NAT seulement. Elle 
modifie aussi la valeur de l’adresse IP de l’émetteur en la remplaçant par la valeur 
fixe spécifiée. 
DNAT 
Valable uniquement pour les chaînes PREROUTING et OUTPUT de la table NAT. 
Elle modifie la valeur de l’adresse IP du destinataire en la remplaçant par la valeur 
fixe spécifiée. 
RETURN 
Utile dans les chaînes utilisateurs. Cette cible permet de revenir à la chaîne 
appelante. Si RETURN est utilisé dans une des chaînes de base précédente, cela est 
équivalent à l’utilisation de sa cible par défaut.
Page 10 
Les options d’ IPtables 
Options Rôle 
-L Affiche toutes les règles de la chaîne indiquée. 
-F Flush. Supprime toutes les règles de la chaîne. Si aucune chaîne n'est 
spécifiée, toutes celles de la table sont vidées. 
-N Crée une nouvelle chaîne utilisateur avec le nom passé en paramètre. 
-X Supprime la chaîne utilisateur. Si aucun nom n'est spécifié, toutes les 
chaînes utilisateur seront supprimées 
-P Modifie la politique par défaut de la chaîne. Il faut indiquer en plus comme 
paramètre la cible à utiliser. 
-A Ajoute une règle à la fin de la chaîne spécifiée. 
-I Insère la règle avant celle indiquée. Cette place est précisée par un 
numéro qui fait suite au nom de la chaîne. La première porte le numéro 1. 
Si aucun numéro n'est indiqué, la règle est insérée au début. 
-D Supprime une règle de la chaîne. Soit un numéro peut être précisé, soit la 
définition de la chaîne à supprimer (ses tests de concordance et sa cible). 
-j <cible> Saute à la cible spécifiée lorsque le paquet correspond à la règle 
-p < type-protocole> Protocole à surveiller. Le type inclut icmp, tcp, udp, http, etc. 
-s < addresse-ip> Adresse IP source à surveiller. 
-d < addresse-ip > Adresse IP destination à surveiller. 
-i <nom-interface> Interface d’entrée à surveiller (le paquet entre par cette interface). 
-o < nom-interface > Interface de sortie à surveiller (le paquet sort par cette interface).
Page 11
• # iptables –t filter -A INPUT –p TCP –S 192.168.3.1 –j DROP 
#iptables –t nat –A PREROUTING –i eth0 –p tcp –dport 80 
Page 12 
–j DNAT/ ---to-destination 192.168.2.1:8080 
• -t nat [filter]  table Nat ou filter 
• -A Prerouting on ajoute une règle en (entrée d’interface) 
• -i eth0  on précise le sens (–i=input) et la carte réseau 
• -p TCP  on indique le protocole TCP 
• --dport 80  le port de destination prévu à l’origine. 
• -J  jump, quel action on va faire subir au paquet. 
• DNAT  modification de la destination 
• -to—destination 192.168.2.1:80  on précise la nouvelle destination
Page 13
Page 14 
.
Page 15
Page 16 
Exemple de script iptables 
(à stocker dans /etc/init.d/monIPTables 
#!/bin/bash 
# Script iptables by BeAvEr. 
## Règles iptables. 
## On flush iptables. 
/sbin/iptables -F 
## On supprime toutes les chaînes utilisateurs. 
/sbin/iptables -X 
## On drop tout le trafic entrant. 
/sbin/iptables -P INPUT DROP 
## On drop tout le trafic sortant. 
/sbin/iptables -P OUTPUT DROP 
## On drop le forward. 
/sbin/iptables -P FORWARD DROP 
## On drop les scans XMAS et NULL. 
/sbin/iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP 
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP 
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP 
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP 
## Dropper silencieusement tous les paquets broadcastés. 
/sbin/iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP 
## Permettre à une connexion ouverte de recevoir du trafic en entrée. 
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
## Permettre à une connexion ouverte de recevoir du trafic en sortie. 
/sbin/iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT 
## On accepte la boucle locale en entrée. /sbin/iptables -I INPUT -i lo -j ACCEPT 
## On log les paquets en entrée. /sbin/iptables -A INPUT -j LOG 
## On log les paquets forward. /sbin/iptables -A FORWARD -j LOG 
exit 0
Page 17 
Je vous remercie 
pour votre attention 
Questions!!?

Projet IPTable

  • 1.
  • 2.
    Page 2 I.INTRODUCTION II. FONCTIONNEMENT DE IP-TABLES 1. Qu’est ce IP-TABLES? 2. Principe 3. les Tables , les chaines et les cibles 4. Diagramme de traitement des paquet III. DEMONSTRATION
  • 3.
    De nos jours,l’une des méthodes fondamentales de sécurisation des réseaux informatiques est le filtrage des paquets. Aujourd’hui tout le monde sait ce que c’est qu’un firewall ainsi que son utilité sur un réseau, un serveur ou même un ordinateur personnel Depuis la version 2.4, Linux contient un module destiné au filtrage réseau: Netfilter. Il se configure au moyen d'un outil appelé iptables. Page 3
  • 4.
    IPTables est unoutil Linux (exclusivement) pour gérer le pare-feu qui est intégré au noyau Linux 2.4 (et supérieur). L'architecture du noyau pour le système de pare-feu s'appelle 'netfilter'. Netfilter est un module, et fonctionne en mode Noyau. C’est lui qui intercepte et manipule les paquets IP avant et après le routage. • IPTables est la commande qui permet de Page 4 configurer Netfilter en espace Utilisateur.
  • 5.
    • Lorsque lacarte réseau reçoit un paquet celui-ci Page 5 est transmis à la partie netfilter du noyau. • Netfilter va ensuite étudier ce paquet (les entêtes et le contenu) et en se basant sur des règles que l'administrateur aura défini, il va choisir de laisser passer le paquet intact, de modifier ce paquet, de le transmettre à une autre machine ou encore d'interdire le passage.
  • 6.
    Tous les paquetsinspectés par Netfilter passent à travers des tables de traitement prédéfinies (queues). est constituée d’un nombre arbitraire et non est une suite de règles qui sont prises dans l'ordre, dès qu'une règle correspond à un paquet, elle est déclenchée, et la suite de la chaîne est ignorée. Page 6 limité de chaînes. est l’endroit où sera envoyé le paquet si le motif de reconnaissance de là règle correspond et qui donnera l’action a exécuter. Nombre variable de critère permettant d’évaluer un paquet
  • 7.
    Page 7 TablesIl existe trois principales tables Table Description filter Cette table permet de filtrer les paquets. Typiquement ce sera pour les accepter ou non. nat Avec cette table, on peut réaliser des translations d'adresse (ou de ports). mangle Règle pour la modification des paquets. Permet de marquer les paquets (MARK), Modifier leur TTL, leur TOS. On peut agir sur l’en-tête du paquet ainsi qu’aux champs qui lui sont associé par le système La table Raw est principalement utilisée pour placer des marques sur les paquets qui ne doivent pas être vérifiés par le système de traçage de connexion. Ceci est effectué en utilisant la cible NOTRACK sur le paquet. Si une connexion rencontre une cible NOTRACK, conntrack ne tracera pas cette connexion
  • 8.
    Page 8 Cesont elles qui contiendront les règles à appliquer aux paquets. Chaines Chaînes de Netfilter Chaîne Table Description PREROUTING Mangle, nat Par cette chaîne passeront les paquets entrant dans la machine avant routage. INPUT Filter, mangle Cette chaîne traitera les paquets entrants avant qu'ils ne soient passées aux couches supérieures (les applications). FORWARD Filter, mangle Ce sont les paquets uniquement transmis par la machine sans que les applications n'en aient connaissance. OUTPUT filter, nat, mangle Cette chaîne sera appelée pour des paquets envoyés par des programmes présents sur la machine. POSTROUTING Mangle, nat Les paquets prêts à être envoyés (soit transmis, soit générés) seront pris en charge par cette chaîne.
  • 9.
    Page 9 Ils'agit du traitement que l'on décide d'appliquer au paquet Cible Cible Description ACCEPT Les paquets envoyés vers cette cible seront tout simplement acceptés et pourront poursuivre leur cheminement au travers des couches réseaux. DROP Cette cible permet de jeter des paquets qui seront donc ignorés. REJECT Permet d’envoyer une réponse à l’émetteur pour lui signaler que son paquet a été refusé. LOG Demande au noyau d’enregistrer des informations sur le paquet courant. Cela se fera généralement dans le fichier /var/log/messages (selon la configuration du programme syslogd). MASQUERADE Cible valable uniquement dans la chaîne POSTROUTING de la table NAT Elle change l’adresse IP de l’émetteur par celle courante de la machine pour l’interface spécifiée. Cela permet de masquer des machines et de faire par exemple du partage de connexion. SNAT Egalement valable pour la chaîne POSTROUTING de la table NAT seulement. Elle modifie aussi la valeur de l’adresse IP de l’émetteur en la remplaçant par la valeur fixe spécifiée. DNAT Valable uniquement pour les chaînes PREROUTING et OUTPUT de la table NAT. Elle modifie la valeur de l’adresse IP du destinataire en la remplaçant par la valeur fixe spécifiée. RETURN Utile dans les chaînes utilisateurs. Cette cible permet de revenir à la chaîne appelante. Si RETURN est utilisé dans une des chaînes de base précédente, cela est équivalent à l’utilisation de sa cible par défaut.
  • 10.
    Page 10 Lesoptions d’ IPtables Options Rôle -L Affiche toutes les règles de la chaîne indiquée. -F Flush. Supprime toutes les règles de la chaîne. Si aucune chaîne n'est spécifiée, toutes celles de la table sont vidées. -N Crée une nouvelle chaîne utilisateur avec le nom passé en paramètre. -X Supprime la chaîne utilisateur. Si aucun nom n'est spécifié, toutes les chaînes utilisateur seront supprimées -P Modifie la politique par défaut de la chaîne. Il faut indiquer en plus comme paramètre la cible à utiliser. -A Ajoute une règle à la fin de la chaîne spécifiée. -I Insère la règle avant celle indiquée. Cette place est précisée par un numéro qui fait suite au nom de la chaîne. La première porte le numéro 1. Si aucun numéro n'est indiqué, la règle est insérée au début. -D Supprime une règle de la chaîne. Soit un numéro peut être précisé, soit la définition de la chaîne à supprimer (ses tests de concordance et sa cible). -j <cible> Saute à la cible spécifiée lorsque le paquet correspond à la règle -p < type-protocole> Protocole à surveiller. Le type inclut icmp, tcp, udp, http, etc. -s < addresse-ip> Adresse IP source à surveiller. -d < addresse-ip > Adresse IP destination à surveiller. -i <nom-interface> Interface d’entrée à surveiller (le paquet entre par cette interface). -o < nom-interface > Interface de sortie à surveiller (le paquet sort par cette interface).
  • 11.
  • 12.
    • # iptables–t filter -A INPUT –p TCP –S 192.168.3.1 –j DROP #iptables –t nat –A PREROUTING –i eth0 –p tcp –dport 80 Page 12 –j DNAT/ ---to-destination 192.168.2.1:8080 • -t nat [filter]  table Nat ou filter • -A Prerouting on ajoute une règle en (entrée d’interface) • -i eth0  on précise le sens (–i=input) et la carte réseau • -p TCP  on indique le protocole TCP • --dport 80  le port de destination prévu à l’origine. • -J  jump, quel action on va faire subir au paquet. • DNAT  modification de la destination • -to—destination 192.168.2.1:80  on précise la nouvelle destination
  • 13.
  • 14.
  • 15.
  • 16.
    Page 16 Exemplede script iptables (à stocker dans /etc/init.d/monIPTables #!/bin/bash # Script iptables by BeAvEr. ## Règles iptables. ## On flush iptables. /sbin/iptables -F ## On supprime toutes les chaînes utilisateurs. /sbin/iptables -X ## On drop tout le trafic entrant. /sbin/iptables -P INPUT DROP ## On drop tout le trafic sortant. /sbin/iptables -P OUTPUT DROP ## On drop le forward. /sbin/iptables -P FORWARD DROP ## On drop les scans XMAS et NULL. /sbin/iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP /sbin/iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP /sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP /sbin/iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP ## Dropper silencieusement tous les paquets broadcastés. /sbin/iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP ## Permettre à une connexion ouverte de recevoir du trafic en entrée. /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## Permettre à une connexion ouverte de recevoir du trafic en sortie. /sbin/iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT ## On accepte la boucle locale en entrée. /sbin/iptables -I INPUT -i lo -j ACCEPT ## On log les paquets en entrée. /sbin/iptables -A INPUT -j LOG ## On log les paquets forward. /sbin/iptables -A FORWARD -j LOG exit 0
  • 17.
    Page 17 Jevous remercie pour votre attention Questions!!?