ch5 firewall 2014

81
Cours Sécurité des réseaux 1 Chapitre 6: Les firewalls (pare-feu)

Upload: chawkitrabelsi

Post on 19-Jan-2016

12 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Ch5 Firewall 2014

Cours Sécurité des réseaux 1

Chapitre 6: Les firewalls (pare-feu)

Page 2: Ch5 Firewall 2014

Cours Sécurité des réseaux

Objectifs généraux

• A la fin de chapitre l’étudiant sera capable de:

– Comprendre le fonctionnement général des pare-feux

– Enumérer les différents types de pare-feux

– Expliquer le filtrage statique et les listes de contrôle d’accès

– Expliquer le filtrage dynamique

– Enumérer les différents architecture de pare-feux

Page 3: Ch5 Firewall 2014

Cours Sécurité des réseaux

Motivations

• Évolution des systèmes d’information

– Des réseaux d’entreprise assez larges, connectant des réseaux locaux (distribués dans des zones géographiques différentes) à travers des réseaux étendus.

– Nécessité de connecter certains de ces réseaux à Internet.

• La connectivité d’un réseau local à Internet, permet au monde externe d’atteindre et d’interagir avec les ressources de ce réseau.

• Difficulté de sécuriser chaque ressource à part:

– Nombre important de machines.

– Différents types d’applications, services, systèmes d’exploitation, et protocoles utilisés, tous contenant des bugs.

• Besoin de minimiser les risques.

Utilisation des Firewalls

3

Page 4: Ch5 Firewall 2014

Cours Sécurité des réseaux

Firewall

– Dénommé garde barrière, coupe-feu, pare-feu

– Représente une barrière entre un réseau privé et un réseau publique.

– Fait passer uniquement le trafic permis par la politique de sécurité.

– Hypothèse: Le Firewall est exempt de vulnérabilité. Lui et le système sur lequel il est installé sont de confiance.

4

Page 5: Ch5 Firewall 2014

Cours Sécurité des réseaux

Firewall • Interconnecte des réseaux de différent niveaux de confiance.

• Définit un point de passage obligé pour le contrôle et le suivi de trafic.

• Implémente des mécanismes d’application de la politique de sécurité

– Impose des restrictions sur le trafic entrant et sortant (ex: seul le trafic http est autorisé, seule l’adresse IP 1.2.3.4 est autorisée).

– Fournit une protection contre les attaques (ex: IP spoofing).

• Permet d’auditer et de contrôler l’accès.

– Génération d’alertes pour les utilisations malveillantes.

• Fournit un périmètre de sécurité.

• Représente un endroit commode pour l’implémentation des fonctionnalités réseau (ex: translation d’adresses)

5

Page 6: Ch5 Firewall 2014

Cours Sécurité des réseaux

Firewall

6

Réseau avec niveau

de confiance X

Réseau de

non-confiance

Firewall

Routeur

Internet Réseau local

DMZ

Serveurs accessibles

depuis le réseau Internet

Réseau avec Niveau de confiance Y

ALERT!!

Page 7: Ch5 Firewall 2014

Cours Sécurité des réseaux

Firewall

7

Page 8: Ch5 Firewall 2014

Cours Sécurité des réseaux

Limitation d’un Firewall

• Ne protège pas contre les attaques qui ne le traversent pas:

– Ex: un utilisateur interne utilise un modem pour se connecter à

Internet.

• Ne protège pas contre les menaces internes.

– Ex: un employé malhonnête attaque une machine interne.

• Ne protège pas contre le transfert de programmes et de fichiers

malveillants (virus, backdoor, etc.).

– Les systèmes et les applications supportés dans un périmètre de

sécurité, sont nombreux et différents.

– Difficulté de scanner tous les messages en direction de ces systèmes

et applications.

8

Page 9: Ch5 Firewall 2014

Cours Sécurité des réseaux

Type de Firewalls

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

