Vous êtes sur la page 1sur 33

Firewall

Faouzi ZARAI
faouzi.zarai@isecs.rnu.tn

F. ZARAI

Introduction

Mise en œuvre d’une politique de sécurité à travers :


• Pare-feu (Firewall)
• Système de Détection d’intrusion (IDS)
• Architecture sécurisée d’un réseau

F. ZARAI
Définitions

• Firewall: Un élément (logiciel ou matériel) du réseau


informatique contrôlant les communications qui le traversent.

• Système de détection d’intrusion: repère les activités


anormales ou suspectes sur le réseau surveillé.

• Journalisation ("logs") : Enregistrement des activités de


chaque acteurs.
– Permet de constater que des attaques ont eu lieu, de les
analyser et potentiellement de faire en sorte qu'elles ne se
reproduisent pas.

F. ZARAI

Les Firewall

F. ZARAI
Couches de protocoles
Paquet IP
Version IHL TOS Version

Identification Flags Offset


Telnet FTP HTTP
TTL Protocole Checksum

@ source
TCP UDP
@ destination

Internet Protocol (IP) / ICMP options

Couches basses
Message TCP
Port Source Port Destination
Paquet ICMP
Sequence Number
Type Code CheckSum
Ack Number

Data Offset Reservé Flags Window


Type:
CheckSum Urgent Pointer
8: Echo
0: Réponse Echo
options

F. ZARAI

Couches de protocoles

Connexion TCP

machine A machine B
(client) (serveur)

SYN

SYN, ACK

ACK

F. ZARAI
Attaques: Déni de service

machine A machine B
(client) (serveur)

SYN

SYN, ACK

ACK

F. ZARAI

Attaques: Spoofing IP

M a c hine B M a c hine d ’a tta q u e (H )

M a c hine a tta q u é e (A )

F. ZARAI
Problématique, Enjeux

Internet
Communications refusées

Communications autorisées

Réseau local

F. ZARAI

Fonctions principales d’un Firewall


 Faire respecter la politique de sécurité du réseau, celle-ci
définissant quels sont les communications autorisés ou interdits.
 Concentre l’administration de la sécurité en des points d’accès
limités
 Crée un périmètre de sécurité entre le réseau Intranet de
l’entreprise et le réseau Internet

Internet
Sécuriser le trafic entrant

Firewall

Controler le trafic sortant


Vigilance

Réseau local

F. ZARAI
Fonctions principales d’un Firewall

• L’analyse du trafic est opéré à l’aide de règles aussi


appelées
– ACL (Access Control List pour les pare-feu Cisco),
– politique ou policy (pare-feu Juniper/Netscreen),
– filtres...

F. ZARAI

Fonctions principales d’un Firewall

F. ZARAI
Fonctions principales d’un Firewall
 Interconnecte des réseaux de différents niveaux de confiance.

ALERT!!
Firewall

Réseau local Internet

Routeur

Réseau avec niveau de


Réseau de
confiance X DMZ non-confiance

Serveurs accessibles depuis


le réseau Internet

Réseau avec Niveau de confiance Y


F. ZARAI

Fonctions principales d’un Firewall

• Translation statique/dynamique d’adresses IP (NAT),


• Translation de ports (PAT)
• Journalisation des évènements

F. ZARAI
Fonctions principales d’un Firewall
• Translation statique/dynamique d’adresses IP (NAT) et
translation de ports (PAT)
• Gestion d’un petit parc d’adresses IP sur internet
• Masquage (masquerading) du plan d’adressage interne

F. ZARAI

Exemple

F. ZARAI
Fonctions principales d’un Firewall

 N'empêche pas un attaquant d'utiliser une connexion autorisée


pour attaquer le système.
 Ne protège pas contre une attaque venant du réseau intérieur (qui
ne le traverse pas).

F. ZARAI

Catégories des firewalls

• On distingue différentes catégories de pare-feu selon :


– Son niveau dans le modèle OSI (Réseau, Transport,
Applicatif),
– Sa sensibilité au contexte d’un échange (session), ses
possibilités d’identification de l’utilisateur,
– Le périmètre qu’il couvre (un réseau ou une machine hôte),
– …

F. ZARAI
Catégories des firewalls

