Vous êtes sur la page 1sur 12

Architecture 1: Routeur Filtrant Architecture 2: Routeur Filtrant+Log

 Routages habituelles d'un routeur + oprations de filtrage au niveau


des paquets IP
 Des ACL donnent les rgles de filtrage
+ Simple
+ Peu coteux
Les informations enregistrer :
+ Performant
- Fonctionnalits limites  dmarrage de session TCP(ou toute tentative) avec :
- Traces peu exploitables adresse (source, destination)
port (source, destination),

1 2
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Architecture 3: Screened Host Firewall System Bastion Host


(Single-homed bastion host)
 Une machine en interne joue le pare feu
 Un routeur filtrant nautorise que le trafic de et vers ce bastion
 Sert comme plateforme pour Application-LevelGateway et
Circuit-LevelGateway.
Peut tre utilise pour fournir des services accessibles de
lexterne.
 Potentiellement expose des intrusions (vulnrabilit du
bastion + vulnrabilit du routeur filtrant).
 Doit tre hautement scurise.
Seulement les services ncessaires sont installs (typiquement
des Proxies).
 Supporte deux ou plusieurs connexions rseau
Ralise une sparation scurise entre les connexions rseaux.

3 4
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Architecture 3: Screened Host Firewall System Architecture 3: Screened Host Firewall System
(Single-homed bastion host) (Single-homed bastion host)

 Deux types de Firewalls sont utiliss


Packet-Filtering Router.
Bastion Host: Authentification et fonction Proxy.
 Trafic manant de lInternet: seulement celui en direction du
Bastion Host est autoris passer le Packet-Filtering Router.
 Trafic sortant du rseau interne: seulement les paquets IP
manant du bastion Host sont autoriss quitter le Packet-
Filtering Router.
 Inconvnient: En cas o le Packet-Filtering router est
totalement compromis, le trafic malveillant peut directement
atteindre les machines du rseau interne.
  Solution: Screened Host Firewall system (Dual-homes
bastion host)
5 6
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Architecture 4: Screened Host Firewall system: Dual- Architecture 5: Screened subnet Firewall system
homes bastion host

Double interface: Possde 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 arrt  rien ne passe
Possibilit de cloisonner x rseaux internes si x+1 interfaces

7 8
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Architecture 5: Screened subnet Firewall system Screened subnet Firewall System
 Plus scurise que les deux autres configurations  Actuellement, la majorit des Firewalls intgrement
 Deux Packets-Filtering Routers sont utiliss: cette sparation (sous rseau protg).
Entre le Bastion Host et lInternet. Interface DMZ (Demilitarized Zone) pour le sous
Entre le Bastion Host et le rseau local. rseau protg
 Cre un sous rseau protg contenant le Bastion Host et les serveurs La possibilit doffrir des services sans les placer de
(offrant des services publiques). lintrieur et de lextrieur
 LInternet et le rseau interne ont les deux accs aux machines du Possibilit de dfinir de multiples DMZ
sous-rseau cre, mais le trafic dun cot lautre de ce sous-rseau Cloisonnement des zones
est bloqu: Cloisonnement de flux
Cration de trois niveaux de scurit. Si une tombe, les autres fonctionnent
Le rseau interne est invisible de lInternet.
Les machines du rseau interne ne peuvent communiquer quavec le
Bastion Host.
9 10
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Screened subnet Firewall System Screened subnet Firewall System

11 12
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Screened subnet Firewall System Screened subnet Firewall System

13 14
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Architecture Pare-feux libres


 Il nexiste pas darchitecture idale
 Linux Netfilter/Iptables, pare-feu libre des noyaux Linux
 Il faut ladapter en fonction
2.4 et 2.6
De la structure organisationnelle
Linux Ipchains, pare-feu libre du noyau Linux 2.2
De la structure gographique 

Des partenariats  Packet Filter ou PF, pare-feu libre de OpenBSD


De la criticit des applications  IPFilter ou IPF, pare-feu libre de BSD et Solaris 10
Du budget / du personnel associ la scurit  Ipfirewall ou IPFW, pare-feu libre de FreeBSD