– Packet-Filtering router (stateless, stateful)

– Application-Level Gateway.

– Circuit-Level Gateway.

9

Page 10: Ch5 Firewall 2014

Cours Sécurité des réseaux

Packet-Filtering router

10

Page 11: Ch5 Firewall 2014

Cours Sécurité des réseaux

Application-Level Gateway.

11

Page 12: Ch5 Firewall 2014

Cours Sécurité des réseaux

Circuit-Level Gateway

12

Page 13: Ch5 Firewall 2014

Cours Sécurité des réseaux

Firewall multicouche

13

Page 14: Ch5 Firewall 2014

Cours Sécurité des réseaux

Protocole TCP

15

Application

Transport

Réseau

Liaison

protocole Applicatif

protocole TCP, UDP

protocole IP

Liaison de données

IP

Network Access

protocole IP

Application

Transport

Réseau

Liaison

La couche Transport fournit des ports: canaux logiques identifiés

par un nombre

Ex: http sur port 80, Telnet sur port 21, etc.

Liaison de données

Page 15: Ch5 Firewall 2014

Cours Sécurité des réseaux

Format de données

16

Application

Transport (TCP, UDP)

Réseau (IP)

Liaison

message – données d’application

TCP données TCP données TCP données

Entête TCP

données TCP IP

Entête IP

données TCP IP ETH ETF

Entête Liaison (Ethernet)

Queue Liaison (Ethernet)

segment

paquet

Trame

message

Page 16: Ch5 Firewall 2014

Cours Sécurité des réseaux

Packet-Filtering router • 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

17

Page 17: Ch5 Firewall 2014

Cours Sécurité des réseaux

Politique de sécurité par défaut

• 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).

18

Page 18: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple de règles (Packet-Filtering router)

• Règle1: Toute connexion depuis le réseau interne (193.1.1.0) vers la machine suspecte 100.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.

Action Protocole source port destination Port flag

Deny IP 193.1.1.0 * 100.1.1.1 *

Allow TCP 193.1.1.0 * * 80

Allow TCP * 80 193.1.1.0 * ACK

Deny IP * * * *

19

Internet

Packet-filtering router

193.1.1.0

Page 19: Ch5 Firewall 2014

Cours Sécurité des réseaux

Packet filtering • 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)

20

Page 20: Ch5 Firewall 2014

Cours Sécurité des réseaux

Attaques sur Packet-filtering Firewalls • 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.

21

Page 21: Ch5 Firewall 2014

Cours Sécurité des réseaux

Stateful Inspection Packet Filtering Firewalls

• Connexion TCP

– Port serveur inférieur à 1024.

– Port client compris entre 1024 et 16383.

• Les Ports <1024 sont affectés de façons permanente.

• FTP: 20,21 – Telnet: 23 – SMTP: 25 – HTTP: 80 – HTTPS: 443

• Tous les Ports >1023 doivent être disponibles aux clients pour faire leurs

connexions.

– Ceci créé une vulnérabilité qui peut être exploitée par les intrus.

– Ceci présente une limitation pour les Firewalls de type stateless packet

filtering (vus dans les transparents précédents).

Solution: Utilisation de Firewalls de type Stateful Inspection packet

filtering (filtrage dynamique).

22

Page 22: Ch5 Firewall 2014

Cours Sécurité des réseaux

Stateful Inspection Packet filetring Firewalls

@IP Src Port

Src @IP Dst Port dst

État de la

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

… … … … …

23

• 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).

Page 23: Ch5 Firewall 2014

Cours Sécurité des réseaux

Stateful Inspection Packet filetring 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 ».

24

Page 24: Ch5 Firewall 2014

Cours Sécurité des réseaux 25

193.1.1.1 10.1.2.3

Client Telnet Serveur Telnet

Le Firewall se souviendra De cette information

Cohérent avec le paquet précédent

Pas de cohérence avec la connexion

