• Aucun résultat trouvé

Sécurisation des communications

N/A
N/A
Protected

Academic year: 2022

Partager "Sécurisation des communications"

Copied!
44
0
0

Texte intégral

(1)

Tunnels et VPN

(2)

Sécurisation des communications

Remplacement ou sécurisation de tous les protocoles ne chiffrant pas l’authentification + éventuellement chiffrement des données

Permettre d’éviter les écoutes réseau

Permettre l’accès à des services internes depuis l’extérieur

Accès haut débits ( ADSL et le câble )

Accès Modem avec des fournisseurs externes

(3)

Quelles sont les solutions ?

 Modification d’applications existantes

=> Problème de compatibilité client-serveur

 telnet windows 2000 !!!

 Sendmail, pop et imap StartTLS (Option négociée)

 On veut garder les protocoles sans modifications

=> créer une connexion chiffrée entre clients et serveurs

Dans ce cadre on parle de tunnels applicatifs, tunnels et

VPN

(4)

Quelles sont les solutions ?

 Le faire au niveau application (couche 7 )

 Créer de nouvelles applications intégrant les fonctions cryptographiques

 SSH

 Le faire au niveau transport ( couche 4 )

 Liaison logique entre des programmes qui chiffrent les communications.

 SSL (https, pops, imaps …)

 Le faire au niveau réseau ( couche 3 )

 Le chiffrement est effectué directement au dessus

du support réseau => interface virtuelle

(5)

VPN et tunnels

 VPN : Virtual private Network

 faire transiter un protocole par l’intermédiaire d ’un autre

 Application dans IP ( port forwarding )

 IP dans IP

 Ethernet, IPX, appletalk … dans IP

 Généralisation du concept de tunnel

 C’est la valise diplomatique de l’informatique avec tous les dangers que cela comporte

 Extension du périmètre de sécurité à des machines

externes

(6)

Tunnels – SSH

SSH

peux être utilisé en tunnel pour des applications ( Port forwarding )

X11 par défaut

Pop et SMTP exemple :

eudora+ putty sous windows

firefox + openssh sous unix

Mode VPN complet depuis openSSH 5

(7)

Tunnels (STUNNEL)

Stunnel

Permet l ’utilisation d ’un certain nombre de protocol TCP

standard au dessus d’une couche SSL ( http, pop, imap, smtp … )

Il ne gère pas telnet et ftp

exemples :

imap démarré au niveau de l ’inetd

imaps stream tcp nowait root \

/usr/local/sbin/stunnel stunnel -l /usr/sbin/imapd imapd

Désormais beaucoup de services supportent les options SSL sans passer par stunnel (wu-imap,courier-imap,dovecot …)

Possibilité d ’activer une connexion PPP à l ’intérieur exemple : (PEU EFFICACE)

Sur le serveur utiliser (-L pour le Pseudo TTY)

"stunnel -d 2020 -L /usr/sbin/pppd -- pppd local“

Sur le client pour activer le lien PPP sécurisé

"stunnel -c -r server:2020 -L /usr/sbin/pppd -- pppd local"

(8)

Numéro de Ports standards sous SSL

https 443/tcp # http protocol over TLS/SSL

smtps 465/tcp # smtp protocol over TLS/SSL (was ssmtp)

nntps 563/tcp # nntp protocol over TLS/SSL (was snntp)

sshell 614/tcp # SSL shell

ldaps 636/tcp # ldap protocol over TLS/SSL (was sldap)

ftps-data 989/tcp # ftp protocol, data, over TLS/SSL

ftps 990/tcp # ftp protocol, control, over TLS/SSL

telnets 992/tcp # telnet protocol over TLS/SSL

imaps 993/tcp # imap4 protocol over TLS/SSL

ircs 994/tcp # irc protocol over TLS/SSL

pop3s 995/tcp # pop3 protocol over TLS/SSL (was spop3)

(9)

VPN: Types de connexions

Réseau à Réseau

Société multisite

=> Routage du VPN sur chacun des sites

Machine à Réseau

Utilisateurs itinérants

=> Routage des clients VPN sur le site serveur

Machine à Machine

vpn direct entre deux machines

(10)

Que doit assurer un VPN ?

Authentification ( de préférence forte )

Intégrité

Confidentialité

Protection contre le rejeu

Eventuellement compression

(11)

Vtun (1)

Http://vtun.sourceforge.net/

supporté sous linux, solaris et *bsd

simplicité de mise en œuvre et documentation très bien faite

supporte le traffic shapping

tunnels IP, Ethernet, PPP, PIPE

compression LZO et ZLIB

