You are on page 1of 45

Scurit des rseaux Firewalls

A. Guermouche

A. Guermouche

Cours 1 : Firewalls

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 2

Firewall?

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 3

Firewall?

Pourquoi un rewall?

Denition
Programme, ou un matriel, charg de vous protger du monde extrieur en contrlant tout ce qui passe, et surtout tout ce qui ne doit pas passer entre internet et le rseau local. pourquoi un rewall? Contrle. Grer les connexions sortantes a partir du rseau local. Scurit. Protger le rseau interne des intrusions venant de lextrieur. Vigilance. Surveiller/tracer le trac entre le rseau local et internet.

A. Guermouche

Cours 1 : Firewalls

Firewall?

Firewall

Plusieurs types de rewalls : Pare-feu au niveau rseau Pare-feu au niveau applicatif Pare-feu des applications

A. Guermouche

Cours 1 : Firewalls

Firewall?

Diffrents types de rewalls


Pare-feu niveau rseau. (iptables, paquet lter, . . . ) Firewall fonctionnant un niveau bas de la pile TCP/IP Bas sur le ltrage des paquets Possibilit (si mcanisme disponible) de ltrer les paquets suivant ltat de la connexion Intrt : Transparence pour les utilisateurs du rseau Pare-feu au niveau applicatif. (inetd, xinetd, . . . ) Firewall fonctionnant au niveau le plus haut de la pile TCP/IP Gnralement bas sur des mcanisme de proxy Intrt : Possibilit dinterprter le contenu du trac Pare-feu des applications. (/etc/ftpaccess pour ftp, . . . ) Restrictions au niveau des diffrentes applications
A. Guermouche Cours 1 : Firewalls 6

DMZ

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 7

DMZ

DMZ

