Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)
Plan
Rappel IP Techniques et outils Réseaux
Outils réseaux ( sniffer,scanner ) Translation d’adresse (NAT, PAT et Masquerade) Filtrage statique Filtrage dynamique Les Réseaux Virtuels (VLAN) Tunnels (tunnels applicatifs et VPN) relais applicatifs (Proxy,Cache)
Architecture sécurisée Questions
Les Réseaux TCP/IP
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
Les réseaux
La pile TCP/IP : modèle OSI
...
Les réseaux: Couche 3
Trame réseau: Les datagrammes (1)
Couche 3 / réseau :
IP (pas orienté connexion, aucune vérification de la réception des paquets, protocole routé)
Type
ICMP(collecte d'informations, résolution des problèmes Types importants : réseau 0 (echo reply) : réponse au message de type 8 Code
Checksum
3 (unreachable) : destinataire inaccessible 5 (redirect) : le routeur remarque que la route qu'a choisi l'ordinateur émetteur n'est pas optimale 8 (echo request) : demande de renvoi d'informations
Les réseaux: couche 4
Datagrammes (2)
Couche 4 / transport :
TCP (fiable, orienté connexion, lent, optimisé pour Internet)
Drapeaux
UDP (peu fiable, sans connexion, rapide, optimisé pour les Intranets)
Les réseaux: Drapeaux TCP
Champ des drapeaux
Drapeau TCP
Représentation
Signification du drapeau
SYN
S
Il signale une requête d'établissement d'une session, il s'agit de la première partie
ACK
Ack
FIN
F
Ce drapeau indique l'intention de l'expéditeur de clore sa connexion avec l'hôte
RESET
R
Ce drapeau indique l'intention de l'expéditeur d'interrompre immédiatement sa connexion
PUSH
P
URGENT
Urg
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
Ce drapeau est en général utilisé pour acquitter la reception des données en provenance
Les réseaux: connexion TCP
Etablissement d’une connexion TCP
Connexion exclusive et unique Repose sur des principes d'acquittements de paquets Le handshake : initialisation d'une connexion TCP
Les réseaux: Session TCP
Sessions Tcp ou Udp (vu par un filtre dynamique de paquets)
Échange DNS
Échange FTP
Pour ProFTPd dans /etc/proftpd.conf PassivePorts 45000 45020
Pour wu-ftp dans /etc/ftpaccess Passive port 0.0.0.0/0 45000 45020
Équipements d'interconnexion Niveau OSI
Datagrammes Trames Trains de Bits
7
Passerelle, Gateway
3
Routeurs
2
Pont => Commutateur « switch »
Passerelle
1 Répéteur => Concentrateur « hub »
Routeur Commutateur
Outils Réseaux
Sniffer (tcpdump , wireshark: ex ethereal) Scanner ( nmap , openVAS : ex nessus )
tcpdump
tcpdump
Permet la collecte de tout le trafic à partir de l'interface réseau par défaut et envoie toutes les sorties vers la console
Filtre
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 doi(ven)t être examiné(s) et retenu(s) si les conditions spécifiées sont satisfaites Options: -i interface, -n évite les résolutions de nom, service
Collecte
Redirection des sorties vers des fichiers (format binaire) tcpdump –i eth0 –w /tmp/fichlier.dump (enregistrement) tcpdump –i eth0 –r /tmp/fichier.dump (lecture)
tcpdump:exemples
Exemple d’utilisation de tcpdump
Condition
Détail
Exemple
host
Affiche les trames pour le host défini en paramètre
tcpdump -i eth0 host 10.1.0.1 tcpdump -i eth0 10.1.0.1
src
Affiche les trames ayant pour origine le host défini tcpdump -i eth0 src host 10.1.0.1 en paramètre
dst
Affiche les trames ayant pour destination le host défini en paramètre
tcpdump -i eth0 dst host 10.1.0.1
port
Affiche les paquets du port précisé
tcpdump -i eth0 port 21
icmp, ip, arp, rarp, udp, tcp less, great
Affiche les paquets du protocole précisé
tcpdump -i eth0 icmp
Affiche les paquets d'une taille inférieure/supérieure à celle précisée en paramètre
tcpdump -i eth0 less 60
or, and, not
Affiche les paquets avec conditions
Tcpdump –i eth0 dst host 10.1.0.1 and dst port 22
Tcpdump: interprétation
tcpdump : interprétation
Audit réseau
Apport d’un audit
Analyses et cartographies complètes d’un périmètre donné Vérifier le niveau de sécurité et la bonne implémentation de sa politique de sécurité
Plusieurs type d’audits réseaux
surveiller la sécurité de son parc informatique
Audit ouvert : accès à toutes informations Audit fermé : pas d’information, mais observation et sollicitation du système Audit intrusif : tentative de pénétration d’un système
On effectue un audit uniquement sur son réseau !
Audit réseau : nmap
Le scanner de port nmap
Sert à déterminer à l'aide d'un outil logiciel quelles sont:
les adresses IP actives sur le réseau, les ports ouverts correspondant à des services accessibles, et le système d'exploitation utilisé par ces serveurs
Envoi des requêtes successives sur les différents ports et analyse les réponses afin de déterminer lesquels sont actifs.
Audit réseau : nmap
Les techniques de scan La plupart des types de scans ne sont disponibles que pour les utilisateurs privilégiés 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 ne sont pas toujours dignes de confiance -sS : le scan SYN est celui par défaut
Il envoie un paquet SYN et attend sa réponse Une réponse SYN/ACK indique que le port est en écoute (ouvert), tandis qu'une RST (reset) indique le contraire La connexion est donc interrompue (rapide), mais doit être root
-sA : scan TCP Ack
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 d'erreur ICMP sont considérés comme filtrés furtif
Audit réseau : nmap
Les techniques de scan (suite) -sT : scan TCP connect
-sN; -sF; -sX : scans TCP Null, FIN et Xmas
C’est le type de scan par défaut quand le SYN n'est pas utilisable (non root) Etablie une connexion sur les ports demandés C'est plus long et demande plus de paquets pour obtenir la même information, mais il est peu discret 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 paquet RST Scans furtifs qui peuvent même traverser certains pare-feux ou routeurs filtrants sans état de connexion Risque de pertes de paquets avant arrivée à destination Certains OS ne répondent pas correctement (RST même port ouvert)
-sU : le scan UDP
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 retransmission)
Audit réseau : nmap
Les états de port reconnus par Nmap ouvert (open)
fermé (closed)
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 leur port cible (ralentissement du scan)
non-filtré (unfiltered)
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 écoute
filtré (filtered)
Une application accepte des connexions TCP ou des paquets UDP sur ce port
Le port est accessible, mais Nmap est incapable de déterminer s'il est ouvert ou fermé
ouvert|filtré (open|filtered)
Nmap renvoie cette information quand il est incapable de déterminer 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)
Audit réseau : nmap
Quelques options intéressantes: -p
: N'audite que les ports spécifiés
-F : le scan rapide se limite aux ports connus -sV : détection de version des services
Modes hostiles -D : le principe est de le surcharger de fausses attaques simultanées (avec de fausses adresses sources) tout en lançant une attaque réelle -T : règle un profil de comportement au niveau du délai
nmap -p U:53,111,137,T:21-25,80 10.1.0.1
-T0 : 5 min (paranoïd), -T5 : 5 ms, -T3 : profil par défaut
Détection de système d’exploitation -O : Active la détection du système d'exploitation
NAT, PAT et MASQUERADE
NAT Network Address Translation
Son rôle :
Permettre de faire face à la pénurie d ’adresse Masquer les machines qui se trouvent dans son réseau Permettre de refaire la politique de routage de son réseau sans limitations (partitionnement, isolation des communautés …)
Nécessite au moins :
Un routeur ou bien un firewall implémentant NAT Renumérotation du site Création de 2 DNS ( un interne et un externe )
NAT ( Vocabulaire )
Routeur NAT :Routeur sur lequel NAT a été activé Site NAT :Site ayant mis en place un routeur NAT au point de connexion de son réseau avec l'Internet Espace d'adressage public : L'espace des adresses gérées par l'IANA7. Ces adresses sont globalement uniques, elles sont routées sur l'Internet. Espace d'adressage privé : L'espace des adresses utilisées en interne par un site NAT. Ces adresses sont généralement celles définies par le RFC1918, mais pas obligatoirement.
C ’est tout de même très fortement conseillé
Pour mémoire 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
NAT Mécanisme
Translation des adresses IP de l’en-tête Recalcul et vérification du checksum Recalcul et modification du checksum TCP
NAT
Méthodes de traduction :
Statique : le couple adresse interne, adresse externe est figé . C ’est utilisé pour les serveurs internes devant être contactés de l’extérieur ou bien des authentifications externes basée sur l’adresse IP (Base de donnée Web, X11 …)
Dynamique : La correspondance est temporaire, à l ’établissement de la connexion l ’adresse externe est prise dans un pool d ’adresse pour une durée déterminée ( par un timeout ). Lorsque tout le pool d ’adresse est utilisé, les autres machines internes ne peuvent plus sortir
PAT Port Address Translation
Extension de 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
Activation de NAT-PAT sur CISCO Traduction statique
ip nat inside source static 10.1.1.1 192.2.2.1 ip nat inside source static tcp 10.1.65.1 3000 192.2.2.2 80 ip nat pool net-192 192.2.2.128 192.2.2.255 netmask 255.255.255.128 ip nat inside source list 1 pool net-192 overload Pour PAT interface serial0 ip address 171.69.232.182 255.255.255.240 ip nat outside interface connectée au interface connectée au monde externe (outside) monde externe (outside) interface ethernet0 ip address 10.1.1.254 255.255.255.0 interface connectée au interface connectée au ip nat inside réseau interne (inside) réseau interne (inside) access-list 1 permit 10.1.1.0 0.0.0.255 Translation des adresses 10.1.1.0/24 des hosts internes vers l’adressage globale unique 192.2.2.128/25.
Linux IP NAT
Mise en route : » # echo 1 > /proc/sys/net/ipv4/ip_forward active l'ip forwarding » # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE active la translation d'adresse
ATTENTION CECI PERMET DE FAIRE FONCTIONNER LA MASQUERADE EN AUCUN CAS CECI est suffisant pour TRANSFORMER VOTRE LINUX EN FIREWALL
Linux iptables NAT
Vrai NAT avec linux ( noyau 2.4 ou 2.6 + iptables ) Nat , PAT statique et dynamique , Masquerade
NAT statique
iptables -t nat -A POSTROUTING -s 192.168.3.1/32 -o eth0 -j SNAT --to-source xx.xx.xx.1
PAT dynamique
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth0 -j SNAT --to-source xx.xx.xx.10-xx.xx.xx.20
Port forwarding
iptables –t nat –A PREROUTING –p tcp –i eth0 –j DNAT --dport 80 --to 192.168.1.1:8080 Masquerade iptables –t nat –A POSTROUTING –s 192.168.10.0/24 –o eth0 –j MASQUERADE Log iptables -t nat -A POSTROUTING -s 192.168.213.0/24 -o eth0 -j LOG --log-prefix NAT-216
NAT Avantages et Inconvénients
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)
NAT Avantages et inconvénients (suite)
SMTP : pouvoir tracer la machine source => passer par un relais interne WEB : passer par un cache et Surtout ne pas se dispenser d ’avoir des filtres efficaces en sortie comme pour tous les sites ...