Vous êtes sur la page 1sur 11

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

ATELIER DuTP 1 : NETFILTERIptable/Firwall Sous


FEDORA
Prsent par : Hassani Nisrine Bellebbardi Hala Berrezzouq Maryem

Introduction au TP :
I. Firewall
1) Dfinition

Un pare-feu (en anglais firewall), est un systme matriel ou logiciel, positionn a lentre du rseau. Ses objectifs, le filtrage des services Internet auxquels les utilisateurs peuvent accder et la protection des rseaux contre les intrusions extrieures.

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

2) Fonctionnement Un systme pare feu fonctionne sur le principe du filtrage de paquets, cest un systme analysant les en-ttes des paquets IP changs entre deux quipements informatiques. C'est--dire lorsquun ordinateur de lextrieur se connecte un ordinateur du rseau local ou le contraire, les paquets de donnes passant par le firewall sont analyss (ladresse IP de la machine mettrice, ladresse IP de la machine rceptrice, le type de paquets TCP ou UDP, le numro de port). Le systme pare-feu est donc capable danalyser des datagrammes et deffectuer un filtrage des communications. 3) Types de filtrages Le filtrage simple de paquets Un systme pare-feu fonctionne sur le principe du filtrage simple de paquets (en anglais stateless packet filtering ). Il analyse les en-ttes de chaque paquet de donnes (datagramme) chang entre une machine du rseau interne et une machine extrieure ce qui correspond au niveau 3 du modle OSI. Le filtrage dynamique Le filtrage simple de paquets ne s'attache qu' examiner les paquets IP indpendamment les uns des autres ce qui rend impossible la gestion du trafic. Le systme de filtrage dynamique est plus performant que le filtrage de paquets basique. Il est bas sur l'inspection des couches 3 et 4 du modle OSI, permettant d'effectuer un suivi des transactions entre le client et le serveur. Un dispositif pare-feu de type stateful inspection est ainsi capable d'assurer un suivi des changes, c'est--dire de tenir compte de l'tat des anciens paquets pour appliquer les rgles de filtrage. De cette manire, partir du moment o une machine autorise initie une connexion une machine situ de l'autre ct du pare-feu; l'ensemble des paquets transitant dans le cadre de cette connexion seront implicitement accepts par le pare-feu. Le filtrage applicatif Le filtrage applicatif permet de filtrer les communications application par application. Le filtrage applicatif opre donc au niveau 7 (couche application) du modle OSI. Le filtrage applicatif suppose donc une connaissance des protocoles utiliss par chaque application. Par exemple ce type de filtrage permet de vrifier que seul du HTTP passe par le port TCP 80.

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

II.

Netfilter : outil dimplmentation


1) Dfinition :

Netfilter est le module qui fournit Linux les fonctions de pare-feu, de traduction d'adresse et d'historisation du trafic rseau. Il fonctionne en mode noyau. Il intercepte et manipule les paquets IP avant et aprs le routage. Il existe un outil intgr la plupart du temps dans le noyau Linux, c'est iptables qui se base sur linfrastructure Netfilter. Son administration s'effectue en ligne de commande et avec ladministrateur root. 2) Fonctionnement gnral :

Netfilter installe des accroches (hooks) dans la gestion des paquets rseau du noyau Linux. Les accroches sont spcifiques chaque protocole rseau. Lorsqu'elles sont charges, les tables de Netfilter inscrivent des chanes sur ces accroches. Chacune de ces chanes peut contenir des rgles qui dterminent le traitement effectuer sur les paquets qui traversent l'accroche. L'administrateur peut manipuler directement les rgles des chanes avec l'outil iptables. Netfilter se prsente comme une srie de 5 points d'accrochage, sur lesquels des modules de traitement des paquets vont se greffer. Ces points sont: NF_IP_PRE_ROUTING NF_IP_LOCAL_IN NF_IP_FORWARD NF_IP_POSTROUTING NF_IP_LOCAL_OU

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

3) Tables de Netfilter
Il y a dans Netfilter trois tables qui correspondent aux trois principales fonctions :

Table Filter : Effectue des filtrages de paquets.


Cest la table par dfaut. Elle permet de dire qui peut passer, et qui ne passera pas dans tel ou tel coin. Elle contient trois chanes: La chane INPUT. Cette chane dcidera du sort des paquets entrant localement sur l'hte. La chane OUTPUT. Ici, ce ne sont que les paquets mis par l'hte local qui seront filtrs La chane FORWARD.

Table Nat : Effectue des oprations de la traduction d'adresse rseau (NAT) sur
diffrents paquets, ses chaines sont : , La chane PREROUTING

Permet de faire de la translation d'adresse de destination. Cette mthode est intressante si l'on veut faire croire au monde extrieur, par exemple, qu y a un serveur qu'il WEB sur le port 80 de la passerelle, alors que celui ci est hberg par un hte du rseau celui-ci priv, sur le port 8080.

Ecole Nationale des Sciences Appliques La chane POSTROUTING.

Netfilter-Iptable-