Denition (DMZ)
Une zone dmilitarise (DMZ) est un sous-rseau se trouvant entre le rseau local et le rseau extrieur. Proprits : Les connexions la DMZ sont autorises de nimporte o. Les connexions partir de la DMZ ne sont autorises que vers lextrieur. Intrt : Rendre des machines accessible partir de lextrieur (possibilit de mettre en place des serveurs (DNS, SMTP, . . . ).

A. Guermouche

Cours 1 : Firewalls

Proxy

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 9

Proxy

Proxy ou mandataire
Dnition : Un proxy est un intermdiaire dans une connexion entre le client et le serveur Le client sadresse toujours au proxy Le proxy est spcique une application donne (HTTP, FTP, ...) Possibilit de modication des informations changes entre le client et le serveur.

A. Guermouche

Cours 1 : Firewalls

10

Proxy

Proxy ou mandataire
Dnition : Un proxy est un intermdiaire dans une connexion entre le client et le serveur Le client sadresse toujours au proxy Le proxy est spcique une application donne (HTTP, FTP, ...)

Proxy
64.233.183.147 140.77.13.5 33210 80 GET index.html Mmorisation de la requte partir de 192.168.0.10 et rexpdition 64.233.183.147 140.77.13.5 33210 80 <HTML> ... <\HTML> 192.168.0.10 192.168.0.1 80 33210

Rseau priv
192.168.0.1 192.168.0.10 33210 80 GET www.google.com/index.html

<HTML> ... <\HTML> Dlivrance de la demande initiale

A. Guermouche

Cours 1 : Firewalls

10

Logiciels de ltrage de paquets

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 11

Logiciels de ltrage de paquets

Logiciels de ltrage de paquets

Fonctionnalits de rewall ltrant directement implmente dans le noyau Linux. Filtrage de niveau 3 ou 4. 3 types de rewall ltrants : Ipfwadm. Jusqu la version 2.1.102 du noyau linux Ipchains. Entre les versions 2.2.0 et 2.4 du noyau linux Iptables. partir des noyaux 2.4

A. Guermouche

Cours 1 : Firewalls

12

Ipfwadm

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 13

Ipfwadm

Ipfwadm
Firewall permettant la gestion des paquets TCP, UDP et ICMP. 3 types de rgles : INPUT . sont appliques lors de larrive dun paquet. FORWARD . sont appliques lorsque la destination du paquet nest pas le routeur. OUTPUT. sont appliques ds quun paquet doit sortir du routeur. Fonctionnement :
Demasquerading Processus local Paquet rejet INPUT OUTPUT

Paquet accept

Paquet rout

FORWARD
A. Guermouche Cours 1 : Firewalls 14

Ipfwadm

Ipfwadm
Firewall permettant la gestion des paquets TCP, UDP et ICMP. 3 types de rgles : INPUT . sont appliques lors de larrive dun paquet. FORWARD . sont appliques lorsque la destination du paquet nest pas le routeur. OUTPUT. sont appliques ds quun paquet doit sortir du routeur. Fonctionnement :
1: 2: 3: 4: 5: 6: 7:

lorsquun paquet entre, il traverse les rgles de type INPUT Si il est accept Alors Si il est destin une autre machine Alors il est rout vers les rgles FORWARD Sinon il est rejet le paquet est nalement mis
A. Guermouche Cours 1 : Firewalls 14

Dans tous les cas, le paquet traverse les rgles OUTPUT

Ipchains

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 15

Ipchains

Ipchains
Module du noyau Linux ralisant le ltrage de paquets. Inspir du parre-feu BSD (tout comme ipfwadm) Fonctionnement :
Boucle locale "Demasquerading" INPUT Routage Accept

FORWARD

OUTPUT

Rejet Processus local

Rejet

Rejet

A. Guermouche

Cours 1 : Firewalls

16

Iptables

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 17

Iptables

Iptables (1/2)
Module du noyau Linux ralisant le ltrage de paquets (noyaux 2.4). Amliorations en matire de ltrage et de translation dadresses par rapport Ipchains. Fonctionnement :
FORWARD

Pr-routage

Routage

Rejet

Post-routage Accept OUTPUT

INPUT Rejet

Processus local

Rejet

A. Guermouche

Cours 1 : Firewalls

18

Iptables

Iptables (1/2)
Module du noyau Linux ralisant le ltrage de paquets (noyaux 2.4). Amliorations en matire de ltrage et de translation dadresses par rapport Ipchains. Fonctionnement :
1: 2: 3: 4: 5: 6: 7: 8: 9:

larrive dun paquet (aprs dcision de routage) : Si le paquet est destin lhte local Alors il traverse la chane INPUT. Si il nest pas rejet Alors il est transmis au processus impliqu. Sinon Si le paquet est destin un hte dun autre rseau Alors il traverse la chane FORWARD Si il nest pas rejet Alors il poursuit alors sa route

A. Guermouche

Cours 1 : Firewalls

18

Iptables

Iptables (1/2)
Module du noyau Linux ralisant le ltrage de paquets (noyaux 2.4). Amliorations en matire de ltrage et de translation dadresses par rapport Ipchains. Fonctionnement :
1: 2: 3: 4: 5: 6: 7: 8: 9:

Tous les paquets mis par des processus locaux au routeur traversent la chane OUTPUT.
A. Guermouche Cours 1 : Firewalls

larrive dun paquet (aprs dcision de routage) : Si le paquet est destin lhte local Alors il traverse la chane INPUT. Si il nest pas rejet Alors il est transmis au processus impliqu. Sinon Si le paquet est destin un hte dun autre rseau Alors il traverse la chane FORWARD Si il nest pas rejet Alors il poursuit alors sa route

18

Iptables

Iptables (2/2)
Fonctionnalits : Filtrage de paquets NAT Marquage de paquets Architectures :Trois tables de chanes (FILTER , NAT et MANGLE).
FILTER NAT

(ltrage des paquets) INPUT paquet entrant sur le routeur OUTPUT paquet mis par le routeur FORWARD paquet traversant le routeur

(translation dadresses) PREROUTING NAT de destination


POSTROUTING OUTPUT

NAT de source NAT sur les paquets mis localement

La table MANGLE sert au marquage des paquets


A. Guermouche Cours 1 : Firewalls 19

Iptables

Fonctionnalits NAT dIptables (1/2)

eth1 140.77.13.2

Routeur

eth0 192.168.0.2 Rseau priv

Modication de la destination du paquet avant le routage (paquet reu de lextrieur).


iptables -t nat -A PREROUTING -d 140.77.13.2 -i eth1 -j DNAT -to-destination 192.168.0.2

Modication de la source du paquet aprs le routage (paquet mis partir du rseau priv).
iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth1 -j SNAT -to-source 140.77.13.2
A. Guermouche Cours 1 : Firewalls 20

Iptables

Fonctionnalits NAT dIptables (1/2)

eth1 140.77.13.2

Routeur

eth0 192.168.0.2 Rseau priv

Exercice : Comment faire pour que le routeur puisse envoyer un paquet ladresse 140.77.13.2?

A. Guermouche

Cours 1 : Firewalls

20

Iptables

Fonctionnalits NAT dIptables (1/2)

eth1 140.77.13.2

Routeur

eth0 192.168.0.2 Rseau priv

Exercice : Comment faire pour que le routeur puisse envoyer un paquet ladresse 140.77.13.2? Rponse : Il faut modier la destination du paquet mis localement avant le routage. iptables -t nat -A OUTPUT -d 140.77.13.2 -j DNAT -to-destination 192.168.0.2
A. Guermouche Cours 1 : Firewalls 20

Iptables

Fonctionnalits NAT dIptables (2/2)


NAT 192.168.0.0/24 140.77.13.2 eth1 140.77.13.3 eth2 NAT Rseau priv Routeur eth0 switch 192.168.1.0/24

Association entre toutes les adresses prives du sous-rseau 192.168.0.0/24 avec linterface eth1.
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE

Association entre toutes les adresses prives du sous-rseau 192.168.1.0/24 avec linterface eth2.
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.1.0/24 -j MASQUERADE
A. Guermouche Cours 1 : Firewalls 21

Iptables

Transfert de ports

NAT 192.168.0.0/24 140.77.13.2 eth1 140.77.13.3 eth2 NAT Rseau priv Routeur eth0 switch 192.168.1.0/24

Transfrer les connexions sur le port 80 de ladresse 140.77.13.2 sur la machine ayant ladresse prive 192.168.0.200 sur le port 8080 :
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 140.77.13.2 -dport 80 -sport 1024:65535 -j DNAT -to 192.168.0.200:8080

A. Guermouche

Cours 1 : Firewalls

22

Iptables et ltrage

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 23

Iptables et ltrage

Iptables et ltrage(1/2)
Filtrage des paquets IP, TCP, UDP ou ICMP Spcication de rgle pour le rejet ou lacceptation de paquet Utilisation de la table FILTER et des chanes INPUT, OUTPUT et
FORWARD

Rgles traites de manire squentielle : Le paquet sort ds quil rencontre une rgle qui peut lui tre applique Exemples : Accepter tous les paquets en provenance de nimporte o et destins ladresse du routeur 192.168.1.1.
iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT

Accepter de router les paquets entrant sur eth0 tels que :


@source 0/0 @dest 192.168.1.58 P-source 1024-65535 P-dest 80

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP -sport 1024:65535 -dport 80 -j ACCEPT
A. Guermouche Cours 1 : Firewalls 24

Iptables et ltrage

Iptables et ltrage(2/2)
Accepter un paquet ICMP echo-request (ping) par seconde
iptables -A INPUT -p icmp -icmp-type echo-request -m limit -limit 1/s -i eth0 -j ACCEPT

Accepter 5 segments TCP ayant le bit SYN positionn par seconde (permet dviter de se faire inonder)
iptables -A INPUT -p tcp -syn -m limit -limit 5/s -i eth0 -j ACCEPT

Accepter de router les paquets entrants sur eth0 tels que :


@source 0/0 @dest 192.168.1.58 P-source 1024-65535 P-dest 80 ou 443

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP -sport 1024:65535 -m multiport -dport 80,443 -j ACCEPT

A. Guermouche

Cours 1 : Firewalls

25

Iptables et ltrage

Iptables et suivi des connexions


Suivi des connexions disponible (conntrack) Quatre tats possibles pour une connexion : NEW . Nouvelle connexion tablie ESTABLISHED . La connexion analyse est dj tablie RELATED . La connexion est en relation avec une connexion dj tablie (ftp-data par exemple) INVALID . Le paquet reu nappartient aucune des trois catgories prcdentes. Exemples : Autoriser tous les paquets mis par le routeur concernant des connexions dj tablies.
iptables -A OUTPUT -o eth0 -m state -state ESTABLISHED,RELATED -j ACCEPT

A. Guermouche

Cours 1 : Firewalls

26

Iptables et ltrage

Iptables et suivi des connexions


Suivi des connexions disponible (conntrack) Quatre tats possibles pour une connexion : NEW . Nouvelle connexion tablie ESTABLISHED . La connexion analyse est dj tablie RELATED . La connexion est en relation avec une connexion dj tablie (ftp-data par exemple) INVALID . Le paquet reu nappartient aucune des trois catgories prcdentes. Exemples : Autoriser le routeur relayer tous les paquets reus concernant de nouvelles connexions sur le port 22.
iptables -A FORWARD -p tcp -i eth0 -dport 22 -sport 1024:65535 -m state -state NEW -j ACCEPT

A. Guermouche

Cours 1 : Firewalls

26

Iptables et ltrage

Outils de diagnostic
Traces iptables. Possibilit de tracer certaines actions iptables. exemple : 1. Tracer toutes les actions iptables :
iptables -A OUTPUT -j LOG iptables -A INPUT -j LOG iptables -A FORWARD -j LOG

2. Rajouter une rgle pour tracer les paquets rejets


iptables -N LOG_DROP iptables -A LOG_DROP -j LOG -log-prefix [IPTABLES DROP] : iptables -A LOG_DROP -j DROP

nmap, nessus,. . . . Logiciels permettant de diagnostiquer ltat dun rewall (trouver les ports ouverts, dtecter les services utilisant les ports, . . . )
A. Guermouche Cours 1 : Firewalls 27

Translation dadresses

Plan
1. Firewall? 2. DMZ 3. Proxy 4. Logiciels de ltrage de paquets 5. Ipfwadm 6. Ipchains 7. Iptables 8. Iptables et ltrage 9. Translation dadresses NAT statique NAT dynamique : Masquerading
A. Guermouche Cours 1 : Firewalls 28

Translation dadresses

Pourquoi avoir des adresses prives?


Grer la pnurie dadresses au sein dun rseau Masquer lintrieur du rseau par rapport lextrieur (le rseau peut tre vu comme une seule et mme machine) Amliorer la scurit pour le rseau interne Assouplir la gestion des adresses du rseau interne Faciliter la modication de larchitecture du rseau interne Mcanisme de translation dadresses (NAT - Network Address Translation) Deux types de NAT : statique. association entre n adresses publiques et n adresses prives. dynamique. association entre 1 adresse publique et n adresses prives.
A. Guermouche Cours 1 : Firewalls 29

Translation dadresses

NAT statique

NAT statique
Association entre une adresse publique et une adresse prive.
192.168.0.1

147.210.20.235

. . . Passerelle

. . .

147.210.20.3

192.168.0.21

Rseau priv

A. Guermouche

Cours 1 : Firewalls

30

Translation dadresses

NAT statique

NAT statique

Association entre une adresse publique et une adresse prive. Intrt : Uniformit de ladressage dans la partie prive du rseau (modication de la correspondance @publique/@prive facile) Scurit accrue (tous les ux passent par la passerelle NAT) Inconvnient : Problme de pnurie dadresses IP publiques non-rsolu

A. Guermouche

Cours 1 : Firewalls

30

Translation dadresses

NAT statique

NAT statique : Principe


Pour chaque paquet sortant (resp. entrant), la passerelle modie ladresse source (resp. destination).

Passerelle
147.210.20.235 140.77.16.192 33210 80

Rseau priv

140.77.16.192 147.210.20.235 33210 80

192.168.0.1 140.77.16.192 33210 80

140.77.16.192

192.168.0.1

80 33210

Paquet IP

...

@IP @IP source destination

...

Port Port source destination

...

Donnes

Paquet TCP
A. Guermouche Cours 1 : Firewalls 31

Translation dadresses

NAT dynamique : Masquerading

NAT dynamique : Masquerading


Association entre m adresses publiques et n adresses prives (m < n).

192.168.0.1

147.210.20.235 . . . Passerelle

192.168.0.21

Rseau priv

A. Guermouche

Cours 1 : Firewalls

32

Translation dadresses

NAT dynamique : Masquerading

NAT dynamique : Masquerading

Association entre m adresses publiques et n adresses prives (m < n). Intrt : Plusieurs machines utilisent la mme adresse IP publique pour sortir du rseau priv Scurit accrue (tous les ux passent par la passerelle NAT) Inconvnient : Les machines du rseau interne ne sont pas accessibles de lextrieur (impossibilit dinitier une connexion de lextrieur)

A. Guermouche

Cours 1 : Firewalls

32

Translation dadresses

NAT dynamique : Masquerading

NAT dynamique : Principe (1/2)


Lassociation de n adresses prives 1 adresse publique ncessite, au niveau de la passerelle, de : modier ladresse source (resp. destination) des paquets sortant (resp. entrants) changer le numro de port source pour les ux sortant

Passerelle
147.210.20.235 140.77.16.192 64111 80 Mmorisation de la translation (192.168.0.1,33210) (147.210.20.235,64111) 140.77.16.192 147.210.20.235 64111 80 Inversion de la translation 140.77.16.192 192.168.0.1 80 33210

Rseau priv

192.168.0.1 140.77.16.192 33210 80

A. Guermouche

Cours 1 : Firewalls

33

Translation dadresses

NAT dynamique : Masquerading

NAT dynamique : Principe (2/2)


Comment est ce que le routeur diffrencie les paquets qui lui sont destins de ceux quil doit relayer?
1: 2: 3: 4: 5: 6: 7: 8:

chaque nouvelle connexion : Modier ladresse source et le port source : (@source_prive,port_source)(@publique,port_source) Sauvegarder lassociation dans la table NAT Pour chaque paquet entrant : Chercher une association correspondant au couple (@destination, port_destination) Si une association dans la table NAT Alors Modier ladresse de destination et le port de destination Relayer le paquet Sinon /* Erreur de routage */

A. Guermouche

Cours 1 : Firewalls

34

Translation dadresses

NAT dynamique : Masquerading

NAT dynamique : Principe (2/2)


Comment est ce que le routeur diffrencie les paquets qui lui sont destins de ceux quil doit relayer?
1: 2: 3: 4: 5: 6: 7: 8:

chaque nouvelle connexion : Modier ladresse source et le port source : (@source_prive,port_source)(@publique,port_source) Sauvegarder lassociation dans la table NAT Pour chaque paquet entrant : Chercher une association correspondant au couple (@destination, port_destination) Si une association dans la table NAT Alors Modier ladresse de destination et le port de destination Relayer le paquet Sinon /* Erreur de routage */

Le routeur gre toutes les associations Unicit de lassociation (donc du port source aprs translation)
A. Guermouche Cours 1 : Firewalls 34

Translation dadresses

NAT dynamique : Masquerading

Problmes lis NAT dynamique


Comment faire de la translation dadresse sur des protocoles qui ne sont pas bass sur TCP ou UDP (pas de numro de port)? Ncessit dimplmenter une mthode spcique au protocole (identiant ICMP pour ICMP par exemple). Dans le cas des protocoles dont les paquets contiennent des donnes relatives aux adresses IP, il est ncessaire de mettre en place des proxy (FTP en mode actif par exemple). Comment rendre joignables des machines du rseau local? Ncessit de faire de la redirection de port (port forwarding/mapping). Principe. Toutes les connexions entrantes sur un port donn sont redirige vers une machine du rseau priv sur un port (qui peut tre le mme ou non).

A. Guermouche

Cours 1 : Firewalls

35