en cours

Stateful Packet-Filtering Firewall

Page 25: Ch5 Firewall 2014

Cours Sécurité des réseaux

Packet filetring Firewalls

• Règles par port/par adresses

• Règles manuelles complexes à gérer

– Historique des règles (tel service n’a plus besoin de telle

règle)

– Redondance/conflit de certaines règles?

– Audit périodique nécessaire

• S’arrête au niveau 4 Encapsulation possible

26

Page 26: Ch5 Firewall 2014

Cours Sécurité des réseaux

Les Firewalls Proxy

• Filtres applicatifs

• Proxy : introduit un élément intermédiaire obligatoire entre le client et le

serveur

• Chaque application passe alors par le firewall proxy et envoie sa requête

non pas au serveur qu’elle désire atteindre mais au firewall qui la

retransmettra.

• Inversement, les communications émises depuis Internet à destination des

systèmes internes ne les atteignent pas directement mais sont

préalablement traitées par le firewall.

• Deux types:

– Proxy applicatifs

• Niveau 7 du modèle OSI

– Proxy de type circuit

• Niveau 5 du modèle OSI

27

Page 27: Ch5 Firewall 2014

Cours Sécurité des réseaux

Application-Level Gateway

28

ApplicationsApplications

PresentationsPresentations

SessionsSessions

TransportTransport

DataLinkDataLink

PhysicalPhysical

NetworkNetwork

DataLinkDataLink

PhysicalPhysical

ApplicationsApplications

PresentationsPresentations

SessionsSessions

TransportTransport

DataLinkDataLink

PhysicalPhysical

Application GatewayApplication Gateway

ApplicationsApplications

PresentationsPresentations

SessionsSessions

TransportTransport

NetworkNetwork NetworkNetwork

TelnetTelnet TelnetTelnet HTTPHTTP HTTPHTTP FTPFTP FTPFTP

Page 28: Ch5 Firewall 2014

Cours Sécurité des réseaux

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.

29

Page 29: Ch5 Firewall 2014

Cours Sécurité des réseaux

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.

30

Page 30: Ch5 Firewall 2014

Cours Sécurité des réseaux

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.

31

Page 31: Ch5 Firewall 2014

Cours Sécurité des réseaux

Circuit Level Gateway

• Crée deux connexions: une entre lui et l’utilisateur interne, une

autre entre lui et l’utilisateur externe.

• Impose une sécurité en déterminant quel type de connexion est

permis.

• Une fois les deux connexions établi, il transmet les segments d’une

connexion à une autre sans examiner leurs contenu.

• Supporte plus de services que l’Application-Level Gateway

– Moins de contrôle sur les données.

• Les clients doivent être au courant de l’utilisation d’un circuit-level

proxy.

• Le protocole SOCKS est généralement utilisé pour ça.

– La version 5 supporte TCP et UDP.

32

Page 32: Ch5 Firewall 2014

Cours Sécurité des réseaux

Les Firewalls Proxy

• Avantages:

– Inspection plus fine des paquets

– Cache possible

– Attaques sur des comportements anormaux éliminées

• Inconvénients

– Plus la granularité augmente, plus l’inspection est lente

33

Page 33: Ch5 Firewall 2014

Cours Sécurité des réseaux

Résumé

• Un firewall est un logiciel ou matériel qui

– Analyse les trames qu’il reçoit et prend une décision

en fonction des adresses de couche 2, 3 et 4 =>

filtrage sans état (Stateless Packet-Filtering router)

– La décision peut être prise en fonction de l’état d’une

connexion et/ou des drapeaux TCP => filtrage

dynamique (Stateful Packet-Filtering router)

– La décision peut être prise en fonction du contenu de

couche 7 => filtrage applicatif

34

Page 34: Ch5 Firewall 2014

Cours Sécurité des réseaux

Architecture

35

Page 35: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

36

Page 36: Ch5 Firewall 2014