• 3 Types de Firewall sont étudiés dans ce cours:


– Packet-Filtering router (stateless, stateful)
– Application-Level Gateway.
– Circuit-Level Gateway.

F. ZARAI

Firewall à filtrage de Paquets

F. ZARAI
Firewall à filtrage de Paquets
• Le plus simple des Firewalls.
• Pour chaque paquet IP rencontré, il décide de le faire passer (forward) ou de
l’éliminer (deny), selon des règles de filtrages.
• Le filtrage se fait depuis et vers toutes les directions (ex: depuis et vers
Internet).
• Règles de filtrage, basées sur l’analyse des champs dans l’entête IP et TCP:
– Adresse IP source et destination.
– Protocole (TCP, UDP, ICMP, etc).
– Port (TCP ou UDP) source et destination.
– TCP Flags (SYN, ACK, FIN, RST, PSH, etc)
– Type de Message ICMP
– Taille du paquet

F. ZARAI

Firewall à filtrage de Paquets


• Ce qui n’est pas explicitement permis est interdit. (default = Deny)
– La plus prudente.
– Initialement tous les services sont bloqués, puis ils sont ajoutés un par
un selon les besoins.
• Ce qui n’est pas explicitement interdit est permis. (default = Forward)
– Introduit une commodité dans l’utilisation des services réseau par les
utilisateurs.
– Fournit un niveau de sécurité réduit.
– Un administrateur doit réagir pour chaque nouvelle menace de sécurité
identifiée (un nouveau service devient vulnérable).

F. ZARAI
Exemple de règles (Packet-Filtering router)
Packet-filtering router

Internet
193.1.1.0
Action Protocole source port destination Port flag
Deny IP 193.1.1.0 * 10.1.1.1 *
Allow TCP 193.1.1.0 * * 80
Allow TCP * 80 193.1.1.0 * ACK
Deny IP * * * *
• Règle1: Toute connexion depuis le réseau interne (193.1.1.0) vers la machine suspecte
10.1.1.1 est bloquée.
• Règle2: Seulement les connexions HTTP (TCP, port 80) depuis le réseaux interne
(193.1.1.0), sont permises.
• Règle3: Seulement le trafic web en réponse à une connexion déjà initiée du réseau interne
sera accepté de l’extérieur.
• Règle4: La politique de sécurité par défaut.
F. ZARAI

Firewall à filtrage de Paquets


• Avantages
– Simplicité du fonctionnement (filtrage statique).
– Rapidité dans le traitement.
– Transparence aux utilisateurs.
• Inconvénient
– Ne protège pas contre les attaques qui exploitent des vulnérabilités sur les
applications (ne bloque pas certaines commandes).
– Les fichiers logs générés ne contiennent pas d’informations assez pertinentes
(seulement: @IP, ports).
– Ne supporte pas des mécanismes avancés d’authentification des utilisateurs.
– Une simple erreur dans la configuration des règles peut casser toute la
sécurité.
– Vulnérabilités aux attaques qui exploitent les insuffisances du protocole
TCP/IP (ex: IP spoofing attacks)

F. ZARAI
Attaques sur Firewall à filtrage de Paquets
• IP address spoofing (Usurpation d’adresse IP)
– L’intrus envoi un paquet de l’externe avec une fausse @IP (généralement égale
à une @IP d’une machine interne), et ceci afin de réussir à passer le mécanisme
de filtrage.
– Solution: bloquer tout paquet venant de l’interface externe ayant une @IP
source interne.
• Source routing attacks (routage à la source)
– L’intrus spécifie une route qui va être empruntée par le paquet autre que celle
appliquée par défaut.
– Solution: bloquer les paquets source routed
• Tiny fragment attacks (fragmentation de paquets)
– Un paquet IP est divisé en plusieurs fragments, où seul le premier fragment
contient le numéro de port.
 Insuffisance d’informations pour filtrer ces paquets.
– Solution: rejeter les paquets fragmentés ou les rassembler avant vérification.
F. ZARAI

Stateful Inspection Packet Filtering Firewalls


