ch5 firewall 2014
Post on 19-Jan-2016
12 Views
Preview:
TRANSCRIPT
Cours Sécurité des réseaux 1
Chapitre 6: Les firewalls (pare-feu)
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
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
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
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
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!!
Cours Sécurité des réseaux
Firewall
7
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
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
Cours Sécurité des réseaux
Packet-Filtering router
10
Cours Sécurité des réseaux
Application-Level Gateway.
11
Cours Sécurité des réseaux
Circuit-Level Gateway
12
Cours Sécurité des réseaux
Firewall multicouche
13
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
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
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
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
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
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
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
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
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).
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
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
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
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
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
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
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
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
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
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
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
Cours Sécurité des réseaux
Architecture
35
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
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
Cours Sécurité des réseaux
Architecture 3: Screened Host Firewall System (Single-homed bastion host)
38
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
Cours Sécurité des réseaux 40
Architecture 3: Screened Host Firewall System (Single-homed bastion host)
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
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
Cours Sécurité des réseaux 43
Architecture 5: Screened subnet Firewall system
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
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
Cours Sécurité des réseaux
Screened subnet Firewall System
46
Cours Sécurité des réseaux
Screened subnet Firewall System
47
Cours Sécurité des réseaux
Screened subnet Firewall System
48
Cours Sécurité des réseaux
Screened subnet Firewall System
49
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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.
???
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
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
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
Cours Sécurité des réseaux
iptables
69
Cours Sécurité des réseaux
iptables
70
Cours Sécurité des réseaux
Exemple
71
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
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
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
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
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
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
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
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
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
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
Cours Sécurité des réseaux 82
X est
sécurisé
Y croit X
SYN
SYN/ACK
ACK
Connecté
top related