Encryption MD5 BLOWFISH

Fonctionne en mode client serveur (serveur sur un port configurable UDP ou TCP)

Défaut: mot de passe en clair dans le fichier de

configuration

(12)

Vtun (2)

Fichier de config client

options {

port 5000; # Connect

persist yes; # Persist mode timeout 60; # General timeout }

# TUN example. Host 'cobra'.

cobra {

pass XXXXXX; # Password device tun1; # Device tun1 up {

# Connection is Up

# Assign IP addresses.

ifconfig "%% 10.3.0.2 pointopoint \ 10.3.0.1 mtu 1450";

};

}

Fichier de config serveur

options {

port 5000; # Listen on this port.

}

# TUN example. Host 'cobra'.

cobra {

pass XXXXXX; # Password type tun; # IP tunnel proto udp; # UDP protocol

comp lzo:9; # LZO compression level 9

encr yes; # Encryption up {

# Connection is Up

# 10.3.0.1 - local, 10.3.0.2 - remote ifconfig "%% 10.3.0.1 pointopoint \ 10.3.0.2 mtu 1450";

};

}

(13)

PPTP Protocole Ouvert M$

PPTP ( Point to Point Tunneling Protocol )

RFC 1701, 1702 et 1171

Microsoft authentification MS/CHAP V2

Microsoft chiffrement MPPE (RC4 40 ou 128 bits)

PPTP ne fait aucun chiffrement

Utilise deux canaux de communication

Port 1723 TCP

protocol IP 47 (GRE) pour les données GRE: Generic Routing Encapsulation

établissement d ’une connexion PPP à l ’intérieur du canal de donnée éventuellement compressé et crypté

Abandonné par Microsoft dans Windows 2000 (L2TP)

A n’utiliser que si c’est la seule solution

(14)

IPSec

IPSec : est un standard ( pas un logiciel )

Inclus dans IPV6

Il assure :

Authentification ( DSS ou RSA)

Intégrité ( MD5 SHA-1 RIPEMD …)

Confidentialité (DES RC5 IDEA Blowfish …)

Une Implémentation libre : FreeS/WAN (Linux)

Port et protocol utilisé:

UDP port 500 IKE

ESP protocol 50 (Encapsulating Security Payload)

AH protocol 51 (Authentication Header)

IPSEC NAT Traversal UDP 4500

(15)

OpenVPN

encapsuler dans un tunnel n'importe quel sous-réseau IP ou adapateur ethernet virtuel, dans un unique port TCP ou UDP;

créer une infrastructure de tunnels entre n'importe quel système d'exploitation supporté par OpenVPN. Sont concernés Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X, et Windows 2000/XP/VISTA

utiliser toutes les fonctionnalités de chiffrement, d'authentification et de certification de la librairie OpenSSL afin de protéger le trafic de votre réseau privé lorsqu'il transite par Internet;

utiliser n'importe quel algorithme de chiffrement, taille de clef, ou