• Il permet de filtrer les paquets en se basant sur la couche transport du
modèle OSI (filtrage au niveau des ports de communication TCP-
UDP).
• Il maintient une table d’état des connexions correspondantes aux
ports logiques du niveau 4 du modèle OSI et surtout les ports dont le
numéro est supérieur à1024 (les ports utilisés par les applications de
l’utilisateur).
• ² @IP Src
Port
@IP Dst Port dst
État de la
Src connexion
223.43.21.231 1990 193.2.1.3 80 Établie
223.42.21.230 1234 193.5.6.1 23 Établie
223.42.21.222 2562 193.4.2.1 80 Établie
… … … … …

F. ZARAI
Stateful Inspection Packet Filtering Firewalls
• Renforce les règles de filtrage en suivant l’état des connexions:

– Si un paquet représente une nouvelle connexion, alors vérification


des règles de configuration
– Si un paquet fait partie d’une connexion existante (ex: TCP
flag=ACK), alors vérification dans la table d’état des connexions,
puis mise à jour de la table.
– Le trafic entrant vers un port « x » supérieur à 1024, est autorisé
seulement s’il est en direction d’une machine qui a déjà établie une
connexion avec un port source inférieur à 1024 et un port
destination égal à « x ».

F. ZARAI

Stateful Inspection Packet Filtering Firewalls


Stateful Packet-Filtering Firewall Serveur Telnet
Client Telnet

193.95.1.1 10.1.2.3

Le Firewall se souviendra
De cette information

Cohérent avec le
paquet précédent

Pas de cohérence
avec la
connexion en
cours

F. ZARAI
Circuit-Level Gateway

F. ZARAI

Circuit-Level Gateway

F. ZARAI
Application Level Gateway

F. ZARAI

Application Level Gateway


• Agit comme un relais applicatif.
• Besoin de proxy séparé pour chaque service (ex: SMTP, DNS).
• Deux modes de fonctionnement:
– Le client doit être configuré pour une communication avec Proxy.
– Mode Proxy transparent.
• A un accès complet au protocole
– Un utilisateur demande un service (ex: Telnet, ftp) au Proxy.
– Le Proxy valide la demande.
– Le Proxy contacte l’application distante et transmet les segments TCP
contenant les données applicatives entre les deux entités.

F. ZARAI
Application Level Gateway

F. ZARAI

Application Level Gateway


Telnet FTP HTTP

Applications Applications Applications


Presentations Presentations Presentations

Sessions Sessions Sessions

Transport Transport Transport

Network Network Network

DataLink DataLink DataLink


Physical Physical Physical

Application Gateway

F. ZARAI
Application Level Gateway

• La passerelle peut être configurée pour ne pas autoriser toutes les


fonctionnalités d’une application.
– FTP en download seulement
– Suppression de javascripts
– Suppression de certains mots sur des pages webs
– …
• Possibilité d’auditer et de journaliser tout le trafic passant.

F. ZARAI

Application Level Gateway

• Inconvénients
• Un processus par connexion.
• Gestion des connexions dans les deux bouts.
– Peux de Proxies sont disponibles
• les services propres ne sont pas généralement supportés.
– Plus approprié à TCP
• Difficulté avec ICMP.

F. ZARAI
Firewall Multicouche

F. ZARAI

Architecture 1: Routeur Filtrant


• Routages habituelles d'un routeur + opérations de filtrage au niveau
des paquets IP
• Des ACL donnent les règles de filtrage
+ Simple
+ Peu coûteux
+ Performant
- Fonctionnalités limitées
- Traces peu exploitables

F. ZARAI
Architecture 1: Routeur Filtrant

• Diagramme de flux
– Interdire par défaut toute connexion entrante sur l'interface
Internet, à l'exception de celles déjà initialisées (et donc,
correspondant à des réponses)
– Filtrer les connexions sortant du filtre de paquets vers Internet
– Filtrer les connexions entrant dans le filtre de paquets en
provenance du LAN
– Autoriser par défaut toutes les connexions sortantes des clients
du LAN vers Internet.

F. ZARAI

Architecture 2: Routeur Filtrant + Log

Les informations à enregistrer :

• démarrage de session TCP(ou toute tentative) avec :


– adresse (source, destination)
– port (source, destination),

