Linux Sécurité
Iptables
Configurer la table NAT du pare-feu



Pour : Linux


La table nat permet de faire la translation d'adresse réseau (NAT) sur différents paquets.
La traduction d'adresse est gérée avec les chaînes PREROUTING, POSTROUTING et OUTPUT.
Voici le structure de test utilisé pour les exemples de ce tutoriel.

                             +------------+                       +-------------+
 MODEM                       |   Linux    |                       |   Poste     |
 +---+192.168.1.1            |            |193.168.1.10           |             |
 |   |<--------------------->| Passerelle |<--------------------->|   Client    |
 +---+          192.168.1.199|            |           193.168.1.15|             |
                             |    NAT     |                       |             |
                             +------------+                       +-------------+



Le DNAT ou NAT Destination

La chaîne PREROUTING (avant routage) permet de modifier que l'adresse de destination mais conserve l'adresse source.
C'est ce qu'on appel faire du DNAT (NAT destination).

Dans cette exemple, on va redireger le trafic en destination du réseau "195.111.222.0" vers le réseau "193.168.1.0".
iptables -t nat -A PREROUTING -d 195.111.222.0/24 -j DNAT --to-destination 193.168.1.0/24



Le SNAT ou NAT Source

La chaîne POSTROUTING (après routage) permet de modifier que l'adresse source mais conserve l'adresse de destination.
C'est ce qu'on appel faire du SNAT (NAT source).

Dans cette exemple, on va substituer l'adresse source du trafic privé sortant vers l'exterieur par une des trois adresses publique.
iptables -t nat -A POSTROUTING -s 193.168.1.0/24 -j SNAT --to-source 192.168.1.5-192.168.1.8



L'IP Masquerade

Le principe est d'utiliser une adresse IP publique source pour cacher derrière elle toutes les adresses IP du réseau privé.
Dans cette exemple avec du SNAT, tous les paquets provenant du réseau privé 193.168.1.0 sera percu comme provenant de l'IP public 192.168.1.199.
iptables -t nat -A POSTROUTING -s 193.168.1.0/24 -j SNAT --to-source 192.168.1.199

Il y a aussi l'option "MASQUERADE" qui a le même but.
iptables -t nat -A POSTROUTING -s 193.168.1.0/24 -j MASQUERADE

Vous pouvez utilisez d'autres options, comme choisir par rapport a votre interface réseau , ici "eth0" et au numéro de port, dans ce cas "80".
iptables -t nat -A POSTROUTING -o eth0 --dport 80 -j MASQUERADE



Afficher la table NAT

Pour afficher la table de NAT du pare-feu.

# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination





Supprimer une règle de la table NAT(-D)

Pour commencer, on va lister les règles avec un numéro par ligne.

# iptables -t nat -L --line-numbers Chain PREROUTING (policy ACCEPT) num target prot opt source destination Chain POSTROUTING (policy ACCEPT) num target prot opt source destination 1 MASQUERADE all -- 193.168.1.0/24 anywhere Chain OUTPUT (policy ACCEPT) num target prot opt source destination



Dans notre exemple on va supprimer la règle "1" de la chaine "POSTROUTING".
Syntaxe:
iptables -t nat -D [chaine] [numéro_de_ligne]

Exemple:

# iptables -t nat -D POSTROUTING 1





Liens qui peuvent vous aidez:
Iptables - Configuration des tables et chaînes du pare-feu intégré
Iptables - Sauvegarder et restaurer la configuration des tables du pare-feu
Script - Démarrage et arret du pare-feu Iptables



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
20/12/2011 09:16





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.