empreinte HMAC (pour l'authentification des datagrammes) supporté par la bibliothèque OpenSSL,

choisir entre un chiffrement conventionnel basé sur une clef statique, ou un chiffrement par clef publique en se basant sur les certificats,

utiliser les clefs statiques, pré-partagée, ou un échange de clef dynamiques basé sur TLS.

(16)

OpenVPN

utiliser une compression des flux adaptée en temps-réel, la mise en forme de trafic pour gérer l'utilisation de la bande-passante du lien,

encapsuler les réseaux dont les extrémités publiques sont

dynamiques comme on peut le rencontrer avec DHCP ou avec des clients connectés par modem,

encapsuler le trafic de réseaux grâce aux firewalls effectuant du suivi de sessions, sans nécessairement utiliser des règles de filtrage particulières,

encapsuler le trafic de réseaux avec du NAT (translation d'adresse), et

créer des ponts ethernets sécurisés utilisant les périphériques tap.

(17)

VPN Conclusions

Eviter les implémentations sur TCP

Problème d’efficacité (c’est parfois la seule solution qui marche )

C’est un outil efficace extrêmement puissant

Mais … aussi une arme redoutable

Une anecdote

Quelques questions :

Pour quels services ?

Ou mettre le point d’entrée dans l’architecture réseau ?

Que faut il comme sécurité sur le poste client ?

A n’utiliser que dans le cadre d’une architecture déjà

sécurisée

(18)

Proxy et reverse proxy

Serveurs mandataires et relais inverses

(19)

Proxy et reverse proxy

Qu'est-ce qu'un proxy ?

Proxy = mandataire (traduction)

Un proxy est un service mandataire pour une application donnée.

C'est à dire qu'il sert d'intermédiaire dans une

connexion entre le client et le serveur pour relayer la requête qui est faite.

Ainsi, le client s'adresse toujours au proxy, et c'est lui

qui s'adresse ensuite au serveur.

(20)

Permet de casser complètement la connectivité directe à l ’internet des machines internes =>

possibilité de fermer tous les ports entre les machines internes et l ’internet

Ne peuvent être utilisé que les applications supportées par un relais applicatif

Exemples :

telnet ftp vers une machine relais puis vers l’internet

cache Web (squid)

serveur relais de messagerie

existence de relais transparents pour certaines applications

socks

Proxy et reverse proxy

(21)

Proxy et reverse proxy

Fonctionnement

Pour une application donnée, http, ftp, smtp, etc, il peut donc modifier les informations à envoyer au serveur, ainsi que celles renvoyées par celui- ci.

La contrepartie est qu'il faut un proxy par application.

Cependant, beaucoup de proxy sont en fait des

multi-proxy qui sont capables de comprendre la

plupart des applications courantes

(22)

Internet

Serveur

messagerie R O U T E U R 2

Proxy WWW

Proxy telnet/ftp Serveur

WWW

R O U T E U R 1

Station 1 Serveur

messagerie

Serveur WWW

195.220.97.3 195.220.97.10

195.220.97.4

195.220.97.5

Réseau adresse officielle 195.220.97/24

Réseaux adresse privée 10/8

10.1.2.2

Station 2

10.1.3.2 10.1.2.4

Station 3 Serveur

telnet

Proxy et reverse proxy

(23)

Proxy et reverse proxy

Fonctionnalités des serveurs

Fonctions de cache

Fonction de d'enregistrement

Fonction de filtre

Fonction de sécurité

Autres fonctions

(24)

Proxy et reverse proxy

Fonction de cache

Le serveur conserve en mémoire toutes les requêtes effectuées par le client

Permet de conserver localement les

informations afin d'être réutilisées ultérieurement

Conséquence

le cache accélère les consultations des informations déjà demandée,

le trafic réseau en est diminué

Réduit les malveillances

(25)

Proxy et reverse proxy

Fonction d'enregistrement

Le serveur garde une trace détaillée de toutes les informations qui le traversent

Génère un fichier journal (fichier de log).

enregistre la trace des requêtes effectuées par tous les clients utilisant le proxy.

L’identification du client,

les dates et heures de connexion,

Les URL des ressources consultés,

les tailles et temps de téléchargement, etc.

(26)

Proxy et reverse proxy

Fonction de filtre

Mise en place de filtre au niveau des requêtes

Analyse des paquets qu'il reçoit et agit ainsi en fonction de la politique de sécurité choisie

Fonction de sécurité

fonction d'authentification

Serveur permettant de protéger les postes clients d'agressions extérieures

Protège des attaques via des accès directs

Attention ce n'est pas un firewall !

(27)

Proxy et reverse proxy

Autres fonctions

Fonction d'anonymat

Les requêtes relayées par un serveur peuvent ne pas

contenir d'adresse du client, de manière à protéger leur

anonymat

(28)

Proxy et reverse proxy

Avantages du proxy

Il est capable d'interpréter le trafic et

notamment de cacher les informations. On diminue ainsi le trafic et augmente la bande passante de la même occasion.

On peut aussi autoriser ou non l'accès à certaines partie d'un site, à certaines

fonctionnalités, etc.

On a donc un bon contrôle de ce qui transite sur

le réseau, et on sait quels protocoles peuvent

circuler.

(29)

Proxy et reverse proxy

Proxy transparent

Le principe :

Le réseau est configuré avec une passerelle par défaut et un serveur DNS.

Chaque requête est automatiquement , et de manière invisible renvoyée vers le proxy par le routeur/firewall.

Le serveur proxy relaye la requete sur le serveur Internet et stocke l'information dans son cache.

Le client croit ainsi dialoguer avec le serveur internet , mais en réalité, elle ne dialogue qu'avec le serveur proxy.

(30)

Proxy et reverse proxy

Proxy transparent

Fonctions :

Mettre en cache les pages les plus visitées, afin

d'éviter de recharger une page qui a déjà été visitée

Forcer les utilisateurs du réseau à utiliser un proxy, qu'ils le veuillent ou non.

Faire utiliser un proxy à toutes les machines d'un réseau sans avoir à configurer chaque application.

Bloquer des applications internet (comme les utilitaires de chat, ou de peer2peer)

sécuriser un réseau qui accède à internet en limitant

l'accès à certaines pages.

(31)

Proxy et reverse proxy

Proxy socks

Socks est un protocole proxy générique pour TCP/IP

Serveur socks linux sur le port 1080/Tcp

Permet l'implémentation de proxy dans des applications (programme java etc..)

l'avantage de ce cette méthode c'est que l'on n'a pas besoin de connaitre le protocole de communication des deux

machines donc pas d'intervention sur les paquets qu'ils se transmettent (gain de temps)

Inconvénient nécessite son implémentation dans les

applications (clients)

(32)

Proxy et reverse proxy

Squid

C'est un serveur proxy cache haute performance, qui supporte les protocoles HTTP, FTP

Il prend en compte toutes les requêtes demandées un seul processus qui est non-bloquant.

Il conserve les données génériques et spécialement les objets très demandés en RAM

il met en cache les requêtes DNS,

Le rôle du cache est de stocker les objets

demandés par les utilisateurs pour la première fois via les protocoles HTTP, FTP

le délais d'accès à un objet devient celui de la

recherche de cet objet dans le cache + les temps

d'accès réseau

(33)

Proxy et reverse proxy

Squid

Il supporte

le cryptage SSL,

une gestion des accès évolués,

une journalisation complète des requêtes

Utilisation du protocole ICP (Internet Cache Protocol)

les caches de squid peuvent être référencés :

Par hiérarchie,

Par sites visités pour minimiser la bande passante

utilisée

(34)

Proxy et reverse proxy

Squid

Le packetage squid contient:

un programme principal nommé Squid ,

un support pour les applications externes (DNS, ftp)

des outils de réecriture de requêtes et d'authentification,

et des outils de gestion.

Utiliser iptables pour utiliser SQUID en tant

que proxy transparent

(35)

Proxy et reverse proxy

Squid : c onfiguration de squid

Options réseau

http_port 3128 : c'est le port sur lequel travaille le cache, 3128 par défaut, certains déplacent ce port en 8080

icp_port 3128 : c'est le port sur lequel le cache peut être interrogé par un autre serveur

udp_incoming/outgoing_adresse : permet de définir sur quelle inteface les requêtes seront reçues

cache_peer hostname type http_port icp_port : définition des serveurs de cache voisins avec lesquels on

communique

visible_hostname : c'est le nom du serveur squid depuis les resaux externes

(36)

Proxy et reverse proxy

Squid : c onfiguration de squid

Configuration principale du cache

cache_mgr admin@formation.jussieu.fr : c'est le nom de l'administrateur du serveur de cache

cache_mem 64 MB : c'est la mémoire que l'on alloue à un serveur Squid

maximum_object_size/maximum_object_size_in_me mory: permet de spécifier la taille maximale des objets stockés dans le cache/mémoire

cache_dir ufs /var/cache 3200 16 256 : indique le répertoire devant accueillir les informations, avec en

paramètre la le type, taille disque (Mo), le nombre de répertoires niveau et sous niveau pour le cache

(37)

Proxy et reverse proxy

Squid : c onfiguration de squid

Configuration user et logs

cache_effective_user/goup nobody nobody : donne des droits à un utilisateur/un groupe pour squid (éviter root)

attention aux droits des fichiers de logs

cache_access_log /var/log/squid/access.log : indique à le fichier log des requêtes appelées

cache_log /var/log/squid/cache.log : fichier journal de squid

cache_store_log none : pour ne pas enregistrer dans un fichier de log les écritures et effacements

d'informations (très verbeux)

(38)

Proxy et reverse proxy

Squid : c onfiguration de squid

Règles d'accès au service

acl HOST_AUTORISE src 10.1.0.0/255.255.0.0 : on définit les réseaux ou les machines autorisées

http_access allow HOST_AUTORISE : on autorise les accès http aux machines définit dans l'acl HOST_AUTORISE

http_access deny all : on interdit toutes les autres

Règles d'accès à une hiérarchie de cache

icp_access allow 192.168.1.10 : on autorise les accès icp à des machines souhaitées

icp_access deny all : on interdit toutes les autres

(39)

Proxy et reverse proxy

Squid : code des requêtes tcp

TCP_HIT : copie valide dans le cache

TCP_IMS_HIT : le client demande une mise à jour, et l'objet est dans le cache et est récent, le proxy ne forward pas la requête.

TCP_IMS_MISS : le client demande une mise à jour, puis le proxy forwarde la requête

TCP_MISS : pas dans le cache

TCP_CLIENT_REFRESH : le client envoie une requête avec une demande de ne pas utiliser le cache, le proxy forward la requête

TCP_REFRESH_HIT : objet dans le cache, mais périmé, le proxy demande une nouvelle version est disponible, réponse : pas de nouvelle version

TCP_REFRESH_MISS : objet dans le cache, mais périmé, demande une mise à jour qu'il reçoit

TCP_REF_FAIL_HIT : objet dans le cache, mais périmé, le proxy

demande une mise à jour, mais n'obtient pas de réponse du serveur, renvoie l'ancienne version

(40)

Proxy et reverse proxy

Proxy transparent

Les utilisateurs doivent paramétrer l'application pour utiliser le proxy,et donc peuvent contourner la

stratégie mise en place.

2 possibilités pour forcer les clients à sortir par le proxy:

utilisez un firewall pour bloquer pour les postes clients avec un accès direct à Internet pour les ports souhaités (http, https...)

rendre le proxy transparent, ce qui veut dire que les clients soient configurés ou non, les requêtes passeront

obligatoirement par le proxy.

Rediriger en PREROUTING le port 80 vers le port 3128 du proxy (pour squid) via la NAT (iptables)

(41)

Proxy et reverse proxy

Proxy transparent avec squid

Routeur (iptables) et le proxy (Squid) sur deux

machines différentes, et le serveur proxy dans une DMZ

Avec un routeur gérant 3 réseaux, deux réseaux locaux LAN (192.168.216.0) et la DMZ (10.1.0.0), et un

accès Internet

Soit le serveur proxy avec l'adresse IP 10.1.0.2

La règle iptables s'écrira alors :

iptables -t nat -A PREROUTING -s

192.168.216.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to- destination 10.1.0.2:3128

Ne pas oublier de modifier les ACL d'accès dans

squid.conf

(42)

Proxy et reverse proxy

Proxy transparent avec squid

Routeur (iptables) et le proxy (Squid) sur la même machines

Avec un routeur gérant son LAN (192.168.216.0) et un accès Internet, avec le service de proxy embarqué :

Soit le serveur proxy avec l'adresse IP 192.168.216.2

La règle iptables s'écrira alors :

iptables -t nat -A PREROUTING -s

192.168.216.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Ne pas oublier de vérifierr les ACL d'accès dans

squid.conf

(43)

Reverse proxy

proxy à l'envers

Permettre à des clients externes d'utiliser un service interne

achemine des requêtes extérieures vers le serveur du réseau interne

garde les propriétés d'un proxy

Utilise SSL (avec l'accélération hardware)

amélioration des performances réseau via les caches ou/et un load balancing

Un serveur web est protégé des attaques directes de l'extérieur, ce qui renforce la sécurité du réseau

interne

Proxy et reverse proxy

(44)

Reverse proxy

Les caches HTTP, HTTPS réduisent de façon drastique la charge des serveurs Web,

La compression « à la volée » du contenu des

documents retournés avec diminution des temps de réponse,

Multiplexage des sessions HTTP(S) avec possibilité de Keep-Alive "synchrone" ou "asynchrone" vers le Web,

Intégration des cartes d’accélération SSL les plus répandues sur le marché

Proxy et reverse proxy

Références

Documents relatifs

Et pour être sur que ce n’est pas juste dans votre tête, vous scrollez dans votre téléphone pour regarder d’anciennes photos et il n’y a plus aucun doute : vous étiez

Vous n'avez qu'à tester, lancez Xampp ( sudo /opt/lampp/lampp start ) sans lancer le programme de sécurisation ; vous verrez que, par votre adresse IP, vous pouvez accéder à tout ce

La détection basée sur les signatures est une méthode parfaite pour repérer les programmes malveillants plus anciens mais elle ne peut rien faire pour bloquer les attaques

Connaissances sur protocoles réseaux, Savoir configurer un serveur, faire et utiliser des machines virtuelles, utiliser Git, D2velopper des applications Web en

● OBJECTIF : Trafic = Séduire les cibles, provoquer le clique afin qu’ils découvrent notre la page d’inspiration sur le site internet de destination. Résultats : 2,28%

Effectuez ces étapes pour configurer le LDAP en utilisant l'interface graphique du contrôleur : Cliquez sur Sécurité > AAA > LDAP afin d'ouvrir les serveurs LDAP.Cette page

The second paper is entitled “Silo, Rainbow, and Caching Token: Schemes for Scalable, Fault Tolerant Stream Caching.” This work proposes several ways to cache different portions of

Au cours de cette année, les membres du conseil d’administration de l’APEL Jally se sont rencontrés virtuellement, à quelques occasions, pour discuter de la qualité de l’eau du