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