Post on 07-Feb-2022
Frédéric Bongat 1
Linux sécurité des réseaux
Nat – Filtrage – Audit – VPNNat – Filtrage – Audit – VPN
Chef De Projet InformatiqueChef De Projet Informatiqueen Environnement Territorialen Environnement Territorial
2
Introduction
Sécurité des réseaux sous LinuxSécurité des réseaux sous Linux Les réseauxLes réseaux La NATLa NAT Le filtrageLe filtrage Audit réseauAudit réseau VPNVPN
3
Les réseaux
4
Les réseaux
TCP/IP : protocoles de communication Flux de données :
Via la pile TCP/IP d'une machine qui désigne la structure en couches du traitement dont est l'objet une requête ou réponse
Conception en mode multi-couches. Ceci indique que nous avons une fonctionnalité sur un
niveau, et une autre à un autre niveau, etc. Organisation des données en paquets (datagrammes)
avec encapsulation des données Référence les hôtes sur la base d'adresses physique et
d'adresses logiques dans les couches de la pile Mac: Media Access Controller
5
Les réseaux
La pile TCP/IP : modèle OSI
...
6
Les réseaux
Trame réseau: Trame réseau: Les datagrammes (1)Les datagrammes (1)
Couche 3 / réseau : Couche 3 / réseau : IP (pas orienté connexion, aucune vérification de la réception IP (pas orienté connexion, aucune vérification de la réception
des paquets, protocole routé)des paquets, protocole routé)
ICMP(collecte d'informations, résolution des problèmes ICMP(collecte d'informations, résolution des problèmes réseauréseau Types importants :
0 (echo reply) : réponse au message de type 83 (unreachable) : destinataire inaccessible 5 (redirect) : le routeur remarque que la route qu'a choisi l'ordinateur émetteur n'est pas optimale8 (echo request) : demande de renvoi d'informations
Type Code Checksum
7
Les réseaux
Datagrammes (2)Datagrammes (2) Couche 4 / transport : Couche 4 / transport :
TCP (fiable, orienté connexion, lent, optimisé pour TCP (fiable, orienté connexion, lent, optimisé pour Internet)Internet)
UDP (peu fiable, sans connexion, rapide, optimisé pour UDP (peu fiable, sans connexion, rapide, optimisé pour les Intranets)les Intranets)
Drapeaux
8
Les réseaux
Champ des drapeauxChamp des drapeaux
UrgURGENT
PPUSH
Ce drapeau indique l'intention de l'expéditeur d'interrompre immédiatement sa connexion
RRESET
Ce drapeau indique l'intention de l'expéditeur de clore sa connexion avec l'hôte
FFIN
Ce drapeau est en général utilisé pour acquitter la reception des données en provenance
ACK
Il signale une requête d'établissement d'une session, il s'agit de la première partie
SYN
Signification du drapeauReprésentationDrapeau TCP
S
Ack
La fonction de la fonction push et du flag PUSH est de forcer la transmission immédiate de toutes les données latentes entre les deux TCP. L'application indique dans la commande SEND si les données soumises lors d'un appel doivent être émises par l'activation du flag PUSH
Ce drapeau indique qu'il doit être donné la priorité à des données urgentes sur d'autre données
9
Les réseaux
Etablissement d’une connexion TCPEtablissement d’une connexion TCP Connexion exclusive et uniqueConnexion exclusive et unique Repose sur des principes d'acquittements de paquetsRepose sur des principes d'acquittements de paquets Le handshake : initialisation d'une connexion TCPLe handshake : initialisation d'une connexion TCP
10
Les réseaux
Sessions Tcp ou Udp (vu par un filtre dynamique de paquets)Sessions Tcp ou Udp (vu par un filtre dynamique de paquets)
11
Les réseaux
tcpdumptcpdump Permet la collecte de tout le trafic à partir de l'interface Permet la collecte de tout le trafic à partir de l'interface
réseau par défaut et envoie toutes les sorties vers la réseau par défaut et envoie toutes les sorties vers la consoleconsole FiltreFiltre
permet de spécifier les enregistrements que l’on désire collecter. permet de spécifier les enregistrements que l’on désire collecter. permet de préciser le(s) champ(s) d'un datagramme IP qui permet de préciser le(s) champ(s) d'un datagramme IP qui
doi(ven)t être examiné(s) et retenu(s) si les conditions spécifiées doi(ven)t être examiné(s) et retenu(s) si les conditions spécifiées sont satisfaites sont satisfaites
Options: Options: -i-i interface, interface, -n-n évite les résolutions de nom, service évite les résolutions de nom, service CollecteCollecte
Redirection des sorties vers des fichiers (format binaire)Redirection des sorties vers des fichiers (format binaire) tcpdump –i eth0 –w tcpdump –i eth0 –w /tmp/fichlier.dump /tmp/fichlier.dump (enregistrement)(enregistrement) tcpdump –i eth0 –r tcpdump –i eth0 –r /tmp/fichier.dump /tmp/fichier.dump (lecture)(lecture)
12
Les réseaux
Exemple d’utilisation de tcpdumpExemple d’utilisation de tcpdump
Tcpdump –i eth0 dst host 10.1.0.1 and dst port 22
Affiche les paquets avec conditions or, and, not
tcpdump -i eth0 less 60Affiche les paquets d'une taille inférieure/supérieure à celle précisée en paramètre
less, great
tcpdump -i eth0 icmpAffiche les paquets du protocole précisé icmp, ip, arp, rarp, udp, tcp
tcpdump -i eth0 port 21Affiche les paquets du port précisé port
tcpdump -i eth0 dst host 10.1.0.1
Affiche les trames ayant pour destination le host défini en paramètre
dst
tcpdump -i eth0 src host 10.1.0.1
Affiche les trames ayant pour origine le host défini en paramètre
src
tcpdump -i eth0 host 10.1.0.1tcpdump -i eth0 10.1.0.1
Affiche les trames pour le host défini en paramètre
host
ExempleDétailCondition
13
Les réseaux
tcpdump : interprétation
14
La Nat
15
La Nat
NAT = NAT = NNetwork etwork AAddress ddress TTranslationranslation Son rôle :Son rôle :
Permettre de faire face à la pénurie d ’adressePermettre de faire face à la pénurie d ’adresse Masquer les machines qui se trouvent dans son réseauMasquer les machines qui se trouvent dans son réseau Permettre de refaire la politique de routage de son réseau Permettre de refaire la politique de routage de son réseau
sans limitations (partitionnement, isolation des sans limitations (partitionnement, isolation des communautés …)communautés …)
La NatLa Nat n’est pas du filtrage !n’est pas du filtrage ! Nécessite au moins :Nécessite au moins :
Un routeur ou bien un firewall implémentant NATUn routeur ou bien un firewall implémentant NAT Re-numérotation du siteRe-numérotation du site Optimisation avec la création de 2 DNS ( un interne et un Optimisation avec la création de 2 DNS ( un interne et un
externe )externe )
16
La Nat
Le vocabulaire :Le vocabulaire : Routeur NATRouteur NAT : routeur sur lequel NAT a été activée : routeur sur lequel NAT a été activée Site NATSite NAT : site ayant mis en place un routeur NAT au : site ayant mis en place un routeur NAT au
point de connexion de son réseau avec l'Internetpoint de connexion de son réseau avec l'Internet Espace d'adressage publicEspace d'adressage public : L'espace des adresses : L'espace des adresses
gérées par l'IANA7. Ces adresses sont globalement gérées par l'IANA7. Ces adresses sont globalement uniques, elles sont routées sur l'Internet.uniques, elles sont routées sur l'Internet.
Espace d'adressage privéEspace d'adressage privé : L'espace des adresses : L'espace des adresses utilisées en interne par un site NAT. Ces adresses utilisées en interne par un site NAT. Ces adresses sont généralement celles définies par le sont généralement celles définies par le RFC1918, mais pas obligatoirement. RFC1918, mais pas obligatoirement.
C ’est tout de même très fortement conseillé !!C ’est tout de même très fortement conseillé !! Pour mémoirePour mémoire : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
17
La Nat
Translation des adresses IP de l’en-têteTranslation des adresses IP de l’en-tête Recalcul et vérification du checksumRecalcul et vérification du checksum Recalcul et modification du checksum TCPRecalcul et modification du checksum TCP
18
La Nat
Méthodes de traduction :Méthodes de traduction : StatiqueStatique : le couple adresse interne, adresse externe : le couple adresse interne, adresse externe
est figé . C ’est utilisé pour les serveurs internes est figé . C ’est utilisé pour les serveurs internes devant être contactés de l’extérieur ou bien des devant être contactés de l’extérieur ou bien des authentifications externes basée sur l’adresse IP authentifications externes basée sur l’adresse IP (Base de donnée Web, X11 …)(Base de donnée Web, X11 …)
DynamiqueDynamique : La correspondance est temporaire, à : La correspondance est temporaire, à l’établissement de la connexion l’adresse externe est l’établissement de la connexion l’adresse externe est prise dans un pool d’adresse pour une durée prise dans un pool d’adresse pour une durée déterminée (par un timeout). Lorsque tout le pool déterminée (par un timeout). Lorsque tout le pool d’adresse est utilisé, les autres machines internes ne d’adresse est utilisé, les autres machines internes ne peuvent plus sortir peuvent plus sortir
19
La Nat
Pat : Port Address Translation PAT est une extension de la NAT Il n’y a plus correspondance entre une @ interne et une @
externe mais @interne+n° de port, @externe+n° de port Une même adresse externe peut être utilisée par plusieurs
machines internes
20
La Nat
La MasqueradeLa Masquerade C’est un PAT poussé à l’extrêmeC’est un PAT poussé à l’extrême Prend l'adresse de translation d'après une Prend l'adresse de translation d'après une
interface réseau spécifiéeinterface réseau spécifiée Tout le trafic semble venir de la machine Tout le trafic semble venir de la machine
implémentant la masquerade implémentant la masquerade Avec 1 interface réseau : plus de trafic possible vers la Avec 1 interface réseau : plus de trafic possible vers la
machine depuis l'extérieurmachine depuis l'extérieur
21
La Nat
Exemple d’utilisation de NAT/PAT:Exemple d’utilisation de NAT/PAT: frontal d’une ferme de calculfrontal d’une ferme de calcul Station et campagne de mesureStation et campagne de mesure Salle de formation (libre service)Salle de formation (libre service) Partage d’une connexion internet par le câble, Partage d’une connexion internet par le câble,
ADSL ou bien même téléphoniqueADSL ou bien même téléphonique
22
La Nat
Avantages : Par défaut toutes les machines sont cachées de l’extérieur. Il faut
explicitement déclarer celle qui doivent héberger des services externes
Détection plus faciles des attaques de l’intérieur vers l’extérieur (nombre de translations en forte croissance d’un seul coup)
Inconvénients : Difficulté de remonter à l’adresse d’origine d’une attaque sur son
site ( on ne peut pas tracer toutes les translations sans écroulement des performances)
Problème pour les protocoles utilisant des adresses IP dans la partie DATA (il faut aussi les changer)
Problème des protocoles passant des adresses dans la partie data mais cryptées (IPSec par exemple)
23
Le filtrage
24
Le filtrage
C'est un des moyens de limiter les flux entre C'est un des moyens de limiter les flux entre différents réseauxdifférents réseaux
Une méthode : le filtrage de paquetsUne méthode : le filtrage de paquets le rôle principal du filtre de paquets est de le rôle principal du filtre de paquets est de
contrôler les paquets qui le traversent pour passer contrôler les paquets qui le traversent pour passer d’un réseau à l’autred’un réseau à l’autre
La manière de filtrer : La manière de filtrer : statique vs dynamiquestatique vs dynamique
25
Le filtrage
Concepts de filtrage de paquetsConcepts de filtrage de paquets Le filtrage de paquets consiste à autoriser ou bloquer le Le filtrage de paquets consiste à autoriser ou bloquer le
trafic réseau en fonction des propriétés des protocoles des trafic réseau en fonction des propriétés des protocoles des couches 3 (Ipv4, ..) et 4 (UDP, TCP, ICMP).couches 3 (Ipv4, ..) et 4 (UDP, TCP, ICMP).
Analyse des entêtes d'un paquet :Analyse des entêtes d'un paquet : ProtocoleProtocole Adresse sourceAdresse source Adresse destinationAdresse destination Port source (UDP / TCP) type (ICMP)Port source (UDP / TCP) type (ICMP) Port destination (UDP / TCP) type (ICMP)Port destination (UDP / TCP) type (ICMP) Indicateurs (TCP Syn Ack ...)Indicateurs (TCP Syn Ack ...) Mac AdressesMac Adresses
26
Le filtrage
Concepts de filtrage de paquetsConcepts de filtrage de paquets En fonction de règles préétablies, il prend une En fonction de règles préétablies, il prend une
décision. décision. Mise en place d'une politique globaleMise en place d'une politique globale Mise en place de règles utilisées de manière Mise en place de règles utilisées de manière
séquentielleséquentielle Trois possibilités:Trois possibilités:
AccepterAccepter le paquet (le laisser passer) le paquet (le laisser passer) RefuserRefuser le paquet (répondre que ce n’est pas possible) le paquet (répondre que ce n’est pas possible) RejeterRejeter le paquet (faire comme si il n’était jamais arrivé) le paquet (faire comme si il n’était jamais arrivé)
27
Le filtrage
Les mécanismes (le matching):Les mécanismes (le matching): Les règles sont explorées Les règles sont explorées dans l’ordredans l’ordre C’est la C’est la première règlepremière règle rencontrée qui correspond rencontrée qui correspond
au paquet qui est appliquéeau paquet qui est appliquée une fois qu'un paquet a trouvé une règle qui lui une fois qu'un paquet a trouvé une règle qui lui
correspond il est matché (sorti du contexte de règles)correspond il est matché (sorti du contexte de règles) Elles sont appliquées sur une interface Elles sont appliquées sur une interface en entrée en entrée
ou en sortieou en sortie La référence est toujours le La référence est toujours le centrecentre de de
l’équipement de filtragel’équipement de filtrage
28
Le filtrage
La difficulté c’est :La difficulté c’est : Analyse du flux du réseauAnalyse du flux du réseau
Qu'est ce qui est vital ?Qu'est ce qui est vital ? Qu'est ce qui est utile ?Qu'est ce qui est utile ? Qu'est ce qui est dangereux ?Qu'est ce qui est dangereux ?
Connaissance des protocoles utilisésConnaissance des protocoles utilisés Beaucoup de rigueur dans la gestion des règlesBeaucoup de rigueur dans la gestion des règles La complexité est différente entre le filtrage d'un La complexité est différente entre le filtrage d'un
poste local versus d'une passerelle filtranteposte local versus d'une passerelle filtrante
29
Le filtrage
Problématique de filtrageProblématique de filtrage Les protocoles complexes misent en jeuLes protocoles complexes misent en jeu
Exemple le DNSExemple le DNS
30
Le filtrage
Problématique de filtrageProblématique de filtrage Les protocoles complexes misent en jeuLes protocoles complexes misent en jeu
Exemple le service FTPExemple le service FTP
31
Le filtrage statique (stateless)
Consiste à filtrer les paquets IP sans tenir compte Consiste à filtrer les paquets IP sans tenir compte du contexte de connexion en TCPdu contexte de connexion en TCP Pour Pour tcptcp seul les flags sont regardés pour seul les flags sont regardés pour establishedestablished
Par exemple:Par exemple: Les ACLs de routeurs, les firewalls kernel 2.0.x ou 2.2.x Les ACLs de routeurs, les firewalls kernel 2.0.x ou 2.2.x
(ipchains ou ipfwadm)(ipchains ou ipfwadm)
Conséquence sur la mise en œuvre, il faut autoriser: Conséquence sur la mise en œuvre, il faut autoriser: les paquets dans les 2 sensles paquets dans les 2 sens les connexions multi-sessionsles connexions multi-sessions mais le problème c'est que des paquets non liés à des mais le problème c'est que des paquets non liés à des
sessions peuvent traverser le filtre... sessions peuvent traverser le filtre...
32
Le filtrage statique (stateless)
AvantageAvantage Concept et syntaxe simpleConcept et syntaxe simple Sécurisation relativement efficace mais insuffisante en Sécurisation relativement efficace mais insuffisante en
entrée de siteentrée de site
InconvénientsInconvénients Nécessite une surveillance attentive des logsNécessite une surveillance attentive des logs Pas de support de certains protocoles sans ouvrir de Pas de support de certains protocoles sans ouvrir de
grosses brèches dans le filtragegrosses brèches dans le filtrage Cartographie du réseau protégé facileCartographie du réseau protégé facile ports dynamiques : netmeeting …ports dynamiques : netmeeting … connexions initiées depuis l’extérieur (ftp, X11, …)connexions initiées depuis l’extérieur (ftp, X11, …)
33
Le filtrage dynamique (statefull) Consiste à filtrer les flux en tenant compte des Consiste à filtrer les flux en tenant compte des
contextescontextes Introduit le notion de session (tcp/udp)Introduit le notion de session (tcp/udp) Ainsi si le firewall autorise un flux, il autorisera tous les Ainsi si le firewall autorise un flux, il autorisera tous les
paquets liés à se flux, dans paquets liés à se flux, dans les deux sensles deux sens, à condition qu'ils , à condition qu'ils soient soient rattachés à une sessionrattachés à une session
Si un paquet correspondant à un flux autorisé arrive sans Si un paquet correspondant à un flux autorisé arrive sans qu'une session ait été ouverte, le paquet sera qu'une session ait été ouverte, le paquet sera automatiquement automatiquement rejetérejeté. .
Exemple de filtrage dynamique : Exemple de filtrage dynamique : ipfilter (FreeBSD), netfilter, CheckPoint Firewall-1 ipfilter (FreeBSD), netfilter, CheckPoint Firewall-1
(commercial) etc..(commercial) etc.. Le filtrage dynamique est plus gourmand en Le filtrage dynamique est plus gourmand en
traitements et en mémoire traitements et en mémoire
34
Le filtrage dynamique (statefull) Son principe:Son principe:
On contrôle le trafic sortant pour en déduire ce qu’il faut laisser On contrôle le trafic sortant pour en déduire ce qu’il faut laisser entrerentrer
On garde dans une table toutes les nouvelles connexions On garde dans une table toutes les nouvelles connexions sortantes jusqu’à une fin de session ou bien un timeoutsortantes jusqu’à une fin de session ou bien un timeout Pour TCP un paquet sortant avec un Pour TCP un paquet sortant avec un synsyn Pour UDP s'il est le Pour UDP s'il est le premier paquetpremier paquet sortant contenant une adresse sortant contenant une adresse
et un port et un port non récentnon récent On autorise un paquet à rentrer que si la connexion est déjà On autorise un paquet à rentrer que si la connexion est déjà
dans la table.dans la table. L’entrée est retirée de la table à la fin de session pour tcp ou bien L’entrée est retirée de la table à la fin de session pour tcp ou bien
sur timeout pour les autres protocoles sur timeout pour les autres protocoles support des protocoles appliquant des créations de canaux support des protocoles appliquant des créations de canaux
multiples résultants d'une négociation dans un canal de contrôlemultiples résultants d'une négociation dans un canal de contrôle
35
Le filtrage dynamique (statefull) Exemple : Exemple : le service FTPle service FTP ( (mode actifmode actif))
FTP est dans le sens interne-externeFTP est dans le sens interne-externe le client FTP se trouve à l'intérieurle client FTP se trouve à l'intérieur le serveur dans le réseau externele serveur dans le réseau externe
Avec du filtrage statique , ouvrir les ports Avec du filtrage statique , ouvrir les ports supérieurs à 1023 en tcp pour le port client à supérieurs à 1023 en tcp pour le port client à partir du port 20 du serveur partir du port 20 du serveur
Avec du filtrage dynamique, on n'a plus Avec du filtrage dynamique, on n'a plus d'ouverture d'ouverture Un Suivi de session sur ftp est associé à l'entrée interne Un Suivi de session sur ftp est associé à l'entrée interne
du dispositif de filtragedu dispositif de filtrage
36
Le filtrage dynamique (statefull) Exemple : Exemple : le service FTPle service FTP ( (mode passifmode passif))
FTP est dans le sens interne-externeFTP est dans le sens interne-externe le client FTP se trouve à l’extérieur du réseaule client FTP se trouve à l’extérieur du réseau le serveur est intégralement dans le réseau localle serveur est intégralement dans le réseau local
Avec du filtrage statique , il faut ouvrir une plage Avec du filtrage statique , il faut ouvrir une plage de ports prédéfinis supérieurs à 1023 en tcp sur de ports prédéfinis supérieurs à 1023 en tcp sur serveur pour tous les clientsserveur pour tous les clients
Avec du filtrage dynamique, on n'a plus Avec du filtrage dynamique, on n'a plus d'ouverture d'ouverture De même, un Suivi de session sur ftp est associé à De même, un Suivi de session sur ftp est associé à
l'entrée interne du dispositif de filtragel'entrée interne du dispositif de filtrage
37
Le filtrage dynamique (statefull) Aujourd’hui, le filtrage statique n’est plus Aujourd’hui, le filtrage statique n’est plus
suffisant en entrée de site, il faut aller vers suffisant en entrée de site, il faut aller vers des solutions de filtrage dynamiquedes solutions de filtrage dynamique
Ne pas hésiter aussi à l’employer même sur Ne pas hésiter aussi à l’employer même sur les postes clients les postes clients
Les portables qui peuvent être connecté à n’importe Les portables qui peuvent être connecté à n’importe quels réseauxquels réseaux
Les serveurs accessible de l’extérieur Les serveurs accessible de l’extérieur ( Web,ftp,dns,…)( Web,ftp,dns,…)
38
Le filtrage : netfilter/iptables
Filtrage sous linux:Filtrage sous linux: NetfilterNetfilter agit dans la partie noyau linux agit dans la partie noyau linux IptablesIptables sert d’outil de configuration en espace utilisateur sert d’outil de configuration en espace utilisateur
Commande linux : Commande linux : iptablesiptables
Quelques caractéristiques:Quelques caractéristiques: Firewall statefullFirewall statefull Gestion de la NatGestion de la Nat Architecture modulaireArchitecture modulaire Système de logs évoluéSystème de logs évolué Les règles sont évaluées de façon séquentielle de la Les règles sont évaluées de façon séquentielle de la
première à la dernière première à la dernière du haut vers le bas dans les fichiers de règles utilisésdu haut vers le bas dans les fichiers de règles utilisés scriptable en shellscriptable en shell
39
Le filtrage : netfilter/iptables
Architecture:Architecture: Modulaire : ajout de modules au niveau du noyau Modulaire : ajout de modules au niveau du noyau
linux pour netfilterlinux pour netfilter ajout simple de nouvelles fonctionnalitésajout simple de nouvelles fonctionnalités aise en place de mécanismes pour des protocoles aise en place de mécanismes pour des protocoles
compliqués (ftp, irc etc…)compliqués (ftp, irc etc…) ip_nat_ftpip_nat_ftp (suivi du nat pour ftp)(suivi du nat pour ftp) ip_conntrack_ftp ip_conntrack_ftp (suivi de session ftp)(suivi de session ftp) ip_conntrack_h323 ip_conntrack_h323 (suivi de session visioconf) (suivi de session visioconf) ip_conntrack_irc ip_conntrack_irc (suivi de session IRC) (suivi de session IRC) ipt_string ipt_string (gestion des chaînes de caractères)(gestion des chaînes de caractères) ipt_owner ipt_owner (gestion des utilisateurs, groupes, pid) (gestion des utilisateurs, groupes, pid)
40
Le filtrage : netfilter/iptables
Architecture:Architecture: Se découpe en trois tablesSe découpe en trois tables
filterfilter : cette table contient toutes les règles de filtrage : cette table contient toutes les règles de filtrage nat nat : table utilisée pour la translation d’adresse: table utilisée pour la translation d’adresse manglemangle : c'est la table qui contient les règles pour la : c'est la table qui contient les règles pour la
marquage de paquetsmarquage de paquets Chaque table est divisée en chaîneChaque table est divisée en chaîne
un groupe de un groupe de chaînes prédéfinieschaînes prédéfinies qui correspondent aux qui correspondent aux actions effectuées par actions effectuées par netfilternetfilter sur le paquet. sur le paquet.
des chaînes utilisateurs qui permettent la création de des chaînes utilisateurs qui permettent la création de ses propres chaînes afin de structurer ses règlesses propres chaînes afin de structurer ses règles
Utilisation:Utilisation: -t -t -t-t natnat ou ou -t -t filter filter (optionnelle car par défaut)(optionnelle car par défaut)
41
Le filtrage : netfilter/iptables
Architecture:Architecture: Les chaînes prédéfinies de la table Les chaînes prédéfinies de la table filterfilter : :
INPUTINPUT : Tous les paquets destinés à cet ordinateur passent dans : Tous les paquets destinés à cet ordinateur passent dans cette chaîne cette chaîne
OUTPUTOUTPUT : Tous les paquets créés par cet ordinateur passent dans : Tous les paquets créés par cet ordinateur passent dans cette chaîne cette chaîne
FORWARDFORWARD : c'est la chaîne par laquelle transitent les paquets qui : c'est la chaîne par laquelle transitent les paquets qui traversent la machine d'une interface à une autretraversent la machine d'une interface à une autre
Les chaînes prédéfinies de la table Les chaînes prédéfinies de la table natnat: : PREROUTINGPREROUTING : Les paquets arrivant de l'extérieur passent dans : Les paquets arrivant de l'extérieur passent dans
cette chaîne avant d'être routés. Elle permet de modifier la cette chaîne avant d'être routés. Elle permet de modifier la destination de la connexion pour, par exemple, re-diriger une destination de la connexion pour, par exemple, re-diriger une connexion connexion
POSTROUTINGPOSTROUTING : Les paquets passent dans cette chaîne après la : Les paquets passent dans cette chaîne après la décision de routage, juste avant que le paquet soit expédié. Elle décision de routage, juste avant que le paquet soit expédié. Elle permet la modification de la source de la connexionpermet la modification de la source de la connexion
OUTPUTOUTPUT : Elle fonctionne comme la chaîne : Elle fonctionne comme la chaîne PREROUTINGPREROUTING mais mais pour les connexions issues d'un processus de l'ordinateurpour les connexions issues d'un processus de l'ordinateur
42
Le filtrage : netfilter/iptables
Architecture:Architecture: Utilisation des chaînesUtilisation des chaînes
-A-A : ajoute une règle à la chaîne: ajoute une règle à la chaîne -D-D : supprime une règle à la chaîne: supprime une règle à la chaîne -I-I : insère une règle dans une chaîne en position n°: insère une règle dans une chaîne en position n° -R-R : remplacer une règle par la règle n°: remplacer une règle par la règle n° -N-N : créer une chaîne utilisateur: créer une chaîne utilisateur -X-X : supprime une chaîne utilisateur: supprime une chaîne utilisateur -L-L : liste les chaînes et règles actives: liste les chaînes et règles actives
Exemple:Exemple: -A -A INPUTINPUT : ajoute une règle dans la chaîne INPUT : ajoute une règle dans la chaîne INPUT
43
Le filtrage : netfilter/iptables
Architecture:Architecture: Les tests appliqués aux paquetsLes tests appliqués aux paquets
Dans quel sens gérer le filtrage ?Dans quel sens gérer le filtrage ? -i-i : en entrée d'une interface, : en entrée d'une interface, -o-o en sortie en sortie
Quel protocole ?Quel protocole ? -p-p : choix du protocole auquel s'applique la règle (udp,...) : choix du protocole auquel s'applique la règle (udp,...)
Vérification d'une sourceVérification d'une source Soit pour l'adresseSoit pour l'adresse -s -s, soit pour le port , soit pour le port --sport--sport Une seule adresse ou réseau Une seule adresse ou réseau (192.168.12.0/24)(192.168.12.0/24)
Vérification d'une destinationVérification d'une destination Soit pour l'adresseSoit pour l'adresse -d -d, soit pour le port , soit pour le port --dport--dport Une seule adresse ou réseau Une seule adresse ou réseau (192.168.12.0/24)(192.168.12.0/24)
44
Le filtrage : netfilter/iptables
Architecture:Architecture: Filtrage d’étatFiltrage d’état
ESTABLISHEDESTABLISHED : paquet associé à une connexion déjà établie : paquet associé à une connexion déjà établie NEWNEW : paquet demandant une nouvelle connexion : paquet demandant une nouvelle connexion INVALIDINVALID : paquet associé à une connexion inconnue : paquet associé à une connexion inconnue RELATEDRELATED : Nouvelle connexion mais liée à une connexion : Nouvelle connexion mais liée à une connexion
déjà acceptéedéjà acceptée Utilisé par le module stateUtilisé par le module state
-m -m statestate --state --state ESTABLISHEDESTABLISHED
45
Le filtrage : netfilter/iptables
Architecture:Architecture: Une décision : les cibles possibles de la table filterUne décision : les cibles possibles de la table filter On dit aussi « On dit aussi « matchermatcher » un paquet » un paquet Options possibles:Options possibles:
ACCEPTACCEPT : on laisse passer le paquet : on laisse passer le paquet REJECTREJECT : on supprime le paquet et on prévient la source : on supprime le paquet et on prévient la source DROPDROP : on supprime simplement le paquet : on supprime simplement le paquet LOGLOG : on enregistre une notification du paquet dans : on enregistre une notification du paquet dans syslogsyslog
Utilisation :Utilisation : -j -j -j -j ACCEPTACCEPT
46
Le filtrage : netfilter/iptables
Architecture:Architecture: Une décision : les cibles possibles de la table natUne décision : les cibles possibles de la table nat
MASQUERADEMASQUERADE : source nat en utilisant l'adresse IP d'une : source nat en utilisant l'adresse IP d'une interface réseauinterface réseau
SNATSNAT : source nat en spécifiant une adresse ou pool d'adresses: source nat en spécifiant une adresse ou pool d'adresses Changement d'une adresse source dans un paquetChangement d'une adresse source dans un paquet Spécification des adresses : Spécification des adresses : --to-source--to-source
DNATDNAT : nat de destination en spécifiant une adresse, ou un port : nat de destination en spécifiant une adresse, ou un port appelé port forwarding lors des redirections de portappelé port forwarding lors des redirections de port Changement d'une adresse de destination (ou d'un port de Changement d'une adresse de destination (ou d'un port de
destination) dans un paquetdestination) dans un paquet Spécification des adresses :Spécification des adresses : --to-destination --to-destination
Utilisation :Utilisation : -j -j -j -j DNATDNAT --to-destination--to-destination 192.168.10.12192.168.10.12
47
Le filtrage : netfilter/iptables
Construction d’une règleConstruction d’une règle CommandeCommande
iptablesiptables Une chaîne d’applicationUne chaîne d’application
-A -A INPUTINPUT (OUPUT, FORWARD …)(OUPUT, FORWARD …) Une interface d’application de la règleUne interface d’application de la règle
-i/o-i/o eth0 eth0 (interface réseau)(interface réseau) Un protocoleUn protocole
-p -p udp/tcp/icmpudp/tcp/icmp Un étatUn état
-m -m state state --state--state NEW, ESTABLISHED NEW, ESTABLISHED Un motifs d’identification (élément du filtrage)Un motifs d’identification (élément du filtrage)
-s -s Adresse_IpAdresse_Ip --sport--sport Numéro_Port Numéro_Port -d-d Adresse_Ip Adresse_Ip --dport --dport Numéro_Port Numéro_Port
Un décisionUn décision -j-j ACCEPT ACCEPT (DROP, REJECT …)(DROP, REJECT …)
48
Le filtrage : netfilter/iptables
Initialisation des règles de filtrageInitialisation des règles de filtrage Vider toutes les règles d’une chaînesVider toutes les règles d’une chaînes
iptables iptables –F –F / / iptables –t nat iptables –t nat -F-F Efface toutes les chaînesEfface toutes les chaînes
iptables iptables –X –X / / iptables –t nat iptables –t nat –X –X Remets les compteurs à zéroRemets les compteurs à zéro
iptablesiptables –Z–Z / / iptables –t nat iptables –t nat –Z–Z Affichage complet des règles, chaînes et compteursAffichage complet des règles, chaînes et compteurs
Option:Option: -n -n :: sans résoudre les noms ou services sans résoudre les noms ou services,, -v-v : mode verbeux: mode verbeux
Commande:Commande: iptablesiptables -L-L –nv –nv // iptablesiptables –t nat -L –t nat -L -nv-nv
49
Le filtrage : netfilter/iptables
Politique de filtragePolitique de filtrage
•
• Une politique bienvenue : tout interdit saufUne politique bienvenue : tout interdit sauf
iptablesiptables -P-P INPUTINPUT DROP DROP iptables iptables -P -P FORWARDFORWARD DROP DROP iptables iptables -P-P OUTPUTOUTPUT DROP DROP
Attention ! Une fois lancé tous les paquets qui ne trouvent pas Attention ! Une fois lancé tous les paquets qui ne trouvent pas de règle qui les « matche » seront alors bloquésde règle qui les « matche » seront alors bloqués
En entrée Tout refuser sauf ...En sortie Tout accepter sauf voir plutôt tout refuser sauf ...
En entrée Tout accepter sauf ...En sortie Tout accepter
MaintenantAvant
50
Le filtrage : netfilter/iptables
La gestion des journaux La gestion des journaux LOG LOG : journalise tous les paquets correspondant à cette : journalise tous les paquets correspondant à cette
règle. règle. Les paquets sont journalisés par le noyau, le fichier Les paquets sont journalisés par le noyau, le fichier /etc/syslog.conf/etc/syslog.conf
détermine l'emplacement où ces entrées sont enregistrées. détermine l'emplacement où ces entrées sont enregistrées. Par défaut, elles sont placées dans le fichier Par défaut, elles sont placées dans le fichier /var/log/messages/var/log/messages. .
Options utilisées après la cible LOG :Options utilisées après la cible LOG : --log-level--log-level : détermine le niveau de priorité d'un événement de : détermine le niveau de priorité d'un événement de
journalisation (journalisation (voir syslogvoir syslog)) --log-prefix--log-prefix : ajoute une chaîne comportant au maximum 29 : ajoute une chaîne comportant au maximum 29
caractères avant la ligne du journal, facilite la lecture des journauxcaractères avant la ligne du journal, facilite la lecture des journaux
51
Le filtrage : netfilter/iptables
Les chaînes utilisateurs : extension à l'existantLes chaînes utilisateurs : extension à l'existant permet de fabriquer ces propre chaînespermet de fabriquer ces propre chaînes optimisation de l'ensemble des règlesoptimisation de l'ensemble des règles
iptables –Niptables –N nomnom : crée une chaîne personnalisée, : crée une chaîne personnalisée, Permet de mettre des règles associées à cette chaîne = Permet de mettre des règles associées à cette chaîne =
rôle d’une fonctionrôle d’une fonction Exemple:Exemple:
iptables -Niptables -N LogAndAcceptLogAndAcceptiptables -A iptables -A LogAndAcceptLogAndAccept -j LOG --log-prefix ‘[Paquets acceptes] : ‘-j LOG --log-prefix ‘[Paquets acceptes] : ‘iptables -A iptables -A LogAndAcceptLogAndAccept -j ACCEPT -j ACCEPT……Iptables Iptables -A-A INPUT -i eth0 -p tcp -m state --state NEW \ INPUT -i eth0 -p tcp -m state --state NEW \
--dport 22 -j --dport 22 -j LogAndAcceptLogAndAccept
52
Le filtrage : netfilter/iptables
Options avancées:Options avancées: - - tcp-flags « Choix » « Armé »- - tcp-flags « Choix » « Armé » : permet filtrage de paquets : permet filtrage de paquets
en utilisant les drapeaux (ACK,FIN,SYN etc.. en utilisant les drapeaux (ACK,FIN,SYN etc.. tous : tous : ALLALL et et aucun : aucun : NONENONE)) Utile pour filtrer des tentatives de scanUtile pour filtrer des tentatives de scan
- -mac-source- -mac-source : compare une adresse MAC de la carte : compare une adresse MAC de la carte d'interface réseau qui a envoyé le paquet d'interface réseau qui a envoyé le paquet
Limites (protège des DoS)Limites (protège des DoS) --limit--limit : limite le nombre de concordance par dans un espace-: limite le nombre de concordance par dans un espace-
temps (nb/temps)temps (nb/temps) --limit-burst--limit-burst : limite le nombre de paquets pouvant être : limite le nombre de paquets pouvant être
comparés à une règle, à un moment donné (nb) comparés à une règle, à un moment donné (nb) Cas de la chaîne FORWARD sous linux:Cas de la chaîne FORWARD sous linux:
Pour que les paquets transitent par 2 interfaces:Pour que les paquets transitent par 2 interfaces: echo 1 > /proc/sys/net/ipv4/ip_forwardecho 1 > /proc/sys/net/ipv4/ip_forward sysctl -a (-p appliquer) avec sysctl.confsysctl -a (-p appliquer) avec sysctl.conf
53
Le filtrage : netfilter/iptables
Options avancées liées à un moduleOptions avancées liées à un module Pour le module Pour le module ipt_owneript_owner
Filtrage en sortie d'un utilisateur avec l'uid=72Filtrage en sortie d'un utilisateur avec l'uid=72 iptables iptables -A-A OUTPUTOUTPUT -o-o eth0 eth0 -p-p tcp tcp -m-m state --state state --state NEWNEW
-m-m owner --owner 72 owner --owner 72 -j -j DROPDROP Pour le module ipt_stringPour le module ipt_string
Filtrage suite au chaîne de caractère trouvé dans Filtrage suite au chaîne de caractère trouvé dans un paquetun paquet iptables iptables -A-A INPUT -i eth0INPUT -i eth0 -p-p tcp tcp -m-m state --state state --state NEWNEW
--dport 80 --dport 80 -m-m string string --to--to 70 70 --algo--algo bm --string 'GET bm --string 'GET /w00tw00t.at.ISC.SANS.' /w00tw00t.at.ISC.SANS.' -j -j DROPDROP
54
Le filtrage : netfilter/iptables
Exemple de filtrage d’un poste client à une interface Exemple de filtrage d’un poste client à une interface avec une politique avec une politique INPUT=DROP/OUTPUT=ACCEPTINPUT=DROP/OUTPUT=ACCEPT iptables iptables -A-A INPUT INPUT -i lo -i lo -j ACCEPT-j ACCEPT iptables iptables -A-A INPUT INPUT -i eth0 --i eth0 -m state \m state \
--state ESTABLISHED, RELATED \ --state ESTABLISHED, RELATED \ -j ACCEPT-j ACCEPT iptablesiptables -A -A INPUT INPUT -i eth0 -p udp --sport 67:68 --dport 67:68 -i eth0 -p udp --sport 67:68 --dport 67:68
-m state --state NEW -m state --state NEW -j ACCEPT-j ACCEPT Iptables Iptables -A-A INPUT INPUT -i eth0 -p tcp -m multiport --dport 22,515 \ -i eth0 -p tcp -m multiport --dport 22,515 \
-m state --state NEW -m state --state NEW -j ACCEPT-j ACCEPT iptables iptables -A -A INPUTINPUT -i eth0 -p icmp --icmp-type echo-request \ -i eth0 -p icmp --icmp-type echo-request \
–j ACCEPT–j ACCEPT
55
Le filtrage : netfilter/iptables
Exemples de Nat , PAT, masquerade Exemples de Nat , PAT, masquerade NAT statiqueNAT statique
iptables -t natiptables -t nat -A -A POSTROUTINGPOSTROUTING -s 192.168.5.1/32 -o eth0 -s 192.168.5.1/32 -o eth0 -j-j SNATSNAT --to-source 10.1.0.1--to-source 10.1.0.1
PAT dynamiquePAT dynamique iptables -t nat iptables -t nat -A-A POSTROUTINGPOSTROUTING -s 192.168.5.0/24 -o eth0 -s 192.168.5.0/24 -o eth0 -j-j
SNATSNAT --to-source 10.1.0.10-10.1.0.20--to-source 10.1.0.10-10.1.0.20 MasqueradeMasquerade
iptables -t nat iptables -t nat -A-A POSTROUTINGPOSTROUTING -s 192.168.5.0/24 -o eth0 -s 192.168.5.0/24 -o eth0 -j -j MASQUERADEMASQUERADE
Port forwardingPort forwarding iptables -t nat iptables -t nat -A-A PREROUTINGPREROUTING -p tcp -i eth0 -d 10.1.0.1 -p tcp -i eth0 -d 10.1.0.1
--dport 80 --dport 80 -j-j DNATDNAT --to 192.168.5.12:8080 --to 192.168.5.12:8080
56
Audit réseau
57
Audit réseau
Apport d’un auditApport d’un audit Analyses et cartographies complètes d’un périmètre donnéAnalyses et cartographies complètes d’un périmètre donné Vérifier le niveau de sécurité et la bonne implémentation de Vérifier le niveau de sécurité et la bonne implémentation de
sa politique de sécuritésa politique de sécurité surveiller la sécurité de son parc informatique surveiller la sécurité de son parc informatique
Plusieurs type d’audits réseauxPlusieurs type d’audits réseaux Audit ouvert : accès à toutes informationsAudit ouvert : accès à toutes informations Audit fermé : pas d’information, mais observation et Audit fermé : pas d’information, mais observation et
sollicitation du systèmesollicitation du système Audit intrusif : tentative de pénétration d’un systèmeAudit intrusif : tentative de pénétration d’un système
On effectue un audit uniquement sur son réseau !On effectue un audit uniquement sur son réseau !
58
Audit réseau : nmap
Le scanner de port Le scanner de port nmapnmap Sert à déterminer à l'aide d'un outil logiciel quelles Sert à déterminer à l'aide d'un outil logiciel quelles
sont:sont: les adresses IP activesles adresses IP actives sur le réseau, sur le réseau, les ports ouvertsles ports ouverts correspondant à des services correspondant à des services
accessibles, accessibles, et et le système d'exploitationle système d'exploitation utilisé par ces serveurs utilisé par ces serveurs
Envoi des requêtes successives sur les différents Envoi des requêtes successives sur les différents ports et analyse les réponses afin de déterminer ports et analyse les réponses afin de déterminer lesquels sont actifs. lesquels sont actifs.
59
Audit réseau : nmap
Les techniques de scanLes techniques de scan La plupart des types de scans ne sont disponibles que pour les La plupart des types de scans ne sont disponibles que pour les
utilisateurs privilégiésutilisateurs privilégiés Toute sa perspicacité est basée sur les paquets renvoyés par les Toute sa perspicacité est basée sur les paquets renvoyés par les
machines cibles (ou les firewall qui les protègent). Les réponses machines cibles (ou les firewall qui les protègent). Les réponses ne sont pas toujours dignes de confiancene sont pas toujours dignes de confiance
-sS-sS : le scan SYN est celui par défaut : le scan SYN est celui par défaut Il envoie un paquet SYN et attend sa réponseIl envoie un paquet SYN et attend sa réponse Une réponse SYN/ACK indique que le port est en écoute (ouvert), Une réponse SYN/ACK indique que le port est en écoute (ouvert),
tandis qu'une RST (reset) indique le contraire tandis qu'une RST (reset) indique le contraire La connexion est donc interrompue (rapide), mais doit être rootLa connexion est donc interrompue (rapide), mais doit être root
-sA-sA : scan TCP Ack : scan TCP Ack Les systèmes non-filtrés réagissent en retournant un paquet RST, et Les systèmes non-filtrés réagissent en retournant un paquet RST, et Les ports qui ne répondent pas ou renvoient certains messages Les ports qui ne répondent pas ou renvoient certains messages
d'erreur ICMP sont considérés comme filtrésd'erreur ICMP sont considérés comme filtrés furtiffurtif
60
Audit réseau : nmap
Les techniques de scan (suite)Les techniques de scan (suite) -sT-sT : scan TCP connect : scan TCP connect
C’est le type de scan par défaut quand le SYN n'est pas utilisable C’est le type de scan par défaut quand le SYN n'est pas utilisable (non root)(non root)
Etablie une connexion sur les ports demandésEtablie une connexion sur les ports demandés C'est plus long et demande plus de paquets pour obtenir la même C'est plus long et demande plus de paquets pour obtenir la même
information, mais il est peu discretinformation, mais il est peu discret -sN; -sF; -sX-sN; -sF; -sX : scans TCP Null, FIN et Xmas : scans TCP Null, FIN et Xmas
Utilise le fait que pour les paquets envoyés à des ports sans aucun Utilise le fait que pour les paquets envoyés à des ports sans aucun des drapeaux SYN, RST ou ACK activés provoque l’émission d’un des drapeaux SYN, RST ou ACK activés provoque l’émission d’un paquet RSTpaquet RST
Scans furtifs qui peuvent même traverser certains pare-feux ou Scans furtifs qui peuvent même traverser certains pare-feux ou routeurs filtrants sans état de connexionrouteurs filtrants sans état de connexion
Risque de pertes de paquets avant arrivée à destinationRisque de pertes de paquets avant arrivée à destination Certains OS ne répondent pas correctement (RST même port ouvert) Certains OS ne répondent pas correctement (RST même port ouvert)
-sU-sU : le scan UDP : le scan UDP Un scan Udp est très lent (les ports ouverts et filtrés ne renvoient que Un scan Udp est très lent (les ports ouverts et filtrés ne renvoient que
rarement des réponses : problème d’expiration de délai de rarement des réponses : problème d’expiration de délai de retransmission)retransmission)
61
Audit réseau : nmap
Les états de port reconnus par NmapLes états de port reconnus par Nmap ouvert (open)ouvert (open)
Une application accepte des connexions TCP ou des paquets UDP Une application accepte des connexions TCP ou des paquets UDP sur ce portsur ce port
fermé (closed)fermé (closed) Un port fermé est accessible (il reçoit et répond aux paquets émis par Un port fermé est accessible (il reçoit et répond aux paquets émis par
Nmap), mais il n'y a pas d'application en écouteNmap), mais il n'y a pas d'application en écoute filtré (filtered)filtré (filtered)
Nmap ne peut pas déterminer si un port est ouvert car les dispositifs Nmap ne peut pas déterminer si un port est ouvert car les dispositifs de filtrage des paquets empêchent les paquets de tests d'atteindre de filtrage des paquets empêchent les paquets de tests d'atteindre leur port cible (ralentissement du scan)leur port cible (ralentissement du scan)
non-filtré (unfiltered)non-filtré (unfiltered) Le port est accessible, mais Nmap est incapable de déterminer s'il Le port est accessible, mais Nmap est incapable de déterminer s'il
est ouvert ou ferméest ouvert ou fermé ouvert|filtré (open|filtered)ouvert|filtré (open|filtered)
Nmap renvoie cette information quand il est incapable de déterminer Nmap renvoie cette information quand il est incapable de déterminer l'état entre un port ouvert et filtré (lorsque les ports ouverts ne l'état entre un port ouvert et filtré (lorsque les ports ouverts ne renvoient pas de réponse ou paquet nmap est dropé par un filtre)renvoient pas de réponse ou paquet nmap est dropé par un filtre)
62
Audit réseau : nmap
Quelques options intéressantes:Quelques options intéressantes: -p-p <port ranges><port ranges> : N'audite que les ports spécifiés : N'audite que les ports spécifiés
nmap -p U:53,111,137,T:21-25,80 10.1.0.1 nmap -p U:53,111,137,T:21-25,80 10.1.0.1 -F-F : le scan rapide se limite aux ports connus : le scan rapide se limite aux ports connus -sV-sV : détection de version des services : détection de version des services
Modes hostilesModes hostiles -D-D : le principe est de le surcharger de fausses attaques : le principe est de le surcharger de fausses attaques
simultanées (avec de fausses adresses sources) tout en lançant simultanées (avec de fausses adresses sources) tout en lançant une attaque réelleune attaque réelle
-T-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane><Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> : règle : règle un profil de comportement au niveau du délaiun profil de comportement au niveau du délai -T0 : 5 min-T0 : 5 min (paranoïd), (paranoïd), -T5 : 5 ms-T5 : 5 ms, , -T3 : profil par défaut-T3 : profil par défaut
Détection de système d’exploitationDétection de système d’exploitation -O-O : Active la détection du système d'exploitation : Active la détection du système d'exploitation
63
VPN
64
VPN
Sécurisation des communicationsSécurisation des communications Remplacement ou sécurisation de tous les protocoles ne Remplacement ou sécurisation de tous les protocoles ne
chiffrant pas l’authentification + éventuellement chiffrement chiffrant pas l’authentification + éventuellement chiffrement des donnéesdes données Permettre d’éviter les écoutes réseauPermettre d’éviter les écoutes réseau Permettre l’accès à des services internes depuis l’extérieurPermettre l’accès à des services internes depuis l’extérieur
Accès haut débits ( ADSL et le câble )Accès haut débits ( ADSL et le câble ) Accès Modem avec des fournisseurs externesAccès Modem avec des fournisseurs externes
Solutions ?Solutions ? On veut garder les protocoles sans modifications On veut garder les protocoles sans modifications
=> créer une connexion chiffrée entre clients et => créer une connexion chiffrée entre clients et serveursserveurs Dans ce cadre on parle de tunnels applicatifs, tunnels et Dans ce cadre on parle de tunnels applicatifs, tunnels et
VPNVPN
65
VPN
Quelles sont les solutions ?Quelles sont les solutions ? Le faire au niveau application (couche 7 )Le faire au niveau application (couche 7 )
Créer de nouvelles applications intégrant les fonctions Créer de nouvelles applications intégrant les fonctions cryptographiquescryptographiques SSHSSH
Le faire au niveau transport ( couche 4 )Le faire au niveau transport ( couche 4 ) Liaison logique entre des programmes qui chiffrent les Liaison logique entre des programmes qui chiffrent les
communications. communications. SSL (https, spop, simap …)SSL (https, spop, simap …)
Le faire au niveau réseau ( couche 3 )Le faire au niveau réseau ( couche 3 ) Le chiffrement est effectué directement au dessus du Le chiffrement est effectué directement au dessus du
support réseau => interface virtuellesupport réseau => interface virtuelle
66
VPN
VPN : Virtual private NetworkVPN : Virtual private Network faire transiter un protocole par l’intermédiaire d ’un faire transiter un protocole par l’intermédiaire d ’un
autre autre Application dans IP ( port forwarding )Application dans IP ( port forwarding ) IP dans IPIP dans IP Ethernet, IPX, appletalk … dans IPEthernet, IPX, appletalk … dans IP
Généralisation du concept de tunnelGénéralisation du concept de tunnel C’est la valise diplomatique de l’informatique avec C’est la valise diplomatique de l’informatique avec
tous les dangers que cela comportetous les dangers que cela comporte Extension du périmètre de sécurité à des machines Extension du périmètre de sécurité à des machines
externesexternes
67
VPN
Types de connexionsTypes de connexions Réseau à RéseauRéseau à Réseau
Equipe de recherche sur un autre siteEquipe de recherche sur un autre site Station de mesureStation de mesure
=> Routage du VPN sur chacun des sites=> Routage du VPN sur chacun des sites Machine à RéseauMachine à Réseau
Utilisateurs itinérants Utilisateurs itinérants
=> Routage des clients VPN sur le site serveur => Routage des clients VPN sur le site serveur Machine à MachineMachine à Machine
68
VPN
Que doit assurer un VPN ?Que doit assurer un VPN ? Authentification ( de préférence forte )Authentification ( de préférence forte ) IntégritéIntégrité ConfidentialitéConfidentialité Protection contre le rejeuProtection contre le rejeu Eventuellement la compressionEventuellement la compression
69
VPN
Eviter les implémentations sur TCPEviter les implémentations sur TCP Problème d’efficacité (c’est parfois la seule solution qui Problème d’efficacité (c’est parfois la seule solution qui
marche )marche ) C’est un outil efficace extrêmement puissantC’est un outil efficace extrêmement puissant Mais … aussi une arme redoutableMais … aussi une arme redoutable Quelques questions : Quelques questions :
Pour quels services ?Pour quels services ? Ou mettre le point d’entrée dans l’architecture réseau ?Ou mettre le point d’entrée dans l’architecture réseau ? Que faut il comme sécurité sur le poste client ?Que faut il comme sécurité sur le poste client ?
A n’utiliser que dans le cadre d’une architecture déjà A n’utiliser que dans le cadre d’une architecture déjà sécuriséesécurisée
70
VPN : OpenVPN
OpenVPN OpenVPN C'est un logiciel open source permettant de créer un VPN C'est un logiciel open source permettant de créer un VPN
basé sur OpenSSLbasé sur OpenSSL multi-platformes (Windows, Linux, BSD, MacOS X, Solaris),multi-platformes (Windows, Linux, BSD, MacOS X, Solaris), Implémentation sécurisée (code, séparation de privilège ...)Implémentation sécurisée (code, séparation de privilège ...) Son avantage est sa simplicité de mise en oeuvreSon avantage est sa simplicité de mise en oeuvre Fonctionne en mode routage ou bridgeFonctionne en mode routage ou bridge Nombreuses options: compression, utilisation de Nombreuses options: compression, utilisation de
certificats ... certificats ... Permet de « Permet de « pusher » pusher » des configurations vers les clientsdes configurations vers les clients
71
VPN : OpenVPN
CaractéristiquesCaractéristiques Distribution d'adresses Ip par pool, et de routesDistribution d'adresses Ip par pool, et de routes Interface dédiée :Interface dédiée :
tunX/tapXtunX/tapX (module du noyau) (module du noyau) Activer le forward de paquets via les interfaces : Activer le forward de paquets via les interfaces :
ip_forward ip_forward Connexion par clé statique pré-partagéConnexion par clé statique pré-partagé Connexion par via certificat X509 / clé RSAConnexion par via certificat X509 / clé RSA Les fichiers de configuration Les fichiers de configuration
Pour une unique configuration :Pour une unique configuration : /etc/openvpn/openvpn.conf/etc/openvpn/openvpn.conf
Pour plusieurs configurations :Pour plusieurs configurations : /etc/openvpn/ /etc/openvpn/ avec dedansavec dedans vpn1.conf vpn1.conf etet vpn2.conf vpn2.conf
72
VPN : OpenVPN Configuration d'un client et serveur
# Configuration du serveur VPN# Configuration du serveur VPN# # local 192.168.1.10 local 192.168.1.10 dev tun0 dev tun0 ifconfig 10.8.0.5 10.8.0.6 ifconfig 10.8.0.5 10.8.0.6 secret ma-cle-secrete.key secret ma-cle-secrete.key cipher AES-128-CBCcipher AES-128-CBCkeepalive 10 60 keepalive 10 60 ping-timer-rem ping-timer-rem persist-tun persist-tun persist-key persist-key daemon daemon mssfix 1450 mssfix 1450 fragment 1450 fragment 1450
# Configuration du client VPN# Configuration du client VPN##remote 192.168.1.10 remote 192.168.1.10 dev tun0 dev tun0 ifconfig 10.8.0.6 10.8.0.5ifconfig 10.8.0.6 10.8.0.5secret ma-cle-secrete.key secret ma-cle-secrete.key cipher AES-128-CBCcipher AES-128-CBCkeepalive 10 60 keepalive 10 60 ping-timer-rem ping-timer-rem persist-tun persist-tun persist-key persist-key daemon daemon mssfix 1450 mssfix 1450 fragment 1450 fragment 1450
73
VPN : OpenVPN
OpenVPN OpenVPN nécessite de pouvoir passer du traffic UDP sur le port nécessite de pouvoir passer du traffic UDP sur le port
11941194 Sécurise les postes clients Sécurise les postes clients Met en place une politique de routage sur les postes Met en place une politique de routage sur les postes
clientsclients Problème lié au certificat : notamment lors de Problème lié au certificat : notamment lors de
l'utilisation d'une vrai IGC (expiration , révocation ou l'utilisation d'une vrai IGC (expiration , révocation ou renouvellement des certificats)renouvellement des certificats) Utilisation d'une AC auto-signéeUtilisation d'une AC auto-signée
74
C’est fini !!