NAT Serveur Mail Serveur Apache et serveurs virtuels...
Transcript of NAT Serveur Mail Serveur Apache et serveurs virtuels...
L Stefenel ©2009 1
NATServeur MailServeur Apache et serveurs virtuelsSSH/SSLPPP et HDLC
- Luiz Angelo STEFFENEL -
●Protocoles AvancésMaster 1 MI
L Stefenel ©2009 2
Organisation du Cours
NAT
Serveur Mail
Confguration d'un serveur Apache
Serveurs Virtuels
SSL/TLS
PPP et HDLC
L Stefenel ©2009 3
Réseaux Privés
Le RFC 1918 a défni des Réseaux IP PrivésAdresses 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écessaireLa 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.255172.16.0.0 – 172.31.255.255192.168.0.0 – 192.168.255.255
L Stefenel ©2009 4
Adresses Privées
H1
R1
H2
10.0.1.3
10.0.1.1
10.0.1.2
H3
R2
H4
10.0.1.310.0.1.2
Private network 1
Internet
H5
10.0.1.1Private network 1
213.168.112.3
128.195.4.119 128.143.71.21
L Stefenel ©2009 5
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
H1
private address: 10.0.1.2public address: 128.143.71.21
H5
Privatenetwork
Internet
Source = 10.0.1.2Destination = 213.168.112.3
Source = 128.143.71.21Destination = 213.168.112.3
public address: 213.168.112.3NATdevice
Source = 213.168.112.3Destination = 128.143.71.21
Source = 213.168.112.3Destination = 10.0.1.2
PrivateAddress
PublicAddress
10.0.1.2 128.143.71.21
L Stefenel ©2009 6
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 7
H1
private address: 10.0.1.2public address:
H5
Privatenetwork
Internet
Source = 10.0.1.2Destination = 213.168.112.3
Source = 128.143.71.21Destination = 213.168.112.3
public address: 213.168.112.3NATdevice
PrivateAddress
PublicAddress
10.0.1.2
Pool of addresses: 128.143.71.0-128.143.71.30
Scénario 1 – Nombre limité d'adresses valides
L Stefenel ©2009 8
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'entrepriseLe dispositif NAT fait de la traduction statique pour lier chaque adresse privée à une adresse publiqueLa 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
Scénario 2 – Migration de FAI
L Stefenel ©2009 9
H1
private address: 10.0.1.2public address: 128.143.71.21
128.195.4.120
Source = 10.0.1.2Destination = 213.168.112.3
NATdevice
PrivateAddress
PublicAddress
10.0.1.2128.143.71.21128.195.4.120
128.143.71.21
128.195.4.120
Source = 128.143.71.21Destination = 213.168.112.3
Source = 128.195.4.120Destination = 213.168.112.3
ISP 2allocates address block
128.195.4.0/24 to privatenetwork:
Privatenetwork
ISP 1allocates address block
128.143.71.0/24 to privatenetwork:
Scénario 2 – Migration de FAI
L Stefenel ©2009 10
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 11
IP masquerading
H1
private address: 10.0.1.2
Private network
Source = 10.0.1.2Source port = 2001
Source = 128.143.71.21Source port = 2100
NATdevice
PrivateAddress
PublicAddress
10.0.1.2/2001 128.143.71.21/2100
10.0.1.3/3020 128.143.71.21/4444
H2
private address: 10.0.1.3
Source = 10.0.1.3Source port = 3020
Internet
Source = 128.143.71.21Destination = 4444
128.143.71.21
L Stefenel ©2009 12
É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 serveurLe dispositif NAT agit comme un proxy pour les requêtes issues du réseau publiqueLe dispositif NAT choisi un serveur de destination diférent à chaque nouvelle connexion entrante
ex.: alternance de façon « round robin »
L Stefenel ©2009 13
Private network
Source = 213.168.12.3Destination = 128.143.71.21
NATdevice
PrivateAddress
PublicAddress
10.0.1.2 128.143.71.21
Inside network
10.0.1.4 128.143.71.21
Internet128.143.71.21
S1
S2
S3
10.0.1.4
10.0.1.3
10.0.1.2
Source= 128.195.4.120
Destination = 10.0.1.2
PublicAddress
128.195.4.120
Outside network
213.168.12.3
Source = 128.195.4.120Destination = 128.143.71.21
Source= 128.195.4.120
Destination= 10.0.1.4
Équilibrage de Charge entre les Serveurs
L Stefenel ©2009 14
Ce qu'il faut faire attention
PerformanceLa modifcation de l'entête IP (traduction de l'adresse) oblige le dispositif NAT à recalculer le checksum de l'entête IPLa 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
FragmentationIl 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-à-boutLe 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 15
Adresse IP transporté par les applicationsCertaines 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
Ce qu'il faut faire attention
L Stefenel ©2009 16
Exemple : NAT et FTP
H1 H2
public address:128.143.72.21
FTP client FTP server
PORT 128.143.72.21/1027
200 PORT command successful
public address:128.195.4.120
RETR myfile
150 Opening data connection
establish data connection
Opération normale du protocole FTP
L Stefenel ©2009 17
Exemple : NAT et FTP
Dispositif NAT adapté au protocole FTP Actif (très rare)
H1
Private network
NATdevice
H2
private address: 10.0.1.3public address: 128.143.72.21
Internet
FTP client FTP server
PORT 10.0.1.3/1027 PORT 128.143.72.21/1027
200 PORT command successful200 PORT command successful
RETR myfile
establish data connection
RETR myfile
150 Opening data connection150 Opening data connection
establish data connection
L Stefenel ©2009 18
Exemple : NAT et FTP
FTP en mode passif avec NAT
H1
Private network
NATdevice
H2
private address: 10.0.1.3public address: 128.143.72.21
Internet
FTP client FTP server
PASV PASV
Entering Passive Mode128.195.4.120/10001
Entering Passive Mode128.195.4.120/10001
public address:128.195.4.120
Establish data connection Establish data connection
L Stefenel ©2009 19
Confguration de NAT sous Linux
Linux utilise le système Netflter/iptables pour rajouter des règles de fltrage aux datagrammes IP
Incomingdatagram
filterINPUT
Destinationis local?
filterFORWARD
natOUTPUT
To application From application
Outgoingdatagram
natPOSTROUTING
(SNAT)
No
Yes filterOUTPUT
natPREROUTING
(DNAT)
L Stefenel ©2009 20
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.30Migration de FAI: iptables –t nat –R POSTROUTING –s 10.0.1.0/24 –j SNAT --to-source 128.195.4.0–128.195.4.254IP 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 --to-destination 10.0.1.2-10.0.1.4
L Stefenel ©2009 21
Organisation du Cours
NAT
Serveur Mail
Confguration d'un serveur Apache
Serveurs Virtuels
SSL/TLS
PPP et HDLC
L Stefenel ©2009 22
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 23
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 24
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 25
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'architecturePOSTFIX 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 26
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 27
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 28
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 29
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éeapt-get install postfx (Debian / Ubuntu)
L Stefenel ©2009 30
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 31
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 32
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 33
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 34
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 35
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 serveurLa 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 messagesPas de possibilité de consulter ses messages si l’utilisateur n’est pas connecté au réseauLa gestion des pièces jointes de tailles importantes est parfois impossible
L Stefenel ©2009 36
Lire le courrier : Webmail
Exemples de serveur Webmail :SQUIRRELMAILHORDE
L’installation nécessite :Un Serveur Apache Php
Généralement les produits sont extensibles et de nombreux plug-ins sont fournisComme tout les applications WebMail, des connexions sécurisées SSL sont possibles
L Stefenel ©2009 37
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 38
Les sauvegardes
Aucun système n’est à l’abris d’une panne , une sauvegarde est indispensable. Vous devez sauvegarder :
Les données d’authentifcationLes fchiers de confguration du système de messagerieLes boîtes aux lettres des utilisateursLa fle d’attente des messagesLes fchiers de logLa liste des logiciels installés
L Stefenel ©2009 39
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 40
Organisation du Cours
NAT
Serveur Mail
Confguration d'un serveur Apache
Serveurs Virtuels
SSL/TLS
PPP et HDLC
L Stefenel ©2009 41
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 42
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 43
Confguration de Base
Lancer le serveur Apache
/etc/init.d/apache2 start
Vérifer que Apache tourne correctement
ps -aux | grep httpd (vérife si le serveur a été chargé)
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 44
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 45
É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 46
É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 47
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, celui-ci 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 48
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 IPTrès utile lorsque le serveur a plusieurs cartes réseau
Hôtes Virtuels basés sur le numéro de portLe 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 nomDiférents noms sont confgurés dans le DNS
L Stefenel ©2009 49
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 50
Confguration de Base
Créer deux fchiers (un par virtual server) avec au moins ces informations
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
<VirtualHost IP:PORT> ServerName NOM DocumentRoot CHEMIN
</VirtualHost>
L Stefenel ©2009 51
Fichier de confguration pour www.test1.com
<VirtualHost *> ServerAdmin [email protected] 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 52
Fichier de confguration pour intranet.test1.com
<VirtualHost *> ServerAdmin [email protected] 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 53
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 54
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 [email protected] 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 55
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 BasicAuthName "Restricted Files"# (Following line optional)AuthBasicProvider fileAuthUserFile /usr/local/apache/passwd/passwordsRequire user rbowen
L Stefenel ©2009 56
Groupe d'utilisateurs
Créer un fchier groupes avec le format
GroupName: rbowen dpitts sungo rsherseyCré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 BasicAuthName "By Invitation Only"# Optional line:AuthBasicProvider fileAuthUserFile /usr/local/apache/passwd/passwordsAuthGroupFile /usr/local/apache/passwd/groupsRequire group GroupName
Autre option est de rajouter uniquement « Require valid-user »
accepte uniquement les users avec un mot de passe
L Stefenel ©2009 57
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 58
.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 59
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 60
Organisation du Cours
NAT
Serveur Mail
Confguration d'un serveur Apache
Serveurs Virtuels
SSL/TLS
PPP et HDLC
L Stefenel ©2009 61
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 62
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 63
Fonctionnalités
Authentifcation
Authentifcation du serveur par le client
Authentifcation mutuelle
Confdentialité
Intégrité
Non répudiation
L Stefenel ©2009 64
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 65
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 66
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 67
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 68
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 69
Fonctionnement
Client ServeurCommencer la session
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 70
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
IP
TCP
SSL Record Protocol
Protocole applicatif
L Stefenel ©2009 71
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 72
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 73
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 74
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 75
-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQClTwogRlfcRlwPE9vIASym5WToIaZke21OO8c82lCjXN8htRRApDgCOMGYbxDp7oR22TkSX00vw7zLrHyWBB6UbzFdFw5+2sMITxV3E21moyiWRnFwXJUdfCc0RhSAQt7meeDcRxWYls86pPTPUi9LbMInAOkDvRnZ9gxHtqG5/QIDAQABAoGAOgCAqhBkdZqOZI/wNr4Kv8iPXk+oRWt1T9TztGtZjehhNj+GCqRULpthei3GPn59JgJT3xlnSNIiJUixMiXh4FzAogpRq9ZtEcNGmkplHtzFgiTWTDAlOLtKvikcAY7VkmLwADEBVdsCP0iGgpBx+TKR7obydman1A2GfCLWB0ECQQDQAjfb4xI5YbPfDjLmCpgtf1oN7JZquJ9r3vWIVv6rKHhXm6tQBIle62C4ltIvzxzsiGHxiF1DgyNqC6u4QohtAkEAy3LNVnh5G/cQi62m01a/Kg3BNcOj7zIsGQnZ/ZAkvxOy5VX6af8R/5xlK58JU2aRWy//4FXeVFZCUnA02ZNh2GrDmWqj2w8jc+I3O7uOMm6Sv/kCQQCt+qK2S5f3kX77Kg5GnmnkNOlEoTiTFmBn/cW62lBLatSi0/1zParIJbt99P4z3a4Ye0QTptV4eGrvLHRzZvBAkBHbHe62a50Qntyo0qQ49r0+r2c39t9Z6wtjcSM/ZgQs+EtSN9MIfGPBE7Cj0s4GB6suDSQtP2lUJwM/PK2aidU-----END RSA PRIVATE KEY----------BEGIN CERTIFICATE-----MIIBnzCCAQgCCQD+4SZlq8LOrDANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMDkwMjEwMTc0MTEwWhcNMTkwMjA4MTc0MTEwWjAUMRIwEAYDV9xGXA8T28gBLKblZOghpmR7bU47xzzaUKNc3yG1FECkOAI4wZhvEOnuhHbZORJfTS/DvMusfJYEHpRvMV0XDn7awwhPFXcTbWajKJZGcXBclR18JzRGFIBC3uZ54NxHFZiWzzqk9M9SL0tswicA6QO9Gdn2DEe2obn9AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAUnaHTMSnwugohqQUrbCSpgnoAOUAmdYEUJWFHIGoQ5gxYNX/9ec/OoFtUzXhcftBBefvZjXCjgf7pu9zlGPFRW1wXXgwx/3lsD+qAFZhmInp1cQg3rW/Jf+BTXZKHM+DRuw+xBavX6pTU0A7cD3NdSb+bZLPNsAUTOzxJ4yp0QE=-----END CERTIFICATE-----
L Stefenel ©2009 76
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 77
Une pause avant d'attaquer PPP et HDLC
L Stefenel ©2009 78
Organisation du Cours
NAT
Serveur Mail
Confguration d'un serveur Apache
Serveurs Virtuels
SSL/TLS
PPP et HDLC
L Stefenel ©2009 79
Les connexions séries Point à Point
Introduction
L Stefenel ©2009 80
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 81
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 82
Time Division Multiplexing Example
L Stefenel ©2009 83
Demarcation Point
Demarcation Point : point de connexion qui délimite les responsabilités de l'utilisateur et de l'opérateur
L Stefenel ©2009 84
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 85
Exemple de DTE et DCE
Généralement, une routeur est vu comme un DTEMais é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 euxIl faut utiliser un câble null-modem (équivalent du câble croisé) pour éliminé l'usage d'un DCEPour des connexions synchrones, il faut également assurer une synchronisation d'horloge qui peut être faite
soit par un équipement externesoit 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 86
Les connexions séries Point à Point
HDLC
L Stefenel ©2009 87
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 88
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 89
La confguration de HDLC en IOS
L Stefenel ©2009 90
Le débuggage
L Stefenel ©2009 91
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'horlogeLa 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 92
Les connexions séries Point à Point
Le protocole PPP
L Stefenel ©2009 93
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 94
L'architecture de PPP
L Stefenel ©2009 95
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 96
Le sous-protocole LCP
L Stefenel ©2009 97
Le sous-protocole LCP : ses options
L Stefenel ©2009 98
Le sous-protocole LCP
Permet d'avoir des options supplémentaires
Authentication
PAP (Password Authentication Protocol) :
authentifcation en clair
CHAP (Challenge Handshake Authentication Protocol) :
authentifcation par challenge
Compression
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 99
Le sous-protocole LCP
L Stefenel ©2009 100
PAP
L Stefenel ©2009 101
CHAP
L Stefenel ©2009 102
Les phases de l'authentifcation
L Stefenel ©2009 103
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 104
Le sous-protocole NCP
L Stefenel ©2009 105
Etablissement d'une session PPP
L Stefenel ©2009 106
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 107
Les connexions séries Point à Point
La confguration
L Stefenel ©2009 108
Les commandes
L Stefenel ©2009 109
Les options de LCP
L Stefenel ©2009 110
Confguration de PAP
L Stefenel ©2009 111
Confguration de CHAP
L Stefenel ©2009 112
Vérifer PPP
L Stefenel ©2009 113
Les messages de debug
L Stefenel ©2009 114
La checklist