Cours Sécurité des réseaux

Architecture 2: Routeur Filtrant+Log

Les informations à enregistrer :

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

– adresse (source, destination)

– port (source, destination),

37

Page 37: Ch5 Firewall 2014

Cours Sécurité des réseaux

Architecture 3: Screened Host Firewall System (Single-homed bastion host)

38

Page 38: Ch5 Firewall 2014

Cours Sécurité des réseaux

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.

39

Page 39: Ch5 Firewall 2014

Cours Sécurité des réseaux 40

Architecture 3: Screened Host Firewall System (Single-homed bastion host)

Page 40: Ch5 Firewall 2014

Cours Sécurité des réseaux

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) »

41

Page 41: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

42

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

Page 42: Ch5 Firewall 2014

Cours Sécurité des réseaux 43

Architecture 5: Screened subnet Firewall system

Page 43: Ch5 Firewall 2014

Cours Sécurité des réseaux

• 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.

44

Architecture 5: Screened subnet Firewall system

Page 44: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

45

Page 45: Ch5 Firewall 2014

Cours Sécurité des réseaux

Screened subnet Firewall System

46

Page 46: Ch5 Firewall 2014

Cours Sécurité des réseaux

Screened subnet Firewall System

47

Page 47: Ch5 Firewall 2014

Cours Sécurité des réseaux

Screened subnet Firewall System

48

Page 48: Ch5 Firewall 2014

Cours Sécurité des réseaux

Screened subnet Firewall System

49

Page 49: Ch5 Firewall 2014

Cours Sécurité des réseaux

Architecture

• Il n’existe pas d’architecture idéale

• Il faut l’adapter en fonction

– De la structure organisationnelle

– De la structure géographique

– Des partenariats

– De la criticité des applications

– Du budget / du personnel associé à la sécurité

50

Page 50: Ch5 Firewall 2014

Cours Sécurité des réseaux

Pare-feux libres

• Linux Netfilter/Iptables, pare-feu libre des noyaux Linux

2.4 et 2.6

• Linux Ipchains, pare-feu libre du noyau Linux 2.2

• Packet Filter ou PF, pare-feu libre de OpenBSD

• IPFilter ou IPF, pare-feu libre de BSD et Solaris 10

• Ipfirewall ou IPFW, pare-feu libre de FreeBSD

51

Page 51: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables • L'architecture du noyau pour le système de firewall s'appelle 'netfilter'

• Netfilter se base sur 3 listes de règles pour définir son comportement

vis-à-vis d'un paquet

52

• Si le paquet entrant est destiné à

cette machine, le paquet passe

dans la chaîne INPUT.

• Si le forwarding est autorisé et que

le paquet est destiné à un autre

réseau, le paquet va directement à la

chaîne FORWARD.

• La chaîne OUTPUT concerne les

paquets qui ont été créé par la

machine locale.

Page 52: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables • Les règles de filtrage déterminent le devenir des paquets grâce à une

police qui peut être : ACCEPT, REJECT, DENY, MASQ ou encore une redirection vers une chaîne.

• Les règles sont groupées en chaînes qui peuvent être celles de base : input, forward, output ou d’autres définies par l’utilisateur.

• Les paquets entrants dans le pare-feu arrivent automatiquement dans la chaîne input. Ceux qui sont émis par le pare-feu, passent dans la chaîne output. Et ceux qui sont retransmis passent par la chaîne forward.

• Un paquet qui entre dans une chaîne teste toutes les règles de la chaîne jusqu’à en trouver une qui lui corresponde. Et il obéit à la police spécifiée par la règle trouvée.

• Si aucune règle s’appliquant au paquet n’a été trouvée, alors c’est la police par défaut de la chaîne qui est utilisée pour savoir que faire de ce paquet.

• Il est donc important, avant de créer les règles, de définir la police par défaut d’une chaîne.

53

Page 53: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables

