|
1.
|
Quelle est la syntaxe de la commande iptables qui
autorise le trafic sortant sur l'interface
WAN ?
|
|
Relativement à la configuration commune présentée précédemment, il
suffit d'ajouter une règle d'autorisation sur la chaîne
OUTPUT tout en enregistrant le premier paquet sortant
avec l'état NEW. On obtient donc :
# cat iptables.client
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e F I L T E R
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# I N P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# O U T P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A OUTPUT -o lo -m state --state NEW -j ACCEPT
-A OUTPUT -o ippp0 -m state --state NEW -j ACCEPT
COMMIT
Avec ce jeu de règles actif, on peut lancer la séquence rituelle des
tests ICMP et caractériser l'utilisation des règles en
visualisant l'évolution des compteurs avec la commande
iptables -vL.
|
|
2.
|
Quelle est la syntaxe de la commande iptables qui
active la traduction d'adresse source pour le trafic sortant sur
l'interface WAN ?
|
|
Relativement à la question précédente, on prépare la transformation
du poste client distant en «routeur» SOHO qui doit
servir de passerelle à un petit réseau domestique. On ajoute une règle de
traduction d'adresse source dynamique liée à l'interface
WAN. Il faut rechercher les informations sur la cible
MASQUERADE dans les pages de manuels de la commande
iptables.
# cat iptables.client
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e N A T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o ippp0 -j MASQUERADE
COMMIT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e F I L T E R
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# I N P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# O U T P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A OUTPUT -o lo -m state --state NEW -j ACCEPT
-A OUTPUT -o ippp0 -m state --state NEW -j ACCEPT
COMMIT
|
|
3.
|
Ce jeu de règles est-il suffisant pour que le poste se comporte
comme une passerelle de traduction d'adresses IP sources ?
|
|
Non. Il manque au moins 2 conditions pour que le routage et la
traduction d'adresses sources soient actifs.
-
Pour qu'un paquet soit transmis d'une interface réseau vers une
autre, il faut s'assurer que le routage est actif au niveau du noyau.
Cette fonction est paramétrée par la variable d'état
ip_forward du système de fichiers virtuel /proc. La valeur 1
indique que la fonction routage est active dans le noyau :
# echo 1 > /proc/sys/net/ipv4/ip_forward
-
Comme la politique par défaut sur la chaîne
FORWARD est DROP, aucun paquet ne
peut traverser les règles de filtrage et transiter d'une interface vers
l'autre. Sans règle supplémentaire, les tests ICMP
doivent incrémenter le compteur DROP de la chaîne
FORWARD.
|
|
4.
|
Quelle est la syntaxe de la commande iptables
qui autorise le transfert des paquets entrant par l'interface
LAN vers l'interface
WAN ?
|
|
Il faut implanter deux règles dans la chaîne
FORWARD. Une première règle qui correspond à ce qui a
déjà été vu dans la mise au point du jeu de règles communes pour les
chaînes INPUT et OUTPUT : tout
trafic relatif à une demande enregistrée dans la machine d'état de suivi
de communication est accepté. Une seconde règle qui accepte les paquets
entrants par l'interface LAN en enregistrant les
nouvelles communication dans la même machine d'état. On obtient le jeu de
règles suivant :
# cat iptables.client
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e N A T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o ippp0 -j MASQUERADE
COMMIT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e F I L T E R
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# I N P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# F O R W A R D
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -m state --state NEW -j ACCEPT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# O U T P U T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p icmp -m limit --limit 5/sec -m state --state NEW -j ACCEPT
-A OUTPUT -o lo -m state --state NEW -j ACCEPT
-A OUTPUT -o ippp0 -m state --state NEW -j ACCEPT
COMMIT
|