Vous êtes sur la page 1sur 5

TP - NAT et Firewall

N. Delestre

Rappels : Information sur le CR a` rendre


Les TP se font en binome (binome que vous conserverez pendant tous les TP).
Chaque TP de reseau sera suivi dun compte rendu qui devra e tre depose sur le site moodle au
format PDF avant la prochaine seance de TP. Le nom de ce fichier devra suivre la syntaxe suivante :
nom1-nom2-tpX.pdf
Le CR de 2 a` 3 pages devra presenter :
la demarche suivie,
les commandes et configurations permettant dobtenir les resultats,
les resultats demandes.

Rappels / Documentation
Le param`etre : net.ipv4.ip_forward
Le fonctionnement du noyau linux peut e tre modifie a` chaud par la modification de certains
param`etres. Par exemple, lorsque le param`etre net.ipv4.ip_forward est a` 1, tout paquet IP
qui arrive sur une interface et dont ladresse de destination appartient a` un des reseaux connectes,
est automatiquement transfere. On obtient/modifie la valeur dun param`etre du noyau linux a` laide
de la commande sysctl. On peut aussi configurer le noyau au demarrage en modifiant le fichier
/etc/sysctl.conf.

Netfiler
Netfilter est le firewall integre a` Linux depuis le noyau 2.4. Il intercepte les donnees reseaux a`
laide de 5 hook (NF IP PRE ROUTING, NF IP LOCAL IN, NF IP FORWARD, NF IP LOCAL OUT,
` ces hook sont associees un ensemble de r`egles de decision (nommees
NF IP POSTROUTING). A
chanes). Il existe les chanes syst`emes (il y en a 5, une par hook : PREROUTING, INPUT, FORWARD,
OUTPUT, POSTROUTING) et des chanes utilisateurs (qui sont alors appelees par les regles des
chanes syst`emes).
Les chanes sont regroupees en table. Il existe trois tables correspondant aux trois fonctionnalites
de Netfilter que sont le filtrage (filter), le nat (nat) et le marquage (mangle). Les chanes utilisees
dependent de la fonctionnalite. En effet le filtrage utilise les chanes INPUT, FORWARD et OUPUT.
Le nat utilise PREROUTING, OUPUT et POSTROUTING. Le marquage, quant a` lui, utilise toutes les
tables.
Pour manipuler les tables, il faut utiliser la commande iptables. iptables permet :
dajouter des r`egles et des chanes a` une table,
1

F IG . 1 Les hook de Netfilter

de supprimer des r`egles et des chanes dune table,


de modifier des r`egles et des chanes dune table,
et dafficher les r`egles et des chanes dune table.
Les param`etres diptables les plus souvent utilises sont presentes en Annexe A. Pour plus dinformation, allez voir la documentation (en francais :-) ) de Netfilter sur http://www.netfilter.
org/.

NAT

Soit le reseau propose par la figure 2 qui correspond au laboratoire Netkit disponible sur moodle.
Ce lab configure automatiquement les adresses IP et les passerelles de PC1 et PC2.

WWW 10.0.0.3

C
A

192.168.0.1

192.168.0.1
10.0.0.1

192.168.0.2

11
00
00
11
00
11
00
11
00
11
00
11
00
11
00
11

000000
111111
1111111111111111
0000000000000000
000000
111111
0000000000000000
1111111111111111
000000
0000000000000000111111
1111111111111111

10.0.0.2

11
00
00
11
00
11
00
11
00
11
00
11
00
11
00
11

192.168.0.2

000000
111111
111111111111111
000000000000000
000000
111111
000000000000000
111111111111111
000000
000000000000000111111
111111111111111
PC2

FW2

FW1
10.0.0.4
11
00
00
11
00
11
00
11
00
11
00
11
00
11

PC1

000000
111111
1111111111111111
0000000000000000
000000
111111
0000000000000000
1111111111111111
000000
0000000000000000111111
1111111111111111
PIRATE

F IG . 2 Le reseau de ce TP

1.1

Utilite du NAT

Depuis la machine PC1, pinger la machine FW2. Pendant ce ping, faite un tcpdump sur PC2. Que
constatez-vous ? Pourquoi ?
2

1.2

Configuration du NAT

Pour resoudre le probl`eme precedent, nous allons nater le reseau A et C. Pour ce faire, vous
allez configurer FW1 (idem avec FW2) de facon a` ce que tous les paquets qui sortent par eth1 vont
subir une translation dadresse. Cette action est possible en modifiant la table nat de facon a` masquer
ladresse source.

Etudier
le param`etre SNAT de loption -j de la commande iptables
Configurer FW1 et FW2
Comme precedemment, depuis la machine PC1, pinger la machine FW2, en faisant toujours un
tcpdump sur PC2.
Tester le fonction du NAT en navigant depuis PC1 et PC2 (`a laide du navigateur lynx) sur le
site web de WWW (utiliser le serveur developpe au TP precedent ou le serveur apache).

Scan de port

