NAT Serveur Mail Serveur Apache et serveurs virtuels SSH/SSL PPP et HDLC Protocoles Avancés Master 1 MI - Luiz Angelo STEFFENEL - L Stefenel 2009 1
Organisation du Cours NAT Serveur Mail Confguration d'un serveur Apache Serveurs Virtuels SSL/TLS PPP et HDLC L Stefenel 2009 2
Réseaux Privés Le RFC 1918 a défni des Réseaux IP Privés Adresses non connectés à l'internet Les adresses IP dans un réseau privé peuvent être attribués de manière arbitraire Aucun enregistrement est nécessaire La pénurie d'adresses IP valides a rendu les réseaus privés très populaires dans le domaine des sous-réseaux «endpoint» Généralement les adresses correspondent aux sous-réseaux expérimentaux suivants (adresses non routés) : 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168.255.255 L Stefenel 2009 3
Adresses Privées H1 H2 H3 H4 10.0.1.2 10.0.1.3 10.0.1.2 10.0.1.3 Private network 1 10.0.1.1 10.0.1.1 Private network 1 R1 Internet 128.195.4.119 128.143.71.21 R2 213.168.112.3 H5 L Stefenel 2009 4
Network Address Translation (NAT) Le NAT est un service ofert par les routeurs afn de traduire les adresses (et aussi les numéros de ports) des datagrames IP qui entrent/quittent un réseau privé Établi initialement dans le RFC 1631 Le NAT ofre la possibilité aux hôtes dans un réseau privé de communiquer avec des hôtes sur l'internet Private network Internet Source = 10.0.1.2 Destination = 213.168.112.3 Source = 128.143.71.21 Destination = 213.168.112.3 private address: 10.0.1.2 public address: 128.143.71.21 NAT device public address: 213.168.112.3 H1 Source = 213.168.112.3 Destination = 10.0.1.2 Source = 213.168.112.3 Destination = 128.143.71.21 H5 Private Address Public Address 10.0.1.2 128.143.71.21 L Stefenel 2009 5
Scénario 1 Nombre limité d'adresses valides Scénario : Le réseau d'une entreprise a un grand nombre de machines mais seule une petite quantité d'adresses IP publiques Solution NAT : Le réseau interne (intranet) est confguré avec des adresses privés Le routeur NAT, placé à la frontière entre le réseau privé et le réseau public, contrôle une liste d'adresses IP publiques Lorsqu'une machine du réseau interne envoie un datagramme, le dispositif NAT choisi une adresses IP publique (de sa liste) et attache cette adresse (bind) à l'adresse privée de la machine L Stefenel 2009 6
Scénario 1 Nombre limité d'adresses valides Private network Internet H1 Source = 10.0.1.2 Destination = 213.168.112.3 private address: 10.0.1.2 public address: NAT device Source = 128.143.71.21 Destination = 213.168.112.3 public address: 213.168.112.3 H5 Private Address 10.0.1.2 Public Address Pool of addresses: 128.143.71.0-128.143.71.30 L Stefenel 2009 7
Scénario 2 Migration de FAI Scénario : L'entreprise dispose d'un sous-réseau CIDR fourni par un FAI. Si l'entreprise décide de changer de FAI, elle est obligée rendre le sous-réseau et à changer les adresses IP des machines Solution NAT : Attribuer des adresses privées aux machines de l'entreprise Le dispositif NAT fait de la traduction statique pour lier chaque adresse privée à une adresse publique La migration de FAI requiert seulement la mise à jour du dispositif NAT. La transition est transparente pour les hôtes du réseau interne Remarque : La diférence avec le scénario précédent est que la traduction est statique L Stefenel 2009 8
Scénario 2 Migration de FAI Source = 10.0.1.2 Destination = 213.168.112.3 Source = 128.143.71.21 Destination = 213.168.112.3 128.143.71.21 ISP 1 allocates address block 128.143.71.0/24 to private network: H1 private address: 10.0.1.2 public address: 128.143.71.21 128.195.4.120 Private network NAT device 128.195.4.120 Source = 128.195.4.120 Destination = 213.168.112.3 ISP 2 allocates address block 128.195.4.0/24 to private network: Private Address Public Address 10.0.1.2 128.143.71.21 128.195.4.120 L Stefenel 2009 9
IP masquerading L'IP masquerading est aussi connu sous d'autres noms Network address and port translation (NAPT) Port address translation (PAT) Scénario : L'entreprise (utilisateur) dispose d'une seule adresse IP publique pour répondre à plusieurs machines dans le réseau interne Solution NAT : Attribuer des adresses privées à chaque machine du réseau local Le dispositif NAT modife les numéros de port du trafc sortant L Stefenel 2009 10
IP masquerading Source = 10.0.1.2 Source port = 2001 Source = 128.143.71.21 Source port = 2100 private address: 10.0.1.2 H1 Private network NAT device 128.143.71.21 Internet private address: 10.0.1.3 H2 Source = 10.0.1.3 Source port = 3020 Source = 128.143.71.21 Destination = 4444 Private Address Public Address 10.0.1.2/2001 128.143.71.21/2100 10.0.1.3/3020 128.143.71.21/4444 L Stefenel 2009 11
Équilibrage de Charge entre les Serveurs Scénario : Un service (serveur web, par exemple) doit être réparti entre plusieurs serveurs afn d'équilibrer la charge, mais l'adresse d'accès est unique (une seule IP) Solution NAT : Attribuer une adresse privée à chaque serveur Le dispositif NAT agit comme un proxy pour les requêtes issues du réseau publique Le dispositif NAT choisi un serveur de destination diférent à chaque nouvelle connexion entrante ex.: alternance de façon «round robin» L Stefenel 2009 12
Équilibrage de Charge entre les Serveurs Private network Source = 128.195.4.120 Destination = 10.0.1.2 S1 10.0.1.2 Source = 128.195.4.120 Destination = 128.143.71.21 NAT device Source = 213.168.12.3 Destination = 128.143.71.21 10.0.1.3 128.143.71.21 Internet S2 10.0.1.4 Source = 128.195.4.120 Destination = 10.0.1.4 Inside network Outside network S3 Private Address Public Address 10.0.1.2 128.143.71.21 Public Address 128.195.4.120 10.0.1.4 128.143.71.21 213.168.12.3 L Stefenel 2009 13
Ce qu'il faut faire attention Performance La modifcation de l'entête IP (traduction de l'adresse) oblige le dispositif NAT à recalculer le checksum de l'entête IP La modifcation de l'entête TCP.UDP (traduction du numéro de port) oblige le dispositif NAT à recalculer le checksum de l'entête TCP/UDP Fragmentation Il faut faire attention à ce qu'un datagramme fragmenté avant l'arrivé au dispositif NAT soit entièrement redirectionné à la même adresse IP / port Connectivité bout-à-bout Le NAT empêche la connectivité end-to-end sur Internet Une machine sur Internet ne peut pas initier une communication avec une machine dans le réseau privé Le problème est encore plus grave si les deux machines appartiennent à des réseaux privés L Stefenel 2009 14
Ce qu'il faut faire attention Adresse IP transporté par les applications Certaines applications et protocoles applicatifs transportent les adresses IP directement avec les données Ces applications difcilement arrivent à communiquer à travers la frontière publique/privée Quelques dispositifs NAT regardent les données de certains protocoles bien connus à la recherche d'adresses IP Si le dispositif trouve des adresses «cible», il les traduit selon le tableau de traduction d'adresses L Stefenel 2009 15
Exemple : NAT et FTP Opération normale du protocole FTP FTP client H1 public address: 128.143.72.21 PORT 128.143.72.21/1027 public address: 128.195.4.120 FTP server H2 200 PORT command successful RETR myfile 150 Opening data connection establish data connection L Stefenel 2009 16
Exemple : NAT et FTP Dispositif NAT adapté au protocole FTP Actif (très rare) Private network Internet FTP client private address: 10.0.1.3 public address: 128.143.72.21 NAT device FTP server H1 PORT 10.0.1.3/1027 PORT 128.143.72.21/1027 H2 200 PORT command successful 200 PORT command successful RETR myfile RETR myfile 150 Opening data connection 150 Opening data connection establish data connection establish data connection L Stefenel 2009 17
Exemple : NAT et FTP FTP en mode passif avec NAT Private network Internet FTP client private address: 10.0.1.3 public address: 128.143.72.21 NAT device public address: 128.195.4.120 FTP server H1 PASV PASV H2 Entering Passive Mode 128.195.4.120/10001 Entering Passive Mode 128.195.4.120/10001 Establish data connection Establish data connection L Stefenel 2009 18
Confguration de NAT sous Linux Linux utilise le système Netflter/iptables pour rajouter des règles de fltrage aux datagrammes IP To application From application filter INPUT nat OUTPUT Yes Destination is local? No filter FORW ARD filter OUTPUT nat PREROUTING (DNAT) nat POSTROUTING (SNAT) Incoming datagram Outgoing datagram L Stefenel 2009 19
Confgurer NAT avec iptables Premier exemple (traduction 1<->1) : iptables t nat A POSTROUTING s 10.0.1.2 j SNAT --to-source 128.143.71.21 Liste d'adresses IP : iptables t nat A POSTROUTING s 10.0.1.0/24 j SNAT --to-source 128.128.71.0 128.143.71.30 Migration de FAI: iptables t nat R POSTROUTING s 10.0.1.0/24 j SNAT --to-source 128.195.4.0 128.195.4.254 IP masquerading : iptables t nat A POSTROUTING s 10.0.1.0/24 o eth1 j MASQUERADE Équilibrage de charge : iptables -t nat -A PREROUTING -i eth1 -j DNAT --todestination 10.0.1.2-10.0.1.4 L Stefenel 2009 20
Organisation du Cours NAT Serveur Mail Confguration d'un serveur Apache Serveurs Virtuels SSL/TLS PPP et HDLC L Stefenel 2009 21
Pourquoi gérer son propre serveur de courriers? Plus de transit par le fournisseur d accès pour la messagerie en interne Choix de l interconnexion des sites distants Sécurité des données Pas de limite de quotas Filtrage sur mesure des courriers INCONVENIENTS : Demande un niveau de compétences élevé Une responsabilité accrue vis-à-vis des utilisateurs, mais aussi de la communauté Internet L Stefenel 2009 22
Les fonctionnalités requises Echange de Mails dans l entreprise et vers l extérieur Consultation accessible par WebMail Protection contre les virus Filtrage des courriers non sollicités L Stefenel 2009 23
Les besoins De préférence une IP Fixe Une connexion Internet Haut-Débit Un nom de domaine associé à votre IP Le protocole SMTP Les protocoles POP et IMAP Un routeur/nat si le serveur est sur une IP privée L Stefenel 2009 24
POSTFIX : le MTA Le MTA est l agent de transfert des courriers POSTFIX est disponible : www.postfx.org En tant que MTA, POSTFIX ne fournit aucune fonctionnalité de récupération des courriers par les utilisateurs, il ne fournit que le protocole SMTP L'architecture POSTFIX est composé de plusieurs processus (daemons) Chacun de ces daemons à une fonction bien précise et distincte Le daemon nommé master assure la gestion des diférents processus L Stefenel 2009 25
POSTFIX : Arrivée des Messages Trois façons de recevoir les messages : SMTP : La manière la plus classique, les messages sont traités par le daemon SMTPD QMQP : Les messages proviennent d un autre MTA QMAIL et sont pris en charge par le daemon QMQPD SENDMAIL : Les messages générés par des scripts ou émis par des applicatifs locaux transitent souvent par le MTA SENDMAIL, ceux-ci sont alors remis au daemon POSTDROP Ce processus créé un fchier message dans le répertoire MAILDROP de la fle d attente de POSTFIX. C est le daemon PICKUP qui surveille les arrivées et remets les nouveaux messages au daemon CLEANUP L Stefenel 2009 26
POSTFIX : Le processus CLEANUP Après avoir reçus les messages, les daemons SMTPD, QMQPD et PICKUP les transmettent au processus CLEANUP CLEANUP efectue les tâches suivantes : Application des règles de limitation de tailles des messages Application des règles utilisateurs de fltrage de contenu Réécriture éventuelle d adresses d expéditeur et/ou de destinataires à l aide du daemon TRIVIAL-REWRITE Ajout des en-têtes obligatoires manquantes CLEANUP place ensuite les messages dans le processus responsable de la fle d attente d entrée QMGR L Stefenel 2009 27
POSTFIX : La livraison des messages POSTFIX est doté de plusieurs agents de livraison de messages (MDA) : Une partie cliente SMTP chargée de router les messages vers les autres serveurs via le protocole du même nom. Un agent de livraison LOCAL qui livre les messages aux utilisateurs locaux du système. Un agent VIRTUAL si le système héberge des boîtes aux lettres d utilisateurs virtuels (Utilisateurs sans comptes Shell) Les processus PIPE et SPAWN qui permettent de développer ses propres agents de livraison. L Stefenel 2009 28
POSTFIX : Installation Comme tous les logiciels sous Linux, POSTFIX peut-être installé de diférents façons : A partir des sources A partir d un paquetage propre à la distribution de Linux utilisée apt-get install postfx (Debian / Ubuntu) L Stefenel 2009 29
POSTFIX : Confguration Les fchiers de confguration sont au format texte et sont donc éditables facilement avec un simple éditeur. Les principaux fchiers sont : master.cf main.cf Ils se trouvent dans le dossier : /etc/postfx Après chaque modifcation de ces fchiers, la confguration de postfx doit être rechargée : postfx reload L Stefenel 2009 30
POSTFIX : main.cf les informations sur votre domaine : mydomain = a203.net myhostname = debian-prof myorigin = $mydomain ou $myhostname mydestination = $mydomain, $myhostname, localhost. $mydomain relayhost = [smtp.monfai.com] mynetworks = 192.168.1.0/24, 172.16.0.0/16 L Stefenel 2009 31
POSTFIX : Mailbox ou Maildir Par défaut POSTFIX livre les messages locaux dans des fchiers au format Mailbox (mbox) Ces fchiers portent le nom de l utilisateur de destination et se situent dans le dossier : /var/mail ou /var/spool/mail Il existe UN seul fchier par boîtes aux lettres L Stefenel 2009 32
POSTFIX : Mailbox ou Maildir Pour éviter les inconvénients des fchiers mbox, il existe un autre format de boîtes aux lettres : Maildir Il utilise plusieurs répertoires et un fchier par message La boîte d arrivée des messages se situe généralement dans le répertoire personnel de chaque utilisateur. Cette option est défnie dans le fchier main.cf : Home_mailbox = Maildir/ La commande maildimake permet de créer les boîtes dans les répertoires utilisateurs L Stefenel 2009 33
Lire le courrier : POP et IMAP POSTFIX ne fournissant que le protocole SMTP, il est nécessaire d installer d autres logiciels pour les utilisateurs puissent récupérer leurs messages : courier-imap courier-pop ATTENTION, ces deux produits ne fonctionnent qu avec des boîtes au format Maildir L Stefenel 2009 34
Lire le courrier : WEBMAIL La solution Webmail présente plusieurs avantages, aussi bien du coté client que du coté administration Une seule installation à réaliser : Celle de l application WebMail sur le serveur La possibilité de pouvoir interroger ses mails de n importe quel endroit de la planète à partir d un simple navigateur Elle peut présenter aussi quelques inconvénients : Nécessite un espace disque plus important sur le serveur car les utilisateurs y laisseront la totalité de leurs messages Pas de possibilité de consulter ses messages si l utilisateur n est pas connecté au réseau La gestion des pièces jointes de tailles importantes est parfois impossible L Stefenel 2009 35
Lire le courrier : Webmail Exemples de serveur Webmail : SQUIRRELMAIL HORDE L installation nécessite : Un Serveur Apache Php Généralement les produits sont extensibles et de nombreux plug-ins sont fournis Comme tout les applications WebMail, des connexions sécurisées SSL sont possibles L Stefenel 2009 36
Filtrage des messages : PROCMAIL Procmail fournit des règles permettant d appliquer des traitements particuliers à tous les messages arrivant sur le système. Il permet entre autres : De rediriger les messages vers des listes de distribution De rediriger les messages vers certaines boîtes aux lettres en fonction de critères défnis De supprimer certains messages à l arrivée De mettre en place un service de répondeur automatique en cas d absence prolongée De passer le traitement du courrier à une autre application : Antivirus (ClamAV,...) Antispams (Spamassassin,...) L Stefenel 2009 37
Les sauvegardes Aucun système n est à l abris d une panne, une sauvegarde est indispensable. Vous devez sauvegarder : Les données d authentifcation Les fchiers de confguration du système de messagerie Les boîtes aux lettres des utilisateurs La fle d attente des messages Les fchiers de log La liste des logiciels installés L Stefenel 2009 38
Sécurité du Système Le relais de messagerie est aujourd hui le point sensible du système Exploitation de failles de sécurité (webmail Roundcube,...) Plusieurs solution existent permettant à chacun de pouvoir déposer des messages sur le serveur SMTP quelque soit l endroit où il se trouve : Les VPN création de tunnels cryptés vers un réseau L authentifcation SMTP (SMTP-AUTH) Cette méthode nécessite l installation d un autre logiciel Cyrus- SASL. En efet, POSTFIX n implémente pas cette fonction L Stefenel 2009 39
Organisation du Cours NAT Serveur Mail Confguration d'un serveur Apache Serveurs Virtuels SSL/TLS PPP et HDLC L Stefenel 2009 40
APACHE Le serveur Apache 2 répond actuellement pour environ 50% des sites web existants (les valeurs varient selon les sources) Serveur web de code source ouvert (open source) opérations très optimisées intégration facile de modules divers (php, ajax, tomcat) sécurité : les failles sont corrigées très rapidement Trois modes «multiprocessus» prefork non threadé worker threadé répond à la charge en variant le nombre de processus perchild threadé répond à la charge en variant le nombre de threads par processus L Stefenel 2009 41
APACHE Installation sous Ubuntu apt-get install apache2-mpm-worker ou apt-get install apache2-mpm-prefork ou apt-get install apache2-mpm-perchild daemon : apache2 port 80 (http) port 443 (https) script de démarrage : apache2 /etc/init.d/apache2 start L Stefenel 2009 42
Confguration de Base Lancer le serveur Apache /etc/init.d/apache2 start Vérifer que Apache tourne correctement ps -aux grep httpd chargé) (vérife si le serveur a été naviguer sur http://localhost(afche une page si correct) le répertoire par défaut des fchiers est /var/www/ Recharger les fchiers de confguration (après modifcation) /etc/init.d/apache2 reload Arrêter le serveur /etc/init.d/apache2 stop L Stefenel 2009 43
Confguration /etc/apache2/apache2.conf Autres fchiers et répertoires utilisés (sous /etc/apache2) httpd.conf ports.conf conf.d/ mods-available mods-enabled/ sites-available/ sites-enabled/ proxy-conf L Stefenel 2009 44
Édition du fchier apache2.conf À l'aide de votre éditeur préféré (vi, nano, etc.), ouvrir le fchier /etc/apache2/apache2.conf On y trouve notamment : utilisateur et groupe qui «tournent» le serveur apache User www-data Group www-data les fchiers par défaut (chargés sans qu'on donne leurs noms) DirectoryIndex index.html index.php index.xhtml le répertoire par défaut des pages des utilisateurs (décommenter) # UserDir public_html L Stefenel 2009 45
Édition du fchier apache2.conf Le journal des erreurs ErrorLog /var/log/apache2/error.log Le fchier à afcher en cas d'erreur ErrorDocument Une sortie formatée des connections CustomLog Le fchier où sont défnies les portes d'écoute # Include ports listing Include /etc/apache2/ports.conf L Stefenel 2009 46
Serveurs Virtuels - Motivation Il est courant d'héberger des dizaines de sites dans un seul serveur. Parfois, ces sites ont des adresses diférents (site- 1.cpnv.com, mars.ouaga.fr,...) Lorsque les requêtes HTTP atteignent notre serveur http, celuici va regarder dans ses règles afn de trouver dans quel répertoire il doit se diriger. C'est là que la gestion des virtualhosts va intervenir Également, la réponse doit inclure dans l'en-tête http l'adresse virtuelle initialement demandée En conséquence, nous créerons une entrée pour chaque site hébergé sur notre serveur Cette entrée contiendra le domaine prévu, et le répertoire de redirection L Stefenel 2009 47
Serveurs Virtuels - les diférents types Les serveurs virtuels peuvent être crées selon diférentes approches : Les Hôtes Virtuels basés sur l'adresse IP Très utile lorsque le serveur a plusieurs cartes réseau Hôtes Virtuels basés sur le numéro de port Le numéro de port donne accès à des services diférents C'est le cas des serveurs HTTPS (qui écoutent sur le por 443) Hôtes Virtuels basés sur le nom Diférents noms sont confgurés dans le DNS L Stefenel 2009 48
Confguration Prenons par exemple deux sites, www.test1.com - la page principale de l'entreprise intranet.test1.com la page interne Nous alons créer un répertoire pour chaque site sous /var/www /var/www/test1 /var/www/intranet Pour chaque site nous allons créer un fchier de confguration sous le répertoire /etc/apache2/sites-available Remarque : si un site par défault est déjà en activité, il doit être confguré pour répondre à toutes les requêtes sauf celles destinées aux serveurs virtuels L Stefenel 2009 49
Confguration de Base Créer deux fchiers (un par virtual server) avec au moins ces informations <VirtualHost IP:PORT> ServerName NOM DocumentRoot CHEMIN </VirtualHost> La balise <VirtualHost IP:PORT> Indique quel est l'ip et port d'écoute (* ou *:80 généralement) La balise ServerName NOM Indique le nom du serveur virtuel (utilisé pour fltrer les requêtes) La balise DocumentRoot CHEMIN Indique le chemin des pages de ce serveur virtuel L Stefenel 2009 50
Fichier de confguration pour www.test1.com <VirtualHost *> ServerAdmin postmaster@test1.com ServerName www.test1.com ServerAlias test1.com DocumentRoot /var/www/test1/ ErrorLog /var/www/test1/logs/error.log ErrorDocument 404 /var/www/test1/erreur.html LogLevel warn </VirtualHost> L Stefenel 2009 51
Fichier de confguration pour intranet.test1.com <VirtualHost *> ServerAdmin postmaster@test1.com ServerName intranet.test1.com DocumentRoot /var/www/intranet/ ErrorLog /var/www/intranet/logs/error.log ErrorDocument 404 /var/www/intranet/erreur.html LogLevel warn </VirtualHost> L Stefenel 2009 52
L'heure de la vérité On sauvegarde les fchiers Pour activer le domaine nous faisons un lien symbolique dans le répertoire sites-enabled : ln -s /etc/apache2/sites-available/test1.com /etc/apache2/sites-enabled/test1.com On redémare apache2 : /etc/init.d/apache2 restart Et on peut accéder à notre répertoire : http://www.test1.com/ L Stefenel 2009 53
Protéger l'accès à une page web Utilisation du contrôle htaccess 1 modifer la confguration du serveur pour permettre le contrôle via htaccess <VirtualHost *> ServerAdmin postmaster@test1.com ServerName intranet.test1.com DocumentRoot /var/www/intranet/ <directory /var/www/intranet/> AllowOverride AuthConfig Order deny,allow </directory> ErrorLog /var/www/intranet/logs/error.log ErrorDocument 404 /var/www/intranet/erreur.html LogLevel warn </VirtualHost> L Stefenel 2009 54
Créer un fchier de mots de passe Pour protéger un répertoire avec un mot de passe il faut : Créer un fchier avec les mots de passe htpasswd -c /chemin/passwd user (création du fchier) htpasswd /chemin/passwd autreuser (rajouter un user) Options : -m (MD5) ou -d (crypt) ou -p (plain text) Rajouter les règles d'authentifcation dans le fchier.htaccess qui est dans le répertoire concerné AuthType Basic AuthName "Restricted Files" # (Following line optional) AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require user rbowen L Stefenel 2009 55
Groupe d'utilisateurs Créer un fchier groupes avec le format GroupName: rbowen dpitts sungo rshersey Créer un fchier avec les mots de passe des utilisateurs Rajouter les règles d'authentifcation dans le fchier.htaccess qui est dans le répertoire concerné AuthType Basic AuthName "By Invitation Only" # Optional line: AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords AuthGroupFile /usr/local/apache/passwd/groups Require group GroupName Autre option est de rajouter uniquement «Require valid-user» accepte uniquement les users avec un mot de passe L Stefenel 2009 56
Questions de Sécurité Mots de passe stockés en format texte option : utilisation d'une base de données AuthBasicProvider dbm AuthDBMUserFile /www/passwords/passwd.dbm Transmission du mot de passe en clair mot de passe transmis à chaque lecture de page ou d'image d'un répertoire protégé option : la méthode d'authentifcation AuthType Digest utilise la méthode d'hachage MD5 créer le fchier de mots de passe avec l'outil htdigest méthode récente -> difcilement supporté par des navigateurs anciens (<2004) L Stefenel 2009 57
.htaccess avec la méthode Digest Création du fchier de mots de passe root# htdigest -c.passwd 'zone restricte' user Puis modifcation de.htaccess AuthType Digest AuthName "zone restricte" AuthDigestDomain /intranet/ http://intranet.teste1.com AuthDigestProvider fle AuthUserFile /var/www/intranet/.senhas Require valid-user L Stefenel 2009 58
En cas de problèmes Lisez les messages d'erreur Cherchez dans /var/log/apache2/... la description des problèmes Google ;) http://doc.ubuntu-fr.org/apache2 http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2 L Stefenel 2009 59
Organisation du Cours NAT Serveur Mail Confguration d'un serveur Apache Serveurs Virtuels SSL/TLS PPP et HDLC L Stefenel 2009 60
Défnition et historique SSL : Secure Socket Layer est le standard dans les communications et les transactions sécurisées Historique 1994 : Netscape développe le protocole SSL SSL permet à un client d authentifer le serveur Seul le Netscape Navigator utilise ce protocole 1995 : SSL V3 permet au serveur d authentifer le client. 2001 : IETF achète le brevet du SSL et le rebaptise TLS (Transport Layer Security) L Stefenel 2009 61
Pourquoi utiliser SSL SSL est standardisé Il existe une version libre de SSL : OpenSSL (http://www.openssl.org) que vous pouvez utiliser dans vos programmes sans payer de royalties OpenSSL est opensource: tout le monde peut contrôler et vérifer le code source (Le secret réside dans les clés de chifrement, pas dans l'algorithme lui-même) SSL a été cryptanalysé : ce système a été plus analysé que tout ses concurrents. SSL a été passé en revue par de nombreux spécialistes en cryptographique Il est répandu : on peut facilement créer des programmes qui dialogueront avec d'autres programmes utilisant SSL L Stefenel 2009 62
Fonctionnalités Authentifcation Authentifcation du serveur par le client Authentifcation mutuelle Confdentialité Intégrité Non répudiation L Stefenel 2009 63
Authentifcation du serveur Le client a besoin de s assurer de l identité du serveur avant l envoi des informations sensibles Utilisé dans le domaine du commerce électronique (B2C) Basé sur les certifcats électroniques : Le serveur envoie son certifcat au client. Le client s assure de la validité du certifcat et de la signature de ce dernier par une autorité de certifcation de confance. Si le certifcat est valide le client peut entamer une communication sécurisée avec le serveur (session). L Stefenel 2009 64
Authentifcation mutuelle Le serveur aussi a besoin de s assurer de l identité du client Utilisé dans le domaine du commerce électronique (B2B) et dans le cas où une partie du SI est disponible sur le web pour des utilisateurs autorisés seulement À son tour, le client doit envoyer son certifcat au serveur Ce certifcat est accepté s il est valide et signé par une autorité de certifcation de confance L Stefenel 2009 65
Confdentialité Une fois la session établie, les deux entités peuvent échanger leurs informations en toute sécurité Utilisation de la cryprographie SSL utilise le cryptage asymetrique (RSA, Dife-Hellmann) pour ouvrir une session Défnition d'une clé maître SSL utilise le cryptage symétrique (DES, 3DES, IDEA, RC4) pour chifrer la transmission des données Clé de dession Aprés l'établissement des clés, toute autre personne qui intercepte les informations échangées est incapable de les déchifrer puisque elle ne connaît pas la clé de session Pendant une certaine durée de temps L Stefenel 2009 66
Intégrité Une tierce personne peut toujours changer les informations sans avoir besoin de les déchifrer Certains types d'attaque man in the middle SSL protège les informations échangés contre ces modifcations. Ceci garantie la véracité des informations reçues (N de la carte de crédit) SSL envoie avec les messages une empreinte numérique issue d une fonction de hachage Probabilité très réduite de collision L Stefenel 2009 67
Non répudiation SSL est utilisé dans des domaines très sensibles tel que le commerce électronique Lorsqu une transaction est faite SSL peut empêcher le fait qu une personne nie avoir efectué cette transaction Mécanisme de la signature électronique : l émetteur signe ces messages par sa clé privée (stockée seulement chez lui) le récepteur vérife cette signature avec la clé publique qui se trouve dans le certifcat de l émetteur L Stefenel 2009 68
Fonctionnement Client Commencer la session Serveur Certificat serveur Clé maîtresse cryptée Session établie Demande de certificat Certificat client Échange de données cryptées par clé de session L Stefenel 2009 69
Composantes SSL se compose de deux parties : SSL Record Protocol : assure la confdentialité et l intégrité des données échangées SSL Handshake Protocol, SSL ChangeCipherSpec et SSL Alert assurent l authentifcation et l établissement de la session Handshake ChangeCipherSpec Alert SSL Record Protocol Protocole applicatif TCP IP L Stefenel 2009 70
Les utilisations de SSL SSL peut être utilisé pour sécuriser pratiquement n'importe quel protocole utilisant TCP/IP Certains protocoles ont été spécialement modifés pour SSL : HTTPS : HTTP+SSL FTPS est une extension de FTP (File Transfer Protocol) utilisant SSL SSH (Secure Shell) : telnet (ou rlogin) sécurisé Il est possible de sécuriser des protocoles en créant des tunnels SSL. Une fois le tunnel créé, vous pouvez faire passer n'importe quel protocole dedans (SMTP, POP3, HTTP, NNTP...) L Stefenel 2009 71
Qui vérife un Certifcat? Ce sont les PKI (Public Key Infrastructure), des sociétés externes (auxquelles vous faites implicitement confance), qui vont vérifer l'authenticité du certifcat (La liste de ces PKI est incluse dans votre navigateur VeriSign, Thawte (crée par Mark Shuttleworth, fondateur d'ubuntu), etc. Ces PKI signent cryptographiquement les certifcats des entreprises Normalement, c'est un service payant L Stefenel 2009 72
Créer un certifcat Un certifcat contient des informations concernant l'identité de son détenteur (la personne qui publie les données) Ce certifcat s'accompagne d'une clé publique qui est indispensable pour que la communication entre les machines soit chifrée Ain de garantir l'authenticité du certifcat, ce dernier est signé numériquement par le biais d'une clé privée provenant soit d'un organisme ofciel (Société spécialisée dans la certifcation) soit par le détenteur du Certifcat lui même Dans ce dernier cas, on parlera de certifcat auto-signé Un certifcat auto-signé ne sera pas reconnu par les navigateurs internet comme étant certifé CA Cert (http://www.cacert.org/) permet d'obtenir des certifcats gratuits Il faut néanmoins installer le certifcat racine dans votre navigateur L Stefenel 2009 73
Activer SSL sur Apache 2 Activation du module SSL Pour que le protocole SSL puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module ssl avec la commande sudo a2enmod ssl puis recharger la confguration d'apache2 sudo /etc/init.d/apache2 force-reload Créer un certifcat auto-signé sous Ubuntu 8.10 sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem Autant le certifcat que la clé sont stockés dans ce fchier Apache recommande de séparer en deux fchiers L Stefenel 2009 74
-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQClTwogRlfcRlwPE9vIASym5WToIaZke21OO8c82lCjXN8htRRA pdgcomgybxdp7or22tksx00vw7zlrhywbb6ubzfdfw5+2smitxv3e21moyiwrnfw XJUdfCc0RhSAQt7meeDcRxWYls86pPTPUi9LbMInAOkDvRnZ9gxHtqG5/QIDAQAB AoGAOgCAqhBkdZqOZI/wNr4Kv8iPXk+oRWt1T9TztGtZjehhNj+GCqRULpthei3G Pn59JgJT3xlnSNIiJUixMiXh4FzAogpRq9ZtEcNGmkplHtzFgiTWTDAlOLtKvikc AY7VkmLwADEBVdsCP0iGgpBx+TKR7obydman1A2GfCLWB0ECQQDQAjfb4xI5YbPf DjLmCpgtf1oN7JZquJ9r3vWIVv6rKHhXm6tQBIle62C4ltIvzxzsiGHxiF1DgyNq C6u4QohtAkEAy3LNVnh5G/cQi62m01a/Kg3BNcOj7zIsGQnZ/ZAkvxOy5VX6af8R /5xlK58JU2aRWy//4FXeVFZCUnA02ZNh2GrDmWqj2w8jc+I3O7uOMm6Sv/kCQQCt +qk2s5f3kx77kg5gnmnknoleotitfmbn/cw62lblatsi0/1zparijbt99p4z3a4 Ye0QTptV4eGrvLHRzZvBAkBHbHe62a50Qntyo0qQ49r0+r2c39t9Z6wtjcSM/ZgQ s+etsn9mifgpbe7cj0s4gb6sudsqtp2lujwm/pk2aidu -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIBnzCCAQgCCQD+4SZlq8LOrDANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDEwls b2nhbghvc3qwhhcnmdkwmjewmtc0mtewwhcnmtkwmja4mtc0mtewwjaumriweayd V9xGXA8T28gBLKblZOghpmR7bU47xzzaUKNc3yG1FECkOAI4wZhvEOnuhHbZORJf TS/DvMusfJYEHpRvMV0XDn7awwhPFXcTbWajKJZGcXBclR18JzRGFIBC3uZ54NxH FZiWzzqk9M9SL0tswicA6QO9Gdn2DEe2obn9AgMBAAEwDQYJKoZIhvcNAQEFBQAD gyeaunahtmsnwugohqqurbcspgnoaouamdyeujwfhigoq5gxynx/9ec/ooftuzxh cftbbefvzjxcjgf7pu9zlgpfrw1wxxgwx/3lsd+qafzhminp1cqg3rw/jf+btxzk HM+DRuw+xBavX6pTU0A7cD3NdSb+bZLPNsAUTOzxJ4yp0QE= -----END CERTIFICATE----- L Stefenel 2009 75
Modifer notre virtual server pour utiliser SSL <VirtualHost *:443> ServerName intranet.teste1.com DocumentRoot /var/www/intranet SSLEngine on SSLCertifcateFile /etc/ssl/private/localhost.pem SSLCertifcateKeyFile /etc/ssl/private/localhost.pem </VirtualHost> L Stefenel 2009 76
Une pause avant d'attaquer PPP et HDLC L Stefenel 2009 77
Organisation du Cours NAT Serveur Mail Confguration d'un serveur Apache Serveurs Virtuels SSL/TLS PPP et HDLC L Stefenel 2009 78
Les connexions séries Point à Point Introduction L Stefenel 2009 79
Les connexions séries Les connexions WAN sont basés sur les transmissions via des connexions séries Le système de transmission encode les informations en signal électrique suivant des méthodes de codage comme NRZ-L Nonreturn to Zero Level AMI Alternative Mark Inversion HDB3 High Density Binary 3 Le plus connu de codage est le codage de Manchester sur Ethernet (qui n'est pas fait pour le WAN! ) Existence de diférents standard de communication série RS-232 V.35 High Speed Serial Interface (HSSI) L Stefenel 2009 80
Time Division Multiplexing Le Time Division Multiplexing permet de transmettre les informations de plusieurs sources sur le même canal de communication Les informations de chaque source sont décomposées en «morceaux» Chaque morceau de chacune des sources sont placées dans des «time slots» Similitude avec des voitures sur une route Chaque voiture peut embarquer un certain nombre de personnes La taille de chaque «morceau» est fxé suivant le TDM utilisé L Stefenel 2009 81
Time Division Multiplexing Example L Stefenel 2009 82
Demarcation Point Demarcation Point : point de connexion qui délimite les responsabilités de l'utilisateur et de l'opérateur L Stefenel 2009 83
DCE/DTE Une connexion série est délimitée par un DTE d'un coté : Data Terminal Equipment un DCE de l'autre : Data Communication Equipment L Stefenel 2009 84
Exemple de DTE et DCE Généralement, une routeur est vu comme un DTE Mais également un ordinateur, une imprimante, un terminal,... Un DCE, également appelé un CSU/DSU est un équipement qui convertit les données provenant d'un DTE en information compatible avec le lien de communication du service provider Généralement, les DCE sont des modems Quand 2 ordinateurs ou 2 routeurs sont relié entre eux Il faut utiliser un câble null-modem (équivalent du câble croisé) pour éliminé l'usage d'un DCE Pour des connexions synchrones, il faut également assurer une synchronisation d'horloge qui peut être faite soit par un équipement externe soit par l'un des routeurs ou ordinateurs qui fait ofce de DCE Câble DCE : connecteur femelle Câble DTE : connecteur mâle L Stefenel 2009 85
Les connexions séries Point à Point HDLC L Stefenel 2009 86
Le protocole HDLC HDLC Normalisé en 1979 par l'iso Protocole fonctionnant sur connexion synchrone En 1981, ITU-I a développé une suite de protocoles «dérivés» de HDLC Link Access Procedure, Balanced (LAPB) pour X.25 Link Access Procedure on the D channel (LAPD) pour ISDN Link Access Procedure for Modems (LAPM) and PPP pour les modems Link Access Procedure for Frame Relay (LAPF) pour Frame Relay HDLC est un protocole de la couche 2 synchrone assurant contrôle de fux Détection d'erreur grâce à des acknowlegments et un système de fenêtre L Stefenel 2009 87
Le protocole HDLC de Cisco Le protocole HDLC normalisé ne permet pas de supporter Plusieurs protocoles de couche 3 Absence d'un champ «type» pour indiquer le protocole encapsulé Cisco a développé une version de HDLC avec une champ «type» Cette version est le protocole par défaut de tout routeur Cisco pour les communications sur liaisons séries L Stefenel 2009 88
La confguration de HDLC en IOS L Stefenel 2009 89
Le débuggage L Stefenel 2009 90
Les erreurs possibles Serial x is down, line protocol is down Le cable est défectueux ou le Carrier Detect n'est pas détecté Serial x is up, line protocol is down Par de détection d'horloge La ligne est de mauvaise qualité ou aucun message de type keepalive n'est transmis Serial x is up, line protocol is up (looped) Une boucle est détectée. Utilisation de nombres aléatoires dans les messages keepalives et retour de ce même nombre sur une interface Serial x is up, line protocol is down (disabled) Trop d'erreurs sont détectées Serial x is administratively down, line protocol is down L'interface n'est pas activée L Stefenel 2009 91
Les connexions séries Point à Point Le protocole PPP L Stefenel 2009 92
L'architecture de PPP PPP : protocole de couche 2 Supporte plusieurs protocoles de couches 3 IP, IPX,... Fonctionne à la fois sur des interfaces Synchrone Asynchrone High-Speed Serial Interface (HSSI) Integrated Services Digital Network (ISDN) L Stefenel 2009 93
L'architecture de PPP L Stefenel 2009 94
PPP et la couche 2 Il se décompose en 2 sous-protocoles Link Control Protocol (LCP) Etablir, confgurer et tester la connexion Network Control Protocol (NCP) Peut gérer plusieurs protocoles de couche 3 L Stefenel 2009 95
Le sous-protocole LCP L Stefenel 2009 96
Le sous-protocole LCP : ses options L Stefenel 2009 97
Le sous-protocole LCP Permet d'avoir des options supplémentaires Authentication PAP (Password Authentication Protocol) : authentifcation en clair CHAP (Challenge Handshake Authentication Protocol) : Compression authentifcation par challenge Décompression de la trame PPP à la destination 2 types de compression sont disponibles sur routeur Cisco : Stacker et Predictor Détection d'erreur : les options Quality et Magic Number aident pour la fabilité de la connexion et la détection de boucle Multilink : une alternative pour faire de l'équilibrage de charge sur les interfaces du routeurs utilisant PPP PPP Callback L Stefenel 2009 98
Le sous-protocole LCP L Stefenel 2009 99
PAP L Stefenel 2009 100
CHAP L Stefenel 2009 101
Les phases de l'authentifcation L Stefenel 2009 102
Le sous-protocole NCP PPP permet d'encapsuler de multiples protocoles de couche 3 sur le même lien de communication Pour chaque protocole de couche 3, NCP est utilisé IP utilise IP Control Protocol (IPCP) Internetwork Packet Exchange (IPX) utilise Novell IPX Control Protocol (IPXCP) NCP fourni des champs fonctionnels pour indiquer quel protocole de couche supérieure est encapsulée L Stefenel 2009 103
Le sous-protocole NCP L Stefenel 2009 104
Etablissement d'une session PPP L Stefenel 2009 105
Etablissement d'une connexion PPP LCP est utilisé pour établir la connexion 3 catégories de trames LCP existent Link-establishment frames -> établir et confgurer la connexion Link-termination frames pour terminer la connexion Link-maintenance frames pour gérer et débugger la connexion La connexion se fait suivant les phases suivantes : Link-establishment phase : envoie par chaque device PPP des trames LCP pour confgurer et tester le lien de communication. Possibilité de négocier la MTU, la compression et l'authentifcation Phase d'authentifcation (optionel) Network layer protocol phase : utilisation du sous-protocole NCP pour choisir et confgurer les protocoles de la couche supérieur La commande show interfaces permet d'obtenir l'état de LCP et NCP L Stefenel 2009 106
Les connexions séries Point à Point La confguration L Stefenel 2009 107
Les commandes L Stefenel 2009 108
Les options de LCP L Stefenel 2009 109
Confguration de PAP L Stefenel 2009 110
Confguration de CHAP L Stefenel 2009 111
Vérifer PPP L Stefenel 2009 112
Les messages de debug L Stefenel 2009 113
La checklist L Stefenel 2009 114