15 16
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
iptables iptables
 L'architecture du noyau pour le systme de firewall s'appelle 'netfilter'  Les rgles de filtrage dterminent le devenir des paquets grce une
 Netfilter se base sur 3 listes de rgles pour dfinir son comportement police qui peut tre : ACCEPT, REJECT, DENY, MASQ ou encore
vis--vis d'un paquet une redirection vers une chane.
 Les rgles sont groupes en chanes qui peuvent tre celles de base :
input, forward, output ou dautres dfinies par lutilisateur.
Si le paquet entrant est destin  Les paquets entrants dans le pare-feu arrivent automatiquement dans
cette machine, le paquet passe la chane input. Ceux qui sont mis par le pare-feu, passent dans la
dans la chane INPUT. chane output. Et ceux qui sont retransmis passent par la chane
forward.
Si le forwarding est autoris et que
 Un paquet qui entre dans une chane teste toutes les rgles de la
le paquet est destin un autre
chane jusqu en trouver une qui lui corresponde. Et il obit la
rseau, le paquet va directement la
police spcifie par la rgle trouve.
chane FORWARD.
 Si aucune rgle sappliquant au paquet na t trouve, alors cest la
police par dfaut de la chane qui est utilise pour savoir que faire de
La chane OUTPUT concerne les
ce paquet.
paquets qui ont t cr par la
machine locale.  Il est donc important, avant de crer les rgles, de dfinir la police par
dfaut dune chane.
17 18
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

iptables iptables
 Exemple:
Vu du Pare-feu, Le trafic
Internet => local est FORWARD
local => Internet est FORWARD
Une requte
"ping request" local => pare-feu est INPUT
"ping request" Internet => pare-feu est INPUT
"ping reply" pare-feu => Internet est OUTPUT
Si le paquet est destin lhte local Alors il traverse la chane INPUT. "ping reply" pare-feu => local est OUTPUT
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

19 20
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
iptables iptables
 Chacune de ces chanes peut donner plusieurs rponses possibles pour
