linux sécurité des réseaux

74
Frédéric Bongat 1 Linux sécurité des réseaux Nat – Filtrage – Audit – VPN Nat – Filtrage – Audit – VPN Chef De Projet Informatique Chef De Projet Informatique en Environnement Territorial en Environnement Territorial

Upload: others

Post on 07-Feb-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linux sécurité des réseaux

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

Page 2: Linux sécurité des réseaux

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

Page 3: Linux sécurité des réseaux

3

Les réseaux

Page 4: Linux sécurité des 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

Page 5: Linux sécurité des réseaux

5

Les réseaux

La pile TCP/IP : modèle OSI

...

Page 6: Linux sécurité des réseaux

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

Page 7: Linux sécurité des réseaux

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

Page 8: Linux sécurité des réseaux

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

Page 9: Linux sécurité des réseaux

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

Page 10: Linux sécurité des réseaux

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)

Page 11: Linux sécurité des réseaux

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)

Page 12: Linux sécurité des réseaux

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

Page 13: Linux sécurité des réseaux

13

Les réseaux

tcpdump : interprétation

Page 14: Linux sécurité des réseaux

14

La Nat

Page 15: Linux sécurité des réseaux

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 )

Page 16: Linux sécurité des réseaux

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

Page 17: Linux sécurité des réseaux

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

Page 18: Linux sécurité des réseaux

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

Page 19: Linux sécurité des réseaux

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

Page 20: Linux sécurité des réseaux

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

Page 21: Linux sécurité des réseaux

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

Page 22: Linux sécurité des réseaux

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)

Page 23: Linux sécurité des réseaux

23

Le filtrage

Page 24: Linux sécurité des réseaux

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

Page 25: Linux sécurité des réseaux

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

Page 26: Linux sécurité des réseaux

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

Page 27: Linux sécurité des réseaux

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

Page 28: Linux sécurité des réseaux

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

Page 29: Linux sécurité des réseaux

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

Page 30: Linux sécurité des réseaux

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

Page 31: Linux sécurité des réseaux

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

Page 32: Linux sécurité des réseaux

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, …)

Page 33: Linux sécurité des réseaux

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

Page 34: Linux sécurité des réseaux

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

Page 35: Linux sécurité des réseaux

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

Page 36: Linux sécurité des réseaux

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

Page 37: Linux sécurité des réseaux

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,…)

Page 38: Linux sécurité des réseaux

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

Page 39: Linux sécurité des réseaux

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)

Page 40: Linux sécurité des réseaux

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)

Page 41: Linux sécurité des réseaux

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

Page 42: Linux sécurité des réseaux

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

Page 43: Linux sécurité des réseaux

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)

Page 44: Linux sécurité des réseaux

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

Page 45: Linux sécurité des réseaux

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

Page 46: Linux sécurité des réseaux

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

Page 47: Linux sécurité des réseaux

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

Page 48: Linux sécurité des réseaux

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

Page 49: Linux sécurité des réseaux

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

Page 50: Linux sécurité des réseaux

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

Page 51: Linux sécurité des réseaux

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

Page 52: Linux sécurité des réseaux

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

Page 53: Linux sécurité des réseaux

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

Page 54: Linux sécurité des réseaux

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

Page 55: Linux sécurité des réseaux

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

Page 56: Linux sécurité des réseaux

56

Audit réseau

Page 57: Linux sécurité des réseaux

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 !

Page 58: Linux sécurité des réseaux

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.

Page 59: Linux sécurité des réseaux

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

Page 60: Linux sécurité des réseaux

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)

Page 61: Linux sécurité des réseaux

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)

Page 62: Linux sécurité des réseaux

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

Page 63: Linux sécurité des réseaux

63

VPN

Page 64: Linux sécurité des réseaux

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

Page 65: Linux sécurité des réseaux

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

Page 66: Linux sécurité des réseaux

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

Page 67: Linux sécurité des réseaux

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

Page 68: Linux sécurité des réseaux

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

Page 69: Linux sécurité des réseaux

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

Page 70: Linux sécurité des réseaux

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

Page 71: Linux sécurité des réseaux

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

Page 72: Linux sécurité des réseaux

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

Page 73: Linux sécurité des réseaux

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

Page 74: Linux sécurité des réseaux

74

C’est fini !!