F. ZARAI
Architecture 3: Screened Host Firewall System (Single-homed
bastion host

F. ZARAI

Architecture 3: Screened Host Firewall System (Single-homed


bastion host
• Une machine en interne joue le pare feu
• Un routeur filtrant n’autorise que le trafic de et vers ce bastion
• Sert comme plateforme pour Application-LevelGateway et Circuit-
LevelGateway.
– Peut être utilisée pour fournir des services accessibles de l’externe.
• Potentiellement exposée à des intrusions (vulnérabilité du bastion +
vulnérabilité du routeur filtrant).
• Doit être hautement sécurisée.
– Seulement les services nécessaires sont installés (typiquement des Proxies).
• Supporte deux ou plusieurs connexions réseau
– Réalise une séparation sécurisée entre les connexions réseaux.

F. ZARAI
Architecture 3: Screened Host Firewall System (Single-homed
bastion host

F. ZARAI

Architecture 3: Screened Host Firewall System (Single-homed


bastion host
• Deux types de Firewalls sont utilisés
– Packet-Filtering Router.
– Bastion Host: Authentification et fonction Proxy.
• Trafic émanant de l’Internet: seulement celui en direction du Bastion Host
est autorisé à passer le Packet-Filtering Router.
• Trafic sortant du réseau interne: seulement les paquets IP émanant du
bastion Host sont autorisés à quitter le Packet-Filtering Router.
• Inconvénient: En cas où le Packet-Filtering router est totalement
compromis, le trafic malveillant peut directement atteindre les machines
du réseau interne.
•  Solution: « Screened Host Firewall system (Dual-homes bastion
host) »

F. ZARAI
Architecture 4: Screened Host Firewall System (Dual-homed
bastion host
• Double interface: Possède une adresse IP par interface
• Tout est filtré: Cette architecture impose aussi aux utilisateurs internes de
passer obligatoirement par la machine bastion
• En coupure totale  le pare feu est arrêté  rien ne passe
• Possibilité de cloisonner x réseaux internes si x+1 interfaces

F. ZARAI

Architecture 5: Screened Subnet Firewall System

F. ZARAI
Architecture 5: Screened Subnet Firewall System
• Plus sécurisée que les deux autres configurations
• Deux Packets-Filtering Routers sont utilisés:
– Entre le Bastion Host et l’Internet.
– Entre le Bastion Host et le réseau local.
• Crée un sous réseau protégé contenant le Bastion Host et les serveurs
(offrant des services publiques).
• L’Internet et le réseau interne ont les deux accès aux machines du sous-
réseau crée, mais le trafic d’un coté à l’autre de ce sous-réseau est bloqué:
– Création de trois niveaux de sécurité.
– Le réseau interne est invisible de l’Internet.
– Les machines du réseau interne ne peuvent communiquer qu’avec le Bastion
Host.

F. ZARAI

Architecture 5: Screened Subnet Firewall System

• Actuellement, la majorité des Firewalls intègrement cette


séparation (sous réseau protégé).
– Interface DMZ (Demilitarized Zone) pour le sous réseau protégé
• La possibilité d’offrir des services sans les placer de l’intérieur et
de l’extérieur
• Possibilité de définir de multiples DMZ
• Cloisonnement des zones
– Cloisonnement de flux
– Si une tombe, les autres fonctionnent

F. ZARAI
Architecture 5: Screened Subnet Firewall System

F. ZARAI

Iptables
Si le paquet est destiné à l’hôte local Alors il traverse la chaîne INPUT.
Si il n’est pas rejeté Alors il est transmis au processus impliqué.
Sinon
Si le paquet est destiné à un hôte d’un autre réseau Alors il
traverse la chaîne FORWARD
Si il n’est pas rejeté Alors il poursuit alors sa route

F. ZARAI
Iptables
• Les commandes de iptables associées à la gestion des chaînes sont les
suivantes :
-N : création d'une nouvelle chaîne (iptables -N INTERNET)
-X : suppression d'une chaîne vide (iptables -X INTERNET)
-P : Mise en place de la règle par défaut pour une chaîne existante
(iptables -P INPUT DROP). Seules les chaînes INPUT,
FORWARD et OUTPUT peuvent avoir une règle par défaut et les
seules cibles disponibles sont ACCEPT et DROP.
-L : lister les règles d'une chaîne (iptables -L INTERNET)
-F : effacer les règles d'une chaîne (iptables -F INTERNET)

F. ZARAI

Iptables
• Par défaut iptables utilise la table ‘filter' si on ne lui spécifie par une autre
table via l'option '-t nom_de_table').
• Exemple1: Interdire les connexions sur le port 22 (ssh),
# iptables -A INPUT -p tcp --dport 22 -j DROP
– -A INPUT => ajoute en bas de la liste des règles de la chaîne INPUT
– -p tcp => pour les paquets qui utilisent les protocole TCP
– --dport => pour les paquets qui sont à destination du port 22
– -j DROP => l'action : DROP les paquets (on efface les paquets),

# iptables -L -v

F. ZARAI
Iptables
• Il existe de très nombreuses options pour construire les règles de
filtrage, parmi les plus utilisés on trouve :
-s : sélection de l'adresse IP source (ou réseau source) d'où vient le
paquet
-d : sélection de l'adresse IP de destination (ou réseau de destination)
où va le paquet
--dport : port destination (le port sur lequel le client essaye de se
connecter) vers quel port a été émis le paquet
--sport : port source (le port utilisé par le client pour créer la
connexion) depuis quel port a été émis le paquet
-p suivi d'un nom de protocole
-i : spécifie le nom de l'interface physique à travers laquelle les paquets
entrent
-o : spécifie le nom de l'interface physique à travers laquelle les paquets
sortent
F. ZARAI

Iptables
# iptables -D INPUT 1
– efface la première règle de la chaîne INPUT.
# iptables -L -v --line-numbers
– voir les numéros de chaque règle lorsqu'on liste les règles
# iptables -A chaine -m multiport -p tcp --dports
port1,port2,port3 -j

• A ajout, D supprime, I insère, F efface toutes les règles


mais pas la stratégie par défaut, L liste

F. ZARAI
Iptables
• Création d'une chaîne spécifique
# iptables -N ssh
• On indique à la chaîne INPUT que tout ce qui concerne ssh doit être
transmis à cette nouvelle chaîne
# iptables -A INPUT -p tcp --dport 22 -j ssh
• On rajoute nos règles de filtrages dans la chaîne ssh
– on accepte que le voisin se connecte
# iptables -A ssh -s ip_machine_du_voisin -j ACCEPT
– on interdit au reste du monde de se connecter
# iptables -A ssh -j DROP

F. ZARAI

Iptables
• Le module 'state' définit plusieurs états possibles pour les flux
réseaux :
- NEW : c'est une nouvelle connexion
- ESTABLISHED : on connaît déjà cette connexion (elle est passée par
l'état NEW il y a peu de temps)
- RELATED : cela permet d'identifier une connexion qui serait liée ou
dépendant d'une connexion déjà ESTABLISHED.
- INVALID : tout ce qui n'est pas correctement identifiable

F. ZARAI
Iptables
– Paramètre protocole: interdire le protocole icmp
iptables -A INPUT -p icmp -j DROP
– paramètre source: interdire le protocole icmp provenant de localhost
iptables -A INPUT -p icmp -s localhost -j DROP
– chaîne OUTPUT paramètre destination: interdire tout paquet à
destination de localhost
iptables -A OUTPUT -d localhost -j DROP
– paramètre destination port: interdire tout paquet à destination
du port ftp
iptables -A INPUT -p tcp --dport 21 -j DROP
– paramètre source port: interdire tout paquet sortant par eth0
dont le numéro de port source est inférieur à 1024
iptables -A OUTPUT -o eth0 -p tcp --sport :1023 -j DROP
iptables -A OUTPUT -o eth0 -p udp --sport :1023 -j DROP
F. ZARAI

Iptables
– paramètre flag TCP: interdire toute tentative d'initialisation de
connexion TCP provenant de eth0
iptables -A INPUT -i eth0 -p tcp --syn --sport :1023 -j DROP
– paramètre flag icmp: interdire tout paquet entrant correspondant à un
ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
– interdire toute réponse à un ping
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
– extension mac: interdire tout paquet entrant par eth0 dont l'adresse mac
n'est pas celle du voisin
iptables -A INPUT -i eth0 -m mac --mac-source ! 00:50:FC:23:2D:D7 -j DROP

F. ZARAI
Translation d’adresse (NAT)

F. ZARAI

Objectifs
• Utiliser NAT pour :

 Répondre à court terme à la pénurie d’@ IP

 Partager une connexion Internet avec une seule adresse IP publique

 Connexion à l’Internet de hosts qui n’ont pas d’adresses IP globales


uniques ( ne correspondant pas à la RFC 1918).

 Éviter de renuméroter le réseau lors de sa connexion à l’Internet.

 Sécurité

F. ZARAI
NAT Statique
Outside
Inside
3
5 3 SA
DA 179.2.2.2
SA
10.1.1.1
179.2.2.2 Internet
10.1.1.2
4
SA DA
DA
10.1.1.1 199.6.7.3
179.2.2.2
2/5
199.6.7.3
1/6 NAT Table
10.1.1.1 Host B
Inside Local Inside Global
IP Address IP Address

10.1.1.2 179.2.2.3
10.1.1.1 179.2.2.2

F. ZARAI

NAT Statique
1. Une machine locale envoie un paquet avec comme adresse source
son adresse privée
2. Le routeur chargé de la translation fait correspondre à chaque
adresse privée, une adresse publique. Il envoie vers l’extérieur le
paquet IP en changeant l’adresse source privée par son
correspondant publique
3. Le destinataire reçoit un paquet IP dont il pense qu’il vient d’une
machine ayant une adresse publique et va donc y répondre
4. Le routeur reçoit la réponse, fait la correspondance dans le sens
adresse publique – adresse privée et retransmet le paquet modifié à
la bonne machine interne

F. ZARAI
Terminologie
D
C
SA
D 10.2.2.3
SA
Inside 199.6.7.3
SA Outside DA
199.6.7.3 179.2.2.2

Host B
DA
199.6.7.3
10.1.1.2
C
10.1.1.2
A SA Internet
SA 179.2.2.2
10.1.1.1
B
NAT Table
10.1.1.1
Inside Local IP Inside Global
Address IP Address

10.1.1.2 179.2.2.3
10.1.1.1 179.2.2.2

63
F. ZARAI

NAT Dynamique
Outside
Inside
4
5 3
DA
DA
SA 179.2.2.1
10.1.1.1
179.2.2.1 Internet
10.1.1.2
SA DA 2/5
10.1.1.1 199.6.7.3
NAT Table
199.6.7.3
1/6 Inside Local Inside Global
10.1.1.1 IP Address IP Address Host B

10.1.1.1 179.2.2.1
10.1.1.7 179.2.2.2
10.1.1.21 179.2.2.3
….. à
179.2.2.25
64
F. ZARAI
PAT
SA SA
Inside 179.2.2.2 3 179.2.2.2
DA DA
199.6.7.3 199.6.7.3
SP: 1024 SP: 1024
3 DP : 23 DP : 23 Host B
Internet 199.6.7.3

10.1.1.2

SA DA SP: 1024
10.1.1.1 199.6.7.3 DP : 23
2 Host C
1 196.5.4.7
NAT Table
10.1.1.1
Protocol Inside Local IP Inside Global IP Outside Global
Address: Port Address: Port IP Address: Port

TCP 10.1.1.2:1723 179.2.2.2:1723 196.5.4.7:23


TCP 10.1.1.1:1024 179.2.2.2:1024 199.6.7.3:23

 PAT : Port Address Translation


 NAPT : Network Address Port Translation
 SUA : Single User Account 65
F. ZARAI

PAT
4 SA 4
Inside SA
199.6.7.3
199.6.7.3
DA
DA 179.2.2.2
179.2.2.2
5 SP: 23
SP: 23
DP : 1024 Host B
DA
DP : 1024 Internet 199.6.7.3
10.1.1.1
7
10.1.1.2
DA
SA DA SP: 23 179.2.2.2
199.6.7.3 10.1.1.1 DP : 1024
2 Host C
5 196.5.4.7
NAT Table
10.1.1.1
Protocol Inside Local IP Inside Global IP Outside Global
Address: Port Address: Port IP Address: Port

TCP 10.1.1.2:1723 179.2.2.2:1723 196.5.4.7:23


TCP 10.1.1.1:1024 179.2.2.2:1024 199.6.7.3:23

F. ZARAI

Vous aimerez peut-être aussi