Différences entre versions de « Iptables »
Ligne 11 : | Ligne 11 : | ||
# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT | # iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT | ||
</pre> | </pre> | ||
+ | |||
+ | Pourquoi inséré à la deuxième ligne (''-I INPUT 2'') plutôt que d'ajouter à la fin ?? Si vous regarder bien les règles d'un pare-feu Iptables sur une CentOS: | ||
+ | |||
+ | <pre> | ||
+ | # iptables -nvL INPUT | ||
+ | </pre> | ||
+ | |||
+ | On s'aperçoit que: | ||
+ | * la première règle autorise tout le trafic initier depuis la machine; | ||
+ | * la dernière règle ''drop'' tous les paquets | ||
+ | |||
+ | Il faut donc insérer notre règle entre les deux règles précédentes (e.g. en deuxième position). | ||
= Translation d’adresses = | = Translation d’adresses = |
Version du 13 janvier 2014 à 17:17
Introduction
Soit une passerelle entre un LAN et Internet. Le LAN à le plan d'adressage 192.168.1.0/24 (192.168.1.254 pour la passerelle) et la passerelle à l'adresse publique 1.2.3.4.
Sur le LAN, il y a également un serveur Web à l'adresse 192.168.1.253.
Filtrage
Sur le serveur Web, on voudra autoriser le service HTTP (TCP/80)
# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
Pourquoi inséré à la deuxième ligne (-I INPUT 2) plutôt que d'ajouter à la fin ?? Si vous regarder bien les règles d'un pare-feu Iptables sur une CentOS:
# iptables -nvL INPUT
On s'aperçoit que:
- la première règle autorise tout le trafic initier depuis la machine;
- la dernière règle drop tous les paquets
Il faut donc insérer notre règle entre les deux règles précédentes (e.g. en deuxième position).
Translation d’adresses
Pour les machine sur le LAN, il faut faire du camouflage (MASQUERADE en anglais) c'est à dire que les adresses du LAN (privées et donc non routables sur Internet)seront remplacées "à la volées" par l'adresse publique de la passerelle.
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
Translation de port
Pour que les clients sur Internet puisse joindre le serveur Web, il faut rediriger le port TCP/80 de la passerelle sur le port TCP/80 du serveur Web
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.253