Les services réseaux

Transcription

Les services réseaux
Administration et Architectures
Systèmes
LEGOND Fabrice
26/09/2005
LEGOND Fabrice
1
Section
Les services réseaux
Les services
réseaux
26/09/2005
LEGOND Fabrice
2
1
Section : « Administration réseau »
Session distante (SSH, VNC, tunnel)
Session distante
Gestion du temps
Gestion des emails
Serveur WEB (apache)
Serveur d’impression (CUPS)
26/09/2005
LEGOND Fabrice
3
Session textuelle distante
●
Unix est un système multiutilisateur
●
Utilisation de consoles virtuelles
Session distante
●
●
Le réseau permet de se connecter sur n'importe quelle
machine sur laquelle on possède un compte
Outils de sessions non sécurisés :
–
●
« telnet », « rsh », « rlogin », « login »
« telnet » :
–
Ouverture de session distante
–
Peu configurable, pas sécurisé
–
Ancien mais encore utilisé pour configurer les switchs
26/09/2005
LEGOND Fabrice
4
2
Les « r » utilitaires !
–
Ports TCP:
✔
–
rcp – “remote file copy” : permet la copie entre hôte
✔
Session distante
–
« rexec » 512, « rlogin » 513, « rsh » / « rcp » 514
Utilisation de « utilisateur@nomhote:nomfichier »
rlogin – “remote login” : permet l’ouverture de session
✔
Utilisation de « rlogin –l utilisateur nomhote »
✔
Utilisateur de « rlogin utilisateur@nomhote »
–
rsh – “remote shell” : permet l’exécution à distance
–
rwho – permet de savoir qui est loggé
26/09/2005
LEGOND Fabrice
5
Authentification des serveurs « r »
●
L’authentification se fait par mot de passe
●
Comme pour telnet Î les mdp circulent EN CLAIR !
●
Possibilité de spécifier des hôtes et des utilisateurs de confiance
Session distante
–
Ces utilisateurs peuvent se logger sans mdp
●
Le fichier est “/etc/hosts.equiv” pour le système
●
Le fichier est “~/.rhosts” pour chaque utilisateur
●
Le fichier utilise le format suivant :
[ + | - ] [ordinateur] [utilisateur]
+ autorise, - interdit. En cas de doublons, le 1er l’emporte !
●
Une ligne “+ “ ajoute tout le monde !!!
●
Attention à la sécurité des hôtes de confiance !
26/09/2005
LEGOND Fabrice
6
3
Les ancêtres et leurs défauts
●
Les données circulent en clair sur le réseau
Session distante
ÎLes mots de passes circulent en clair !
●
●
Il n’y a pas besoin d’être un génie pour les voler !
Un simple sniffer (tcpdump / tethereal / ethereal /
snoop) permet de capturer des mots de passe, les
commandes exécutées, leurs résultats, …
26/09/2005
LEGOND Fabrice
7
« telnet »
Session distante
Commandes échangés
Mot de passe
Bannière de login
26/09/2005
LEGOND Fabrice
8
4
Session textuelle distante SECURISEE
Session distante
●
●
Pourquoi ?
–
A cause des problèmes de sécurité, les outils “r” ont été
abandonnés !
–
Les analyses réseaux (password-sniffing)
Outils de sessions sécurisés (ssh) :
–
●
●
« slogin », « ssh », « scp », « sftp »
SSH fournit un remplacement sécurisé pour rsh, rlogin,
telnet, ...
La première version de ssh a été developpé en 1995 par
Tatu Ylönen, un chercheur de l’université d’Helsinki
26/09/2005
LEGOND Fabrice
9
La suite d’outils ssh
●
OpenSSH est la suite ssh open-source !
–
Session distante
●
●
Il existe des versions commerciales
La sécurité de SSH est offerte via l’utilisation intensive
du cryptage et de l’authentification !
–
Nécessité de comprendre son fonctionnement !
–
VOIR LE MODULE SSI !
Le protocole SSH est basé sur une architecture
client/serveur
–
Un utilisateur qui veut se connecter exécute la commande
cliente “ssh” sur sa machine locale
–
Le client va se connecter à un serveur (démon) SSH sur
une machine distante
26/09/2005
LEGOND Fabrice
10
5
SSH v2
●
Remplace totalement la version 1
–
Session distante
●
Améliore la sécurité et les performances
SSH est à la fois un protocole et une suite d’utilitaires !
–
ssh – un remplaçant pour rsh, et telnet
–
scp – un utilitaire de copie de fichier sécurisé (rcp)
–
slogin – un remplaçant pour rlogin, en général un lien vers ssh
–
sftp – une version sécurisé de ftp
●
Il y a aussi des utilitaires de gestion des clefs
●
Clients windows :
–
www.ssh.com, putty
–
winscp, filezilla
26/09/2005
LEGOND Fabrice
11
Configuration de SSHv2
●
Session distante
●
Répertoire « /etc/ssh/ »
–
« ssh_config » pour la configuration par défaut du client
–
« sshd_config » pour la configuration du serveur
Répertoire « ~/.ssh »
–
–
–
authorized_keys
✔
liste des clefs autorisées à se connecter
✔
Il suffit d’ajouter le “.pub” au fichier
known_hosts
✔
Liste des clefs des machines auquels l’utilisateur s’est déjà connecter
✔
Permet d’éviter la substitution de la machine destinataire
✔
Lors de la réinstallation d’une machine, il faut MAJ ce fichier
id_dsa*, identity, id_rsa*
26/09/2005
✔
Ce sont des clefs qui représentent l’utilisateur
✔
Il ne faut pas laisser une clef sans mot de passe pour la protéger
LEGOND Fabrice
12
6
Tunnels sortant (Port forwarding)
Session distante
●
●
Etablissement d’un tunnel sortant TCP via SSH
–
« -L port_local:hote_distante:port_distant »
–
Toute connexion sur le port « port_local » de la machine local sera
transférée sur le port « port_distant » de la machine
« hote_distante » à partir de la machine où l’on est connecté
ssh -L 1999:src:25 scylla.lip6.fr
Application
Intranet LIP6 (.lip6.fr)
:1999
:25
OpenSSH Client
neree.cnam.fr
OpenSSH Server
(scylla)
26/09/2005
Mail Server
(src)
LEGOND Fabrice
13
Tunnels sortant (Port forwarding)
Session distante
●
Note :
–
La connexion entre neree et scylla est cryptée par le protocole SSH.
–
La connexion entre scylla.lip6.fr et src.lip6.fr n’est pas cryptée.
–
La connexion entre scylla et src reste “interne” au réseau LIP6
(ce n’est pas une obligation mais un conseil)
–
C’est une « téléportation » de connexion
Intranet LIP6 (.lip6.fr)
:1999
OpenSSH Client
neree.cnam.fr
26/09/2005
connexion
connexion
encryptée
en claire
OpenSSH Server
(scylla)
LEGOND Fabrice
:25
Mail Server
(src)
14
7
Tunnels entrant
Session distante
●
●
Etablissement d’un tunnel entrant TCP via SSH
–
« -R port_local:machine_distante:port_distant »
–
Toute connexion sur le port « port_distant » de la
machine distante « hote_distante » sera transférée sur le
port local « port_local »
ssh -R 2000:themis:4000 scylla.lip6.fr
:1999
Application
Intranet LIP6 (.lip6.fr)
:4000
OpenSSH Client
neree.cnam.fr
26/09/2005
OpenSSH Server
(scylla)
Mail Server
(themis)
LEGOND Fabrice
15
Tunnels SSH : Attention !
Session distante
●
●
●
Attention aux risques du “port forwarding” !
–
Permet de contourner les règles de sécurités
–
Contourner les filtres sortants en se connectant à une
machine externe au réseau administré
–
Contourner les filtres entrants en se connectant, de
l’exterieur, une machine interne au réseau administré
Ne pas faire d’expérimentation. Le “port forwarding”
doit être penser !
Seul root peut transférer des ports privilégiés
26/09/2005
LEGOND Fabrice
16
8
OpenSSH: options du client
●
-X/-x : interdire/autoriser le forward x11
●
-i : spécifier un clef numérique de connexion
Session distante
●
●
●
-g : autoriser la connexion distante sur les ports
transférés
-I : utiliser une carte à puce pour lire la clef numérique
-N : n’exécute aucune commande, seulement pour le
transfert de ports
●
-f : passer en arrière plan (utile avec –N)
●
-t/-T : (non) allocation d’un pseudo-terminal
●
-C : compression
●
-o : passer des options du fichier « ssh_config »
26/09/2005
LEGOND Fabrice
17
VNC un remplaçant pour x11
Session distante
●
●
X11:
–
Possibilité d’exécuter à distance des programmes
–
peu efficace en terme de compression
–
Peu adapté au réseau extranet
Utilisation d’un protocole multiplateforme : VNC
–
Utilisé par MacOSX (natif), linux, windows
●
« x2vnc »
●
« vncserver », « Xvnc » qui crée un serveur x11
●
« vncpasswd » pour générer des mots de passes
●
« vncviewer » pour se connecter au serveur
●
Permet une configuration précise
–
Nombre de couleurs, rescaling, compression, filtrage d’évènements
26/09/2005
LEGOND Fabrice
18
9
Export X sécurisé et efficace
●
●
Exemple avec un serveur realVNC (www.realvnc.com)
Machine locale: On se connecte sur la machine distante (avec
port forward)
Session distante
./ssh –L 5901:localhost:5901 hote_distante.reseau.Fr
●
Machine distante: On lance le serveur sur le display :1 en utilisant
les mots de passe contenu dans « vnc.passwd »
./Xvnc :1 -screen 0 1280x1024x24 -passwordFile=${HOME}/vnc.passwd -desktop
"Xvnc:1" -localhost &
●
Machine distante: On lance un environnement graphique léger
(PAS KDE!)
./wmaker &
●
Machine locale: On lance un client vnc
./vncviewer localhost:5901 &
26/09/2005
LEGOND Fabrice
19
Section : « Administration réseau »
Session distante (SSH, VNC, tunnel)
Gestion du temps
Gestion du temps
Gestion des emails
Serveur WEB (apache)
Serveur d’impression (CUPS)
26/09/2005
LEGOND Fabrice
20
10
Configuration de la “Time Zone”
●
Identifier dans quelle fuseau horaire est la machine
●
Pourquoi est utilisée la machine ?
Gestion du temps
–
Gérer le temps local en stockant le temps sous la forme :
✔
GMT (Greenwich Meridian Time) – temps solaire (variable)
✔
UTC (Coordinated Universal Time) – temps universel
–
Signer correctement les mails (avec un horodatage
correct)
–
Fuseaux horaires de la France
✔
✔
CET = Central European Time for winter time
CEST = Central European Daily Saving Time (or CET DST) for
summer time
26/09/2005
LEGOND Fabrice
21
Network Time Protocol (NTP)
●
Problème avec les horloges internes
–
Elles ont une précision insuffisante
–
Elles ne gèrent pas le changement d’heure
–
Elles dévient chaque jour un peu, tel que, par exemple
Gestion du temps
Time( t + 1s ) = Time( t ) + 1s + δ( t )
●
Conséquences
–
Certaines actions ne seront pas exécutées au temps T
✔
–
Les fichiers et emails ne sont pas correctement horodatés
✔
●
cron daemon, authentification kerberos
Date d’arrivée des mail fausse, problèmes de Makefile sur NFS, ...
Le but de NTP est double
–
Resynchroniser totalement, à un instant t, l’heure d’une machine
–
Gérer (annuler) en permanence le δ( t )
–
Permet de resynchroniser en douceur sans louper d’évènements !
26/09/2005
LEGOND Fabrice
22
11
Network Time Protocol (NTP)
●
NTP a, en général, besoin d’un serveur pour travailler
●
NTP est tolérant aux fautes:
–
Gestion du temps
●
●
●
Possibilité de fixer plusieurs sources
NTP est coopératif:
–
Plusieurs serveurs peuvent se coordonner
–
Echanger des informations (uni et bi-directionnellement)
NTP utilise les données collectés pour
–
Etudier le comportement d’une machine
–
Maintenir la synchronisation même en cas de déconnexion
NTP peut avoir une précision de l’ordre de la nanoseconde
–
Utilisation d’algorithme complexe de dérivation de temps
–
Estimation du temps de voyage de la trame
26/09/2005
LEGOND Fabrice
23
Strates NTP
Gestion du temps
●
Les strates mesurent l’éloignement d’un serveur par rapport aux
serveurs racines du temps UTC
●
L’horloge de référence est la strate 0
●
Les serveurs principaux de temps sont en strate 1
–
Basés sur le GPS ou par ondes (DCF77)
–
Il en existe environ 400 dans le monde
●
Le nombre max. de strates est 15
●
Elles permettent d’éviter les boucles lors d’une synchronisation
●
●
Les serveurs de strates 1 et certains de strates 2 ont des accès
contrôlés
Si un serveur NTP se synchronise sur un serveur de strate n, il
devient un serveur de strate n+1
26/09/2005
LEGOND Fabrice
24
12
Strates NTP
Pour chaque strate :
• Les serveurs garantissent une certaine précision
• Il y a perte « contrôlée » de précision
Gestion du temps
Horloges physiques
Strate 0
Serveurs spécialisés
Strate 1
Serveurs d’entreprise
Strate 2
Clients
Strate 3
26/09/2005
LEGOND Fabrice
25
NTP: dans la pratique
Gestion du temps
●
●
Un pool de serveurs NTP strate 1 et 2:
–
« pool.ntp.org », « fr.pool.ntp.org »
–
Redondance grâce au service DNS
Configuration :
–
À l’installation : un serveur peut etre choisi (ex:
pool.ntp.org)
–
Après installation :
26/09/2005
✔
fichier “/etc/ntp.conf” pour la synchronisation au cours du temps
✔
Fichier “/etc/ntp/step-tickers” pour le synchronisation au démarrage
LEGOND Fabrice
26
13
NTP Configuration
●
Fichier “/etc/ntp.conf”
Gestion du temps
server castor.lip6.fr
#server pool.ntp.org
multicastclient yes # listen on default 224.0.1.1
broadcastclient yes
broadcastdelay 0.008
authenticate no
●
●
Le fichier « step-tickers » contient simple le serveur
NTP
Obtenir des informations sur l’horloge local
–
●
« ntptime » ou « ntpdc –c kerninfo »
Obtenir des informations : « ntpdc –i » puis « help »
26/09/2005
LEGOND Fabrice
27
NTP Configuration
●
●
Obtenir des informations : « ntpdc –i » puis « help »
Synchronisation de l’horloge système « ntpdate
ntp.pool.org »
Gestion du temps
–
●
Vérification de la synchro: « ntpdate -d castor »
Synchronisation des horloges système et physique :
« hwclock »
●
Faire des requêtes NTP : « ntpq »
●
Chemin des requêtes (eq. tracepath): « ntptrace »
●
Informations sur le serveur NTP local: « ntpstat »
●
Génération des clefs NTP: « ntp-keygen »
26/09/2005
LEGOND Fabrice
28
14
Section : « Administration réseau »
Session distante (SSH, VNC, tunnel)
Gestion des emails
Gestion du temps
Gestion des emails
Serveur WEB (apache)
Serveur d’impression
26/09/2005
LEGOND Fabrice
29
Notion de service de messagerie
●
A la base un service d’échange de textes courts
–
Gestion des emails
●
●
Extension à des transferts de fichiers quelconques en
structure et en contenu :
–
le plus souvent avec une limitation sur la taille du fichier
–
le plus souvent par un encodage en format caractère.
Transmission asynchrone :
–
●
un transfert électronique de fichiers caractères ASCII
l’émetteur et le récepteur n’ont pas a être connecté en
même temps
Terminologie : courrier électronique, courriel, mèl
(‘mail, email’).
26/09/2005
LEGOND Fabrice
30
15
MUAs, MTAs, MDAs, MAAs
Acronyme
Description
Exemple
Mail User Agent
Le MUA est le programme que l’utilisateur
utilise pour lire ou envoyer des emails. Le
MUA envoie le message au MTA pour
livraison.
elm, pine, mutt,
thunderbird,
evolution
Le MTA sert de « routeur » de mail. Il
achemine le message au serveur destinataire.
Il utilise et manipule les entêtes des emails
pour les envoyer au MDA du destinataire.
sendmail, postfix,
qmail
Le MDA accepte l’email et effectue le dépôt
dans la boîte destinataire.
mail.local,
procmail
Le MAA est le protocole qui permet de
consulter une boîte email.
pop3, spop3, imap,
imap ssl
Gestion des emails
MUA
Mail Transfert
Agent
MTA
Mail Delivery
Agent
MDA
Mail Access Agent
MAA
26/09/2005
LEGOND Fabrice
31
Les protocoles pour le courrier électronique
Gestion des emails
●
●
●
Protocole de livraison de mail
–
(Extended) Simple Mail Transfert Protocol
–
RFC 821 pour le SMTP
–
RFC 1869, 1870, 1891, 1892, 1894, 2197, 2554, 1845
–
Principe de Store & Forward
Spécification pour le contenu des mails
–
MIME rfc obsolètes : rfc 1341, 1342, 1521, 1522, 1590, 2045 à 2049
–
Rfc MIME : 2184, 2231, 2387, 2426, 2557, 2646, 2822, 3023, 3798
–
SMIME (rfc 2311, 2632, 2633, 2634, 3850, 3851)
Protocole (programme) de livraison des emails
–
●
Protocole de consultation des mails
–
●
procmail
POP3 (rfc 1725), IMAP (rfc 1730)
Protocole de consultation des mails sécurisés
–
sPOP3, IMAP SSL
26/09/2005
LEGOND Fabrice
32
16
MUAs, MTAs, MDAs, MAAs
SMTP
Gestion des emails
MTA
src.lip6.fr
SMTP
SMTP
MTA
isis.lip6.fr
SMTP
MTA
samoa.cnam.fr
MTA
osiris.lip6.fr
IMAP
POP
SMTP
SMTP
MUA
MDA
samoa.cnam.fr
MAA
pop.cnam.fr
procmail
MUA
(elm)
Boîte
email
Domaine lip6.fr
26/09/2005
Domaine cnam.fr
LEGOND Fabrice
33
Mails: répartition de charge
INTERNET
Development
Gestion des emails
Screened
Subnets
Firewall
Email relay
Access
lists
Access
lists
Router
Office
Router
Email relay
Email
relay
Config
file
Selling
Email relay
DeMilitarized Zone
(DMZ)
Logs Analysis
Militarized Zone (MZ)
26/09/2005
LEGOND Fabrice
34
17
Consultation des emails: Protocole pop3/imap
●
Des protocoles dérivés du protocole SMTP.
Gestion des emails
–
●
●
Spécialisés pour offrir des fonctions spécifiques de relève
du courrier dans une boite à lettre.
Fonctions de transfert de courrier d’un serveur de
messagerie vers un client de messagerie.
Fonctions de gestion des archives de courrier (liste de
messages en attente dans une boite, destruction de
message …)
26/09/2005
LEGOND Fabrice
35
Consultation des emails: Protocole pop3
●
Gestion des emails
●
●
●
Le protocole de relève le plus simple.
Le plus souvent utilisé en transfert définitif des
messages d’une boite à lettre d’un serveur de
messagerie vers un client de messagerie.
Ne gère pas les archives de courrier sur le serveur.
Convient bien à l’utilisation à partir du même poste
client de messagerie
26/09/2005
LEGOND Fabrice
36
18
Gestion des emails
●
Consultation des emails: Protocole pop3 primitives
Messages POP3 principaux
–
USER: Fourniture du nom de la boite à lettre
–
PASS: Fourniture du mot de passe en clair
–
APOP: Fourniture cryptée du mot de passe
–
STAT: Nombre de messages dans la boite
–
LIST: Liste des messages présents
–
RETR n: Transfert du message n
–
DELE n: Marquage message pour la suppression
–
LAST: Numéro du dernier message consulté
–
RSET: Annulation des actions d’une session
–
QUIT: Fin de session.
26/09/2005
LEGOND Fabrice
37
Gestion des emails
Consultation des emails: Protocole imap
●
Protocole le plus complet.
●
Gère les archives de courrier sur le serveur
●
●
●
–
Dossier de base INBOX pour les nouveaux messages
–
Primitives de création de dossiers
–
Primitives de transferts entre dossiers.
Minimise les échanges de données sur le réseau.
Le plus souvent utilisé en laissant les courriers dans la
boite à lettre du serveur de messagerie.
Un protocole adapté à la consultation à partir de
différents poste clients
26/09/2005
LEGOND Fabrice
38
19
Gestion des emails
Consultation des emails: Protocole imap primitives
●
AUTHENTICATE : Mécanisme d’authentification choisi.
●
LOGIN : Usager mot de passe.
●
LOGOUT : Fin de session IMAP.
●
CREATE/DELETE/RENAME : Nom de boite à lettre.
●
SELECT/EXAMINE : Nom de boite à lettre.
●
LIST/LSUB/STATUS : Etat de la boite à lettre.
●
EXPUNGE/CLOSE : Détruit les messages marqués (et ferme).
●
SEARCH : Recherche de message sur différents critères.
●
FETCH : Récupération des données concernant un courrier.
●
COPY : Recopie d’un message d ’une boite à lettre dans une
autre.
●
CAPABILITY : Liste des fonctions implantées d’un serveur.
●
NOOP : Opération vide (maintient de connexion).
26/09/2005
LEGOND Fabrice
39
Envoi de mail: Protocol SMTP - primitives
●
Chaque requête (un message du protocole SMTP) correspond à une ligne de texte
●
HELO <SP> <domaine> <CRLF>
Gestion des emails
●
●
●
●
–
L’ouverture de session entre le client et le serveur
–
« domaine » peut être falsifié.
–
Le serveur ajoute au message le nom de domaine FQDN ou l’IP du client
MAIL <SP> FROM: <route-retour> <CRLF>
–
Définit l'adresse mail de l'émetteur (utilisé pour le retour éventuel d'erreurs)
–
Peut être falsifié !
RCPT <SP> TO: <route-aller> <CRLF>
–
Définit l'adresse d’un destinataire. Peut être falsifié !
–
Le routage du courrier est possible en donnant une liste de MTA à visiter : routage par la source
@Hote_1,@ Hote_2:usager@ Hote_3
–
Routage (relay) à INTERDIRE !!!!!!
DATA <CRLF>
–
Définit l'enveloppe (l'entête) et le corps (le texte) du message.
–
« . » : termine le message
QUIT <CRLF> Termine le connexion au serveur courrier
26/09/2005
LEGOND Fabrice
40
20
Envoi de mail: Protocole SMTP - primitives
●
Gestion des emails
●
●
●
●
RSET : Commande pour abandonner le courrier en cours de
transmission et restaurer la connexion.
VRFY : Commande pour vérifier une adresse de destinataire sans
lui transmettre de courrier (utilisable pour déterminer la cause
d’un problème ou contre le spam).
NOOP : Commande vide qui oblige simplement le serveur à
répondre 200 OK.
EXPN : Expansion d’une liste de diffusion (‘mailing list’).
TURN : Inversion des rôles client et serveur pour envoyer du
courrier dans l’autre sens sans ouvrir une nouvelle connexion
TCP.
26/09/2005
LEGOND Fabrice
41
Envoi de mail: Protocole SMTP - Code de retour
Gestion des emails
●
●
Structure du mail (après le DATA):
–
From: adresse émetteur
–
To: adresse destinataire
–
Date: date de création du message
–
Puis deux lignes vides et le contenu du mail …
Code réponse et explication textuelle: xyz <SP> <texte>
<CRLF>
–
–
xyz: Type de réponse en numérique
✔
1yz: Positif, a suivre
✔
2yz: Requête satisfaite
✔
5yz: Réponse négative
✔
x0z: Syntaxe
✔
x2z: Etat de la connexion
✔
x5z: Etat du système de messagerie
texte: Explications en clair
26/09/2005
LEGOND Fabrice
42
21
Serveurs de messagerie (MTA)
●
●
Serveurs libres:
–
Sendmail (depuis 1980), Auteur principal Eric Allman, version 8.12.10 en
septembre 2003, 40%, problèmes de sécurité et de configuration (fichier
sendmail.cf)
–
Postfix (depuis 2001) Auteur principal Vietse Venema, projet IBM
Vmailer, 5%, configuration assez simple. En progression.
–
Exim (depuis 1995) Auteur Principal Philippe Hazel, 5%
–
Qmail (depuis 1997) Auteur Dan Bernstein 8%
–
Considérés comme meilleurs : Postfix et Qmail
Serveurs payants:
–
Exchange/Internet Information Service (MTA commun Microsoft à la
mesagerie exchange et au serveur web IIS) 20%
–
Lotus Notes/Domino (IBM) 2%
–
IMAIL (Ipswitch) 7%
–
Solution intégrée Sun iPlanet ‘
26/09/2005
LEGOND Fabrice
43
Gestion des emails
Le vénérable ancêtre : « sendmail »
●
Des dizaines de milliers de ligne de code
●
Pour les très gros serveurs
●
Nécessite des connaissances importantes !
●
Il existe des administrateurs sendmail (spécialistes)
●
Google « sendmail tutorial » Î 400k réponses
●
Il existe des bouquins entiers !
●
Voir les URL:
–
http://www.sendmail.org/
–
Introduction to sendmail
26/09/2005
LEGOND Fabrice
44
22
Gestion des emails
Configuration
●
Presque toutes les options sont dans “/etc/mail/sendmail.cf”
●
Le fichier est lu seulement au démarrage
●
Définit les programmes et leurs options
●
Définit les règles de ré-écriture des entêtes des emails
●
Le fichiers « sendmail.cf » est des plus abscond !
–
●
O (option), R (règles de ré-écriture), …
Il est préférable d’utiliser un processeur de macro
–
Convient dans 95% des cas
–
Le logiciel utilisé est m4
–
Utilisation de macros prédéfinies i.e. :« define (‘macro’,’value’) »
–
Puis exécution de « m4 monsendmail.mc > /etc/sendmail.cf »
26/09/2005
LEGOND Fabrice
45
Le « petit » nouveau: postfix
Gestion des emails
●
Pourquoi postfix ?
–
Facile à administrer : variables parlantes
–
Sécurisé : non suid/sgid, chroot
–
Modulaire : plusieurs queues et binaires
–
Compatible avec sendmail
–
Plus rapide que sendmail (pour les petites et moyennes
unités)
26/09/2005
LEGOND Fabrice
46
23
Outils postfix
●
Fichiers de configuration
–
Gestion des emails
●
« /etc/postfix/* » et en particulier « /etc/postfix/main.cf »
Outils de gestion postfix
–
Nombreux et parlants !
–
postconf
–
postfix, postdrop, postqueue
–
postlog, postmap, postalias, postsuper
26/09/2005
LEGOND Fabrice
47
Configuration PostFix des clients
●
Gestion des emails
●
Configuration « null-client »
–
Sur les postes utilisateurs
–
Agit comme un simple relai d’email (ATTENTION !!!)
Si l’on doit passer de sendmail à postfix sous linux
alternatives –set mta /usr/sbin/sendmail.postfix
●
/etc/postfix/main.cf
myhostname = machine1.lip6.fr
mydomain = lip6.fr
myorigin = $mydomain
relayhost = src.lip6.fr
mydestination =
mynetworks = 127.0.0.0/8, 132.227.64.0/24
●
Démarrer le service: /etc/init.d/postfix
●
Tester (voir /var/log)
26/09/2005
LEGOND Fabrice
start
48
24
Gestion des emails
Configuration PostFix des serveurs
#FICHIER /etc/postfix/main.cf
#alias de mail (ie: Fabrice.Legond-Aubry Î login: legond)
alias_database = dbm:/etc/postfix/aliases
#nom du serveur
myhostname = isis.lip6.fr
mydomain = lip6.fr
myorigin = lip6.fr
relayhost = isis.lip6.fr
#les domaines locaux
mydestination = $myhostname, $myorigin, localhost.$mydomain
inet_interfaces = $myhostname, localhost
masquerade_domains = $myorigin
masquerade_exceptions = root
#les domaines autorises pour les connexions de relais
mynetworks = 127.0.0.0/8, 132.2227.64.0/24, 132.227.73.0/24
#home_mailbox = Mailbox
#mail_spool_directory = /var/mail
#type de boîtes mail local: MailDir, dans les homedirectory
home_mailbox = MailDir/
mail_spool_directory = /home
mailbox_command = /usr/bin/procmail
#aliases et autres règles de transformations
alias_maps = dbm:/etc/postfix/aliases, nis:mail.aliases
canonical_maps = dbm:/etc/postfix/canonical
transport_maps = dbm:/etc/postfix/transport
26/09/2005
LEGOND Fabrice
49
Configuration PostFix des serveurs
●
Gestion des emails
●
●
Fichier « /etc/postfix/transport »
–
Remplace les règles par défaut ($mydestination)
–
Contenu possible: « src.lip6.fr local: »
Fichier « /etc/postfix/aliases » (aliases sous sendmail) :
–
Contenu possible : « Prenom.Nom: login »
–
Les Listes de diffusion
–
Contenu possible : « alias_labo: :include:/etc/postfix/listes_labo »
Fichier « /etc/postfix/canonical » (revaliases sous sendmail) :
–
●
Contenu possible : « login Prenom.Nom »
Exécution des commandes pour créer les bases
–
postalias /etc/postfix/aliases
–
postmap /etc/postfix/canonical /etc/postfix/transport
●
Arrêt de sendmail, Démarrage de postfix
●
Tests: « tail –f » dans /var/log/
–
Avec un compte utilisateur (mail entrant et sortant)
–
Avec une liste
26/09/2005
LEGOND Fabrice
50
25
Gestion des emails
Buts de la lutte anti-spams
●
Eliminer les spams en réception
●
Eviter l'émission ou le relai de spams
●
Limiter la dégradation de la qualité de service existante
●
Eviter les pertes de messages (faux positifs)
●
Maintenir la disponibilité
●
Ne pas (trop) dégrader les délais de transmission des messages
valides
●
Mettre à jour les outils anti-spams (en PERMANENCE)
●
Adapter l’architecture des serveurs (en PERMANENCE)
●
Choisir les méthodes que l'on va utiliser
●
Faire converger les solutions anti-spams et anti-virus
26/09/2005
LEGOND Fabrice
51
Typologie des outils anti-spams
Gestion des emails
1.
2.
analyse comportemental
–
consiste à exploiter certains comportements
–
caractéristiques des messages de spams : non respect des rfcs,
nombre de messages émis, ...
analyse de contenu par utilisation de différentes
–
techniques permettant l'analyse du contenu des messages pour
déterminer si un message est un spam ou non.
3.
Utilisation de blacklists, de whitelists et/ou greylist
4.
utilisation de protocoles spécifiques
–
Vérifier la provenance du message (spf)
–
Vérifier l’authenticité (caller-id, Domain Keys, IIM,...)
26/09/2005
LEGOND Fabrice
52
26
Anti-spam: où placer les filtres
●
Gestion des emails
●
●
Réserver les méthodes les plus « subjectives » sur les serveurs proches des
utilisateurs
–
méthodes type « analyse de contenu » (algorithme baysien)
–
Action : tag
Appliquer sur les serveurs frontaux les méthodes les plus « objectives »
–
méthodes de type « analyse comportemental »
–
les antivirus
–
Action : rejet
La plupart des méthodes ne sont pertinente qu’en association avec d’autres
méthodes
–
●
Exemple : les protocoles anti usurpation d’adresses (SPF, DomainKey etc)
peuvent fournir de bon indice pour consolider un filtre bayesien.
Recommandations RFC 2505
26/09/2005
LEGOND Fabrice
53
Technique anti-spam: règles de base
Gestion des emails
●
Interdire le source routing: Interdire les adresses avec indication de routage
–
<user%final-site@intermediate-site>
–
<@intermediate-site,@intermediate-site:user@final-site>
●
Ne pas émettre/accepter un mail sans domaine dans le from/to
●
Interdire les connexions à partir d’@IPs non attribuées
●
Vérifier la validité du domaine d’émission:
–
La machine/domaine est enregistrée dans le DNS
–
La machine/domaine est enregistrée dans le DNS reverse
–
Le passage domaineÎipÎdomaine est idempotent
–
Vérification de la délégation de zone
●
Ajouter des informations à chaque serveur traversé (Received)
●
Logger toutes les tentatives de spam
●
Interdire le relais de emails par des @IPs extérieures au domaine
●
Interdire le SMTP sur les serveurs externes aux domaines
26/09/2005
LEGOND Fabrice
54
27
Technique anti-spam: RBL/RWL
Gestion des emails
●
●
RBL = Real-time Spam Black Lists
–
Une liste publique d’@IP connues pour être des sources de spam
–
Utiliser pour interdire tous les mails provenant de ces @IPs
–
Pb: Difficile de sortir de ces listes
RWL = Real-time Spam White Lists
–
Une liste (privée) d’@IP en qui votre serveur à confiance (ce n’est
pas un spammer)
–
On ne vérifie que les virus
●
Ces listes doivent être maintenues sur le serveur (MAJ 1/jour)
●
Il existe plusieurs sources
–
www.spamcop.net/bl.shtml, dsbl.org/, www.spews.org/,
www.spamhaus.org/sbl/index.lasso
–
Dans laquelle faut-il avoir confiance ?
26/09/2005
LEGOND Fabrice
55
Technique anti-spam: Greylist
●
Gestion des emails
●
Serveur de spam :
–
Pas de gestion des spools de messages
–
différence comportementale entre les moteurs d’envois de spams et
les MTA normaux
Greylisting : C’est une méthode qui consiste à constituer un
triplet ( @IP de l'expéditeur, @email de l'expéditeur, @email du
destinataire) à partir de tout mail qui arrive.
–
Si le triplet est inconnu, on le met dans une base (il devient gris) et
on refuse temporairement le mail.
–
Si ce message revient dans un intervalle de temps défini et
paramétrable, on l'accepte et on le "blanchit".
–
Si le triplet est blanc ou blanchi, on l'accepte.
–
Tout triplet gris est détruit au bout d’un certain délai.
–
Tout triplet blanchi et non réutilisé est détruit au bout d’un certain
délai.
26/09/2005
LEGOND Fabrice
56
28
Technique anti-spam: Filtre bayesien
●
Gestion des emails
●
L’outil libre sous linux le plus connu est SpamAssassin
Filtre utilisant une méthode probabiliste pour prédire si un courriel est légitime
où s'il s'agit d'un spam.
●
C'est relativement efficace
●
C'est aussi utilisé pour pour protéger d’autres sources
●
●
Il faut apprendre au filtre quels messages sont indésirables pour qu'il puisse les
reconnaître
–
Mots clefs (Nigerian letter, cash, $, sex, viagra, pills, …)
–
Majuscules
–
pas d’adresse expéditeur, email expéditeur avec chiffres
ATTENTION au domaine de compétence de l’entreprise
–
Il faut régler la sensibilité en fonctions du public
–
Il faut choisir les mots interdits en fonction du public
●
Possibilité de faux positifs (tag de mail ou rejet ?)
●
Intégration dans les MUA
26/09/2005
LEGOND Fabrice
57
Technique anti-spam: Filtre bayesien
●
Les spammeurs sont inventifs !
s_p/a.m, 5ex
–
Ascii Art
Gestion des emails
–
26/09/2005
LEGOND Fabrice
58
29
Technique anti-spam: antivirus
●
L’outil libre sous linux le plus connu est ClamAV et amaviss
●
Les filtres anti-virus sont devenus obligatoires !
–
Gestion des emails
●
●
●
Si les ressources le permettent, installer les 2 !
Elimination des fichiers dangereux [X-files]
–
.pif, .vbs, .scr, .bat, .lnk, js, .chm, .cpl, .com, .shs, .wsh
–
Fichiers à doubles extensions (.exe.vbs)
Problèmes
–
Analyse des fichiers archive (RAR, ZIP, CAB) ! (explosions
possibles, DOS)
–
Interdire des fichiers légitimes
L’administrateur doit
–
conserver les fichiers expurgés des messages
–
restituer les fichiers expurgés sur demandes d’un utilisateur
26/09/2005
LEGOND Fabrice
59
Technique anti-spam: SPF
●
SPF = « Sender Policy Framework »
●
SPF = « Sender Permitted From »
●
Gestion des emails
●
●
Chaque domaine a un ensemble de machines autorisées à émettre ou relayer
des emails.
Impose la concordance entre le domaine d’émission de l’@email et l’@ de l’IP
de la machine émettrice
Pb: des gens relais leurs propres emails vers d’autres boites.
–
Ie: tout mon courrier lip6 est redirigé vers une boîte free.fr
–
Ex: un mail de quelq1.cnam.fr envoyé à legond.lip6 est relayé vers free.fr
✔
●
le domaine émetteur est lip6.fr, l’adresse de l’émetteur est cnam.fr !!!
Solution: Sender Rewriting Scheme
–
Tout mail qui est relayé par serveur responsable voit l’adresse de
l’émetteur ré-écrite !
✔
–
« qelq1.cnam.fr » devient « [email protected] »
SRS non déployable car tout le monde devrait l’implanter !
26/09/2005
LEGOND Fabrice
60
30
Section : « Administration réseau »
Session distante (SSH, VNC, tunnel)
Serveur WEB (apache)
Gestion du temps
Gestion des emails
Serveur WEB (apache)
Serveur d’impression (CUPS)
26/09/2005
LEGOND Fabrice
61
Le protocole HTTP
●
HTTP = “HyperText Transfert Protocol”
●
La plus importante des applications sur Internet
Serveur WEB (apache)
●
●
●
●
Défini en 1999 par Fielding, Roy T., James Gettys, Jeffrey C.
Mogul, Paul J. Leach, Tim Berners-Lee
Port 80 par défaut
L’identification des ressources (ie: pages web) se fait par l’URI:
“Uniform Resource Identifiers” (RFC 1738)
La localisation des ressources se fait par l’URL: “Uniform
Ressource Locator”
●
L’URL est une URI
●
Bibliographie pléthorique
●
RFC 1945/2068 (obsolète), 2616 et 2817 (SSL/TLS)
26/09/2005
LEGOND Fabrice
62
31
Serveur WEB (apache)
Répartition des serveurs WEB
●
Apache est le serveur HTTP de l’internet !
●
Serveurs Web, répartition en septembre 2000
●
●
–
Apache couvrait 66.04% du marché des serveurs web
–
Microsoft en détenait 24.18%
–
iPlanet,1.57% et Zeus, 1.34%
Serveurs Web, répartition en septembre 2002
–
Apache détenait 66.75% des parts de marché
–
Microsoft IIS, 21.83%
Serveurs Web sécurisés (vente en ligne) en sept. 2002
–
Apache détient 51.26% du marché
–
Microsoft, 34.85%
–
Netscape/iPlanet, 5.68% et Stronghold 2.71%.
26/09/2005
LEGOND Fabrice
63
Le projet Apache
Serveur WEB (apache)
●
●
●
But commun
–
Fournir un serveur web “open source” sécurisé,
performant et extensible
–
Supporter le maximum de protocoles officiels
Le groupe Apache
–
Volontaires de tous les pays : UK, Canada, Allemagne,
Italie, US
–
Support d’une vingtaine d’entreprise (dont IBM)
La version officielle conseillée est maintenant apache
2.0 !
26/09/2005
LEGOND Fabrice
64
32
URI / URL
●
Requête HTTP absolue est de la forme :
protocole://serveur[:port][/[repertoire/…/page][?requete]]
Serveur WEB (apache)
●
●
Certain caractères interdits et sont ré-écrits sous la forme %xx où
xx est un code hexa
Le serveur répond avec un code et des données :
26/09/2005
✔
100
Continue
✔
200
OK
✔
301
Moved Permanently
✔
307
Temporary Redirect
✔
400
Bad Request
✔
401
Unauthorized
✔
404
Not Found
✔
500
Internal Server Error
✔
501
Not Implemented
LEGOND Fabrice
65
Requête HTTP
Serveur WEB (apache)
http://www-master.ufr-info-p6.jussieu.fr/2005/
GET /2005/ HTTP/1.1
Host: www-master.ufr-info-p6.jussieu.fr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR;
rv:1.7.12) Gecko/20050919 Firefox/1.0.7
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/
plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: Master_admin=%40legond
*******************************************************************
HTTP/1.x 200 OK
Date: Fri, 04 Nov 2005 16:18:08 GMT
Server: Apache/2.0.54
X-Powered-By: PHP/4.4.0
Composed-By: SPIP 1.9 alpha @ www.spip.net
Vary: Cookie,Accept-Encoding
Cache-Control: no-cache,must-revalidate
Pragma: no-cache
Keep-Alive: timeout=15, max=89
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
26/09/2005
LEGOND Fabrice
66
33
Configuration
●
Fichier de configuration dans « /etc/httpd/conf/httpd.conf »
●
Il y a 3 type de sections de configurations dans apache.
Serveur WEB (apache)
●
●
Les directives globales qui influent sur le serveur lui-même
(threads, mémoire, modules chargés, …)
Les directives configurant le serveur principal (par défaut)
–
●
Fournit une configuration par défaut pour tous les sites Web
hébergés
Les directives qui influent sur les sites “virtuels”
–
Un serveur apache peut héberger plusieurs sites Web
–
Les réactions du serveur sont différentes en fonction de la façon
don’t il est invoqué !
26/09/2005
LEGOND Fabrice
67
Les principales directives
Serveur WEB (apache)
●
Server root Î Endroit où l’on trouve les fichiers de
configuration
●
Listen Î Sur quels port et ip écoute-t-on les connexions
●
Loadmodule Î chargement d’un module
●
DocumentRoot Î la racine du serveur web
●
User/Group Î id sous lequel doit fonctionner apache
●
Directory Î Gérer les droits et les options sur chaque
répertoire
26/09/2005
LEGOND Fabrice
68
34
Les options de la section « directory »
Serveur WEB (apache)
●
●
Les options globales peuvent être (Options):
–
None
–
All
–
Ou toute combinaison, précédés de +/-, de Indexes,
Includes, FollowSymlinks, ExecCGI, MultiViews
Contrôle d’accès au répertoire.
–
Allow from domaine_ami.com
–
Deny from ennemi.com
–
Ordre de priorité
26/09/2005
LEGOND Fabrice
69
Exemple de configuration
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options +Includes
Serveur WEB (apache)
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK
UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>
26/09/2005
LEGOND Fabrice
70
35
Serveur virtuels
●
Serveur WEB (apache)
●
La plupart des directives de configuration apache peuvent être
encapsulées dans un directive « <virtualhost> </virtualhost> »
Toutes les options sont alors limitées, en portées, au serveur
virtuel.
●
Nécessité de déclarer des alias dans le DNS
●
On peut fusionner et séparer les logs de chaque site !
<VirtualHost *>
ServerAdmin [email protected]
DocumentRoot /home/connect/public_html
ServerName connections2003.liu.edu
ErrorLog /var/log/apache/connections2003-error.log
CustomLog /var/log/apache/connectios2003-access.log common
</VirtualHost>
26/09/2005
LEGOND Fabrice
71
Section : « Administration réseau »
Serveur d’impression (CUPS)
Session distante (SSH, VNC, tunnel)
Gestion du temps
Gestion des emails
Serveur WEB (apache)
Serveur d’impression (CUPS)
26/09/2005
LEGOND Fabrice
72
36
Serveur d’impression CUPS
●
Type de configuration CUPS
Serveur d’impression (CUPS)
–
Serveur local
✔
–
●
Gère seulement les imprimante connectées localement
Serveur partagé
✔
Faire en sorte que les imprimantes locales soient visible sur le réseau
✔
Peut aussi partager des imprimantes déjà partagées (pont)
Quel type de serveur ?
–
Ancien protocole : LPD (Line Printer Daemon)
✔
–
Seulement utile pour la compatibilité avec les anciennes machines
CUPS (Common Unix Printing System)
✔
Utilisé par toutes les nouvelles machines (Linux, NetBSD, MacOS X)
✔
Fournit un contrôle “total” sur les imprimantes
26/09/2005
LEGOND Fabrice
73
Installation CUPS
●
A configurer :
Serveur d’impression (CUPS)
–
–
–
Le type de connection de l’imprimante
✔
Locale : port série, port parallèle, port USB
✔
Distante: Imprimante réseau (TCP/IP)
✔
Connexion à un serveur CUPS/LPD distant
Le type d’imprimante (driver)
✔
CUPS fournit de nombreux drivers
✔
Il existe des drivers génériques (PS, PCL, PDF, …)
Le nom public de l’imprimante (queue)
✔
–
Identification grâce au nom unique
L’imprimante par défaut en cas de multiple imprimante
✔
26/09/2005
Défaut utilisé avec la commande lp <file>
LEGOND Fabrice
74
37
CUPS
●
Avantages de CUPS
Serveur d’impression (CUPS)
–
–
Fournit un contrôle poussé de l’imprimante
✔
Comme le bouton de propriétés d’imprimante de Windows
✔
XPP (X11 Printer Panel peut être utilisé), qtcups
Découverte automatique des imprimantes réseaux
✔
Fournit par les autres démons/serveurs CUPS
✔
Exploité lors de l’ajout de nouveau client CUPS
–
Permet l’impression de fichier PostScript sur toute
imprimante
–
Utilise des fichiers de configuration (driver) PPD
(Postscript Printer Description) standards
✔
Peuvent être téléchargés chez le fournisseur
26/09/2005
LEGOND Fabrice
75
Serveur d’impression (CUPS)
Problèmes d’installation CUPS
●
Configuration par défaut du serveur CUPS dangereuse !
●
Partage :
●
–
Autorisé par défaut !
–
Tous les autres clients peuvent être vu !
–
Tous les autres clients peuvent voir le client local !
–
DOIT ETRE DESACTIVE !
Découverte automatique
–
Par défaut CUPS tente de découvrir toutes les imprimantes de
réseau
–
Peut aboutir à la pollution des clients
–
✔
Imprimantes identiques
✔
Fausses imprimantes (vol de documents)
DOIT ETRE DESACTIVE !
26/09/2005
LEGOND Fabrice
76
38