Elle permet de faire de la translation d'adresse de la source, comme du masquage d'adresse, la mthode classique pour connecter un rseau priv comme client de l'Internet, avec une seule adresse IP "officielle". La chane OUTPUT.

Celle-ci va permettre de modifier la destination de paquets gnrs localement (par la passerelle elle-mme).

Table Mangle : Effectue des oprations de marquage et de modification des


paquets Permet le marquage des paquets entrants (PREROUTING) et gnrs localement (OUTPUT). Le marquage de paquets va permettre un traitement spcifique des paquets marqus dans les tables de routage avec IPROUTE 2.

La passerelle NAT
Le principe du NAT consiste utiliser une passerelle de connexion internet, possdant au moins une interface rseau connecte sur le rseau interne et au moins une interface rseau connecte Internet (possdant une adresse IP routable), pour connecter l'ensemble des machines du rseau. Il s'agit de raliser, au niveau de la passerelle, une des paquets provenant du rseau interne vers le rseau externe. Ainsi, chaque machine du rseau ncessitant d'accder internet est configure pour utiliser la passerelle NAT. Lorsqu'une machine du rseau effectue une requte vers Internet, la passerelle effectue la requte sa place, reoit la rponse, puis la transmet la machine ayant fait la demande.

4) Les cibles
Les cibles sont des sortes d'aiguillage qui dirigeront les paquets satisfaisant aux critres. Les cibles prconstruites sont :

Cible

Description

ACCEPT

Les paquets envoys vers cette cible seront tout simplement accepts et pourront poursuivre leur cheminement au travers des couches rseaux

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

DROP

Cette cible permet de jeter des paquets qui seront donc ignors.

REJECT

Permet d'envoyer une rponse l'metteur pour lui signaler que son paquet a t refus.

LOG

Demande au noyau d'enregistrer des informations sur le paquet courant. Cela se fera gnralement dans le fichier /var/log/messages (selon la configuration du programme syslogd).

MASQUERADE

Cible valable uniquement dans la chane POSTROUTING de la table nat. Elle change l'adresse IP de l'metteur par celle courante de la machine pour l'interface spcifie. Cela permet de masquer des machines et de faire par exemple du partage de connexion.

SNAT

Egalement valable pour la chane POSTROUTING de la table nat seulement. Elle modifie aussi la valeur de l'adresse IP de l'metteur en la remplaant par la valeur fixe spcifie.

DNAT

Valable uniquement pour les chanes PREROUTING et OUTPUT de la table nat. Elle modifie la valeur de l'adresse IP du destinataire en la remplaant par la valeur fixe spcifie.

RETURN

Utile dans les chanes utilisateurs. Cette cible permet de revenir la chane appelante. Si RETURN est utilis dans une des chanes de base prcdente, cela est quivalent l'utilisation de sa cible par dfaut.

Chaque rgle spcifie des critres de slection (adresse source, protocole, etc.) et ce qui doit advenir des paquets correspondants (rejet, autorisation, archivage, etc.). Les critres disponibles et les actions possibles ne sont pas toujours les mmes suivant la chane dans laquelle on ajoute la rgle. Suivant l'action choisie, le paquet parcourt ou non les rgles suivantes de la chane. Si aucune rgle ne correspond au paquet, c'est la politique par dfaut de la chane qui dcide du sort du paquet.

5) Options de la commande iptables


Les options spcifiant une commande: -A: ajouter une rgle une chane

Ecole Nationale des Sciences Appliques -D: supprimer une rgle dune chane -L: afficher les rgles dune chane -L v: afficher les rgles dune chane et les compteurs -F: supprimer toutes les rgles dune chane -P: fixer la politique dune chane

Netfilter-Iptable-

-p: indiquer le protocole, par ex. tcp, udp, icmp La valeur 0 ou all signifie nimporte quel protocole. Le symbole ! devant le protocole inverse le test -s: indiquer une adresse source: -s [!]adresse[/masque] -d: indiquer une adresse destination: -d [!]adresse[/masque] -i: indiquer linterface rseau dentre: -i [!][interface] -o: indiquer linterface rseau dentre: -i [!][interface] -j: prciser ce que lon fait si la rgle sapplique --sport: spcifie le port source ou un domaine de ports: --sport [!] [port[:port]] --dport: spcifie le port destination ou un domaine de ports: --dport [!] [port[:port]]

III.

Partie pratique
1) Prparation des machines du travail

On va travailler avec des machines virtuelles. Chacun doit avoir au niveau de son ordinateur 3 machines virtuelles : a) La premire machine : Une seule carte rseau Systme dExploitation Linux et Distribution Fedora. Adresse IP : 172.16.16.2/24 Passerelle par dfaut : 172.16.16.1

b) La deuxime machine : Une seule carte rseau Systme dExploitation Windows XP. Adresse IP : 192.168.1.2/24 Passerelle par dfaut : 192.168.1.1 7

Ecole Nationale des Sciences Appliques c) La troisime machine (Firewall)

Netfilter-Iptable-