Le scan de port consiste a` essayer de se connecter (envoie dun paquet SYN) a` une machine sur
differents ports Si la machine repond, cest quun service est a` lecoute : une faille de securite peut
e tre exploitee. Loutil nmap permet de scanner des ports.

2.1

Utilisation de nmap

1. Depuis la machine PIRATE, scanner les ports de la machine FW1.


2. Trouver une astuce pour scanner les ports de la machine PC1 depuis la machine PIRATE.

Firewall sans e tat

On veut proteger les machines FW1, FW2, PC1 et PC2 contre tout attaque et que seule la navigation
vers des sites web soit possible depuis ces deux derni`eres machines.
` laide de la commande iptables, e crire un script qui configure FW1 (repectivement FW2)
1. A
de facon a` ce que :
tout ce qui nest pas autorise est interdit,
seules les connexions web (tcp sur le port 80) depuis lintranet, le reseau A, (respectivement
le reseau B) sont acceptees vers lexterieur, cest-`a-dire le reseau C.
2. Tester a` laide de la commande nmap les ports visibles depuis la machine PIRATE.

3. Etudier
loption -g ou --source port de nmap.
4. Montrer que la machine PIRATE peut tout de meme voir les services offerts par PC1 malgr`e
FW1.

Firewall avec e tat

1. Etudier
loption state de iptables.
2. Modifier votre script afin que PIRATE ne puisse plus scanner PC1.
3

[Chane]

[Cible]

-L (Liste)

-j (jump)

[Numero

de

Non

Oui

Non

Non

Non

Non

Oui

Oui

Param. optionnel
Oui

Explication
Indique sur quelle table nous voulons travailler. Si aucun param`etre nest fourni, cest la table filter qui est selectionnee par
defaut.
Supprime toutes les r`egles dune chane predefinie (tel PREROUTING, INPUT, FORWARD, OUTPUT et POSTROUTING). Si aucun param`etre nest donne, toutes les chanes
predefinies sont supprimes.
Supprime une chane utilisateur. Si il ny a aucun param`etre,
toutes les chanes utilisateurs sont supprimees.
Definie la politique (ou cible) par defaut dune chane. Seules les
chanes predefinies peuvent avoir un comportement par defaut.
Cette cible ne sera appliquee quapr`es lexecution de la derni`ere
r`egle de la chane.
Cette option cree une nouvelle chane utilisateur. Par la suite, des
r`egles doivent e tres cree es, afin de remplir cette chane. Sinon,
elle ne sera pas tr`es utile !
Ajoute une r`egle a` une chane predefinie ou utilisateur. Nous allons utiliser majoritairement cette commande.
Supprime une r`egle dans une chane particuli`ere. Le numero de
la r`egle peut e tre retrouve avec la commande iptables -L ou
iptables -L -n
Affiche la liste des r`egles pour la chane indiquee. Ou, si aucune
chane nest indiquee, cela affichera les r`egles pour toutes les
chanes de la table indiquee. Note : Rajouter a` -L les options
-n et -v est tr`es utile.
Defini laction a` effectuer si un paquet repond aux crit`eres de cette
r`egle. Les principales valeurs sont : ACCEPT, DROP, REJECT,
LOG

http://olivieraj.free.fr/fr/linux/information/firewall/fw-03-05.html

[Chane]
r`egle]

[Chane utilisateur]

-N (New)

-D (Delete)

filter, nat, mangle

-P (Policy)

[Chane]

[Chane utilisateur]

-X (eXclude)

-A (Append)

filter, nat, mangle

Param`etre
filter, nat, mangle

-F (Flush)

-t (table)

Option

Annexe A1

ulog-prefix

sport
dport
-m (module)
state

-i (input)
-o (output)
-s (source)
-d (destination)
-p (protocole)

Option

[ !] [Port ou service]
[ !] [Port ou service]
[Nom dun module]
[ !] NEW, ESTABLISHED,
RELATED,
INVALID
[Un mot]

Param`etre
[Interface reseau]
[Interface reseau]
[ !] [Adresse IP ou reseau]
[ !] [Adresse IP ou reseau]
[ !] all, tcp, udp,
icmp, ou un numero

Non

Non
Non
Non
Non

Param. optionnel
Non
Non
Non
Non
Non

Rajoute un commentaire pour les cibles LOG et ULOG

Explication
Crit`ere sur linterface reseau dont provient le paquet
Crit`ere sur linterface reseau do`u les paquets vont sortir
Crit`ere sur ladresse IP source du paquet
Crit`ere sur ladresse IP de destination du paquet
Crit`ere sur le type de trames utilise dans le paquet. Dautres
numeros de protocoles peuvent e tre utilises. Voir votre fichier
/etc/procoles
Crit`ere sur le port source des paquets IP
Crit`ere sur le port de destination des paquets IP
Demande dutiliser un module particulier
Cette option ne sutilise que cumulee avec loption -m state,
afin detre utilise pour le suivi de connexion