chaque paquet:  Chanes
Accepter ACCEPT Cration (N)
vidage (F)
Rejeter REJECT (on signale le rejet l'expditeur) suppression (X)
Supprimer DROP (on l'efface et on ne rpond rien) affectation dune police (P)
 L'administrateur peut crer des chanes personnalises en plus des 3
affichage (L)
chanes par dfaut qui lui permettent d'organiser ses rgles de filtrage  Rgles
de manire plus propre et optimise. ajout en fin de liste (A), insertion ordonne (I)
Les rgles reposent sur des critres de slection trs varis :
suppression (D)

remplacement (R)
Machine source; Port source test (C)
Machine destination; Port destination
Interface; Protocole; Drapeaux spciaux du paquet TCP
Types et codes spciaux du paquet ICMP
21 22
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

iptables: Protection de la machine locale iptables


 Par dfaut iptables utilise la table filter' si on ne lui spcifie par une
 # iptables -L -v autre table via l'option '-t nom_de_table').
-L : liste les rgles  Exemple1: Interdire les connexions sur le port 22 (ssh),
-v demande le mode 'verbeux # iptables -A INPUT -p tcp --dport 22 -j DROP
-A INPUT => ajoute en bas de la liste des rgles de la chane 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
policy : comportement par dfaut

Dans cet exemple netfilter accepte donc tous les paquets, le firewall est en
mode passif.

23 24
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
iptables iptables
 Il existe de trs nombreuses options pour construire les rgles de
 Exemple1: autoriser uniquement votre voisin se connecter sur votre filtrage, parmi les plus utiliss on trouve :
machine en ssh
-s : slection de l'adresse IP source (ou rseau source) d'o vient le paquet
 insrer une rgle pour votre voisin avant la rgle qui DROP les
paquets -d : slection de l'adresse IP de destination (ou rseau de destination) o va
le paquet
# iptables -I INPUT 1 -p tcp --dport 22 -s --dport : port destination (le port sur lequel le client essaye de se connecter)
adresse_ip_du_voisin -j ACCEPT vers quel port a t mis le paquet
le '-I INPUT 1' signifie insre en premire position dans la liste --sport : port source (le port utilis par le client pour crer la connexion)
-s permet de choisir la source des paquets, depuis quel port a t mis le paquet
-p suivi d'un nom de protocole
-i : spcifie le nom de l'interface physique travers laquelle les paquets
entrent
-o : spcifie le nom de l'interface physique travers laquelle les paquets
sortent

25 26
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

iptables iptables
 Les commandes de iptables associes la gestion des chanes sont
# iptables -D INPUT 1 les suivantes :
efface la premire rgle de la chane INPUT.
-N : cration d'une nouvelle chane (iptables -N INTERNET)
# iptables -L -v --line-numbers
-X : suppression d'une chane vide (iptables -X INTERNET)
voir les numros de chaque rgle lorsqu'on liste les rgles
-P : Mise en place de la rgle par dfaut pour une chane existante
# iptables -A chaine -m multiport -p tcp --dports
(iptables -P INPUT DROP). Seules les chanes INPUT,
port1,port2,port3 -j
FORWARD et OUTPUT peuvent avoir une rgle par dfaut et
les seules cibles disponibles sont ACCEPT et DROP.
 A ajout, D supprime, I insre, F efface toutes les -L : lister les rgles d'une chane (iptables -L INTERNET)
rgles mais pas la stratgie par dfaut, L liste
-F : effacer les rgles d'une chane (iptables -F INTERNET)

27 28
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Exemple Ping avant
 Cration d'une chane spcifique
# iptables -N ssh
134.214.90.20 134.214.88.12
 On indique la chane INPUT que tout ce qui concerne ssh
doit tre transmis cette nouvelle chane
# iptables -A INPUT -p tcp --dport 22 -j ssh
 On rajoute nos rgles de filtrages dans la chane 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 ping 134.214.90.20
64 bytes from 134.214.90.20: icmp_seq=0 ttl=240 time=17.3 ms

29 30
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Ping aprs Trafic ICMP en entre


 iptables -N icmpin
 iptables -F icmpin
 iptables -A icmpin
134.214.90.20 134.214.88.12
-l
-p icmp
--icmp-type echo-request
??? -j DENY
 iptables -A input
Mise en -i eth1
fichier de -p icmp
log. -j icmpin

ping 134.214.90.20

100% packet loss


31 32
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Trafic ICMP en Sortie Exemple
 iptables -N icmpout
 Conserver les traces du trafic sensible (option -l)
 iptables -F icmpout
 /etc/log/messages
 iptables -A icmpout
 Exemple de trace :
-l
-p icmp Nov 8 10:25:53 date et heure
--icmp-type echo-reply b710pbv kernel: Packet log: machine, systme
-j DENY input REJECT eth1 chane, police, interface
PROTO=17 protocole
 iptables -A output 134.214.90.16:138 machine et port source
-i eth1 134.214.91.255:138 machine et port destination
-p icmp L=236 taille du paquet
S=0x00 TOS
I=51490 id du paquet IP
F=0x0000 grapeau et id de fragment
T=128 dure de vie (TTL)
(#7) index de la rgle utilise

33 34
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Exemple Exemple
 Interdire accs depuis lextrieur (eth1)
 Autoriser accs ssh (administratif)
 Autoriser voie de retour

 Rgles
iptables -A INPUT -i eth1 -j DROP
iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT

35 36
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Suivi de connexion Exemple: FTP
 Le module 'state' dfinit plusieurs tats possibles pour les  le protocole FTP utilise 2 connexions TCP pour communiquer.
flux rseaux : Une sert envoyer les commandes du client vers le serveur et
- NEW : c'est une nouvelle connexion
Une sert envoyer les donnes du serveur vers le client.
- ESTABLISHED : on connat dj cette connexion (elle est passe par
 Dans son fonctionnement standard, un client FTP se connecte sur le port
l'tat NEW il y a peu de temps)
21 du serveur FTP. Le client indique ensuite au serveur sur quel port il (le
- RELATED : cela permet d'identifier une connexion qui serait lie ou client) recevra les donnes. Le serveur FTP va alors tablir une connexion
dpendant d'une connexion dj ESTABLISHED. depuis son port 20 vers le port (>1023) indiqu par le client :
- INVALID : tout ce qui n'est pas correctement identifiable
Client FTP (port source alatoire 'a') -----> Serveur FTP (port 21)
Client FTP (port 'a') ----> Serveur FTP (port 21)
(le client indique au serveur FTP sur quel port il devra envoyer les donnes, par
ex 3084)
Serveur FTP (port 20) -----> Client FTP (port 3084) (le serveur transfert des
donnes vers le client)

37 38
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Exemple: FTP Exemples: Oprations la table filter


 Si le client est protg par un firewall netfilter, l'administrateur  Crer les rgles suivantes :
devrait donc autoriser toutes les connexions venant de l'extrieur interdire tout paquet entrant
vers tous les ports suprieurs 1023 du client. effacer la rgle
Pas dintrt pour le firewall
iptables -A INPUT -j DROP
 conntrack va permettre de dtecter qu'une connexion FTP est iptables -D INPUT 1
tablie (au moment o le client se connecte sur le port 21 du
serveur) et ouvrir de manire dynamique le filtrage pour cette
Paramtre protocole: interdire le protocole icmp
iptables -A INPUT -p icmp -j DROP
connexion spcifique vers le port que le client aura choisi.
 On commence par tout interdire :
paramtre source: interdire le protocole icmp provenant de
localhost
# iptables -A INPUT -j DROP
iptables -A INPUT -p icmp -s localhost -j DROP
# iptables -I INPUT 1 -p tcp --sport 21 -m state --state
ESTABLISHED -j ACCEPT chane OUTPUT paramtre destination: interdire tout paquet
destination de localhost
iptables -A OUTPUT -d localhost -j DROP

39 40
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Exemples: Oprations la table filter Exemples: Oprations la table filter
paramtre inversion: interdire un paquet s'il ne paramtre inversion: interdire un paquet s'il ne provient
provient pas de localhost pas de localhost

iptables -A INPUT -s ! localhost -j DROP iptables -A INPUT -s ! localhost -j DROP

paramtre interface d'entre: interdire tout paquet paramtre destination port: interdire tout paquet
entrant par eth0 destination du port ftp
iptables -A INPUT -i eth0 -j DROP iptables -A INPUT -p tcp --dport 21 -j DROP

interdire un paquet s'il provient de lo paramtre source port: interdire tout paquet sortant par
eth0 dont le numro de port source est infrieur 1024
iptables -A INPUT -i lo -j DROP
iptables -A OUTPUT -o eth0 -p tcp --sport :1023 -j DROP
paramtre interface de sortie: interdire tout paquet iptables -A OUTPUT -o eth0 -p udp --sport :1023 -j DROP
sortant par eth0 paramtre flag TCP: interdire toute tentative
iptables -A OUTPUT -o eth0 -j DROP d'initialisation de connexion TCP provenant de eth0
iptables -A INPUT -i eth0 -p tcp --syn --sport :1023 -j DROP

41 42
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016

Exemples: Oprations la table filter Exercice


paramtre inversion: interdire un paquet s'il ne
provient pas de localhost
iptables -A INPUT -s ! localhost -j DROP

paramtre flag icmp: interdire tout paquet entrant


correspondant un ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP Crer les rgles suivantes :
interdire toute rponse un ping 1. Forwarder tout paquet venant de vmnet1 vers vmnet2
2. Forwarder tout paquet relatif une connexion dj tabli ou en
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j DROP
rapport avec une connexion dj tabli de vmnet2 vers vmnet1
extension mac: interdire tout paquet entrant par 3. Autoriser tout paquet input (vmnet2) relative une connexion dj
eth0 dont l'adresse mac n'est pas celle du voisin tabli ou en rapport avec une connexion dj tabli
iptables -A INPUT -i eth0 -m mac --mac-source ! 00:50:FC:23:2D:D7 -j 4. Autoriser tout input au Firewall du rseau interne et de linterface
DROP locale
43 44
Cours Scurit des rseaux, F. ZARAI, 2015/2016 Cours Scurit des rseaux, F. ZARAI, 2015/2016
Solution

1. iptables -A FORWARD -i vmnet1 -o vmnet2 -j ACCEPT


2. iptables -A FORWARD -i vmnet2 -o vmnet1 -m state --
state ESTABLISHED,RELATED -j ACCEPT
3. iptables -A INPUT -i vmnet2 -m state --state
ESTABLISHED,RELATED -j ACCEPT
4. iptables -A INPUT -i vmnet1 -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

45
Cours Scurit des rseaux, F. ZARAI, 2015/2016