|
1.
|
Le jeu de règles communes est-il suffisant pour que le poste se
comporte comme un routeur ?
|
|
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.
|
|
2.
|
Quelle est la syntaxe de la commande iptables
qui autorise le transfert des paquets entrant par l'interface
WAN vers l'interface
LAN ?
|
|
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.router
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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 ippp0 -s 192.168.96.0/20 -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 eth0 -m state --state NEW -j ACCEPT
COMMIT
|
|
3.
|
Après avoir initié des communications avec les différents
protocoles usuels : ICMP, UDP
et TCP ; relever l'état des communications du poste
client distant avec l'outil iptsate.
|
|
4.
|
Est-il possible de visualiser à l'aide de l'analyseur réseau
wireshark le trafic retour relatif aux
requêtes émises par le client WAN ?
|
|
Non. Pour que le trafic retour aboutisse sur l'interface du client
WAN, il faudrait que la route vers le réseau étendu
soit connue du reste de l'Internet.
|
|
5.
|
Sans protocole de routage dynamique qui publie la route vers le
réseau étendu sur l'Internet, quelle est la solution technique pour que
les postes clients distants puissent accéder au réseau
public ?
|
|
C'est la traduction d'adresse source qui permet d'utiliser
l'adresse IP de l'interface LAN du
routeur comme la seule interface visible de l'Internet. On obtient le jeu
de règles suivant :
# cat iptables.router
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# T a b l e N A T
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -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 ippp0 -s 192.168.96.0/20 -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 eth0 -m state --state NEW -j ACCEPT
COMMIT
|