• Exemple:

– Vu du Pare-feu, Le trafic

• Internet => local est FORWARD

• local => Internet est FORWARD

– Une requête

• "ping request" local => pare-feu est INPUT

• "ping request" Internet => pare-feu est INPUT

• "ping reply" pare-feu => Internet est OUTPUT

• "ping reply" pare-feu => local est OUTPUT

54

Page 54: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables • Chacune de ces chaînes peut donner plusieurs réponses possibles pour

chaque paquet:

– Accepter ACCEPT

– Rejeter REJECT (on signale le rejet à l'expéditeur)

– Supprimer DROP (on l'efface et on ne répond rien)

• L'administrateur peut créer des chaînes personnalisées en plus des 3 chaînes par défaut qui lui permettent d'organiser ses règles de filtrage de manière plus propre et optimisée.

• Les règles reposent sur des critères de sélection très variés :

– Machine source; Port source

– Machine destination; Port destination

– Interface; Protocole; Drapeaux spéciaux du paquet TCP

– Types et codes spéciaux du paquet ICMP

55

Page 55: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables

• Chaînes – création N – vidage F – suppression X – affectation d’une police P – affichage L

• Règles – ajout en fin de liste A, insertion ordonnée I – suppression D – remplacement R – test C

56

Page 56: Ch5 Firewall 2014

Cours Sécurité des réseaux

• # iptables -L -v

– -L : liste les règles

– -v demande le mode 'verbeux‘

57

iptables: Protection de la machine locale

policy : comportement par défaut

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

mode passif.

Page 57: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

58

Page 58: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables

• Exemple1: autoriser uniquement votre voisin à se connecter sur votre

machine en ssh

insérer une règle pour votre voisin avant la règle qui DROP les

paquets

# iptables -I INPUT 1 -p tcp --dport 22 -s

adresse_ip_du_voisin -j ACCEPT – le '-I INPUT 1' signifie insère en première position dans la liste

– -s permet de choisir la source des paquets,

59

Page 59: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

60

Page 60: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

61

Page 61: Ch5 Firewall 2014

Cours Sécurité des réseaux

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)

62

Page 62: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple

• 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

63

Page 63: Ch5 Firewall 2014

Cours Sécurité des réseaux

Ping avant

64

ping 134.214.90.20 -c 1

64 bytes from 134.214.90.20: icmp_seq=0 ttl=240 time=17.3 ms

134.214.90.20 134.214.88.12

Page 64: Ch5 Firewall 2014

Cours Sécurité des réseaux

Ping après

65

ping 134.214.90.20 -c 1

100% packet loss

134.214.90.20 134.214.88.12

Mise en

fichier de

log.

???

Page 65: Ch5 Firewall 2014

Cours Sécurité des réseaux

Trafic ICMP en entrée • iptables -N icmpin

• iptables -F icmpin

• iptables -A icmpin

-l

-p icmp

--icmp-type echo-request

-j DENY

• iptables -A input

-i eth1

-p icmp

-j icmpin

66

Page 66: Ch5 Firewall 2014

Cours Sécurité des réseaux

• ipchains -N icmpout

• ipchains -F icmpout

• ipchains -A icmpout

-l

-p icmp

--icmp-type echo-reply

-j DENY

• ipchains -A output

-i eth1

-p icmp

67

Trafic ICMP en Sortie

Page 67: Ch5 Firewall 2014

Cours Sécurité des réseaux 68

Conserver les traces du trafic sensible (option -l) /etc/log/messages

Exemple de trace :

Nov 8 10:25:53

b710pbv kernel: Packet log:

input REJECT eth1

PROTO=17

134.214.90.16:138

134.214.91.255:138

L=236

S=0x00

I=51490

F=0x0000

T=128

(#7)

date et heure

machine, système

chaîne, police, interface

protocole

machine et port source

machine et port destination

taille du paquet

TOS

id du paquet IP

grapeau et id de fragment

durée de vie (TTL)

index de la règle utilisée

Page 68: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables

69

Page 69: Ch5 Firewall 2014

Cours Sécurité des réseaux

iptables

70

Page 70: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple

71

Page 71: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple

• Interdire accès depuis l’extérieur (eth1)

• Autoriser accès ssh (administratif)

• Autoriser voie de retour

• Règles

– iptables -A INPUT -i eth1 -j DROP

– iptables -I INPUT -p tcp --dport 22 -j ACCEPT

– iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT

72

Page 72: Ch5 Firewall 2014

Cours Sécurité des réseaux

Suivi de connexion

• 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

73

Page 73: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple: FTP

• le protocole FTP utilise 2 connexions TCP pour communiquer.

– Une sert à envoyer les commandes du client vers le serveur et

– Une sert à envoyer les données du serveur vers le client.

• Dans son fonctionnement standard, un client FTP se connecte sur le port

21 du serveur FTP. Le client indique ensuite au serveur sur quel port il (le

client) recevra les données. Le serveur FTP va alors établir une connexion

depuis son port 20 vers le port (>1023) indiqué par le client :

Client FTP (port source aléatoire '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 données, par ex 3084)

Serveur FTP (port 20) -----> Client FTP (port 3084) (le serveur transfert des données vers le client)

74

Page 74: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemple: FTP

• Si le client est protégé par un firewall netfilter, l'administrateur

devrait donc autoriser toutes les connexions venant de l'extérieur

vers tous les ports supérieurs à 1023 du client.

– Pas d’intérêt pour le firewall

• conntrack va permettre de détecter qu'une connexion FTP est

établie (au moment où le client se connecte sur le port 21 du

serveur) et ouvrir de manière dynamique le filtrage pour cette

connexion spécifique vers le port que le client aura choisi.

• On commence par tout interdire :

# iptables -A INPUT -j DROP

# iptables -I INPUT 1 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

75

Page 75: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemples: Opérations la table filter

• Créer les règles suivantes :

– interdire tout paquet entrant

– effacer la règle

iptables -A INPUT -j DROP

iptables -D INPUT 1

– 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

76

Page 76: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemples: Opérations la table filter

– paramètre inversion: interdire un paquet s'il ne provient

pas de localhost

iptables -A INPUT -s ! localhost -j DROP

– paramètre interface d'entrée: interdire tout paquet entrant

par eth0

iptables -A INPUT -i eth0 -j DROP

• interdire un paquet s'il provient de lo

iptables -A INPUT -i lo -j DROP

– paramètre interface de sortie: interdire tout paquet sortant

par eth0

iptables -A OUTPUT -o eth0 -j DROP

77

Page 77: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemples: Opérations la table filter

– paramètre inversion: interdire un paquet s'il ne provient pas de

localhost

iptables -A INPUT -s ! 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

– 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

78

Page 78: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exemples: Opérations la table filter

– paramètre inversion: interdire un paquet s'il ne

provient pas de localhost

iptables -A INPUT -s ! localhost -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

79

Page 79: Ch5 Firewall 2014

Cours Sécurité des réseaux

Exercice

80

Créer les règles suivantes :

1. Forwarder tout paquet venant de vmnet1 vers vmnet2

2. Forwarder tout paquet relatif à une connexion déjà établi ou en

rapport avec une connexion déjà établi de vmnet2 vers vmnet1

3. Autoriser tout paquet input (vmnet2) relative à une connexion déjà

établi ou en rapport avec une connexion déjà établi

4. Autoriser tout input au Firewall du réseau interne et de l’interface

locale

Page 80: Ch5 Firewall 2014

Cours Sécurité des réseaux

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

81

Page 81: Ch5 Firewall 2014

Cours Sécurité des réseaux 82

X est

sécurisé

Y croit X

SYN

SYN/ACK

ACK

Connecté