Trois cartes rseau Systme dExploitation Linux et Distribution Fedora. Adresses IP des deux interfaces rseaux : eth1 192.168.1.1/24 eth2 172.16.16.1/24 La troisime interface rseau eth0 est de type NAT pour quil ait la mme adresse IP que la machine physique.

TEST : tester que le PING marche entre les deux machines. PROBLEME : Si le Ping ne marche pas alors cest un problme d la dsactivation du
routage au niveau de la machine firewall, Le noyau de Linux dispose dun paramtre global permettant de contrler le routage des paquets IP dune interface rseau une autre. Par dfaut, ce paramtre est 0, ce qui implique que la transmission des paquets ne sera pas autorise. Il faut donc activer ce paramtre chaque dmarrage afin de pouvoir utiliser notre passerelle Linux. Cela peut tre ralis en crivant la valeur 1 dans le fichier /proc/sys/net/ipv4/ip_forward du systme de fichiers virtuel /proc/ :
#echo 1 > /proc/sys/net/ipv4/ip_forward

Si le ping ne marche toujours pas, il faut donc dsactiver le pare-feu au niveau des trois machines. On utilise la commande suivante pour le dsactiver au niveau des machines Fedora :

service iptables stop

2) Configuration du firewall :
Il est ncessaire que le service iptables soit en cours dexcution afin dactiver les rgles du pare-feu. Pour ceci tapez :

service iptables start

Initialisation de Netfilter
8

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

Tapez successivement les commandes suivantes pour vider toutes les chanes des trois tables FILTER, NAT et MANGLE dans le but de supprimer toutes les rgles personnalises: iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle F iptables -t mangle X

De cette manire, vous avez toutes vos chanes vides, avec par dfaut la rgle "ACCEPT

Verification de la table Netfilter


Pour vous assurer que les trois chanes INPUT, FORWARD et OUTPUT sont vides et ont bien la rgle par dfaut ACCEPT tapez la commande :

iptables -L

Et aussi pour vous assurer que les trois chanes PREROUTING, POSTROUTING et OUTPUT sont vides et ont bien la rgle par dfaut ACCEPT tapez la commande suivante :

iptables -t nat -L

Et la mme procdure pour sassurer que les chaines da la table mangle

iptables -t mangle -L

Bloquer les entres et les sorties du table FILTER.


9

Ecole Nationale des Sciences Appliques

Netfilter-Iptable-

Pour Bloquer les entres, les sorties et les retransmis de la table FILTER afin de ne permettre aucun trafic circule sur la machine du firwall utilisez les rgles suivantes : iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP

Louverture des ports


Permettre aux deux sous rseaux daccder aux serveurs du firwall qui sont : Serveurs Webmin a) Pour permettre lautorisation de laccs au Webmin install au niveau de firewall on tape les commandes suivantes: WEBMIN, port 10000 http, port 80 SSH, port 22 FTP, port 21 et 20

iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT iptables -A OUTPUT -p tcp --source-port 10000 -j ACCEPT b) Pour permet aux machines du rseau 192.168.1.0 de se connecter au Webmin des machines de rseau 172.16.16.0, on utilise les deux commandes suivantes : iptables -A FORWARD -p tcp --source-port 10000 -i eth2 -o eth1 -j ACCEPT iptables -A FORWARD -p tcp --destination-port 10000 -i eth1 -o eth2 -j ACCEPT

Serveurs WEB : a) Pour activer le serveur web et ouvrir son port, on utilise les commandes suivantes :

iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT iptables -A OUTPUT -p tcp --source-port 80 -j ACCEPT b) Pour permettre la machine firewall de se connecter internet, on utilise : iptables -A OUTPUT -o eth0 -j ACCEPT iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

10

Ecole Nationale des Sciences Appliques Activer le PING (ICMP): Pour activer la communication entre les deux machines du rseau : iptables -A FORWARD -p ICMP --icmp-type 8 -i eth2 -o eth1 -j ACCEPT iptables -A FORWARD -p ICMP --icmp-type 0 -i eth1 -o eth2 -j ACCEPT iptables -A FORWARD -p ICMP --icmp-type 8 -i eth1 -o eth2 -j ACCEPT iptables -A FORWARD -p ICMP --icmp-type 0 -i eth2 -o eth1 -j ACCEPT

Netfilter-Iptable-

le type 8 : lhte envoie la requete avec ce type le type 0 : lhte rpond avec ce type SSH : Pour activer le SSH et ouvrir son port, on utilise les commandes suivantes : iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT iptables A OUTPUT p tcp source-port 22 -j ACCEPT

Serveurs FTP: Pour activer le FTP et ouvrir son port, on utilise les commandes suivantes : iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT iptables -A OUTPUT -p tcp --source-port 21 -j ACCEPT iptables -A OUTPUT -p tcp --source-port 22 -j ACCEPT

REMARQUE :
Etant donn que le rseau local est un rseau priv, les machines internes ne peuvent accder internet. Pour rsoudre ce problme il faudra masquer les adresses du rseau priv en se basant sur le principe de masquage dadresses. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

11