Technologie Ethernet (IEEE 802.3x)

Dimension: px
Commencer à balayer dès la page:

Download "Technologie Ethernet (IEEE 802.3x)"

Transcription

1 Administration de systèmes UNIX Formation ARS Partie 3 Thierry Besançon Formation Permanente de l Université Pierre et Marie Curie c T.Besançon (v ) Administration UNIX ARS Partie 3 1 / Technologie Ethernet (IEEE 802.3x) Chapitre 1 Technologie Ethernet (IEEE 802.3x) c T.Besançon (v ) Administration UNIX ARS Partie 3 2 / 709

2 1 Technologie Ethernet (IEEE 802.3x) 1.1 Principe du CSMA/CD Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.1 Principe du CSMA/CD Le principe d Ethernet : Carrier Sence Multiple Access / Collision Detect (CSMA/CD) 2 cas de figure : 1 Emission dans le cas du câble libre 2 Collision lorsque deux stations émettent simultanément c T.Besançon (v ) Administration UNIX ARS Partie 3 3 / Technologie Ethernet (IEEE 802.3x) 1.1 Principe du CSMA/CD Emission dans le cas du câble libre c T.Besançon (v ) Administration UNIX ARS Partie 3 4 / 709

3 1 Technologie Ethernet (IEEE 802.3x) 1.1 Principe du CSMA/CD Collision lorsque deux stations émettent simultanément c T.Besançon (v ) Administration UNIX ARS Partie 3 5 / Technologie Ethernet (IEEE 802.3x) 1.2 Format d une adresse Ethernet Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.2 Format d une adresse Ethernet Format d une adresse Ethernet : 6 octets écrits sous la forme hexadécimale «xx:yy:zz:rr:ss:tt» avec : partie «xx:yy:zz» : elle identifie un constructeur partie «rr:ss:tt» : elle identifie un appareil chez le constructeur Liste des constructeurs : liste des OUI (Organizationally Unique Identifiers) : « Il existe une adresse de broadcast Ethernet : «ff:ff:ff:ff:ff:ff» Toutes les machines du segment Ethernet sont censées écouter le paquet. c T.Besançon (v ) Administration UNIX ARS Partie 3 6 / 709

4 1 Technologie Ethernet (IEEE 802.3x) 1.3 Format d une trame Ethernet Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.3 Format d une trame Ethernet Trame Ethernet == Paquet Ethernet 62 bits 2 bits Série alternée de 0 et de 1 Série de 2 bits à 1 Taille de la trame : 18 octets d entête + au maximum 1500 octets de données = 1518 octets 6 bytes 6 bytes 2 bytes de 46 bytes à 1500 bytes 4 bytes Adresse de destination Adresse de l émetteur Longueur du paquet (standard 802.3) Type du paquet (standard Ethernet) Données Frame Check Sequence La capacité de 1500 octets est appelée MTU (Maximum Transmission Unit). Il existe des Jumbo frames : trame de 9000 octets de données. Souvent non supporté par les équipements réseau. A éviter. c T.Besançon (v ) Administration UNIX ARS Partie 3 7 / Technologie Ethernet (IEEE 802.3x) 1.4 Address Resolution Protocol (ARP) Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.4 Address Resolution Protocol (ARP) RFC 826 Le protocole ARP apporte la réponse à «comment dialoguer avec une autre machine IP du même brin Ethernet sans connaitre au préalable son adresse Ethernet». Synthétiquement le protocole fonctionne ainsi : Je suis la machine d adresse IP IP1 et d adresse Ethernet MAC1. Ecoutez moi tous sur le brin Ethernet. Je veux dialoguer avec la machine d adresse IP IP2. Que la machine avec cette adresse IP me communique son adresse Ethernet MAC2. J ai bien entendu. Je suis la machine avec IP2. Voici mon adresse Ethernet MAC2. Les autres machines en profitent pour noter la réponse. c T.Besançon (v ) Administration UNIX ARS Partie 3 8 / 709

5 1 Technologie Ethernet (IEEE 802.3x) 1.5 Table ARP : commande arp, /proc/net/arp Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.5 Table ARP : commande arp, /proc/net/arp Syntaxe : «arp -a» ou «arp -an» Exemple : % arp -a Net to Media Table: IPv4 Device IP Address Mask Flags Phys Addr eri0 solaris.example.org SP 00:03:ba:0f:15:35 c T.Besançon (v ) Administration UNIX ARS Partie 3 9 / Technologie Ethernet (IEEE 802.3x) 1.5 Table ARP : commande arp, /proc/net/arp Autre façon d obtenir la table ARP d une machine LINUX : % cat /proc/net/arp IP address HW type Flags HW address Mask Device x1 0x2 00:02:7E:21:F7:9C * eth x1 0x2 00:48:54:6B:E5:B0 * eth3 c T.Besançon (v ) Administration UNIX ARS Partie 3 10 / 709

6 1 Technologie Ethernet (IEEE 802.3x) 1.6 Réglages ARP : commande arp Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.6 Réglages ARP : commande arp Syntaxes de la commande «arp» : 1 «arp -a» pour lister les adresses MAC connues 2 «arp -d hostname» pour effacer une adresse MAC du cache ARP 3 «arp -s hostname adresse-ethernet» pour mettre en cache une adresse MAC Pourquoi les options 2 et 3? c T.Besançon (v ) Administration UNIX ARS Partie 3 11 / Technologie Ethernet (IEEE 802.3x) 1.6 Réglages ARP : commande arp Exemple : configuration initiale d un boitier ethernet / parallèle (ou USB) pour une imprimante : On connait l adresse MAC du boitier (par exemple impression sur l imprimante moyennant une combinaison de touche) ; par exemple «11:22:33:44:55:66» On associe alors cette adresse MAC à une adresse IP sur la machine où l on se trouve : «arp -s :22:33:44:55:66» On peut alors se connecter en IP pour finir de configurer le boitier c T.Besançon (v ) Administration UNIX ARS Partie 3 12 / 709

7 1 Technologie Ethernet (IEEE 802.3x) 1.7 Surveillance ARP : commande arpwatch Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.7 Surveillance ARP : commande arpwatch « ARPWATCH surveille les échanges du protocole ARP et stocke les adresses échangées. A completer... Attention : forte utilisation des switches désormais difficile d écouter les paquets qui ne nous sont pas destinés c T.Besançon (v ) Administration UNIX ARS Partie 3 13 / Technologie Ethernet (IEEE 802.3x) 1.8 (Windows : : purge du cache ARP : netsh) Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.8 (Windows : : purge du cache ARP : netsh) Une machine WINDOWS utilise un cache ARP comme n importe quelle autre machine faisant de l IP. On peut purger le cache ARP par la commande «netsh interface ip delete arpcache». c T.Besançon (v ) Administration UNIX ARS Partie 3 14 / 709

8 1 Technologie Ethernet (IEEE 802.3x) 1.9 Reverse Address Resolution Protocol (RARP) Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.9 Reverse Address Resolution Protocol (RARP) (en anglais Reverse Address Resolution Protocol) Le protocole répond à «je suis la machine d adresse Ethernet MAC1 ; qui peut me donner mon adresse IP?». Exemple de telles machines : stations UNIX sans disque (dite diskless) terminaux X, clients légers imprimantes réseau webcams réseau boitiers ethernet/usb ou ethernet/parallèle pour imprimante c T.Besançon (v ) Administration UNIX ARS Partie 3 15 / Technologie Ethernet (IEEE 802.3x) 1.10 RARP : rarpd Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.10 RARP : rarpd Démon «rarpd» Il utilise le fichier «/etc/ethers» : 08:00:20:03:2f:15 08:00:20:04:03:b4 08:00:20:02:fc:d2 valerian.lpt.ens.fr bill.lpt.ens.fr chang.lpt.ens.fr Obsolète c T.Besançon (v ) Administration UNIX ARS Partie 3 16 / 709

9 1 Technologie Ethernet (IEEE 802.3x) 1.11 RARP : BOOTP, bootpd Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.11 RARP : BOOTP, bootpd Le protocole BOOTP est plus complet que RARPD. Il permet en plus de spécifier des paramètres de boot. Démon «bootpd» Le démon «bootpd» se lance : soit en mode autonome : % ps -ax grep bootp 314?? Is 0:00.01 /usr/libexec/bootpd soit via «inetd» : bootps dgram udp wait root /usr/libexec/bootpd bootpd c T.Besançon (v ) Administration UNIX ARS Partie 3 17 / Technologie Ethernet (IEEE 802.3x) 1.11 RARP : BOOTP, bootpd Il faut renseigner le fichier «/etc/bootptab» (fichier par défaut mais c est configurable à volonté) : fermion.lpt.ens.fr:\ :tc=.default:\ :ht=ethernet:\ :ha=0x :\ :ip= :\ :hd=/hds/netos/image:\ :bf=x.hds: Obsolète c T.Besançon (v ) Administration UNIX ARS Partie 3 18 / 709

10 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient DHCP : Dynamic Host Configuration Protocol RFC 2131 et RFC 2132 « « Port TCP 67 (port d écoute du serveur) Port TCP 68 (port de réponse du serveur) c T.Besançon (v ) Administration UNIX ARS Partie 3 19 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient On distingue : le serveur DHCP : à l écoute sur ses interfaces réseau, il distribue par son autorité des adresses IP résidant dans des plages DHCP SERVER le DHCP relay agent : il sait router les paquets IP du protocole DHCP entre un client et un serveur DHCP agent le client DHCP : il utilise le protocole DHCP pour découvrir son adresse IP et d autres paramètres réseau ou autres paramètres (dits DHCP options ; par exemple le serveur NTP) DHCP CLIENT c T.Besançon (v ) Administration UNIX ARS Partie 3 20 / 709

11 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Protocole DHCP Principe : CLIENT DHCP DHCPDISCOVER (broadcast) SERVEUR DHCP DHCPOFFER (unicast) DHCPREQUEST (broadcast) DHCPACK (unicast) c T.Besançon (v ) Administration UNIX ARS Partie 3 21 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Principe : 1 Une machine démarre dans l état «INIT» 2 Elle cherche un serveur DHCP en envoyant un paquet «DHCPDISCOVER». 3 Un ou plusieurs serveurs DHCP répondent par un paquet «DHCPOFFER» contenant une adresse IP et des options DHCP. 4 Le client sélectionne un serveur DHCP parmi ceux qui ont répondu. Par exemple, le premier. 5 Le client broadcaste un paquet «DHCPREQUEST» spécifiant l adresse IP retenue. 6 Le serveur retenu répond au client en lui envoyant un paquet «DHCPACK». 7 Après, le client posséde l adresse IP pour un laps de temps appelé lease. c T.Besançon (v ) Administration UNIX ARS Partie 3 22 / 709

12 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Lorsqu une machine qui a obtenu une adresse IP via DHCP reboote, elle ne recommence pas exactement les étapes ci-dessus. Elle commence dans l état «INIT-REBOOT». Elle envoie un paquet «DHCPREQUEST» reprenant l adresse précédemment acquise. En cas de disponibilité de l adresse, le serveur répond par «DHCPACK». En cas de non disponibilité (par exemple, le portable a changé de réseau), un serveur DHCP répond par «DHCPNACK». A ce moment-là, la machine reprend à l étape 1 de ci-dessus. Mécanisme de détection de duplicate IP address : le serveur DHCP envoie un paquet «ICMP Echo» ; en cas de réponse, le serveur propose une autre adresse le client DHCP envoie un paquet «ARP» ; en cas de réponse, le client envoie un paquet «DHCPDECLINE» ; le serveur proposera alors une nouvelle adresse c T.Besançon (v ) Administration UNIX ARS Partie 3 23 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Faiblesses du protocole DHCP Denial of Service possible ; «DHCPDISCOVER» puis «DHCPNAK» jusqu à épuisement des numéros libres sur le serveur DHCP par exemple single point of failure ; pas de mécanisme de serveur DHCP de secours pas d authentification du client au serveur et vice-versa inadéquation de l adresse MAC comme Client Identifier ; par exemple un portable et un dock, une carte PCMCIA réseau c T.Besançon (v ) Administration UNIX ARS Partie 3 24 / 709

13 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient ISC DHCP « «ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl1.tar.gz» Version 3 : supporte le Dynamic DNS Update, l authentification DHCP Peut répondre à des requêtes BOOTP. Fichier de configuration : en général «/etc/dhcp.conf» En cas de modification au fichier de configuration, il faut arrêter le démon «dhcpd» et le relancer (par exemple «/etc/rc.d/dhcp restart»). Pas de «SIGHUP» pour le reconfigurer on the fly. c T.Besançon (v ) Administration UNIX ARS Partie 3 25 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Exemple de «/etc/dhcpd.conf» : ddns-update-style always-reply-rfc1048 none; on; option domain-name-servers ; option domain-name "jardiniers.org"; option subnet-mask ; option broadcast-address ; option log-servers ; subnet netmask { range ; default-lease-time 120; max-lease-time 180; } host gutenberg { # Apple 12/640 hardware ethernet 08:00:07:24:46:59; fixed-address ; } c T.Besançon (v ) Administration UNIX ARS Partie 3 26 / 709

14 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Le serveur écrit les leases sur disque : «/var/run/dhcpd.leases» ; ancienne base «dhcpd.leases~» Exemple de «/var/run/dhcpd.leases» : # All times in this file are in UTC (GMT), not your local timezone. This is # not a bug, so please don t ask about it. There is no portable way to # store leases in the local timezone, so please don t request this as a # feature. If this is inconvenient or confusing to you, we sincerely # apologize. Seriously, though - don t ask. # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-v3.0.1rc6 lease { starts /09/08 22:57:10; ends /09/08 22:59:10; binding state active; next binding state free; hardware ethernet 00:04:76:48:4f:65; } c T.Besançon (v ) Administration UNIX ARS Partie 3 27 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Sur Red Hat Linux, on peut dire à la machine de configurer son adresse réseau via DHCP au niveau de «/etc/sysconfig/network-scripts/ifcfg-eth0» : DEVICE = eth0 IPADDR = NETMASK = NETWORK = BROADCAST = GATEWAY = none ONBOOT = yes DYNAMIC = dhcp Une machine UNIX utilisant DHCP fait tourner «dhclient» c T.Besançon (v ) Administration UNIX ARS Partie 3 28 / 709

15 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Possibilité d avoir une configuration du comportement DHCP du client au moyen du fichier «/etc/dhclient.conf». Par exemple : timeout 60; retry 60; reboot 10; select-timeout 5; initial-interval 2; reject ; interface "ep0" { send host-name "andare.fugue.com"; send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; send dhcp-lease-time 3600; supersede domain-name "fugue.com rc.vix.com home.vix.com"; prepend domain-name-servers ; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name;... c T.Besançon (v ) Administration UNIX ARS Partie 3 29 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Suite :... } require subnet-mask, domain-name-servers; script "/sbin/dhclient-script"; media "media 10baseT/UTP", "media 10base2/BNC"; alias { interface "ep0"; fixed-address ; option subnet-mask ; } c T.Besançon (v ) Administration UNIX ARS Partie 3 30 / 709

16 1 Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Options DHCP pour clients Microsoft Cf : « default.asp?url=/windows2000/en/server/help/\ sag_dhcp_add_optionsmsvendorspecific.htm» c T.Besançon (v ) Administration UNIX ARS Partie 3 31 / Technologie Ethernet (IEEE 802.3x) 1.12 RARP : DHCP, dhcpd, dhcpd.conf, dhclient Outils satellites pour DHCP Quelques outils : logiciel «dhcpdump» : « logiciel «dhcping» : « #./dhcping -c s h 8:0:20:cf:62:12 Got answer from: c T.Besançon (v ) Administration UNIX ARS Partie 3 32 / 709

17 1 Technologie Ethernet (IEEE 802.3x) 1.13 Mode promiscuous Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.13 Mode promiscuous En théorie une carte réseau n écoute que les paquets qui lui sont destinés. Si une carte Ethernet est en mode promiscuous, elle peut capturer des paquets qui ne lui sont pas destinés. Sur LINUX, la commande «ifconfig» indique l état promiscuous. A completer... Sur SOLARIS, la commande «ifconfig» n indique pas l état promiscuous. # snoop -d eri0 Using device /dev/eri (promiscuous mode) c T.Besançon (v ) Administration UNIX ARS Partie 3 33 / Technologie Ethernet (IEEE 802.3x) 1.14 Capture de trames Ethernet : librairie libpcap Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.14 Capture de trames Ethernet : librairie libpcap (en anglais library packet capture) Cf « C est une bibliothèque de programmation C spécialisée dans la capture de paquets réseau. Elle repose sur un driver réseau présent dans le noyau, le packet filter BPF. c T.Besançon (v ) Administration UNIX ARS Partie 3 34 / 709

18 1 Technologie Ethernet (IEEE 802.3x) 1.15 Capture de trames Ethernet : tcpdump Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.15 Capture de trames Ethernet : tcpdump Cf « C est le logiciel de référence en ce qui concerne l analyse des trames IP circulant sur un réseau. Il est bâti au dessus de la libpcap qui fait tout le travail en fait. C est juste de l enrobage au dessus de libpcap. En cas de problème réseau, on utilisera ce logiciel si l origine du problème n est pas évidente. Exemple : # tcpdump -s 1500 host # tcpdump -s 1500 arp # tcpdump -s 1500 icmp # tcpdump -s 1500 dst sgbd.example.com port 5432 # tcpdump -s w fichier # tcpdump -s r fichier c T.Besançon (v ) Administration UNIX ARS Partie 3 35 / Technologie Ethernet (IEEE 802.3x) 1.16 Capture de trames Ethernet : wireshack (ethereal) Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.16 Capture de trames Ethernet : wireshack (ethereal) « Ancien nom : «ethereal» (« C est un logiciel graphique d analyse des trames IP circulant sur un réseau. On l utilise conjointement à tcpdump : 1 on demande à «tcpdump» d enregistrer les trames : «tcpdump -s w enregistrement» 2 on demande à «ethereal» de relire a posteriori ce fichier d enregistrement : «ethereal enregistrement» c T.Besançon (v ) Administration UNIX ARS Partie 3 36 / 709

19 1 Technologie Ethernet (IEEE 802.3x) 1.16 Capture de trames Ethernet : wireshack (ethereal) c T.Besançon (v ) Administration UNIX ARS Partie 3 37 / Technologie Ethernet (IEEE 802.3x) 1.17 (Windows : : capture de trames Ethernet : wireshack.exe) Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.17 (Windows : : capture de trames Ethernet : wireshack.exe) A completer... c T.Besançon (v ) Administration UNIX ARS Partie 3 38 / 709

20 1 Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan Chapitre 1 Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan Sur les machines modernes, la carte réseau reste alimentée électriquement la carte réseau peut alors démarrer la carte mère sur réception de paquets réseau spéciaux et démarrer l OS = Wake On Lan c T.Besançon (v ) Administration UNIX ARS Partie 3 39 / Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan c T.Besançon (v ) Administration UNIX ARS Partie 3 40 / 709

21 1 Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan Manifestement dépend aussi du driver de la carte réseau : Manifestement dépend aussi de la bonne qualité du driver de la carte réseau : Salle de TP de la Formation Permanente Carte mère ASUS P4P800X Boot de Windows ; shutdown propre WOL possible Boot de Mandriva 2006 ; shutdown propre WOL impossible c T.Besançon (v ) Administration UNIX ARS Partie 3 41 / Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan Comment contacter une machine? Envoi d un paquet Ethernet spécial : paquet UDP à destination du port discard le plus souvent contenu du paquet UDP (dit magic sequence) : 6 fois «0xFF» 16 fois l adresse Ethernet Par exemple, pour réveiller la carte d adresse «01:02:03:04:05:06» : FFFFFFFFFFFF c T.Besançon (v ) Administration UNIX ARS Partie 3 42 / 709

22 Logiciels : 1 Technologie Ethernet (IEEE 802.3x) 1.18 Wake On Lan «wakeonlan» : « «wakeonlan» : « («java -jar wakeonlan.jar -i :02:03:04:05:06» c T.Besançon (v ) Administration UNIX ARS Partie 3 43 / Protocole IP Chapitre 2 Protocole IP c T.Besançon (v ) Administration UNIX ARS Partie 3 44 / 709

23 2 Protocole IP 2.1 Adresses IP v4 Chapitre 2 Protocole IP 2.1 Adresses IP v4 Quelques caractéristiques : protocole IP version 4 adresse IP sur 4 octets «a.b.c.d» a, b, c, d sont compris entre 0 et 255 et écrits en base 10 pour éviter des erreurs % man 3 inet... All numbers supplied as parts in a. notation may be decimal, octal, or hexadecimal, as specified in the C language (i.e., a leading 0x or 0X implies hexadecimal; otherwise, a leading 0 implies octal; otherwise, the number is interpreted as decimal).... des organismes attribuent des lots d adresses aux sociétés (pour la France « notion de classes d adresses mais devient obsolète c T.Besançon (v ) Administration UNIX ARS Partie 3 45 / Protocole IP 2.1 Adresses IP v4 Classe A Format des adresses 7 bits 24 bits 0 netid hostid à bits 16 bits B C D E 1 0 netid hostid à bits 8 bits netid hostid à bits multicast groupid à bits (reserved for future use) à c T.Besançon (v ) Administration UNIX ARS Partie 3 46 / 709

24 2 Protocole IP 2.2 IP v6 Chapitre 2 Protocole IP 2.2 IP v6 1.6e+09 Total address space allocated 1.4e e+09 Addresses allocated 1e+09 8e+08 6e+08 4e+08 2e Year c T.Besançon (v ) Administration UNIX ARS Partie 3 47 / Protocole IP 2.2 IP v6 5e+09 Total address space allocated 4.5e+09 4e e+09 Addresses allocated 3e e+09 2e e+09 1e+09 5e Year c T.Besançon (v ) Administration UNIX ARS Partie 3 48 / 709

25 2 Protocole IP 2.2 IP v6 Epuisement prévu des numéros IP création de IP v6. Voir exposé de Yves Legrandgérard. c T.Besançon (v ) Administration UNIX ARS Partie 3 49 / Protocole IP 2.2 IP v6 From: James Carlson <carlson@xylogics.com> To: ipng@sunroof.eng.sun.com Subject: Re: (IPng) GENERAL IPNG ISSUES Date: Mon, 26 Sep 94 07:29: >> PS why do people say that 16 bytes is enough to address the people >> on the entire planet squillions of times over when addresses relate >> to location geography? 16 bytes is 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456. This is a humorously large address space. Taking a SWAG at the size of the Earth, about 201,062,400 square miles, this comes to around 1,692,421,690,584,308,470,720,406,239,216 addresses per square mile of Earth s surface, or about 421,578,297,421,497,485,189 addresses per square inch. Even if we chop off three bytes to indicate galaxy, solar system and planet, we d still have 25,128,024 addresses per square *mil* here on Earth. Pathology will never be the same after every microbe has its own address... c T.Besançon (v ) Administration UNIX ARS Partie 3 50 / 709

26 2 Protocole IP 2.3 Encapsulation des paquets Chapitre 2 Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet data trailer Ethernet c T.Besançon (v ) Administration UNIX ARS Partie 3 51 / Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet Trame ARP trailer Ethernet c T.Besançon (v ) Administration UNIX ARS Partie 3 52 / 709

27 2 Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet Trame IP trailer Ethernet c T.Besançon (v ) Administration UNIX ARS Partie 3 53 / Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet Trame IP trailer Ethernet header IP Trame UDP c T.Besançon (v ) Administration UNIX ARS Partie 3 54 / 709

28 2 Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet Trame IP trailer Ethernet header IP Trame TCP c T.Besançon (v ) Administration UNIX ARS Partie 3 55 / Protocole IP 2.3 Encapsulation des paquets Trame Ethernet header Ethernet Trame IP trailer Ethernet header IP Trame ICMP c T.Besançon (v ) Administration UNIX ARS Partie 3 56 / 709

29 2 Protocole IP 2.4 Adresse spéciale : adresse de loopback Chapitre 2 Protocole IP 2.4 Adresse spéciale : adresse de loopback Interface virtuelle de loopback d adresse IP « » Permet de faire des connexions réseau avec soi-même. c T.Besançon (v ) Administration UNIX ARS Partie 3 57 / Protocole IP 2.5 Netmask Chapitre 2 Protocole IP 2.5 Netmask Le problème : comment la station A construit-elle les paquets Ethernet pour dialoguer avec la machine B, où que soit la station B? La difficulté : si B n est pas sur le même réseau que A, il faut construire un paquet avec pour adresse Ethernet de destination l adresse Ethernet du routeur et non pas avec l adresse Ethernet de B. La solution : A et B sont sur le même réseau physique si IP(A) et IP(B) partagent une même propriété. En l occurence si IP(A) & netmask(a) = IP(B) & netmask(a) c T.Besançon (v ) Administration UNIX ARS Partie 3 58 / 709

30 2 Protocole IP 2.6 Adresse de broadcast Chapitre 2 Protocole IP 2.6 Adresse de broadcast Chaque machine IP écoute un paquet IP avec l adresse de broadcast pour adresse de destination et répond peut-être suivant le type du paquet. c T.Besançon (v ) Administration UNIX ARS Partie 3 59 / Protocole IP 2.7 Configuration d adresse IP : ifconfig Chapitre 2 Protocole IP 2.7 Configuration d adresse IP : ifconfig (en anglais interface configuration) La commande «ifconfig» sert à régler les paramètres des cartes réseau : # ifconfig le0 inet # ifconfig le0 netmask 0xffffff80 # ifconfig le0 broadcast # ifconfig -a lo0: flags=849<up,loopback,running,multicast> mtu 8232 inet netmask ff le0: flags=863<up,broadcast,notrailers,running,multicast> mtu 1500 inet netmask ffffff80 broadcast ether 8:0:20:83:12:4a c T.Besançon (v ) Administration UNIX ARS Partie 3 60 / 709

31 2 Protocole IP 2.7 Configuration d adresse IP : ifconfig Sur une machine Linux, les cartes réseau ont pour noms «eth0», «eth1», «eth2», etc. Sur une machine Linux, la paramètrage réseau de la carte «eth0» se trouve au niveau du fichier «/etc/sysconfig/network-scripts/ifcfg-eth0» (ainsi de suite pour les autres interfaces) : DEVICE=eth0 BOOTPROTO=static BROADCAST= IPADDR= NETMASK= NETWORK= ONBOOT=yes GATEWAY= TYPE=Ethernet USERCTL=no PEERDNS=no La commande «dmesg» renvoie la liste des interfaces. c T.Besançon (v ) Administration UNIX ARS Partie 3 61 / Protocole IP 2.7 Configuration d adresse IP : ifconfig Sur une machine SOLARIS, les cartes réseau ont des noms dépendant du type de carte. Par exemple «le0», «eri0», «qfe0» + «qfe1» + «qfe2» + «qfe3» (carte quad port 10/100), etc. Sur une machine SOLARIS, la paramètrage réseau de la carte XYZ se trouve au niveau du fichier «/etc/hostname.xyz» : -rw-r--r-- 1 root root 19 Dec 4 01:35 /etc/hostname.eri0 qui contient le hostname associé à la carte : hostname adresse réseau via «/etc/host» Broadcast, netmask déduits La commande «dmesg» renvoie la liste des interfaces. c T.Besançon (v ) Administration UNIX ARS Partie 3 62 / 709

32 2 Protocole IP 2.8 Configuration d adresses IP virtuelles : ifconfig Chapitre 2 Protocole IP 2.8 Configuration d adresses IP virtuelles : ifconfig Sur une machine Linux, si la carte réseau s appelle par exemple «eth0», alors les adresses virtuelles utiliseront les interfaces réseau virtuelles de noms «eth0:0», «eth0:1», «eth0:2», etc. Sur une machine Linux, la paramètrage réseau de l adresse virtuelle «eth0:0» se trouve au niveau du fichier «/etc/sysconfig/network-scripts/ifcfg-eth0:0» (ainsi de suite pour les autres interfaces) : DEVICE=eth0:0 BOOTPROTO=static BROADCAST= IPADDR= NETMASK= NETWORK= ONBOOT=yes TYPE=Ethernet USERCTL=no PEERDNS=no c T.Besançon (v ) Administration UNIX ARS Partie 3 63 / Protocole IP 2.8 Configuration d adresses IP virtuelles : ifconfig Sur une machine SOLARIS, si la carte réseau s appelle par exemple «eri0», alors les adresses virtuelles utiliseront les interfaces réseau virtuelles de noms «eri0:1», «eri0:2», «eri0:3», etc. Sur une machine SOLARIS, la paramètrage réseau d une interface virtuelle «eri0:1» se trouvera donc au niveau du fichier «/etc/hostname.eri0:1» : -rw-r--r-- 1 root root 19 Dec 4 01:35 /etc/hostname.eri0:1 qui contient le hostname associé à l interface virtuelle : hostname adresse réseau via «/etc/host» Broadcast, netmask déduits Manuellement «ifconfig eri0 addif /prefix up» c T.Besançon (v ) Administration UNIX ARS Partie 3 64 / 709

33 2 Protocole IP 2.9 (Windows : : ipconfig.exe) Chapitre 2 Protocole IP 2.9 (Windows : : ipconfig.exe) La commande «ipconfig.exe» permet de connaitre en mode ligne de commande la configuration réseau des interfaces. A completer... c T.Besançon (v ) Administration UNIX ARS Partie 3 65 / Protocole IP 2.10 (Windows 98 : : winipcfg.exe) Chapitre 2 Protocole IP 2.10 (Windows 98 : : winipcfg.exe) La commande «winipcfg.exe» permet de connaitre en mode graphique la configuration réseau des interfaces. A completer... c T.Besançon (v ) Administration UNIX ARS Partie 3 66 / 709

34 2 Protocole IP 2.11 (Windows : : netsh.exe) Chapitre 2 Protocole IP 2.11 (Windows : : netsh.exe) La commande «netsh» permet de configurer en mode ligne de commande beaucoup d aspects réseau. A completer... c T.Besançon (v ) Administration UNIX ARS Partie 3 67 / Protocole IP 2.12 Adresses privées : RFC 1918 Chapitre 2 Protocole IP 2.12 Adresses privées : RFC 1918 RFC 1918 Adresses privées : « /8» « /12» « /16» Adresses utilisables sur des réseaux sans interconnexion avec Internet. c T.Besançon (v ) Administration UNIX ARS Partie 3 68 / 709

35 2 Protocole IP 2.13 Connexions IP Chapitre 2 Protocole IP 2.13 Connexions IP Une connexion IP est constituée des éléments suivants : une adresse IP source un numéro de port source sur la machine de départ une adresse IP de destination un numéro de port sur la machine de destination protocole TCP ou UDP c T.Besançon (v ) Administration UNIX ARS Partie 3 69 / Protocole IP 2.13 Connexions IP En pratique il y a 3 catégories de port : Les Well Known Ports de 0 à 1023 Les Registered Ports de 1024 à Les Dynamic and/or Private Ports de à Attention : Sur UNIX, la fonction C obtenant un port source < 1024 ne fonctionne que pour l UID 0. Sur Windows, la fonction C obtenant un port source < 1024 fonctionne quel que soit l UID c T.Besançon (v ) Administration UNIX ARS Partie 3 70 / 709

36 2 Protocole IP 2.14 Fichier /etc/services Chapitre 2 Protocole IP 2.14 Fichier /etc/services Le fichier «/etc/services» mentionne des triplets (numéro de port, protocole, nom du service). On peut obtenir un triplet officiellement pour un programme à soi auprès de l IANA « Le fichier «/etc/services» sert à convertir un port numérique en un nom symbolique plus parlant. Voir les fonctions C «getservbyname()», «getservbyport()», «getservent()». ATTENTION : Le fichier «/etc/services» n indique pas les services réseau activés sur la machine. c T.Besançon (v ) Administration UNIX ARS Partie 3 71 / Protocole IP 2.14 Fichier /etc/services Extrait d un fichier «/etc/services» :... chargen 19/tcp ttytst source #Character Generator chargen 19/udp ttytst source #Character Generator ftp-data 20/tcp #File Transfer [Default Data] ftp-data 20/udp #File Transfer [Default Data] ftp 21/tcp #File Transfer [Control] ftp 21/udp #File Transfer [Control] ssh 22/tcp #Secure Shell Login ssh 22/udp #Secure Shell Login telnet 23/tcp telnet 23/udp smtp 25/tcp mail #Simple Mail Transfer smtp 25/udp mail #Simple Mail Transfer... c T.Besançon (v ) Administration UNIX ARS Partie 3 72 / 709

37 2 Protocole IP 2.15 Liste des ports réseau actifs : netstat -a, netstat -an Chapitre 2 Protocole IP 2.15 Liste des ports réseau actifs : netstat -a, netstat -an La commande «netstat -a» renvoie la liste des connexions réseau établies ou en attente d établissement de connexion. Les noms affichés proviennent de «/etc/services» : % netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.ssh *.* LISTEN tcp *.ssh *.* LISTEN udp4 0 0 *.syslog *.* udp6 0 0 *.syslog *.* udp4 0 0 *.bootpc *.* Active UNIX domain sockets... c T.Besançon (v ) Administration UNIX ARS Partie 3 73 / Protocole IP 2.15 Liste des ports réseau actifs : netstat -a, netstat -an La commande «netstat -an» renvoie la liste des connexions réseau établies ou en attente d établissement de connexion, sans les traduire en noms via «/etc/services». Ils sont affichés sous forme numérique : % netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.22 *.* LISTEN tcp *.22 *.* LISTEN udp4 0 0 *.514 *.* udp6 0 0 *.514 *.* udp4 0 0 *.68 *.* Active UNIX domain sockets... c T.Besançon (v ) Administration UNIX ARS Partie 3 74 / 709

38 2 Protocole IP 2.16 (Windows : : Liste des ports réseau actifs : netstat.exe) Chapitre 2 Protocole IP 2.16 (Windows : : Liste des ports réseau actifs : netstat.exe) Même principe sur UNIX : Microsoft Windows XP [Version ] (C) Copyright Microsoft Corp. C:\Documents and Settings\ars>netstat -an more Active Connections Proto Local Address Foreign Address State TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING TCP : :0 LISTENING UDP :445 *:* UDP :500 *:*... c T.Besançon (v ) Administration UNIX ARS Partie 3 75 / Protocole IP 2.17 Liste des connexions réseau : lsof Chapitre 2 Protocole IP 2.17 Liste des connexions réseau : lsof (en anglais List of open files) ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/ «lsof» permet de connaître les filedescriptors ouverts sur une machine UNIX. Cela comprend les connexions réseau. Par exemple, pour voir quels processus utilisent la partition «/var/run» : % lsof /var/run COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME lpd 410 daemon 6u VREG 0, /var/run (swap) dhcpd root 6w VREG 0, /var/run (swap) c T.Besançon (v ) Administration UNIX ARS Partie 3 76 / 709

39 2 Protocole IP 2.17 Liste des connexions réseau : lsof Par exemple pour voir qui utilise une certaine connexion TCP : % lsof -i tcp:32771 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME inetd 320 root 18u IPv4 0x f350 0t0 TCP *:32771 (LISTEN) Par exemple pour voir qui utilise une certaine connexion UDP : % lsof -i UDP@ :3853 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ss_logd 232 root 3u IPv4 0x30001d961c0 0t0 UDP localhost:3853 (Idle) (format «[protocol][@hostname hostaddr][:service port]») c T.Besançon (v ) Administration UNIX ARS Partie 3 77 / Protocole IP 2.18 Commande de connexion : telnet Chapitre 2 Protocole IP 2.18 Commande de connexion : telnet Syntaxe : telnet host Exemples d utilisation : connexion à une machine UNIX connexion à une imprimante connexion à un équipement réseau etc. A chaque fois que ce sera possible, préférer une connexion shell distante en utilisant SSH. c T.Besançon (v ) Administration UNIX ARS Partie 3 78 / 709

40 2 Protocole IP 2.18 Commande de connexion : telnet Autre syntaxe importante : telnet host port Exemples d utilisation : connexion manuelle à un serveur POP connexion manuelle à un serveur IMAP connexion manuelle à un serveur HTTP etc. Non remplaçable par SSH. c T.Besançon (v ) Administration UNIX ARS Partie 3 79 / Protocole IP 2.18 Commande de connexion : telnet Exemple : connexion à une machine UNIX % telnet server.example.com Trying Connected to server.example.com. Escape character is ^]. SunOS 5.7 login: besancon Password: XXXXXXXX Last login: Sun Oct 12 15:18:22 from ppp-3 Sun Microsystems Inc. SunOS 5.5 Generic November 1995 server% c T.Besançon (v ) Administration UNIX ARS Partie 3 80 / 709

41 Exemple : connexion à une imprimante 2 Protocole IP 2.18 Commande de connexion : telnet % telnet hp4100.example.com Trying Connected to hp4100.example.com. Escape character is ^]. HP JetDirect Password: XXXXXXXX You are logged in Please type "?" for HELP, or "/" for current settings > / ===JetDirect Telnet Configuration=== Firmware Rev. : G MAC Address : 00:30:c1:0a:45:b2 Config By : USER SPECIFIED c T.Besançon (v ) Administration UNIX ARS Partie 3 81 / Protocole IP 2.18 Commande de connexion : telnet > exit IP Address : Subnet Mask : Default Gateway : Syslog Server : Not Specified Idle Timeout : 90 Seconds Set Cmnty Name : Not Specified Host Name : Not Specified Default Get Cmnty : Enabled DHCP Config : Disabled Passwd : Enabled IPX/SPX : Disabled DLC/LLC : Disabled Ethertalk : Enabled Banner page : Disabled EXITING WITHOUT SAVING ANY ENTRIES > Connection closed by foreign host. c T.Besançon (v ) Administration UNIX ARS Partie 3 82 / 709

42 2 Protocole IP 2.18 Commande de connexion : telnet Exemple : interruption d une connexion par Ctrl-] (Control crochet fermant) % telnet obsolete.example.com Trying Connected to obsolete.example.com. Escape character is ^]. telnet login: besancon Password: XXXXXXXX Login incorrect login: ^] <-- taper Ctrl-] telnet> quit Connection closed. c T.Besançon (v ) Administration UNIX ARS Partie 3 83 / Protocole IP 2.18 Commande de connexion : telnet Exemple : tentative de connexion à une machine sans telnet % telnet notelnet.example.com Trying telnet: connect to address : Connection refused telnet: Unable to connect to remote host c T.Besançon (v ) Administration UNIX ARS Partie 3 84 / 709

43 2 Protocole IP 2.18 Commande de connexion : telnet Humour Faire «telnet towel.blinkenlights.nl» c T.Besançon (v ) Administration UNIX ARS Partie 3 85 / Protocole IP 2.19 (Windows : : Commande de connexion : telnet.exe) Chapitre 2 Protocole IP 2.19 (Windows : : Commande de connexion : telnet.exe) Programme «telnet.exe» : c T.Besançon (v ) Administration UNIX ARS Partie 3 86 / 709

44 3 Routage IP par défaut Chapitre 3 Routage IP par défaut c T.Besançon (v ) Administration UNIX ARS Partie 3 87 / Routage IP par défaut 3.1 Notion de routage Chapitre 3 Routage IP par défaut 3.1 Notion de routage Routage : acheminement des paquets IP à leur destination selon un chemin déterminé par la destination Cas le plus simple : routage par défaut : tous les paquets IP sont acheminés vers un routeur qui les transmet plus loin. Les autres cas : protocoles spécialisés : ROUTED, BGP, OSPF, etc. (voir cours réseau) Un cas très spécial : routage selon l adresse IP source : policy based routing Attention : souvent un hack au niveau de l OS! c T.Besançon (v ) Administration UNIX ARS Partie 3 88 / 709

45 3 Routage IP par défaut 3.2 Relation entre routage IP et paquets ethernet Chapitre 3 Routage IP par défaut 3.2 Relation entre routage IP et paquets ethernet machine A ETH = 11:22:33:44:55:66 IP = E ETH src = 11:22:33:44:55:66 ETH dest = AA:BB:CC:11:11:11 T H IP src = I IP dest = P IP data I P IP src = IP dest = IP data ROUTEUR ETH = AA:BB:CC:11:11:11 IP = ETH = AA:BB:CC:22:22:22 IP = machine B ETH = 77:88:99:00:AA:BB IP = E T ETH src = AA:BB:CC:22:22:22 ETH dest = 77:88:99:00:AA:BB H IP src = I IP dest = P IP data c T.Besançon (v ) Administration UNIX ARS Partie 3 89 / Routage IP par défaut 3.3 Configuration du routage LINUX : route Chapitre 3 Routage IP par défaut 3.3 Configuration du routage LINUX : route La commande «route» sert à configurer le routage. # route add default gw gw = gateway = routeur Sur une machine LINUX, se reporter au fichier «/etc/sysconfig/network» : NETWORKING=yes FORWARD_IPV4=false HOSTNAME=pcars5.formation.jussieu.fr DOMAINNAME=formation.jussieu.fr NISDOMAIN=real.world GATEWAY= GATEWAYDEV=eth0 c T.Besançon (v ) Administration UNIX ARS Partie 3 90 / 709

46 3 Routage IP par défaut 3.4 Configuration du routage SOLARIS : route Chapitre 3 Routage IP par défaut 3.4 Configuration du routage SOLARIS : route La commande «route» sert à configurer le routage. # route add default Sur une machine SOLARIS, se reporter au fichier «/etc/defaultrouter» : c T.Besançon (v ) Administration UNIX ARS Partie 3 91 / Routage IP par défaut 3.5 (Windows : : route.exe) Chapitre 3 Routage IP par défaut 3.5 (Windows : : route.exe) A completer... c T.Besançon (v ) Administration UNIX ARS Partie 3 92 / 709

47 3 Routage IP par défaut 3.6 Routage : netstat Chapitre 3 Routage IP par défaut 3.6 Routage : netstat La commande «netstat -r» renvoie la table de routage d une machine UNIX : % netstat -rn Routing Table: Destination Gateway Flags Ref Use Interface UGH U le U 3 0 le0 default UG UH lo0 c T.Besançon (v ) Administration UNIX ARS Partie 3 93 / Routage IP par défaut 3.7 (Windows : : netstat.exe) Chapitre 3 Routage IP par défaut 3.7 (Windows : : netstat.exe) Même principe sur UNIX : C:\Documents and Settings\ars>netstat -rn Route Table =========================================================================== Interface List 0x1... MS TCP Loopback interface 0x c VMware Virtual Ethernet Adapter for VMnet2 0x c VMware Virtual Ethernet Adapter for VMnet8 0x c VMware Virtual Ethernet Adapter for VMnet1 0x b Dell TrueMobile 1400 Dual Band WLAN Mini-PCI Card - Packet 0x d 56 ad cc be... Broadcom 440x 10/100 Integrated Controller - Packet Schedu =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric c T.Besançon (v ) Administration UNIX ARS Partie 3 94 / 709

48 3 Routage IP par défaut 3.7 (Windows : : netstat.exe) =========================================================================== Persistent Routes: None c T.Besançon (v ) Administration UNIX ARS Partie 3 95 / Routage IP par défaut 3.8 Test de connectivité : ping Chapitre 3 Routage IP par défaut 3.8 Test de connectivité : ping La commande «ping» teste si une machine répond au niveau réseau. % ping localhost localhost is alive On peut parfois pinger l adresse de broadcast : % /usr/sbin/ping -s PING : 1 data bytes 9 bytes from sunars1.formation.jussieu.fr ( ): icmp_seq=0. 9 bytes from sunars2.formation.jussieu.fr ( ): icmp_seq=0. 9 bytes from sunars4.formation.jussieu.fr ( ): icmp_seq=0. 9 bytes from sunars3.formation.jussieu.fr ( ): icmp_seq=0. 9 bytes from r-formation.formation.jussieu.fr ( ): icmp_seq=0. 9 bytes from sunars1.formation.jussieu.fr ( ): icmp_seq=1. 9 bytes from sunars2.formation.jussieu.fr ( ): icmp_seq=1. 9 bytes from sunars4.formation.jussieu.fr ( ): icmp_seq=1. 9 bytes from sunars3.formation.jussieu.fr ( ): icmp_seq=1. 9 bytes from r-formation.formation.jussieu.fr ( ): icmp_seq=1. ^C PING Statistics packets transmitted, 10 packets received, 5.00 times amplification c T.Besançon (v ) Administration UNIX ARS Partie 3 96 / 709

49 3 Routage IP par défaut 3.9 Test de connectivité : fping, hping Chapitre 3 Routage IP par défaut 3.9 Test de connectivité : fping, hping Autres utilitaires parents de PING : FPING : « HPING : « c T.Besançon (v ) Administration UNIX ARS Partie 3 97 / Routage IP par défaut 3.10 (Windows : : ping.exe) Chapitre 3 Routage IP par défaut 3.10 (Windows : : ping.exe) Même principe sur UNIX : C:\Documents and Settings\ars>ping Pinging with 32 bytes of data: Reply from : bytes=32 time<1ms TTL=128 Reply from : bytes=32 time<1ms TTL=128 Reply from : bytes=32 time<1ms TTL=128 Reply from : bytes=32 time<1ms TTL=128 Ping statistics for : Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms c T.Besançon (v ) Administration UNIX ARS Partie 3 98 / 709

50 3 Routage IP par défaut 3.11 Test de connectivité : traceroute Chapitre 3 Routage IP par défaut 3.11 Test de connectivité : traceroute La commande «traceroute» permet de tester si une machine est joignable. Elle renvoie les intermédiaires réseau qui route notre acheminement vers la machine distante. Syntaxe : «traceroute machine» % traceroute ftp.lip6.fr traceroute to nephtys.lip6.fr ( ), 30 hops max, 40 byte packets 1 yacht ( ) 0 ms 0 ms 0 ms 2 renater ( ) 2 ms 1 ms 1 ms ( ) 3 ms 1 ms 1 ms ( ) 2 ms 1 ms 1 ms ( ) 2 ms 1 ms 1 ms 6 jussieu.rap.prd.fr ( ) 2 ms 2 ms 2 ms 7 nephtys.lip6.fr ( ) 2 ms 2 ms 2 ms Le nombre d intermédiaires n est pas proportionnel à l éloignement géographique de la machine destination. c T.Besançon (v ) Administration UNIX ARS Partie 3 99 / Routage IP par défaut 3.12 (Windows : : tracert.exe) Chapitre 3 Routage IP par défaut 3.12 (Windows : : tracert.exe) A completer... c T.Besançon (v ) Administration UNIX ARS Partie / 709

51 3 Routage IP par défaut 3.13 Machine LINUX routeur Chapitre 3 Routage IP par défaut 3.13 Machine LINUX routeur Routeur LINUX = une machine LINUX avec deux cartes réseau Les paquets réseau doivent être rout es d une interface réseau à une autre interface réseau. Activation via «/proc/sys/net/ipv4/ip_forward» : 0 : les paquets ne sont pas routés d une interface à une autre interface 1 : les paquets sont routés d une interface à une autre interface c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) Chapitre 4 Domain Name Server (DNS) c T.Besançon (v ) Administration UNIX ARS Partie / 709

52 4 Domain Name Server (DNS) 4.1 Principes du DNS Chapitre 4 Domain Name Server (DNS) 4.1 Principes du DNS Impossibilité pratique de maintenir à jour les fichiers «/etc/hosts». remplacement par un mécanisme d annuaire réparti dont chacun gère sa entrée propre : le Domain Name Server Particularités de la base de données du DNS : répartie petite avec une faible fréquence de changements des données hiérarchisée accès en consultation uniquement ; pas de requête de modification c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.2 Zone DNS Chapitre 4 Domain Name Server (DNS) 4.2 Zone DNS zone DNS : reflet de l aspect réparti et hiérarchisé du DNS partie contigüe de l arbre une zone parente délègue une zone fille à un ou plusieurs serveurs d informations (nameservers) sur la zone fille. com net fr... wanadoo jussieu formation... www www ssh c T.Besançon (v ) Administration UNIX ARS Partie / 709

53 4 Domain Name Server (DNS) 4.3 Requête d interrogation du DNS Chapitre 4 Domain Name Server (DNS) 4.3 Requête d interrogation du DNS Le DNS est bâti selon un modèle client serveur Cf logiciel DNSTRACER sur « c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.3 Requête d interrogation du DNS Le DNS utilise des root nameservers : Pour assurer un service fiable, une zone est servie par un nameserver primaire et plusieurs nameservers secondaires de secours qui se synchronisent entre eux. c T.Besançon (v ) Administration UNIX ARS Partie / 709

54 4 Domain Name Server (DNS) 4.3 Requête d interrogation du DNS Principe de mémorisation des informations passées recueillies pour accélérer les réponses aux requêtes. L information a une date de péremption (TTL = Time To Live). Le serveur qui mémorise un record DNS n a pas autorité dessus. Chaque enregistrement de la base de données a : une classe ; la plus courante : IN (Internet) un type : A, PTR, NS, SOA, MX, CNAME,... et est donc de la forme : (classe, type, clé, valeur, TTL) Une requête ressemble alors à : (classe, type, clé,?,?) (classe, *, clé,?,?) c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.4 Implémentation : BIND, named Chapitre 4 Domain Name Server (DNS) 4.4 Implémentation : BIND, named URL : « Démon «named» Fichier de configuration «/etc/named.conf» (en général). Directory «/etc/namedb» stockant les fichiers de zone (en général). c T.Besançon (v ) Administration UNIX ARS Partie / 709

55 Exemple 1 : 4 Domain Name Server (DNS) 4.4 Implémentation : BIND, named Pour connaitre la version de «named» : % dig ns.example.com version.bind chaos txt ; <<>> DiG 8.2 <<>> ns.example.com version.bind chaos txt ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUERY SECTION: ;; version.bind, type = TXT, class = CHAOS ;; ANSWER SECTION: version.bind. 0S CHAOS TXT "bind 9" ;; Total query time: 3 msec ;; FROM: client.example.com to SERVER: default ;; WHEN: Mon Sep 30 00:20: ;; MSG SIZE sent: 30 rcvd: 49 c T.Besançon (v ) Administration UNIX ARS Partie / 709 Exemple 2 : 4 Domain Name Server (DNS) 4.4 Implémentation : BIND, named Pour connaitre la version de «named» : % dig dmi.ens.fr version.bind chaos txt ; <<>> DiG <<>> dmi.ens.fr version.bind chaos txt ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4 ;; QUESTION SECTION: ;dmi.ens.fr. IN A ;; ANSWER SECTION: dmi.ens.fr IN A ;; AUTHORITY SECTION: ens.fr IN NS oseille.ens.fr. ens.fr IN NS dmi.ens.fr. ens.fr IN NS ext.lri.fr. ens.fr IN NS ns2.nic.fr. ens.fr IN NS clipper.ens.fr. c T.Besançon (v ) Administration UNIX ARS Partie / 709

56 4 Domain Name Server (DNS) 4.4 Implémentation : BIND, named ;; ADDITIONAL SECTION: ext.lri.fr IN A ns2.nic.fr IN A clipper.ens.fr IN A oseille.ens.fr IN A ;; Query time: 831 msec ;; SERVER: #53( ) ;; WHEN: Mon Sep 30 00:19: ;; MSG SIZE rcvd: 210 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. CH TXT ;; ANSWER SECTION: version.bind. 0 CH TXT "9.2.1" ;; Query time: 42 msec ;; SERVER: #53( ) ;; WHEN: Mon Sep 30 00:19: ;; MSG SIZE rcvd: 48 c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.5 F.root-servers.net (vieille version) Chapitre 4 Domain Name Server (DNS) 4.5 F.root-servers.net (vieille version) OBSOLÈTE mais laissé pour se faire une idée c T.Besançon (v ) Administration UNIX ARS Partie / 709

57 4 Domain Name Server (DNS) 4.5 F.root-servers.net (vieille version) (cf « The Internet Software Consortium is proud to operate one of 13 root DNS servers as a public service to the Internet. The ISC has operated «F.root-servers.net» for the IANA ( since F ( answers more than 272 million DNS queries per day, making it one of the busiest DNS servers in the world. In fact, it is often the busiest root nameserver on the Internet. F is a virtual server made up of multiple (currently two) HP AlphaServers, donated to us by HP s Western Research Laboratory ( Each server is a HP ES40 AlphaServer with 4 500mhz CPUs and 8Gig of RAM, and runs ISC BIND as its DNS server. c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.5 F.root-servers.net (vieille version) The servers are hosted at PAIX.net, Inc. ( in Palo Alto, California and are connected to the Internet via fdx Fast Ethernet connections which are provided by UUNET ( Teleglobe ( and MFN ( For more information on the root DNS system, see : BCP 40 (RFC2870) - Operational guidelines for Root Name Servers ( c T.Besançon (v ) Administration UNIX ARS Partie / 709

58 4 Domain Name Server (DNS) 4.6 F.root-servers.net (à jour) Chapitre 4 Domain Name Server (DNS) 4.6 F.root-servers.net (à jour) (cf « 2 nœuds globaux, plus de trente nœuds locaux répartis dans divers pays. c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.7 Utilitaire rndc Chapitre 4 Domain Name Server (DNS) 4.7 Utilitaire rndc Syntaxe : rndc [options] cmd Il contrôle le fonctionnement de «named» à distance via TCP («rndc.conf» contient des clefs d accès). «status» status de NAMED «dumpdb» dumpe la base et le cache dans «/var/tmp/named_dump.db» «reload» recharge les zones primaires et secondaires «stats» dumpe les statistiques dans «/var/tmp/named.stats» «trace/notrace» gestion du niveau de trace dans «/var/tmp/named.run» «start» démarre NAMED «stop» arrête NAMED en sauvant les mises à jour en cours «halt» arrête NAMED froidement «restart» arrête et redémarre NAMED c T.Besançon (v ) Administration UNIX ARS Partie / 709

59 4 Domain Name Server (DNS) 4.8 Fichier /etc/resolv.conf Chapitre 4 Domain Name Server (DNS) 4.8 Fichier /etc/resolv.conf Consultation des nameservers indiqués via le fichier «/etc/resolv.conf» Exemple de fichier «/etc/resolv.conf» : domain formation.jussieu.fr search formation.jussieu.fr jussieu.fr nameserver nameserver Attention : Au plus 3 lignes «nameserver». Tous les UNIX ne comprennent pas la directive «search». c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.9 Interrogation manuelle DNS : nslookup Chapitre 4 Domain Name Server (DNS) 4.9 Interrogation manuelle DNS : nslookup Syntaxe : nslookup [options] à-résoudre % nslookup Server: sunars1.formation.jussieu.fr Address: Non-authoritative answer: Name: Address: La machine est dans le cache du DNS parce qu elle a déjà été résolue dans un passé récent. Cet utilitaire tombe en désuétude. c T.Besançon (v ) Administration UNIX ARS Partie / 709

60 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig Chapitre 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig C est le remplaçant de «nslookup». Il est très low level. Syntaxe : dig [options] à-résoudre Quelques flags utilisés : flag «QR» : Query flag «AA» : Authoritative Answer flag «TC» : TCP flag «RD» : Recursion Desired flag «RA» : Recursion Available flag «AD» : Authentic Data (DNSSEC) flag «CD» : Checking Disabled (DNSSEC) ID QR Opcode AA TC RD RA Z AD CD RCODE QDCOUNT ANCOUNT NSCOUNT ARCOUNT c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig Exemple 1 : récursivité jusqu à la racine % dig +trace ; <<>> DiG <<>> +trace ;; global options: printcmd IN NS K.ROOT-SERVERS.NET IN NS L.ROOT-SERVERS.NET IN NS M.ROOT-SERVERS.NET IN NS A.ROOT-SERVERS.NET IN NS B.ROOT-SERVERS.NET IN NS C.ROOT-SERVERS.NET IN NS D.ROOT-SERVERS.NET IN NS E.ROOT-SERVERS.NET IN NS F.ROOT-SERVERS.NET IN NS G.ROOT-SERVERS.NET IN NS H.ROOT-SERVERS.NET IN NS I.ROOT-SERVERS.NET IN NS J.ROOT-SERVERS.NET. ;; Received 244 bytes from #53( ) in 5 ms fr IN NS DNS.CS.WISC.EDU. fr IN NS NS1.NIC.fr. fr IN NS NS3.NIC.fr. fr IN NS DNS.INRIA.fr. c T.Besançon (v ) Administration UNIX ARS Partie / 709

61 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig fr IN NS NS2.NIC.fr. fr IN NS DNS.PRINCETON.EDU. fr IN NS NS-EXT.VIX.COM. fr IN NS NS3.DOMAIN-REGISTRY.NL. ;; Received 373 bytes from #53(K.ROOT-SERVERS.NET) in 273 ms jussieu.fr IN NS shiva.jussieu.fr. jussieu.fr IN NS cendrillon.lptl.jussieu.fr. jussieu.fr IN NS soleil.uvsq.fr. ;; Received 166 bytes from #53(DNS.CS.WISC.EDU) in 337 ms IN CNAME serveur.formation.jussieu.fr. serveur.formation.jussieu.fr IN A formation.jussieu.fr IN NS cendrillon.lptl.jussieu.fr. formation.jussieu.fr IN NS shiva.jussieu.fr. formation.jussieu.fr IN NS soleil.uvsq.fr. ;; Received 204 bytes from #53(shiva.jussieu.fr) in 217 ms On voit bien le mécanisme de consultations des différents nameservers. c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig Exemple 2 : consultation à la nslookup % dig ; <<>> DiG <<>> ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 3 ;; QUESTION SECTION: ; IN A ;; ANSWER SECTION: IN CNAME serveur.formation.jussieu.fr. serveur.formation.jussieu.fr IN A ;; AUTHORITY SECTION: formation.jussieu.fr IN NS cendrillon.lptl.jussieu.fr. formation.jussieu.fr IN NS shiva.jussieu.fr. formation.jussieu.fr IN NS soleil.uvsq.fr. c T.Besançon (v ) Administration UNIX ARS Partie / 709

62 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig ;; ADDITIONAL SECTION: shiva.jussieu.fr IN A soleil.uvsq.fr IN A cendrillon.lptl.jussieu.fr IN A ;; Query time: 5 msec ;; SERVER: #53( ) ;; WHEN: Thu Aug 29 00:22: ;; MSG SIZE rcvd: 204 c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig Exemple 3 : réponse en cas d erreur % dig cerise ; <<>> DiG <<>> cerise ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;cerise. IN A ;; AUTHORITY SECTION: IN SOA A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM ;; Query time: 206 msec ;; SERVER: #53( ) ;; WHEN: Thu Aug 29 00:22: ;; MSG SIZE rcvd: 98 c T.Besançon (v ) Administration UNIX ARS Partie / 709

63 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig Exemple 4 : précision du type du record Première fois : % dig SOA ; <<>> DiG 8.2 <<>> SOA ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUERY SECTION: ;; type = SOA, class = IN ;; AUTHORITY SECTION: crlv.org. 2H IN SOA ns.easynet.fr. hostmaster.easynet.fr. ( ; serial 1H ; refresh 30M ; retry 4W ; expiry 2H ) ; minimum ;; Total query time: 14 msec ;; FROM: apollinaire.paris4.sorbonne.fr to SERVER: default ;; WHEN: Thu Aug 29 15:06: ;; MSG SIZE sent: 30 rcvd: 90 c T.Besançon (v ) Administration UNIX ARS Partie / 709 Deuxième fois : 4 Domain Name Server (DNS) 4.10 Interrogation manuelle DNS : dig % dig SOA ; <<>> DiG 8.2 <<>> SOA ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUERY SECTION: ;; type = SOA, class = IN ;; AUTHORITY SECTION: crlv.org. 1h55m43s IN SOA ns.easynet.fr. hostmaster.easynet.fr. ( ; serial 1H ; refresh 30M ; retry 4W ; expiry 2H ) ; minimum ;; Total query time: 13 msec ;; FROM: apollinaire.paris4.sorbonne.fr to SERVER: default ;; WHEN: Thu Aug 29 15:10: ;; MSG SIZE sent: 30 rcvd: 98 c T.Besançon (v ) Administration UNIX ARS Partie / 709

64 4 Domain Name Server (DNS) 4.11 Record de type PTR Chapitre 4 Domain Name Server (DNS) 4.11 Record de type PTR On peut aussi interroger un nameserver pour résoudre des adresses : % /usr/sbin/nslookup Server: sunars1.formation.jussieu.fr Address: Name: Address: A rapprocher de : % /usr/sbin/nslookup -query=ptr in-addr.arpa Server: sunars1.formation.jussieu.fr Address: Non-authoritative answer: in-addr.arpa name = Authoritative answers can be found from: in-addr.arpa nameserver = ns1.fth.net in-addr.arpa nameserver = ns2.fth.net ns1.fth.net internet address = ns2.fth.net internet address = c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.11 Record de type PTR fr. arpa jussieu in addr formation 134 sunars Assurer la coherence 1 sunars1.formation.jussieu.fr Une faute courante : oublier de mettre à jour l entrée relative à l adresse IP de la machine. c T.Besançon (v ) Administration UNIX ARS Partie / 709

65 4 Domain Name Server (DNS) 4.12 Fichier /etc/nsswitch.conf Chapitre 4 Domain Name Server (DNS) 4.12 Fichier /etc/nsswitch.conf Certains systèmes UNIX permettent de spécifier quelles méthodes de résolution utiliser (DNS, «/etc/hosts», NIS) ainsi que l ordre d enchaînement des méthodes. Sur Linux et Solaris, cf «/etc/nsswitch.conf» (voir page 474) :... hosts:... files nisplus nis dns ou... hosts:... xfn nisplus dns [NOTFOUND=return] files c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.13 Délégation d une partie de classe C Chapitre 4 Domain Name Server (DNS) 4.13 Délégation d une partie de classe C RFC 2317 « Avis : Mécanisme astucieux mais un peu compliqué à mettre en œuvre en pratique. c T.Besançon (v ) Administration UNIX ARS Partie / 709

66 4 Domain Name Server (DNS) 4.13 Délégation d une partie de classe C WebDNS Logiciel WebDNS : « Principe : générer les données via une vraie base de données avec toutes les possibilités fines associées (par exemple une personne peut avoir le droit SQL de modifier un et un seul record DNS dans la base SQL) Logiciel non réservé aux sous classes C. En utilisation sur le campus de Jussieu par exemple. Avis : Approche très tendance pour résoudre un problème de fond dans le principe du DNS lors de vrais déployements. Avis 2 : Nouvel exemple de couplage à une base de données. c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.13 Délégation d une partie de classe C Serveur Web (client PostgreSQL) HTTP/HTTPS Internet PostgreSQL DNS PostgreSQL named.boot Base de données Serveur de données (PostgreSQL) Serveur DNS (client PostgreSQL) fichiers de zones c T.Besançon (v ) Administration UNIX ARS Partie / 709

67 4 Domain Name Server (DNS) 4.14 Nom de machine : hostname Chapitre 4 Domain Name Server (DNS) 4.14 Nom de machine : hostname Caractères autorisés : cf RFC 952 et RFC 1123 En résumé : lettres majuscules lettres minuscules chiffres caractère moins «-» caractère underscore «_» « « c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.15 WHOIS Chapitre 4 Domain Name Server (DNS) 4.15 WHOIS WHOIS base de données des informations relatives à l attribution des plages d adresses IP et des noms de domaines. Exemple d un protocole Internet loupé car les implémentations ne sont pas compatibles entre elles. RFC 954, port TCP 43 Protocole exploitable par la commande «whois». Syntaxe : «whois [ -h server-whois ] adresse-ou-domaine» c T.Besançon (v ) Administration UNIX ARS Partie / 709

68 4 Domain Name Server (DNS) 4.15 WHOIS Quelques serveurs WHOIS : «rs.internic.net» «whois.nic.fr» ou via un interface WWW : « «whois.ripe.net» c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.16 (Windows : : ipconfig /displaydns, ipconfig /flushdns) Chapitre 4 Domain Name Server (DNS) 4.16 (Windows : : ipconfig /displaydns, ipconfig /flushdns) Une machine WINDOWS utilise un cache interne pour les requêtes DNS. On peut afficher le cache interne par la commande «ipconfig /displaydns». On peut purger le cache interne par la commande «ipconfig /flushdns». c T.Besançon (v ) Administration UNIX ARS Partie / 709

69 4 Domain Name Server (DNS) 4.17 Espace de confiance Chapitre 4 Domain Name Server (DNS) 4.17 Espace de confiance c T.Besançon (v ) Administration UNIX ARS Partie / Domain Name Server (DNS) 4.18 Un peu de documentation Chapitre 4 Domain Name Server (DNS) 4.18 Un peu de documentation cours réseau ARS Cf « et ftp://ftp.isc.org/isc/bind/ Cf « Cf « Cf «ftp://ftp.univ-rennes1.fr/pub/reseau/dns/exemple/» RFC 2317 «Classless IN-ADDR.ARPA delegation» « «ftp://ftp.jussieu.fr/jussieu/doc/local/dnsmail.ps.z» « DNS and BIND, 4th Edition, By Paul Albitz & Cricket Liu, 4th Edition April 2001, O Reilly & Associates, Inc. 622 pages, $44.95 c T.Besançon (v ) Administration UNIX ARS Partie / 709

70 5 SSH Chapitre 5 SSH c T.Besançon (v ) Administration UNIX ARS Partie / 709 Chapitre 5 SSH 5 SSH 5.1 Introduction 5.1 Introduction Voir cours de Frédérique BONGAT. c T.Besançon (v ) Administration UNIX ARS Partie / 709

71 6 Courrier électronique Chapitre 6 Courrier électronique c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.1 Composantes du système du courrier électronique Chapitre 6 Courrier électronique 6.1 Composantes du système du courrier électronique C est un système complexe dont la complexité croît sans cesse. Il a de fortes interactions avec Internet, avec les Intranets. De nombreuses implémentations sont disponibles (X400, SMTP, Microsoft Exchange, etc.). Le système est modulaire, son bon fonctionnement reposant sur des descriptions publiquement disponibles des détails des différents protocoles. c T.Besançon (v ) Administration UNIX ARS Partie / 709

72 6 Courrier électronique 6.1 Composantes du système du courrier électronique Réseau Destinataire du courrier non local Courriers à destination d un utilisateur local Transmission au facteur local MTA Distribution personnalisée MDA Boîte aux lettres Emission d un courrier Consultation des courriers MUA c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.1 Composantes du système du courrier électronique Terminologie : MTA (Mail Transfer Agent agent de routage) En fonction de l adresse de destination, il passe le message à un certain agent de transport. Plusieurs MTA existent : Sendmail, Postfix MDA (Mail Delivery Agent agent de transport) Il reçoit un message, une destination et se charge de l acheminement. Il est spécialisé dans un type d acheminement. (synonyme mailer) MUA (Mail User Agent agent utilisateur) Il sert à la composition des messages qu il envoie à l agent de routage. c T.Besançon (v ) Administration UNIX ARS Partie / 709

73 6 Courrier électronique 6.1 Composantes du système du courrier électronique Normes utilisées : RFC 822, description du format des messages RFC 821, description du protocole SMTP (Simple Mail Transfer Protocol) RFC 974, description de l interaction d un MTA avec le DNS RFC 1035 RFC 1123 Attention : documents techniques hermétiques à la lecture compliquée Cf «ftp://ftp.lip6.fr/pub/rfc/rfc/» Les problèmes de mail sont à adresser à «postmaster». Les MTA font l hypothèse que cette adresse existe. Cette adresse doit être lue par un humain. c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.2 Sendmail Chapitre 6 Courrier électronique 6.2 Sendmail SENDMAIL : Conçu en 1982, par Eric Allman (<eric@cs.berkeley.edu>) Site officiel « Principal logiciel pour router les courriers des systèmes UNIX répandus Souple, puissant Sait s adapter aux nouveaux standards (aspects multimedia) Syntaxe difficile Outils annexes simplifiant la configuration : par exemple kit jussieu «ftp://ftp.jussieu.fr/jussieu/sendmail/kit/kit tar.z» «ftp://ftp.jussieu.fr/jussieu/sendmail/kit/doc-kit ps.z c T.Besançon (v ) Administration UNIX ARS Partie / 709

74 6 Courrier électronique 6.3 Sendmail plugins : MILTER Chapitre 6 Courrier électronique 6.3 Sendmail plugins : MILTER SENDMAIL s occupe de router les mails. Donc : hors de question de compliquer le code par un antivirus hors de question de compliquer le code par un antispam hors de question de compliquer le code par... Bref, hors de question de compliquer le code par n importe quoi qui n a pas de rapport avec le routage de mails. Par contre, possibilité d interfacer SENDMAIL à des fonctionnalités externalisées grâce à l API «MILTER» fourni par les développeurs de SENDMAIL. Cf « pour de la documentation ou des plugins. c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.3 Sendmail plugins : MILTER MILTER = communication entre SENDMAIL et des programmes externes via des sockets UNIX. c T.Besançon (v ) Administration UNIX ARS Partie / 709

75 6 Courrier électronique 6.4 Postfix Chapitre 6 Courrier électronique 6.4 Postfix « Futur successeur de SENDMAIL certainement dans quelques années. Une réflexion sur SENDMAIL a conduit à écrire postfix sous une forme non monolithique. Plusieurs démons vont s occuper chacun d une tâche bien précise et n utilisent pour cela que le minimum de privilèges système limitant le risque de piratage : transport aliases.forward rewrite resolve local mailbox local "sendmail" maildrop pickup cleanup incoming active qmgr smtp Internet Internet smtpd canonical virtual deferred relocated pipe UUCP, etc. RBL access c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.4 Postfix Le fichier de configuration est une succession d affectation de valeurs à des variables. Approche radicalement différente de celle de SENDMAIL plus proche d une programmation de la configuration. Approche de postfix identique à celle du kit jussieu pour SENDMAIL (ou vice versa). Possibilité de modifier on the fly le comportement de postfix. Par exemple à l établissement d une connexion PPP ou lors de sa cloture, on peut depuis le script PPP dire à postfix d échanger les mails maintenant avec l extérieur. Avec SENDMAIL, il faudrait arrêter SENDMAIL, mettre en place une nouvelle configuration «sendmail.cf», relancer SENDMAIL, ensemble de manœuvres lourdes. c T.Besançon (v ) Administration UNIX ARS Partie / 709

76 6 Courrier électronique 6.5 Postfix plugins Chapitre 6 Courrier électronique 6.5 Postfix plugins Il existe un mécanisme à MILTER de SENDMAIL dans POSTFIX. Utilisation de sockets UNIX aussi. c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.6 Boites aux lettres : folders Chapitre 6 Courrier électronique 6.6 Boites aux lettres : folders Deux formats classiques de folders sous UNIX : folder MBOX folder MAILDIR c T.Besançon (v ) Administration UNIX ARS Partie / 709

77 6 Courrier électronique 6.7 Boites aux lettres : folder MBOX Chapitre 6 Courrier électronique 6.7 Boites aux lettres : folder MBOX Un fichier stocke tous les mails reçus du MDA et manipulés par les MUA : Classiquement «/var/mail/$username». Problèmes de verrouillage du fichier lors des lectures/écritures, de manipulation de grosses boites aux lettres, etc. c T.Besançon (v ) Administration UNIX ARS Partie / 709 Structure d un mail : 6 Courrier électronique 6.7 Boites aux lettres : folder MBOX From samag@neodata.com Mon Nov 19 21:27: Return-Path: <samag@neodata.com> Received: from localhost (localhost [ ]) by apollinaire.paris4.sorbonne.fr (8.11.6/8.11.6) with ESMTP id fajkrfy03543 for <Thierry.Besancon@localhost>; Mon, 19 Nov :27: (MET) Received: from sorbon.sorbonne.fr [ ] by localhost with POP3 (fetchmail-5.9.4) for Thierry.Besancon@localhost (single-drop); Mon, 19 Nov :27: (MET) Received: from neodata.com ([ ]) by sorbon.sorbonne.fr (8.11.0/jtpda-5.3.3) with ESMTP id fajkqno06486 for <Thierry.Besancon@paris4.sorbonne.fr>; Mon, 19 Nov :26: (MET) Received: from bennett (bennett.neo.comm.eds.com [ ]) by neodata.com ( Sun/8.9.1) with ESMTP id fajkrbk17328; Mon, 19 Nov :27: (MST) Received: by bennett (8.8.8+Sun/SMI-SVR4) id NAA14733; Mon, 19 Nov :26: (MST) Date: Mon, 19 Nov :26: (MST) From: samag@neodata.com X-Gnus-Mail-Source: directory:~/mail/incoming/ Message-Id: < NAA14733@bennett> To: Thierry.Besancon@paris4.sorbonne.fr Subject: NEW ORDER Suite sur transparent suivant c T.Besançon (v ) Administration UNIX ARS Partie / 709

78 Structure d un mail (suite) : 6 Courrier électronique 6.7 Boites aux lettres : folder MBOX X-AntiVirus: scanned for viruses by AMaViS ( X-UIDL: Tjg!!<n*"!6i+"!J@O!! Status: RO X-Content-Length: 299 SYS ADMIN appreciates your inquiry and welcomes the opportunity to serve your needs. En résumé : une ligne commencant par «From» (attention à l espace suivant le From) autres entêtes une ligne blanche marquant la fin des entêtes et le début du corps du mail corps du mail une ligne blanche après le corps du mail c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.7 Boites aux lettres : folder MBOX Structure d un mail (suite) : Attention : si le corps du message contient une ligne commencant par «From», la ligne est transformée en «>From». Pourquoi? c T.Besançon (v ) Administration UNIX ARS Partie / 709

79 6 Courrier électronique 6.7 Boites aux lettres : folder MBOX Le format folder MBOX est manipulable par plusieurs MUA. Le MUA le plus simple pour cela est la commande «Mail» (ou «mail» ou «mailx»). % Mail "/var/mail/besancon": 4 messages 4 new >N 1 besancon@example.c Thu Aug 24 01:45 32/1175 Output from "cron" comman N 2 besancon@example.c Fri Aug 25 01:45 32/1175 Output from "cron" comman N 3 besancon@example.c Sat Aug 26 01:45 32/1175 Output from "cron" comman N 4 me@localhost.com Mon Aug 28 00:27 44/1624 Account details for besan ---> 4 From apache@example.com Mon Aug 28 00:27: Date: Mon, 28 Aug :24: (MEST) To: besancon@example.com Subject: Account details for besancon at drupal MIME-Version: 1.0 Content-transfer-encoding: 8Bit From: me@localhost.com besancon, Thank you for registering at drupal. You may now log in to c T.Besançon (v ) username: besancon Administration UNIX ARS Partie / 709 password: urm87u9efi 6 Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Chapitre 6 Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Un fichier stocke un seul mail. Plus de problème de verrouillage du fichier lors des lectures/écritures. « c T.Besançon (v ) Administration UNIX ARS Partie / 709

80 6 Courrier électronique 6.8 Boites aux lettres : folder MAILDIR En résumé : une ligne commencant par «From» (attention à l espace suivant le From) autres entêtes une ligne blanche marquant la fin des entêtes et le début du corps du mail corps du mail Attention : si le corps du message contient une ligne commencant par «From», la ligne n est pas transformée. Pourquoi? pas de ligne blanche après le corps du mail. Pourquoi? c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Comment stocker les mails au format MAILDIR? La structure d un folder MAILDIR appelé «FOLDER» implique plusieurs répertoires : «FOLDER/new» «FOLDER/cur» (cur pour current) «FOLDER/tmp» Le MDA place un nouveau mail d abord par le répertoire «FOLDER/tmp» temporairement le temps de calculer un nom de fichier unique. Le nouveau mail est ensuite placé dans le répertoire «FOLDER/new» par le MDA. La lecture d un mail entraine son déplacement de «FOLDER/new» vers «FOLDER/cur» avec ajout d un suffixe indiquant les opérations faites par le MUA sur le mail. c T.Besançon (v ) Administration UNIX ARS Partie / 709

81 6 Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Le nom du fichier stockant un mail doit être unique et en général a le format «time.pid.host». Voir : « « Par exemple : M707068P58898V0700FF01I06974E18_1.mail..example.com,S=989 :2,S avec : = temps depuis l origine en secondes ; ctime( ) = Sun Jul 29 13:28: M = compteur en microsecondes de «gettimeofday()» P58898 = process ID du MDA V0700FF01 = UNIX device number I06974E18 = UNIX inode number mail.example.com = nom de la machine UNIX du MDA S=989 = taille du mail en octets mbox:2,RS ; ici c est le résultat d une conversion par le programme MB2MD c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Après manipulation par le MUA, on ajoute un suffixe «:2,flags» avec flag : flag «P» (Passed) = mail resent/forwarded/bounced flag «R» (Replied) = mail répondu flag «S» (Seen) = mail lu flag «T» (Trashed) = mail mis à la poubelle flag «D» (Draft) = mail brouillon flag «F» (Flagged) = mail taggé pour usage ultérieur Par exemple : M707068P58898V0700FF01I06974E18_1.mail. example.com,s=989 :2,S mbox :2,RS c T.Besançon (v ) Administration UNIX ARS Partie / 709

82 6 Courrier électronique 6.8 Boites aux lettres : folder MAILDIR Possibilité de folders MAILDIR imbriqués. Par exemple : ce qui donnera sous UNIX les répertoires «.system.sa-blacklist/», «.system.sa-false-negative/», «.system.sa-false-positive/», «.system.sa-whitelist/» (avec les classiques sous-répertoires «cur», «new» et «tmp») c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.8 Boites aux lettres : folder MAILDIR On peut convertir un folder MBOX vers un folder MAILDIR : « c T.Besançon (v ) Administration UNIX ARS Partie / 709

83 6 Courrier électronique 6.9 Protocole de consultation : POP Chapitre 6 Courrier électronique 6.9 Protocole de consultation : POP SMTP Serveur de mails POP download des mails Client POP Mail folders c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.9 Protocole de consultation : POP POP Post Office Protocol ; RFC??? Port POP : 110 Port POP + SSL : 995 c T.Besançon (v ) Administration UNIX ARS Partie / 709

84 6 Courrier électronique 6.10 Protocole de consultation : IMAP Chapitre 6 Courrier électronique 6.10 Protocole de consultation : IMAP SMTP Serveur de mails Mail folders IMAP download des entetes des mails download des corps des mails sur demande Client IMAP c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.10 Protocole de consultation : IMAP RFC 2060 (protocole IMAP4rev1), RFC 2086 (ACL, extension de IMAP4), RFC 2087 (quota, extension de IMAP4) Port IMAP : 143 Port IMAP + SSL : 993 c T.Besançon (v ) Administration UNIX ARS Partie / 709

85 6 Courrier électronique 6.11 Comparaison de session POP et IMAP xxx Chapitre 6 Courrier électronique 6.11 Comparaison de session POP et IMAP xxx Comparatif de session POP et IMAP : (extrait de « % telnet pop.example.com 110 +OK POP3 server ready USER pdupont +OK Name is a valid mailbox PASS XXXXXXXX +OK Maildrop locked and ready LIST +OK scan listing follows % telnet imap.example.com 143 * OK IMAP4 server ready. LOGIN pdupont XXXXXXXX. OK User logged in. SELECT INBOX * FLAGS (Answered Flagged Draft Deleted Seen) * OK [PERMANENTFLAGS (Answered Flagged Draft Dele * 3 EXISTS * 3 RECENT * OK [UNSEEN 1] * OK [UIDVALIDITY ]. OK [READ-WRITE] Completed. UID FETCH 1:* RFC822.SIZE * 1 FETCH (UID 1425 RFC822.SIZE 169) * 2 FETCH (UID 1426 RFC822.SIZE 811) * 3 FETCH (UID 1427 RFC822.SIZE 813). OK Completed c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.11 Comparaison de session POP et IMAP xxx RETR 1 +OK Message follows Return-Path: <root@example.com> From: root@example.com To: root@example.com Subject: essai chien chapeau essai chien chapeau. DELE 1 +OK message deleted QUIT +OK Connection closed by foreign host.. UID FETCH 1425 BODY[] * 1 FETCH (FLAGS (Recent Seen) UID 1425 BODY[] 16 Return-Path: <root@example.com> From: root@example.com To: root@example.com Subject: essai chien chapeau essai chien chapeau. OK Completed. UID STORE FLAGS (Deleted) * 1 FETCH (FLAGS (Recent Deleted Seen) UID 1425). OK Completed. EXPUNGE * 1 EXPUNGE * 2 EXISTS * 2 RECENT. OK Completed. LOGOUT * BYE LOGOUT received. OK Completed Connection closed by foreign host. c T.Besançon (v ) Administration UNIX ARS Partie / 709

86 6 Courrier électronique 6.12 Antivirus Chapitre 6 Courrier électronique 6.12 Antivirus Plusieurs antivirus sont disponibles sous UNIX : CLAMAV (gratuit) ; « SOPHOS (commercial) ; « nombreux autres logiciels commerciaux c T.Besançon (v ) Administration UNIX ARS Partie / Courrier électronique 6.13 Antispam Chapitre 6 Courrier électronique 6.13 Antispam Plusieurs antispam sont disponibles sous UNIX : BOGOFILTER (gratuit) ; « DSPAM (gratuit) ; « SPAMASSASSIN (gratuit) ; « AMAVIS (gratuit) ; « nombreux autres logiciels commerciaux c T.Besançon (v ) Administration UNIX ARS Partie / 709

87 6 Courrier électronique 6.13 Antispam Humour : c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd c T.Besançon (v ) Administration UNIX ARS Partie / 709

88 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.1 Rappel sur les connexions IP Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.1 Rappel sur les connexions IP Rappel : Une connexion IP est constituée de plusieurs éléments : une adresse IP source un numéro de port source sur la machine de départ une adresse IP de destination un numéro de port sur la machine de destination protocole TCP ou UDP Attention : Sur UNIX, la fonction C obtenant un port source < 1024 ne fonctionne que pour l UID 0. Sur Windows, la fonction C obtenant un port source < 1024 fonctionne quel que soit l UID c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.2 Fichier /etc/services Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.2 Fichier /etc/services Le fichier «/etc/services» mentionne des triplets (numéro de port, protocole, nom du service). Le fichier «/etc/services» sert à convertir un port numérique en un nom symbolique plus parlant. Voir les fonctions C «getservbyname()», «getservbyport()», «getservent()». ATTENTION : Le fichier «/etc/services» n indique pas les services réseau activés sur la machine. c T.Besançon (v ) Administration UNIX ARS Partie / 709

89 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.2 Fichier /etc/services On peut obtenir un triplet officiellement pour un programme à soi auprès de l IANA « En pratique il y a 3 catégories de triplets : Les Well Known Ports sont ceux de 0 à 1023 Les Registered Ports sont ceux de 1024 à Les Dynamic and/or Private Ports sont ceux de à c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.2 Fichier /etc/services Extrait d un fichier «/etc/services» :... chargen 19/tcp ttytst source #Character Generator chargen 19/udp ttytst source #Character Generator ftp-data 20/tcp #File Transfer [Default Data] ftp-data 20/udp #File Transfer [Default Data] ftp 21/tcp #File Transfer [Control] ftp 21/udp #File Transfer [Control] ssh 22/tcp #Secure Shell Login ssh 22/udp #Secure Shell Login telnet 23/tcp telnet 23/udp smtp 25/tcp mail #Simple Mail Transfer smtp 25/udp mail #Simple Mail Transfer... c T.Besançon (v ) Administration UNIX ARS Partie / 709

90 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.3 Commandes netstat -a, netstat -an Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.3 Commandes netstat -a, netstat -an La commande «netstat -a» affiche la liste des ports ouverts sur une machine. Les noms affichés proviennent de «/etc/services» : % netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.ssh *.* LISTEN tcp *.ssh *.* LISTEN udp4 0 0 *.syslog *.* udp6 0 0 *.syslog *.* udp4 0 0 *.bootpc *.* Active UNIX domain sockets... c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.3 Commandes netstat -a, netstat -an La commande «netstat -an» affiche la liste des ports ouverts sur une machine sans les traduire en noms via «/etc/services». Ils sont affichés sous forme numérique : % netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 *.22 *.* LISTEN tcp *.22 *.* LISTEN udp4 0 0 *.514 *.* udp6 0 0 *.514 *.* udp4 0 0 *.68 *.* Active UNIX domain sockets... c T.Besançon (v ) Administration UNIX ARS Partie / 709

91 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.4 Gestionnaires de services réseau Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.4 Gestionnaires de services réseau Une machine UNIX offre de nombreux services accessibles par le réseau. Souvent les services réseau contactés durent peu de temps : inutile de les faire tourner en permanence (consommation de ressources) on va les activer uniquement suite à une requête On utilise alors un «gestionnaire de services» pour écouter les requêtes pour certains services réseau et lancer ces services. Plus particulièrement, le gestionnaire de services assure : l attente de connexions réseau sur certains ports le lancement des services contactés le comportement adapté au lancement de ces services c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.4 Gestionnaires de services réseau Il existe plusieurs gestionnaires de services : programme INETD programme XINETD Autre programme TCPD : ce n est pas un gestionnaire de services c est un contrôleur de services c T.Besançon (v ) Administration UNIX ARS Partie / 709

92 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.5 Gestionnaire de services réseau : INETD Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.5 Gestionnaire de services réseau : INETD Etape 1 host1.example.com host2.example.com client inetd réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.5 Gestionnaire de services réseau : INETD Etape 2 host1.example.com host2.example.com fork() client inetd exec() serveur réseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

93 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.5 Gestionnaire de services réseau : INETD Etape 3 host1.example.com host2.example.com client inetd serveur réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.6 INETD : fichier de configuration /etc/inetd.conf Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.6 INETD : fichier de configuration /etc/inetd.conf Le fichier «/etc/inetd.conf» est spécifique au gestionnaire de services «inetd». Son format est le suivant : # Syntax for socket-based Internet services: # service_name socket_type proto flags user server_pathname args Par exemple :... ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd... c T.Besançon (v ) Administration UNIX ARS Partie / 709

94 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.6 INETD : fichier de configuration /etc/inetd.conf La signification des champs est la suivante : champ 1 : «service_name» C est le nom symbolique d un service (cf «/etc/services»). champ 2 : «socket_type» C est le type du socket réseau. C est essentiellement «stream», «dgram». champ 3 : «proto» C est le protocole réseau utilisé : «tcp», «udp» champ 4 : «flags» Cela indique si l on peut répondre à une requête du même type alors que la première n est pas terminée. On peut avoir : «wait», «nowait» champ 5 : «user» Nom de l utilisateur sous lequel le programme tournera. champ 6 : «server_pathname» C est le chemin absolu du programme à exécuter. champ 7 : «args» Ce sont les paramètres à donner lors du «execv()». c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.6 INETD : fichier de configuration /etc/inetd.conf Par exemple : ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l donnera execv("/usr/sbin/in.ftpd", "in.ftpd", "-l", 0); c T.Besançon (v ) Administration UNIX ARS Partie / 709

95 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.7 INETD : reconfiguration via SIGHUP Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.7 INETD : reconfiguration via SIGHUP Inetd est lancé par les scripts de démarrage. Si l on modifie le fichier «/etc/inetd.conf», la modification est prise en compte en envoyant le signal «SIGHUP» au processus inetd : # ps -ax grep inetd 173? IW 2 0:00 inetd p2 S 2 0:00 grep inetd # kill -HUP 173 c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.8 INETD : problèmes Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.8 INETD : problèmes INETD fonctionne très bien en pratique. Il a un seul gros défaut : il ne gère aucun aspect de sécurité. On aimerait au moins : pouvoir filtrer l accès à certains services avoir des traces d activation de certains services Un remède : emploi du logiciel TCP WRAPPERS « « c T.Besançon (v ) Administration UNIX ARS Partie / 709

96 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS L idée de TCP WRAPPERS : on va s intercaler dans la chaîne de INETD. host1.example.com host2.example.com client inetd réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS host1.example.com host2.example.com client inetd fork() exec() tcpd réseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

97 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS host1.example.com host2.example.com client inetd tcpd réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS host1.example.com client host2.example.com fork() exec() inetd tcpd serveur réseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

98 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS host1.example.com host2.example.com client inetd tcpd serveur réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS host1.example.com host2.example.com client inetd serveur réseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

99 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.9 Gestionnaire de services réseau : TCP WRAPPERS La librairie des TCP WRAPPERS est maintenant intégrée à beaucoup de produits (même sous WINDOWS...). c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.10 TCP WRAPPERS : modifications de /etc/inetd.conf Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.10 TCP WRAPPERS : modifications de /etc/inetd.conf S intercaler dans la chaîne de INETD nécessite de modifier le fichier «/etc/inetd.conf» Par exemple on passe de : ftp stream tcp nowait root /usr/etc/in.ftpd in.ftpd -l telnet stream tcp nowait root /usr/etc/in.telnetd in.telnetd shell stream tcp nowait root /usr/etc/in.rshd in.rshd login stream tcp nowait root /usr/etc/in.rlogind in.rlogind à ftp stream tcp nowait root /chemin/vers/tcpd in.ftpd -l telnet stream tcp nowait root /chemin/vers/tcpd in.telnetd shell stream tcp nowait root /chemin/vers/tcpd in.rshd login stream tcp nowait root /chemin/vers/tcpd in.rlogind c T.Besançon (v ) Administration UNIX ARS Partie / 709

100 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.10 TCP WRAPPERS : modifications de /etc/inetd.conf Rappel sur l interprétation d une ligne de «inetd.conf» : Par exemple : ftp stream tcp nowait root /chemin/vers/tcpd in.ftpd -l donnera execv("/chemin/vers/tcpd", "in.ftpd", "-l", 0); c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.11 TCP WRAPPERS : contrôle d accès, /etc/hosts.allow, /etc/hosts.deny Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.11 TCP WRAPPERS : contrôle d accès, /etc/hosts.allow, /etc/hosts.deny Le principe du contrôle d accès des TCP WRAPPERS repose sur les fichiers «/etc/hosts.allow» et «/etc/hosts.deny» : 1 On vérifie d abord si la requête TCP est autorisée par le contenu de «/etc/hosts.allow». Si oui, OK. Si non, on passe à l étape 2. 2 On vérifie si la requête TCP est interdite par le contenu de «/etc/hosts.deny». Si oui, la requête est rejetée. Si non, on passe à l étape 3. 3 On accepte la requête TCP. c T.Besançon (v ) Administration UNIX ARS Partie / 709

101 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.11 TCP WRAPPERS : contrôle d accès, /etc/hosts.allow, /etc/hosts.deny Au niveau des fichiers «hosts.allow» et «hosts.deny», on peut appliquer des règles de filtrage par service servi. Voici un exemple de politique de connexion : au niveau du fichier «/etc/hosts.allow» : in.telnetd:.fr, in.rlogind:.fr, in.rshd:.fr au niveau du fichier «/etc/hosts.deny» : in.telnetd: in.rlogind: in.rshd: ALL ALL ALL En français intelligible, ces fichiers indiquent que les connexions telnet, rlogin, rsh ne sont autorisées que depuis des machines du domaine français «.fr» et depuis un domaine de Tunisie (réseau d adresse ). c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.11 TCP WRAPPERS : contrôle d accès, /etc/hosts.allow, /etc/hosts.deny ATTENTION : quand on interdit une machine, il faut l interdire via son nom FQDN et via son adresse IP (pour le cas où un nameserver serait injoignable on peut ainsi bloquer quand même la machine). c T.Besançon (v ) Administration UNIX ARS Partie / 709

102 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.11 TCP WRAPPERS : contrôle d accès, /etc/hosts.allow, /etc/hosts.deny ATTENTION : Ce n est par parce que l on active tcpd que l on a résolu tous les problèmes de sécurité et que l on est tranquille! Il ne faut pas oublier que plein d autres services ne passent pas par l intermédiaire de inetd.conf Il faut surveiller les traces de fonctionnement renvoyées par tcpd. Il faut renseigner les fichiers hosts.allow et /etc/hosts.deny. Il faut des démons sans trou de sécurité. c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.12 TCP WRAPPERS : programmation via libwrap.a Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.12 TCP WRAPPERS : programmation via libwrap.a Les TCP WRAPPERS offrent aussi leur librairie de programmation : «libwrap.a» et «tcpd.h» Généralement installée en «/usr/local/lib/libwrap.a» et «/usr/local/include/tcpd.h» La librairie apporte la fonction C «host_access()» On linkera avec cette librairie quand c est nécessaire. c T.Besançon (v ) Administration UNIX ARS Partie / 709

103 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.13 Gestionnaire de services réseau : XINETD Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.13 Gestionnaire de services réseau : XINETD (en anglais extended inetd) Cf « Numérotation des versions un peu compliquée... XINETD est une réécriture complète de INETD en incorporant plusieurs aspects manquants dans INETD : contrôle d accès à la TCP WRAPPERS accès horaires aux démons traces syslog des connexions (échouées, abouties) limitation du nombre d instances de chaque démon binding sur certaines adresses réseau c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.14 XINETD : fichier de configuration /etc/xinetd.conf Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.14 XINETD : fichier de configuration /etc/xinetd.conf XINETD utilise le fichier «/etc/xinetd.conf», incompatible avec «/etc/inetd.conf». Format du fichier : defaults { attribut operateur valeur(s)... } service toto { attribut operateur valeur(s)... } Les opérateurs sont «=», «+=» et «-=». Cf la documentation pour la liste complète des attributs. c T.Besançon (v ) Administration UNIX ARS Partie / 709

104 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.14 XINETD : fichier de configuration /etc/xinetd.conf A noter avec certaines versions de «xinetd» la possibilité d avoir un répertoire «/etc/xinetd.d» dans lequel on trouve un fichier par service, portant le nom du service et contenant le réglage du service. Par exemple «/etc/xinetd.d/ftpd» c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.15 XINETD : réglages par défaut Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.15 XINETD : réglages par défaut Par exemple : defaults { instances = 15 log_type = FILE /var/log/servicelog log_on_success = HOST PID USERID DURATION EXIT log_on_failure = HOST USERID RECORD only_from = disabled = shell login exec comsat telnet ftp tftp finger disabled += time daytime chargen servers services xadmin } Ici la ligne «only_from =» interdit par défaut toutes les machines à se connecter aux services. On autorisera ce qui est nécessaire au niveau du bloc de configuration de chaque service. c T.Besançon (v ) Administration UNIX ARS Partie / 709

105 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.16 XINETD : configuration d un service Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.16 XINETD : configuration d un service Exemple pour le service «ftp» (cf «/etc/services») : service ftp { socket-type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.17 XINETD : /etc/xinetd.conf : directive nice Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.17 XINETD : /etc/xinetd.conf : directive nice Par exemple : service ftp { socket-type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } c T.Besançon (v ) Administration UNIX ARS Partie / 709

106 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.18 XINETD : /etc/xinetd.conf : directive access_times Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.18 XINETD : /etc/xinetd.conf : directive access_times Par exemple : service ftp { socket-type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.19 XINETD : /etc/xinetd.conf : directives bind, id Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.19 XINETD : /etc/xinetd.conf : directives bind, id Soit une machine avec 2 interfaces réseau d adresses « » et « » : service ftp { id = ftp-public bind = socket-type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-21:00 nice = 10 only_from = /24 } service ftp { id = ftp-private bind = socket-type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l instances = 4 access_times = 7:00-21:00 nice = 10 only_from = /24 } La directive «id» servira au niveau de SYSLOG à différencier les traces de l un ou l autre de FTPD. c T.Besançon (v ) Administration UNIX ARS Partie / 709

107 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.20 XINETD : /etc/xinetd.conf : directive redirect Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.20 XINETD : /etc/xinetd.conf : directive redirect Par exemple : service telnet { flags = REUSE socket-type = stream wait = no user = root server = /usr/sbin/in.telnetd only_from = /24 redirect = } Et un «telnet» vers « » renverra vers le démon «telnetd» de « ». c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.21 XINETD : /etc/xinetd.conf : tcpd et directive NAMEINARGS Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.21 XINETD : /etc/xinetd.conf : tcpd et directive NAMEINARGS Par exemple : service ftp { flags = NAMEINARGS REUSE socket-type = stream wait = no user = root server = /usr/sbin/tcpd server_args = /usr/sbin/in.ftpd -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } TCP WRAPPERS et XINETD ne sont pas antinomiques. c T.Besançon (v ) Administration UNIX ARS Partie / 709

108 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.22 XINETD : /etc/xinetd.conf : directive chroot Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.22 XINETD : /etc/xinetd.conf : directive chroot Par exemple : service ftp { socket-type = stream wait = no user = root server = /usr/sbin/chroot server_args = /quelquepart/blockhaus/ftp /usr/sbin/in.ftpd -l instances = 4 access_times = 7:00-12:30 13:30-21:00 nice = 10 only_from = /24 } On est ainsi compartimenté à l arborescence de «/quelquepart/blockhaus/ftp» dont on ne peut pas sortir. Intérêt pour la sécurité de la machine. c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.23 XINETD : reconfiguration, signaux Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.23 XINETD : reconfiguration, signaux Sont supportés les signaux : signal «SIGHUP» : sur sa réception, «xinetd» se reconfigure signal «SIGTERM» : sur sa réception, «xinetd» se saborde signal «SIGUSR1» : sur sa réception, «xinetd» écrit le fichier «/var/run/xinetd.dump» c T.Besançon (v ) Administration UNIX ARS Partie / 709

109 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.24 Services internes inutiles Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.24 Services internes inutiles Rappel : INETD et XINETD lancent des services réseau sur demande Exemple avec INETD : extrait de «/etc/inetd.conf» : ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l donnera execv("/usr/sbin/in.ftpd", "in.ftpd", "-l", 0); Le service est fourni par un exécutable «externe». Mais le service peut être interne et être fourni directement par INETD ou XINETD. c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.24 Services internes inutiles Règle fondamentale : tous les services internes sont inutiles et doivent être désactivés. Par exemple, pour INETD : désactiver tous les services de type internal dans «/etc/inetd.conf» : #daytime stream tcp nowait root internal #daytime dgram udp wait root internal #time stream tcp nowait root internal #time dgram udp wait root internal #echo stream tcp nowait root internal #echo dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal c T.Besançon (v ) Administration UNIX ARS Partie / 709

110 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.25 R-Services Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.25 R-Services Plusieurs services lancés par INETD et XINETD sont connus sous le nom de R-services (remote services) : service RLOGIND : connexion interactive à un système distant service RSHD : lancement d une commande sur un système distant service RCPD : recopie de fichiers locaux vers des fichiers distants ou vice-versa c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin (en anglais remote login daemon, remote login) En général, le R-service a pour chemin : «/usr/sbin/in.rlogind» ou «/usr/sbin/rlogind». Syntaxe de la R-commande : rlogin [-l user] nom-de-machine % rlogin -l besancon serveur.example.com Password: XXXXXXXX Last login: Mon Sep 15 09:42:58 from Sun Microsystems Inc. SunOS 5.5 Generic November 1995 server% A chaque fois que ce sera possible, préférer une connexion en SSH (ici avec «ssh»). c T.Besançon (v ) Administration UNIX ARS Partie / 709

111 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Contrôles d accès (1) Deux fichiers contrôlent les accès : fichier système «/etc/hosts.equiv» fichier personnel «$HOME/.rhosts» Syntaxe commune aux deux fichiers : format 1 : «hostname» format 2 : «hostname username» Deux cas de figure lors d une connexion : une ligne à l un des deux formats autorise la connexion et la connexion se fait alors sans demande de mot de passe aucune ligne n autorise la connexion et il y a alors demande du mot de passe de l utilisateur local c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Possibilité de mettre «+» à la place de n importe quel champ : signification «n importe quelle machine» signification «n importe quel utilisateur» Voir fonction C «ruserok()». c T.Besançon (v ) Administration UNIX ARS Partie / 709

112 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Contrôles d accès (2) : Format «hostname» Signification : les utilisateurs de la machine «hostname» sont autorisés à se connecter au système sous le même nom sans demande de mot de passe. Ce format est utilisable dans «/etc/hosts.equiv» et dans les fichiers personnels «$HOME/.rhosts». c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Par exemple, si le fichier «/etc/hosts.equiv» contient : cerise.example.com cela permet à un utilisateur «martin» de se connecter en RLOGIN depuis la machine «cerise.example.com» sous l identité locale «martin» sans demande de mot de passe. Par exemple, si l utilisateur «jean» a le fichier «$HOME/.rhosts» suivant : cerise.example.com cela permet à l utilisateur «jean» de se connecter en RLOGIN depuis la machine «cerise.example.com» sous l identité locale «jean» sans demande de mot de passe. c T.Besançon (v ) Administration UNIX ARS Partie / 709

113 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Contrôles d accès (3) : Format «hostname username» Signification : l utilisateur «username» de la machine «hostname» est autorisé à se connecter au système sans demande de mot de passe. Si ce format est utilisé dans «$HOME/.rhosts», alors cela autorise un utilisateur distant à se connecter sous le nom d un utilisateur local. Si ce format est utilisé dans «/etc/hosts.equiv» alors cela autorise un utilisateur distant à se connecter sous le nom de n importe quel utilisateur local. c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Par exemple, si l utilisateur «jean» a le fichier «$HOME/.rhosts» suivant : cerise.example.com martin cela permet à l utilisateur «martin» de se connecter en RLOGIN depuis la machine «cerise.example.com» sous l identité locale «jean» sans demande de mot de passe. Par exemple, si le fichier «/etc/hosts.equiv» contient : cerise.example.com jean cela permet à l utilisateur «jean» de se connecter en RLOGIN depuis la machine «cerise.example.com» sous n importe quelle identité locale sans demande de mot de passe. DANGEREUX. c T.Besançon (v ) Administration UNIX ARS Partie / 709

114 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.26 R-service rlogind, R-commande rlogin Problèmes : Attention au contenu de «/etc/hosts.equiv». SunOS 4.x.y fournissait un fichier contenant «+ +». Attention aux connexions root via le réseau. Il faut interdire les connexions root via le réseau parce qu elles sont anonymes. Vérifier «/etc/ttys» (ou équivalent «/etc/securettys»...) et minimaliser le nombre de terminaux sécurisés. Vérifier «~root/.rhosts». C est une cible privilégiée des pirates qui essayent d y écrire «+ +». Il n y a pas de traces des connexions locales. Au mieux, tcpd informe d où vient la connexion mais pas de l identité prise sur la machine locale. Remède : utiliser le package logiciel logdaemon URL «ftp://ftp.porcupine.org/pub/security/logdaemon-5.8.tar.gz» c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.27 R-service rshd, R-commande rsh Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.27 R-service rshd, R-commande rsh (en anglais remote shell daemon, remote shell) En général, le R-service a pour chemin : «/usr/sbin/in.rshd» ou «/usr/sbin/rshd». Syntaxe de la R-commande : rsh -l username hostname command % rsh -l besancon server.example.com date Sun Oct 12 15:20:28 MET DST 2003 c T.Besançon (v ) Administration UNIX ARS Partie / 709

115 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.27 R-service rshd, R-commande rsh Si l on ne précise pas de commande, on lance un shell en interactif. % rsh server.example.com Sun Microsystems Inc. SunOS 5.10 Generic January 2005 You have new mail. server% A chaque fois que ce sera possible, préférer une connexion en SSH (ici avec «ssh»). c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.27 R-service rshd, R-commande rsh Contrôles d accès Les contrôles d accès se font comme page 221 (chapitre sur RLOGIND) sauf pour un point : soit la connexion en RSH est explicitement autorisée par les fichiers «/etc/hosts.equiv» ou «$HOME/.rhosts» et la connexion se fait alors sans demande de mot de passe soit la connexion n est pas explicitement autorisée et elle est alors refusée et on ne demande pas de mot de passe. % rsh -l besancon server.example.com date permission denied c T.Besançon (v ) Administration UNIX ARS Partie / 709

116 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.28 R-service rcpd, R-commande rcp Chapitre 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.28 R-service rcpd, R-commande rcp (en anglais remote copy daemon, remote copy) En général, le R-service a pour chemin : «/usr/sbin/in.rcpd» ou «/usr/sbin/rcpd». Plusieurs syntaxes de la R-commande : distant vers local : rcp [-r] user@machine:filename path local vers distant : rcp [-r] path user@machine:filename c T.Besançon (v ) Administration UNIX ARS Partie / Gestionnaires de services réseau : inetd, tcpd, xinetd 7.28 R-service rcpd, R-commande rcp % rcp besancon@server.example.com:ananas.txt. % ls -l ananas -rw-r--r-- 1 besancon ars 15 Oct 12 15:18 ananas.txt % rcp ananas.txt besancon@server.example.com:/tmp/cerise.txt % rsh -l besancon server.example.com ls -l /tmp/cerise.txt -rw-r--r-- 1 besancon ars 15 Oct 12 15:22 /tmp/cerise.txt A chaque fois que ce sera possible, préférer une connexion en SSH (ici avec «scp»). c T.Besançon (v ) Administration UNIX ARS Partie / 709

117 7 Gestionnaires de services réseau : inetd, tcpd, xinetd 7.28 R-service rcpd, R-commande rcp Contrôles d accès Les contrôles d accès se font comme page 221 (chapitre sur RLOGIND) sauf pour un point : soit la connexion en RCP est explicitement autorisée par les fichiers «/etc/hosts.equiv» ou «$HOME/.rhosts» et la connexion se fait alors sans demande de mot de passe soit la connexion n est pas explicitement autorisée et elle est alors refusée et on ne demande pas de mot de passe. % rcp ananas.txt jean@server.example.com:/tmp/banane.txt permission denied c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP Chapitre 8 Protocoles de transferts de fichiers FTP, TFTP c T.Besançon (v ) Administration UNIX ARS Partie / 709

118 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Chapitre 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd (en anglais File Transfer Protocol) Une connexion via FTP nécessite que le service FTP soit activé au niveau de inetd.conf : ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l Au niveau de «/etc/services», on voit 2 ports assignés au protocole FTP : ftp-data ftp 20/tcp 21/tcp Deux protocoles FTP en fait : FTP actif (mode par défaut sous Windows) FTP passif (mode par défaut sous Linux) c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd FTP actif CLIENT FTP FTP control connection SERVEUR FTP High port 1 port 21 FTP data connection High port 2 port 20 c T.Besançon (v ) Administration UNIX ARS Partie / 709

119 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Le protocole FTP est «complexe» car c est un dialogue bidirectionnel : Un client FTP se connecte sur le port 21 («ftp» de «/etc/services») du serveur FTP et ce port 21 sert à envoyer des commandes au serveur FTP. Si les commandes nécessitent que des données soient reçues (commandes «dir», «get» par exemple) ou transmises («put» par exemple) au serveur, le client envoie une commande «PORT» au serveur indiquant un port sur lequel le serveur va créer une connexion depuis le port 20 («ftp-data» de «/etc/services»). La connexion FTP-DATA est close client dès que toutes les données sont transférées. port connexion PORT DIR data serveur port 21 port 21 port 21 port 20 c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Exemple : % ftp -v -d localhost Connected to localhost. 220 cerise FTP server (SunOS 5.8) ready. Name (localhost:besancon): besancon ---> USER besancon 331 Password required for besancon. Password: ---> PASS XXXXXXXXX 230 User besancon logged in. ftp> lcd /tmp Local directory now /tmp ftp> cd /etc ---> CWD /etc 250 CWD command successful. ftp> get motd ---> PORT 127,0,0,1,129, PORT command successful. ---> RETR motd 150 ASCII data connection for motd ( ,33085) (54 bytes). 226 ASCII Transfer complete. local: motd remote: motd 55 bytes received in seconds (62.53 Kbytes/s) ftp> quit ---> QUIT 221 Goodbye. c T.Besançon (v ) Administration UNIX ARS Partie / 709

120 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd FTP passif CLIENT FTP FTP control connection SERVEUR FTP High port 1 port 21 FTP data connection High port 2 High port 3 c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Règles pour un client FTP protégé par un firewall Method Source Source Destination Destination Connection address port address port Allow outgoing control connections to server Control FTP client High FTP server 21 New channel or network FTP server 21 FTP client or network High Established Active FTP Passive FTP Allow the client to establish data channels to remote server FTP server 20 FTP client or High New network FTP client High FTP server 20 Established or network FTP client High FTP server High New or network FTP server High FTP client or High Established network c T.Besançon (v ) Administration UNIX ARS Partie / 709

121 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Règles pour un serveur FTP protégé par un firewall Method Source Source Destination Destination Connection address port address port Allow incoming control connections to server Control FTP client High FTP server 21 New channel or network FTP server 21 FTP client or network High Established Active FTP Passive FTP Allow the server to establish data channels to remote client FTP server 20 FTP client or High New network FTP client High FTP server 20 Established or network FTP client High FTP server High New or network FTP server High FTP client or High Established network c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Contrôle d accès Au niveau contrôle d accès, les implémentations de base proposent : le fichier «/etc/ftpusers» contient les noms des utilisateurs non autorisés à utiliser ftp. «root» doit être exclus comme d habitude. le fichier «/etc/shells» contient les shells des utilisateurs autorisés à utiliser ftp. Moralité : pour interdire un utilisateur à utiliser FTP : indiquer le login de la personne au niveau de «/etc/ftpusers» faire en sorte que le shell de la personne ne soit pas dans «/etc/shells» Pour configurer un FTP anonyme, se reporter aux deux FAQ : «ftp://ftp.lip6.fr/pub/doc/faqs/ftp-list/faq.gz» «ftp://ftp.lip6.fr/pub/doc/faqs/computer-security/anonymous-ftp-faq.gz» c T.Besançon (v ) Administration UNIX ARS Partie / 709

122 8 Protocoles de transferts de fichiers FTP, TFTP 8.1 Protocole FTP, ftp, ftpd Implémentations de serveurs FTP Outre les versions fournies par les constructeurs, il y a plusieurs démons du domaine public plus performants : « « « c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.2 Protocole TFTP, tftp, tftpd Chapitre 8 Protocoles de transferts de fichiers FTP, TFTP 8.2 Protocole TFTP, tftp, tftpd TFTP : Trivial File Transfer Protocol Une connexion via tftp nécessite que le service tftp soit activé au niveau de inetd.conf : tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot TFTP, c est en gros FTP sans pouvoir lister les directories distants et ne nécessitant pas de mot de passe pour récupérer ou déposer des fichiers! En fait, celui qui utilise TFTP sait ce qu il veut récupérer et n a pas besoin de lister le directory. Par exemple, récupération d un fichier de configuration pour : terminal X imprimante HP réseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

123 8 Protocoles de transferts de fichiers FTP, TFTP 8.2 Protocole TFTP, tftp, tftpd On récupére les fichiers dans la sous arborescence /tftpboot. Le danger : un démon tftpd mal configuré permet de récupérer tout fichier hors de «/tftpboot». Le fichier «/etc/passwd» par exemple. vérifier les options de lancement. Traditionnellement utiliser l option «-s» au niveau de «/etc/inetd.conf» : tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot c T.Besançon (v ) Administration UNIX ARS Partie / Protocoles de transferts de fichiers FTP, TFTP 8.2 Protocole TFTP, tftp, tftpd A noter : il est parfois utile de faire le lien symbolique suivant : # cd /tftpboot # ln -s. tftpboot car des requêtes portent parfois sur des noms du type «/tftpboot/fichier». % cd /tftpboot % ls -l drwxr-xr-x 2 root wheel 1536 Jan 4 15:02 cisco/ drwxr-sr-x 7 root wheel 512 Nov hds/ drwxr-sr-x 2 root wheel 512 Sep hp/ drwxr-sr-x 4 root wheel 512 Dec ncd/ drwxr-sr-x 2 root wheel 512 Mar plaintree/ drwxr-xr-x 2 root wheel 512 Aug sun/ lrwxrwxrwx 1 root wheel 1 May tftpboot ->. drwxr-sr-x 3 root wheel 512 Feb usr/ c T.Besançon (v ) Administration UNIX ARS Partie / 709

124 8 Protocoles de transferts de fichiers FTP, TFTP 8.2 Protocole TFTP, tftp, tftpd Utilisation de TFTP sur CISCO pour télécharger des configurations ou des firmware. Idem sur d autres matériels réseau : par exemple marque FOUNDRY mise en place de la configuration du FOUNDRY via TFTP sur un serveur UNIX : copy tftp start router/4802.cfg reload sauvegarde de la configuration du FOUNDRY sur UNIX via TFTP : touch /tftpboot/router/downloads/x.y chown nobody:nobody /tftpboot/router/downloads/x.y copy run tftp router/downloads/x.y c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) Chapitre 9 Remote Procedure Call (RPC) c T.Besançon (v ) Administration UNIX ARS Partie / 709

125 9 Remote Procedure Call (RPC) 9.1 Introduction Chapitre 9 Remote Procedure Call (RPC) 9.1 Introduction Les Remote Procedure Calls (RPC) sont nés dans les années : diminution des coûts des matériels augmentation des puissances de calcul augmentation des capacités de stockage Bref, passage à une informatique de systèmes répartis et de systèmes distribués (utiliser le matériel le plus performant pour une tâche donnée, accroître la disponibilité des systèmes). c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) 9.1 Introduction Principe d un programme classique : % prog.exe int main(int argc, char *argv[]) { int n; n = coucou(); int coucou() { return(33); } exit(0); } c T.Besançon (v ) Administration UNIX ARS Partie / 709

126 9 Remote Procedure Call (RPC) 9.1 Introduction Principe d un programme réparti utilisant une Remote Procedure Call (RPC) : % prog.exe int main(int argc, char *argv[]) { int n; n = coucou(); int coucou() { return(33); } exit(0); } RESEAU c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) 9.2 Protocole External Data Representation (XDR) Chapitre 9 Remote Procedure Call (RPC) 9.2 Protocole External Data Representation (XDR) Rappel sur les processeurs : processeurs big endian 0x = processeurs little endian 0x = 0x01 0x02 0x03 0x04 0x04 0x03 0x02 0xNNNN + 0xNNNN 0xNNNN + 0xNNNN + 0xNNNN 0xNNNN + 3 c T.Besançon (v ) Administration UNIX ARS Partie / 709

127 9 Remote Procedure Call (RPC) 9.2 Protocole External Data Representation (XDR) Nécessité de choisir un encodage lors des échanges RPC! Encodage big-endian retenu Cf fonctions C «ntohs()» (network to host short), «ntohl()» (network to host long), «htons()» (host to network short), «htonl()» (host to network long). Encodage des données plus générales (structures, tableaux, etc.) = XDR Les RPC utilisent massivement XDR. c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) 9.3 Modèle Client / Serveur RPC Chapitre 9 Remote Procedure Call (RPC) 9.3 Modèle Client / Serveur RPC Les Remote Procedure Calls (RPC) utilisent un modèle client / serveur : Le client est le processus qui appelle une procédure distante. Le serveur est le processus qui réalise la Remote Procedure. La communication se fait via TCP. processus local processus distant CLIENT PROCEDURE API RPC STUB client STUB serveur RPC runtime RPC runtime c T.Besançon (v ) Administration UNIX ARS Partie / 709

128 9 Remote Procedure Call (RPC) 9.4 Localisation des procédures RPC : portmapper, rpcbind Chapitre 9 Remote Procedure Call (RPC) 9.4 Localisation des procédures RPC : portmapper, rpcbind L appel à la procédure distante nécessite de localiser la procédure distante (numéro de port TCP) sur la machine distante. Le processus «portmapper» (autre nom possible : «rpcbind») joue le rôle de serveurs de noms RPC. Il écoute sur le port TCP 111. Principe : une procédure distante s enregistre auprès du portmapper on demande au portmapper où se trouve la procédure on appelle ensuite la procédure Le processus «portmapper» (autre nom possible : «rpcbind») doit être démarré avant de lancer des processus enregistrant des RPC (voir scripts de démarrage). c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) 9.4 Localisation des procédures RPC : portmapper, rpcbind 1 4 Ou se trouve ananas() v2? ananas() v2 == port 3248 processus portmapper port ananas(), v2 = port 3248 banane(), v2 = port 2147 banane(), v3 = port 2148 etc. processus 927 processus procedure ananas() port 3248 port 2147 port 2148 procedure banane() version 2 version 2, version 3 c T.Besançon (v ) Administration UNIX ARS Partie / 709

129 9 Remote Procedure Call (RPC) 9.5 Liste des procédures RPC : rpcinfo Chapitre 9 Remote Procedure Call (RPC) 9.5 Liste des procédures RPC : rpcinfo (en anglais RPC information) Syntaxe : «rpcinfo [-p] [-s] hostname» Par exemple : % rpcinfo -s rpcinfo -s program version(s) netid(s) service owner ,3,4 udp,tcp,ticlts,ticotsord,ticots rpcbind super ,3,2,1 tcp,udp nlockmgr ticots,ticotsord,ticlts,tcp,udp status super ,3,2 udp,ticlts rstatd super ,2 udp,ticlts,tcp,ticotsord,ticots rusersd super udp,ticlts rquotad super ,2,1 ticots,ticotsord,tcp,ticlts,udp mountd super ,3,2 tcp,udp nfs ,2 tcp,udp nfs_acl 1... c T.Besançon (v ) Administration UNIX ARS Partie / Remote Procedure Call (RPC) 9.5 Liste des procédures RPC : rpcinfo % rpcinfo -p program vers proto port service tcp 111 rpcbind tcp 111 rpcbind tcp 111 rpcbind udp 111 rpcbind udp 111 rpcbind udp 111 rpcbind udp 4045 nlockmgr udp 4045 nlockmgr udp 4045 nlockmgr udp 4045 nlockmgr tcp 4045 nlockmgr tcp 4045 nlockmgr tcp 4045 nlockmgr tcp 4045 nlockmgr... c T.Besançon (v ) Administration UNIX ARS Partie / 709

130 9 Remote Procedure Call (RPC) 9.6 Contrôle d accès Chapitre 9 Remote Procedure Call (RPC) 9.6 Contrôle d accès Avec LINUX est apparu un contrôle d accès au niveau de PORTMAP via sa compilation avec la librairie des TCPWRAPPERS. Les contrôles d accès se font donc comme page 200 via «/etc/hosts.allow». c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS Chapitre 10 Partage de fichiers NFS c T.Besançon (v ) Administration UNIX ARS Partie / 709

131 10 Partage de fichiers NFS 10.1 Introduction Chapitre 10 Partage de fichiers NFS 10.1 Introduction NFS Network File System c est l accès de façon transparente pour l utilisateur à des fichiers résidants sur des machines distantes. Actuellement, NFS version 2 la plus répandue. NFS version 3 existe et est disponible mais il existe des incompatibilités d implémentations entre constructeurs. NFS version 4 est en étude. Cf « ou « c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.2 Principes de NFS Chapitre 10 Partage de fichiers NFS 10.2 Principes de NFS Client Serveur System calls System calls VNODE / VFS VNODE / VFS Client routines NFS File system Server routines NFS File system RPC / XDR RPC / XDR RPC / XDR RPC / XDR Reseau c T.Besançon (v ) Administration UNIX ARS Partie / 709

132 10 Partage de fichiers NFS 10.2 Principes de NFS On a deux aspects dans NFS : client NFS et serveur NFS. Le client NFS fait tourner les démons «biod» (ou «nfsiod»), «rpc.lockd» et «rpc.statd». Le serveur NFS fait tourner les démons «portmap» (ou «rpcbind»), «mountd» (ou «rpc.mountd»), «nfsd», «rpc.statd» et «rpc.lockd». CLIENT NFS SERVEUR NFS # mount % prog rpc.statd rpc.lockd portmap (rpcbind) portmap (rpcbind) rpc.mountd nfsd rpc.statd rpc.lockd RESEAU c T.Besançon (v ) Administration UNIX ARS Partie / 709 Montage NFS : filehandle SERVEUR NFS 10 Partage de fichiers NFS 10.2 Principes de NFS autorisations d exportation : /etc/exports RESEAU rpc.mountd 0 3 calcul du filehandle /home # mount server:/home /mnt /mnt + filehandle (= fh0) / CLIENT NFS kernel c T.Besançon (v ) Administration UNIX ARS Partie / 709

133 10 Partage de fichiers NFS 10.2 Principes de NFS Ouverture d un fichier NFS : utilisations des filehandles SERVEUR NFS Serveur NFS / port 2049 lookup(jardin, fh0) fh1 lookup(cerise.txt, fh1) fh2 kernel RESEAU % prog.exe open(/mnt/jardin/cerise.txt) CLIENT NFS kernel c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.2 Principes de NFS Lecture/Ecriture d un fichier NFS : utilisations des filehandles SERVEUR NFS Serveur NFS / port 2049 read(fh2, 0, 1024) read(fh2,..., 1024) kernel RESEAU % prog.exe 2... read() / write() CLIENT NFS 1 kernel c T.Besançon (v ) Administration UNIX ARS Partie / 709

134 10 Partage de fichiers NFS 10.2 Principes de NFS Verrouillage NFS (1) : fonctionnement normal SERVEUR NFS /etc/sm 3 3 rpc.lockd 3 rpc.statd 2 RESEAU rpc.lockd rpc.statd CLIENT NFS 1 fcntl() lockf() % prog.exe c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.2 Principes de NFS Verrouillage NFS (2) : reboot du client NFS SERVEUR NFS /etc/sm 3 2 rpc.lockd 2 rpc.statd 1 RESEAU rpc.lockd rpc.statd CLIENT NFS reboot du client NFS termine c T.Besançon (v ) Administration UNIX ARS Partie / 709

135 10 Partage de fichiers NFS 10.2 Principes de NFS Verrouillage NFS (3) : reboot du serveur NFS SERVEUR NFS reboot du serveur NFS termine /etc/sm 1 4? rpc.lockd rpc.statd 2 RESEAU nouvelle demande des verrous NFS? CLIENT NFS 4? rpc.lockd % prog.exe 3 rpc.statd perte des verrous NFS c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.2 Principes de NFS Suppression de fichier NFS ouvert exemple.txt.nfsxxxxxxxxxx rm read write c T.Besançon (v ) Administration UNIX ARS Partie / 709

136 10 Partage de fichiers NFS 10.3 Lancement de NFS Chapitre 10 Partage de fichiers NFS 10.3 Lancement de NFS DIGITAL UNIX On règle l aspect NFS par la commande «nfssetup» qui modifie alors le fichier «/etc/rc.config» :... NFS_CONFIGURED="1" export NFS_CONFIGURED NFSSERVING="1" export NFSSERVING NONROOTMOUNTS="1" export NONROOTMOUNTS NUM_TCPD="8" export NUM_TCPD NUM_UDPD="8" export NUM_UDPD NUM_NFSIOD="7" export NUM_NFSIOD NFSLOCKING="1" export NFSLOCKING... c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.3 Lancement de NFS Linux Au niveau de «/etc/sysconfig/network», on indique via la variable «NETWORKING» si l on veut les services réseau (dont NFS). Le script de démarrage «/etc/rc.d/rc3.d/s15nfsfs» suivant la valeur de NETWORKING lance ou pas un client NFS. Le script de démarrage «/etc/rc.d/rc3.d/s60nfs» suivant la valeur de NETWORKING et suivant l existence de «/etc/exports» lance ou pas un serveur NFS. Solaris La lecture de «/etc/init.d/nfs.client» renseigne sur la façon de démarrer un client NFS. La lecture de «/etc/init.d/nfs.server» apprend que la machine démarre un serveur NFS s il existe le fichier d exportation «/etc/dfs/dfstab». c T.Besançon (v ) Administration UNIX ARS Partie / 709

137 10 Partage de fichiers NFS 10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab Chapitre 10 Partage de fichiers NFS 10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab Le partage de disques repose sur l exportation par une machine d arborescences. L exportation peut être en read-only ou en read-write. L exportation se fait au niveau du fichier /etc/exports en général. Suivant l UNIX, la syntaxe n est pas la même : DIGITAL UNIX : fichier «/etc/exports» : /var/spool/mail -access=client-nfs.example.com Linux : fichier «/etc/exports» : /home client-nfs.example.com(rw) /zip client-nfs.example.com(rw) Solaris : fichier «/etc/dfs/dfstab» : # pathname resource fstype specific_options description /export/home - nfs rw=.example.com c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab Comment faire prendre connaissance de modifications dans le fichier «/etc/exports» (ou équivalent)? Méthode 1 : on ne fait rien ; le fichier «/etc/exports» est consulté lors de toute demande de montage de disque. Par exemple DIGITAL UNIX. Méthode 2 : on envoie un signal au programme «mountd» gérant les montages : # kill -HUP cat /var/run/mountd.pid Par exemple Linux, FreeBSD. Méthode 3 : une commande spécialisée existe : share, shareall (unshare, unshareall) sur Solaris # unshareall # showmount -e no exported file systems for serveur-nfs.example.com # shareall # showmount -e export list for serveur-nfs.example.com: /infosystems client-nfs.example.com c T.Besançon (v ) Administration UNIX ARS Partie / 709

138 10 Partage de fichiers NFS 10.5 Exportation root NFS Chapitre 10 Partage de fichiers NFS 10.5 Exportation root NFS Le problème principal est celui de l équivalence root par NFS : quels droits possède le root d une machine cliente NFS sur les fichiers exportés par un serveur NFS? Un fichier de droits «rw » sur le serveur NFS (où le root peut le lire) peut-il être lu par root sur un client NFS? La réponse est fonction du contexte mais cela se paramètre au niveau de «/etc/exports». Une requête émanant de root sera sauf précision contraire convertie au nom de l utilisateur «nobody» : % grep nobody /etc/passwd nobody:*:65534:65534:unprivileged user:/nonexistent:/sbin/nologin (attention : parfois c est l utilisateur «nfsnobody» mais le principe reste le même) c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.5 Exportation root NFS Exemple de la conversion de l UID lors de la requête (la partition montée est exportée sans droit root NFS) : # mount -t nfs serveur-nfs.example.com:/adm/backup/arch /mnt # id uid=0(root) gid=0(wheel) groups=0(wheel),1(daemon),2(kmem) # cd /mnt # df. Filesystem 1024-blocks Used Available Capacity Mounted on serveur-nfs.example.com:/adm/backup/arch % /mnt # touch test.txt # ls -l total 0 -rw root daemon 75 Feb 3 15:01 motd -rw-r--r-- 1 nobody nogroup 0 Feb 3 14:59 test.txt # cat motd cat: motd: Permission denied c T.Besançon (v ) Administration UNIX ARS Partie / 709

139 10 Partage de fichiers NFS 10.5 Exportation root NFS Exportation avec root NFS Mêmes fichiers que précédemment : exemple sur DIGITAL UNIX : /var/spool/mail -root=client.example.com,access=client.example.com exemple sur Linux : /var/spool/mail client.example.com(rw,no_root_squash) exemple sur Solaris : /export/home - nfs rw=.example.com,root=client.example.com c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.5 Exportation root NFS Exportation sans root NFS Mêmes fichiers que précédemment : exemple sur DIGITAL UNIX : /var/spool/mail -access=client.example.com exemple sur Linux : /var/spool/mail client.example.com(rw,root_squash) exemple sur Solaris :... /opt - nfs rw=client.example.com /usr/local - nfs rw=.example.com /var/mail - nfs rw=.example.com c T.Besançon (v ) Administration UNIX ARS Partie / 709

140 10 Partage de fichiers NFS 10.6 Règle de non transitivité NFS Chapitre 10 Partage de fichiers NFS 10.6 Règle de non transitivité NFS Il n y a pas de transitivité NFS. Si A exporte «/partition» à B Si B monte «/partition» en «/partition2» et exporte «/partition2» à C alors C n a pas accès au contenu du «/partition» initial! Sinon il n y aurait aucune sécurité, aucun contrôle possible d exportation. c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.7 Montage NFS manuel Chapitre 10 Partage de fichiers NFS 10.7 Montage NFS manuel Syntaxe usuelle : mount -t nfs serveur:/arborescence /point/montage # mount -t nfs serveur-nfs.example.com:/export/home /mnt # df /mnt Filesystem 1k-blocks Used Available Use% Mounted on serveur-nfs.example.com:/export/home % /mnt # umount /mnt c T.Besançon (v ) Administration UNIX ARS Partie / 709

141 10 Partage de fichiers NFS 10.8 Montage NFS automatique Chapitre 10 Partage de fichiers NFS 10.8 Montage NFS automatique Les montages automatiques se règlent au niveau de /etc/fstab (ou équivalent) :... serveur-nfs.example.com:/export/home /mnt nfs hard,intr La syntaxe est celle montrée ci dessus sur tous les systèmes UNIX utilisant un fichier «/etc/fstab». Une fois le fichier «/etc/fstab» configuré, on peut faire les choses suivantes : 1 Monter une partition distante bien précise : # mount /users 2 Monter toutes les partitions distantes : # mount -t nfs -v -a c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS 10.9 Option de montage NFS soft Chapitre 10 Partage de fichiers NFS 10.9 Option de montage NFS soft Option de montage «soft» : si pour une raison ou pour une autre, les opérations RPC implantant la requête NFS viennent à échouer, cette requête NFS échoue elle aussi. On peut apparenter cette situation à celle d un disque local tombant en panne. Une manifestation de ce problème est qu il peut apparaître des blocs remplis de caractères NULL dans des fichiers nouvellement écrits à travers NFS sur une partition qui aura montré des problèmes. c T.Besançon (v ) Administration UNIX ARS Partie / 709

142 10 Partage de fichiers NFS Option de montage NFS hard Chapitre 10 Partage de fichiers NFS Option de montage NFS hard Option de montage «hard» : si pour une raison ou pour une autre, les opérations RPC implantant la requête NFS viennent à échouer, cette requête NFS est soumise à nouveau et cela jusqu à ce qu elle aboutisse. On peut apparenter cette situation à celle d un disque local très lent. Pour éviter que dans le cas hard, la requête NFS ne soit transmise ad vitam eternam, on peut faire le montage en mode hard,intr ce qui autorise son interruption au clavier ou via des envois de signaux. En pratique, on utilisera toujours les montages hard,intr pour les montages des partitions auxquelles on accède en lecture/écriture. c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS Vérification des exportations : showmount Chapitre 10 Partage de fichiers NFS Vérification des exportations : showmount En cas de problème dans le montage NFS d une partition on peut vérifier d abord si l exportation indispensable est déjà assurée. La commande à utiliser est «showmount -e» : % showmount -e serveur-nfs.example.com Export list for serveur-nfs.example.com: /export/home.example.com /opt client-nfs.example.com /usr/local.example.com /var/mail.example.com c T.Besançon (v ) Administration UNIX ARS Partie / 709

143 10 Partage de fichiers NFS Vérification des exportations : rpcinfo Chapitre 10 Partage de fichiers NFS Vérification des exportations : rpcinfo On peut aussi vérifier à distance si le serveur NFS fait tourner le démon mountd via la commande «rpcinfo». % rpcinfo -p serveur-nfs.example.com grep mount udp mountd udp mountd udp mountd tcp mountd tcp mountd tcp mountd c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS Messages d erreur NFS Chapitre 10 Partage de fichiers NFS Messages d erreur NFS Un message d erreur classique prend la forme : NFS write error: on host serveur-nfs.example.com remote file system full Parfois c est hermétique comme message : NFS write error 60 on host nfs-client.example.com fh a0000 cdbe 66b10eac a0000 1d00 5fdbece5 Pour le décoder, se reporter à «<sys/errno.h>». Ici on déduit : #define ETIMEDOUT 60 /* Connection timed out */ c T.Besançon (v ) Administration UNIX ARS Partie / 709

144 10 Partage de fichiers NFS Automounter Chapitre 10 Partage de fichiers NFS Automounter Les montages rencontrés jusqu à présent sont permanents. Un automounter rend les montages temporaires : un montage ne dure guère que le temps nécessaire ; quand il est nécessaire, on monte la partition distante que l on démonte quand on n en a plus besoin. Il existe 3 automounters : «automount» fourni par les constructeurs (et d origine SUN) «amd» ; version logiciel libre dont le développement stagne ftp://ftp.cs.columbia.edu/pub/amd «am-utils», bâti sur la base de «amd» « c T.Besançon (v ) Administration UNIX ARS Partie / Partage de fichiers NFS Machines diskless Chapitre 10 Partage de fichiers NFS Machines diskless Une machine diskless est une machine UNIX sans disque dur local. Principe : 1 La machine UNIX est mise sous tension. 2 La machine UNIX envoie sur le réseau son adresse ethernet (MAC address). Par exemple via PXE sur des cartes réseau récentes. 3 La machine récupére son adresse IP et on lui indique où télécharger un noyau et comment. Par exemple renseignements renvoyés par DHCP. 4 La machine télécharge le noyau. Par exemple par TFTP. 5 Le noyau monte par NFS la partition de «/». 6 Le programme «init» prend la main et réalise les opérations de montage des partitions indiquées dans «/etc/fstab». Ici les partitions seront donc montées par NFS. c T.Besançon (v ) Administration UNIX ARS Partie / 709

145 11 Synchronisation de fichiers Chapitre 11 Synchronisation de fichiers c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.1 Introduction Chapitre 11 Synchronisation de fichiers 11.1 Introduction Contexte : deux ou plusieurs machines qui ne peuvent pas partager de fichiers par NFS. Exemples : un ordinateur portable et une machine de bureau deux ordinateurs reliés par une liaison intermittente comme une liaison téléphonique PPP etc. La synchronisation manuelle est pénible à faire. Plusieurs logiciels automatisent la synchronisation. Reste à les lancer au bon moment (cf CRON) et à paramétrer ce que l on doit synchroniser. c T.Besançon (v ) Administration UNIX ARS Partie / 709

146 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Chapitre 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist RDIST est un programme de distribution de fichiers sur des machines distantes, sur la base des dates de modification des fichiers source ou des fichiers distants. De plus en plus livrée en standard avec les différents UNIX mais lui préférer quand même la version disponible à l URL « (anciennement : «ftp://ftp.usc.edu/pub/rdist/») c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist La commande «rdist» utilise un fichier de configuration appelé par défaut «distfile» ou «Distfile» Si le fichier ne s appelle pas «distfile» ou «Distfile», il faut utiliser l option «-f» : % rdist -f mon-distfile-a-moi remote.example.com: updating host remote.example.com... De nombreuses options sont disponibles. Cf la documentation. c T.Besançon (v ) Administration UNIX ARS Partie / 709

147 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Exemple 1 Objectif : mettre à jour du fichier «/tmp/fichier.txt» d une machine distante nommée «remote.example.com» à partir du fichier local «/tmp/fichier.txt» : Solution : fichier «Distfile» contenant : /tmp/fichier.txt -> remote.example.com install ; Utilisation et résultats : % rdist remote.example.com: updating host remote.example.com remote.example.com: /tmp/fichier.txt: installing remote.example.com: updating of remote.example.com finished c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist La mise à jour ci dessus est inconditionnelle. Elle ne fait pas de comparaison de date. Pour activer la vérification des dates de modification, il faut utiliser l option «-y». % rdist -y remote.example.com: updating host remote.example.com remote.example.com: updating of remote.example.com finished Notez les différence avec les résultats précédents. c T.Besançon (v ) Administration UNIX ARS Partie / 709

148 Exemple 2 : macros 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Objectif : mettre à jour les fichiers «/var/tmp/fichier.txt» et «/var/tmp/fichier2.txt» des machines distantes nommées «remote.example.com», «remote2.example.com» et «remote3.example.com» à partir des fichiers locaux originaux «/tmp/fichier.txt» et «/tmp/fichier2.txt». Soit le fichier «Distfile» contenant les lignes suivantes : FILES = ( /tmp/fichier.txt /tmp/fichier2.txt ) HOSTS = ( remote.example.com remote2.example.com remote3.example.com ) ${FILES} -> ${HOSTS} install /var/tmp ; notify besancon ; c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist On constate : on utilise des macros : «FILES», «HOSTS» on met à jour des fichiers distants de paths différents des originaux on envoie un mail une fois la mise à jour faite c T.Besançon (v ) Administration UNIX ARS Partie / 709

149 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Possibilité de ne mettre à jour qu une machine du lot via l option «-m» : % rdist -m remote.example.com remote.example.com: updating host remote.example.com remote.example.com: /tmp/fichier.txt: installing remote.example.com: /tmp/fichier2.txt: installing remote.example.com: ( besancon ) remote.example.com: updating of remote.example.com finished c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Une seconde mise à jour donne : % touch /tmp/fichier.txt % rdist -y remote.example.com: updating host remote.example.com remote.example.com: /tmp/fichier.txt: updating remote.example.com: ( besancon ) remote.example.com: updating of remote.example.com finished Notez le mot «updating» au lieu de «installing». c T.Besançon (v ) Administration UNIX ARS Partie / 709

150 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Exemple 3 : directive special Soit le fichier «Distfile» contenant les lignes suivantes : /tmp/fichier.txt -> remote.example.com install ; special "uname -a" ; Son exécution donne : % rdist remote.example.com: updating host remote.example.com remote.example.com: /tmp/fichier.txt: installing remote.example.com: special "uname -a" remote.example.com: FreeBSD remote.example.com RC2 remote.example.com: updating of remote.example.com finished On constate qu une fois la mise à jour des fichiers réalisée, la commande spécifiée par «special» est exécutée sur la machine distante. c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist exemple 4 : essai à blanc L option «-n» essaye à blanc le scenario de mise à jour mais ne réalise pas la mise à jour en pratique. Avec le fichier «Distfile» de l exemple 1, on voit ainsi : % rdist -n updating host remote.example.com install -onochkgroup,nochkowner,younger /tmp/fichier.txt /tmp/fichier.txt c T.Besançon (v ) Administration UNIX ARS Partie / 709

151 11 Synchronisation de fichiers 11.2 Synchronisation de fichiers UNIX via rdist Exemple 5 : transport via SSH On peut utiliser SSH comme protocole de transport avec la machine distante au lieu de RSH. Avec le fichier «Distfile» de l exemple 1, on voit ainsi : % rdist -P /usr/local/bin/ssh remote.example.com: updating host remote.example.com Enter passphrase for key /users/sri/besancon/.ssh/id_dsa : XXXXXXXXXX remote.example.com: /tmp/fichier.txt: installing remote.example.com: updating of remote.example.com finished c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync Chapitre 11 Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync (en anglais Remote Synchronisation) RSYNC est un protocole plus efficace que RDIST. Par exemple, on ne transfère que les différences entre fichiers et non pas la totalité du fichier. Pas encore installé en standard. Se reporter à « c T.Besançon (v ) Administration UNIX ARS Partie / 709

152 11 Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync On utilise la commande de ces diverses façons : rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... SRC [SRC]... DEST rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST rsync [OPTION]... rsync://[user@]host[:port]/src [DEST] Il y a un mode de fonctionnement où un démon «rsyncd» est installé et répond à des requêtes authentifiées ou non. c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync Exemple Soit l arborescence «/tmp/exemple» à synchroniser : % ls -lr /tmp/exemple /tmp/exemple/: total 64 -rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier1* -rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier2* -rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier3* drwxr-xr-x 2 besancon adm 182 Aug 26 17:54 repertoire1/ /tmp/exemple/repertoire1: total 16 -rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier4* c T.Besançon (v ) Administration UNIX ARS Partie / 709

153 11 Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync La synchronisation avec une autre machine appelée «remote.example.com» par la commande suivante : % rsync \ --stats \ --rsh=/usr/local/bin/ssh \ --rsync-path=/usr/local/bin/rsync \ --archive \ --compress \ --verbose \ --cvs-exclude \ \ /tmp/exemple \ besancon@remote.example.com:/tmp c T.Besançon (v ) Administration UNIX ARS Partie / 709 La commande précédente affiche : 11 Synchronisation de fichiers 11.3 Synchronisation de fichiers UNIX via rsync building file list... done exemple/ exemple/fichier1 exemple/fichier2 exemple/fichier3 exemple/repertoire1/ exemple/repertoire1/fichier4 Number of files: 6 Number of files transferred: 4 Total file size: 844 bytes Total transferred file size: 844 bytes Literal data: 844 bytes Matched data: 0 bytes File list size: 161 Total bytes written: 825 Total bytes read: 84 wrote 825 bytes read 84 bytes bytes/sec total size is 844 speedup is 0.93 c T.Besançon (v ) Administration UNIX ARS Partie / 709

154 11 Synchronisation de fichiers 11.4 Synchronisation de fichiers WINDOWS via FullSync.exe Chapitre 11 Synchronisation de fichiers 11.4 Synchronisation de fichiers WINDOWS via FullSync.exe Programme FULLSYNC pour Windows. « Synchronisation de fichiers entre disques locaux Synchronisation de fichiers entre disques locaux et réseau via FTP, SFTP, SMB Synchronisation unidirectionnelle sans effacement sur la destination Synchronisation unidirectionnelle exacte Synchronisation bidirectionnelle Programmation à la CRON c T.Besançon (v ) Administration UNIX ARS Partie / Synchronisation de fichiers 11.4 Synchronisation de fichiers WINDOWS via FullSync.exe c T.Besançon (v ) Administration UNIX ARS Partie / 709

155 12 SAMBA Chapitre 12 SAMBA c T.Besançon (v ) Administration UNIX ARS Partie / 709 Chapitre 12 SAMBA 12 SAMBA 12.1 Introduction 12.1 Introduction Voir cours de Franck RUPIN. c T.Besançon (v ) Administration UNIX ARS Partie / 709

156 13 Systèmes d impression Chapitre 13 Systèmes d impression c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.1 Langage d impression Postscript Chapitre 13 Systèmes d impression 13.1 Langage d impression Postscript Langage créé par la société Adobe (« Dessin vectoriel. Le nom d un fichier Postscript se finit en général par le suffixe «.ps» ou «.eps». Système de coordonnées au sein d une page Postscript Format américain (dit letter) : 612 x 795 Format européen (dit a4) : 595 x 842 c T.Besançon (v ) Administration UNIX ARS Partie / 709

157 13 Systèmes d impression 13.1 Langage d impression Postscript Langage de description de page, fonctionnant avec une stack (pile). Par exemple peut se coder : forme sub add forme 1 6 add 5 sub forme neg add add etc. ce qui donne avec la première forme : sub add Un document à imprimer = un programme à exécuter c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.1 Langage d impression Postscript Le contenu d un fichier Postscript commence par les 2 premiers caractères «%!». Les fichiers Postscript destinés à être inclus dans d autres documents sont dits Encapsulated Postscript (ou EPSF) et commencent par une ligne du genre : %!PS-Adobe-2.0 EPSF-1.2 suivie d autres lignes de commentaires actifs : %%Creator:Adobe Illustrator(TM) 1.0b2- %%Title:golfer art+ %%CreationDate:1/6/87 9:32 AM %%DocumentFonts:Helvetica-Bold %%BoundingBox: dont «%%BoundingBox:» qui détermine les dimensions du dessin. c T.Besançon (v ) Administration UNIX ARS Partie / 709

158 13 Systèmes d impression 13.1 Langage d impression Postscript Par exemple, le code suivant : %! /Times-Roman findfont 40 scalefont setfont moveto (TEST DE L IMPRIMANTE) show moveto (T.BESANCON) show showpage TEST DE L IMPRIMANTE T.BESANCON donne, une fois imprimé, la page suivante : c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.1 Langage d impression Postscript Les dessins en Postscript peuvent être complexes : Poids de ce dessin vectoriel (par tête) : octets, ce qui est faible par rapport à du bitmap c T.Besançon (v ) Administration UNIX ARS Partie / 709

159 13 Systèmes d impression 13.1 Langage d impression Postscript Un document à imprimer = un programme à exécuter La partie logicielle qui exécute le fichier Postscript est un interpréteur Postscript. L interpréteur Postscript le plus connu est ghostscript. Cf « Initialement disponible sur UNIX, il est maintenant disponible sur Windows et sur Macintosh sous une forme avec interface graphique : «ftp://ftp.lip6.fr/pub/gnu/ghostview/» (GUI UNIX) « (GUI pour UNIX) « (GUI pour Windows) « (GUI pour Macintosh) c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.1 Langage d impression Postscript L intérêt de ghostscript est : visualiser des fichiers Postscript comme les documentations convertir des fichiers Postscript en d autres formats : FAX PDF PCL pour imprimante PC etc. Mais la principale utilisation de ghostscript doit être certainement maintenant sur Linux où il sert à convertir du Postscript en langage PCL qui est compris par les imprimantes PC. c T.Besançon (v ) Administration UNIX ARS Partie / 709

160 13 Systèmes d impression 13.1 Langage d impression Postscript Quelques utilisations intéressantes : calculer la BoundingBox d une figure Postscript : gs -sdevice=bbox fichier.ps afficher au format A4 : gs -spapersize=a4 fichier.ps convertir du Postscript en PDF au format A4 : ps2pdf13 -spapersize=a4 fichier.ps (ps2pdf13 est un shell script construit autour de gs avec les bonnes options) c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.1 Langage d impression Postscript Comment imprimer un fichier texte sur une imprimante Postscript? Réponse : après l avoir converti en Postscript Quelques outils : outil a2ps, cf « outil gnu enscript, cf « c T.Besançon (v ) Administration UNIX ARS Partie / 709

161 13 Systèmes d impression 13.1 Langage d impression Postscript Comment imprimer plusieurs pages côte à côte (format dit N up)? Réponse : convertir en fichier Postscript «normal» le fichier original puis regrouper les pages sur la même page via un autre code Postscript Quelques outils : outil a2ps, cf « outil mpage, cf « c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.2 Langage d impression PCL Chapitre 13 Systèmes d impression 13.2 Langage d impression PCL PCL Printer Command Language Langage de description de la page à imprimer. Développé par HP pour ses imprimantes. 6 versions de PCL : PCL 1 (années 1980), PCL 2 (années 1980), PCL 3 (1984), PCL 4 (1985), PCL 5 (HP Laserjet III), PCL 6 (HP Lasetjet 4000) Les commandes PCL sont des séquences d escape. Par exemple EcE&l3A (passe en papier letter). Pour convertir du Postscript en PCL, faire : gs -q -ssafer -sdevice=deskjet -sooutputfile=fichier.pcl -dnopause fichier.ps c T.Besançon (v ) Administration UNIX ARS Partie / 709

162 13 Systèmes d impression 13.3 Langage d impression PJL Chapitre 13 Systèmes d impression 13.3 Langage d impression PJL PJL Printer Job Language Language de contrôle de l impression des jobs. Par exemple : sélection du bac d entrée ou de sortie de papier impression recto verso taille du papier fichier PCL ou fichier Postscript etc. Exemple de commande : ESC%-12345X@PJL DEFAULTS DENSITY=5 Le logiciel ifhp associé à LPRng sait tirer pleinement parti du langage PJL. Cf « c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.4 L imprimante vintage Chapitre 13 Systèmes d impression 13.4 L imprimante vintage L imprimante «vintage» : imprimante matricielle etc. avec ruban à encre papier listing avec bande d entrainement sectionnable connexion par voie série à 9600 bauds, gestion du flux XON/XOFF c T.Besançon (v ) Administration UNIX ARS Partie / 709

163 13 Systèmes d impression 13.4 L imprimante vintage caractères normaux caractères gras par réécriture d un caractère une seconde fois sur lui-même : A = «A backspace A» = «A^HA» idem pour caractères soulignés A = «A backspace underscore» = «A^H_» peu ou pas de polices de caractères peu ou pas de possibilités de tailles variées de caractères documents au format texte uniquement pas de graphiques ou de dessin (sauf ASCII art) etc. Lundi 25 Juin :42:23 woman1.txt Page 1... "..:I: :.:...:II: :. ::.:I:.:II: ::.:.:.:I: :.:I::.:II: :.:.::.:.::II:: :.::..:::II:.: :.. :...:.:I :.. :...:.::.::.:... : :.:. :..: :I:.:..... : :.:..:.II:.:....: :.:...:.:I:.:.....:..:. :.. :....:. :.:..:.:I:.:.....:I::. :: :: :..:..:.:I:...:.:I:. :: ::.....:..:...:II:..:IIIM. ::. :...:.::.:::..:.AII:..::.. :I.::.: :.. :..:.:II:.:I:..:.::PBI X::..:.. : : :III:. :.:A PPF:...P.IP:: :: :I:.. ::......:.:II: A.. :.PB: :.:.::. : :.:IIIM: :. :.:.. :......I.::I:IIA ::....:.....:II.. :IA:.....:..:.: ::I:.. ::A:...:...:...:.::AA..:..:.... :II:I:. :A:...: :.. :..:::AMI:..:..... :III.::I II:.:...::::::::..:::AMV::.::....":IIMI::.. I:.. ::...::...:AII:: :.:.... IIMMI:.... V::. ::::...:AIIV:.: :IIMI:..:.:.V:.....:MI:.:: : :IMII:: ::.IA.....A...:::.:.. :.... I:I:.:..AMMA....AMIV::.. :... :..::::II:.I:.MIMMIMMMMMIMMIMV:..::.I. : :::I:.::IMMMMMMMMMMMMIMI...:IMI... :.... ".::.MMMI:MMMMMMMIMI. :IIMMII:. I I I. :.:.....::..IV".:I:IIIMIMMIM..:IMI::. :......:.::.. ::... :.::I:I:IMMMIA..II.:...: ::::...::.IIMII::.:.:..:..:III:. :: ::.:... :IIMI:.:....:..:I:"...:.: :.:::I:....IMII:.:....".::.:II:.:..: ::.:... ::II:.: :II:.:: :.::.I......: :......:.::. : ::I:......: ::....I:..... :.: I......: :..:...:I......:::I:......: :.. I......:::I:......: :.:.:... :: I : :..:.. : : :.:.:.... :......: :.:.::.... : ::..:...:... ::.:.:..... : :.:.....:.. :::.::.:... : ::......:. V:I::::: :: :.:: VI:I:::::...:. : :....I: VII:I:I:::.. :::, : :..:.:I:.: :.. VMIII:I::.. ::: :: :..:.MI: :MMIMIII:I:: :: : :.:.:MI: MMMMIMII I:. : :.:.:.MI: IMMMMIMMIMI. : :..IM: MMMMMMMMMI : :.:.:MI :::::. MIM:""" : ::.:.VII......::: ::. MIM : :.:.:.VI ::I"A:. MMV : :.:.VI......::I::.MV: : :..II: ::: AV. : :..VI:......:...:.AV. : :.:.:MAI:.:...:.:.:.:.AII:. I: :.:.VMMII:..:.:..:A:.:.. IA :.:.:VMMMMIMIMMIMI:.::. MAI :.:.:MMMIMIMMMIMI:..:. MIA: :.VMMMIMIIMI::.:... MIMI: ::.MMMIIMIIMI:::.. MII:.: ::VMMIMI:I::.:.. AI:..: :.VMIII:I::.:.. AI:...: VMIII:I:.... AI:...: VMIII::.....A:.. : :.. VMII::... A:... :: :.. "VMI::....:.... :...:....::.. VMI: :.:...:...::.. VI: : :::. V: :::....:....::.. V :::A...:....::.. : ::IA ::. : :.::IA :.::. : :..:.::IIA......:.::. : :.::I:OMA......:.::....: :...:I:IIMMA......::I:...:: :..::.:IIMIIMMMA......:I:... A:: :..:.::I:IMIMIMMMMA.....::I:.. :MI: :.:.::I:IMIMIIMIMMMA.....::I:... AI: :.:.::II:IMIIIMIMIMMMA.....::I:... :MI: ::.:I:IMIMIIIMIMIIMMMA......::I:... AI:.: ::.::I:IMIIMIMIMIMIMIMMA.....::I:.. MI: :..::IIMIMIMIIIIMMIIMMMMA....:::I:... MI: :.::I:IIMMIIMIMIMIMMMMV".....:::II:.. MI:: :..:::IIMIMIIMIMIIMMMM"......::III:.. II::.: :..IMMMIMMMMMM :.:IMI:.. II:I:: ::.:IMMMMMMMM: :..:::IIMII.. MI::.: :.::.::.MMMMM::.: :....:IMMI:: MII::.: :..:.. MMMI::.::.: :...:II:III III::.: :.:.... MII:I::.: :.:::...:: VII::.: :... VMI:I::.: ::.:..:.: VII::.:......:.::.. : :MMII:I::.: :: :... III:I:: :.:... :VNIMI:I::.: :.... c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.4 L imprimante vintage Résumé des caractéristiques des impressions sur ce type d imprimantes : connexion non réseau par voie série (plus tard par voie parallèle) imprimer = «cat rapport.txt > /dev/tty0a» Dans cette logique, un logiciel d impression est avant tout capable de gérer des voies séries. c T.Besançon (v ) Administration UNIX ARS Partie / 709

164 13 Systèmes d impression 13.5 L imprimante moderne Chapitre 13 Systèmes d impression 13.5 L imprimante moderne L imprimante moderne : photocopieur, imprimante réseau, scanner, fax c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.5 L imprimante moderne Caractéristiques : Photocopieur : codes d accès quotas de photocopies relevé des compteurs serveur web intégré : protection des accès, certificats HTTPS, etc. Imprimante réseau : configuration réseau minimale (adresse IP, netmask, routeur,...) configuration réseau avancée : ACL pour contrôler les accès d impression, d , de partage de fichiers disque dur local (pour stocker des polices supplémentaires, des logos, des documents fréquemment imprimés, etc.) c T.Besançon (v ) Administration UNIX ARS Partie / 709

165 Caractéristiques (suite) : 13 Systèmes d impression 13.5 L imprimante moderne Scanner (vers formats TIFF ou PDF) avec envoi des fichiers numérisés par ou récupération par FTP des fichiers numérisés : logiciels spécifiques sur le poste de travail de l utilisateur, drivers TWAIN, etc. attention aux logiciels ne travaillant que sur un seul subnet ethernet! configuration des paramètres de messagerie électronique configuration d un annuaire LDAP d entreprise ou des contacts de l entreprise configuration de partages réseau pour accéder aux fichiers scannés stockés sur le photocopieur, configuration des ACL réseau pour FTP,... Système d exploitation bugs (exemple gestion LDAP sur photocopieur CANON couleur) disque dur + problèmes de disques durs licences logicielles (codes d activation, dongles, etc.) c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.5 L imprimante moderne Résumé des caractéristiques des impressions sur ce type d imprimantes : connexion réseau par TCP/IP protocoles réseau implémentés dans l imprimante imprimer = «dialogue selon des protocoles avec un hôte TCP/IP qui prend en charge un fichier au jargon spécifique à imprimer physiquement» Dans cette logique, un logiciel d impression est avant tout capable de dialoguer en réseau selon des protocoles spéciaux. c T.Besançon (v ) Administration UNIX ARS Partie / 709

166 13 Systèmes d impression 13.6 Scenarios d impressions possibles Chapitre 13 Systèmes d impression 13.6 Scenarios d impressions possibles Pleins de scenarios sont possibles dans le monde de l impression : c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.6 Scenarios d impressions possibles c T.Besançon (v ) Administration UNIX ARS Partie / 709

167 13 Systèmes d impression 13.6 Scenarios d impressions possibles c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.6 Scenarios d impressions possibles c T.Besançon (v ) Administration UNIX ARS Partie / 709

168 13 Systèmes d impression 13.6 Scenarios d impressions possibles c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.7 Mécanismes et protocoles d impression Chapitre 13 Systèmes d impression 13.7 Mécanismes et protocoles d impression Dans un environnement réel, les mécanismes d impression permettent aux utilisateurs de s affranchir : de la connaissance des noms techniques des périphériques ; du risque d impressions mélangées lorsque deux utilisateurs essayent d imprimer en même temps ; des détails matériels tels que l absence momentanée de papier ; de la nécessité d attendre que l impression en cours se termine ; etc. c T.Besançon (v ) Administration UNIX ARS Partie / 709

169 13 Systèmes d impression 13.7 Mécanismes et protocoles d impression Pour résoudre tous ces problèmes, il a été conçu des spouleurs (spoolers). Le principe en est simple : Les utilisateurs déposent leurs fichiers dans un répertoire convenu, à l aide de la «commande d impression». C est la requête d impression. Un démon système surveille ce répertoire (file d attente), en extrait un fichier, l imprime, puis extrait le suivant, l imprime, etc. Des commandes permettent aux utilisateurs de savoir ce qu il y a dans la file d attente et éventuellement de détruire une de leurs requêtes. Des commandes permettent à l administrateur de gérer ce mécanisme : création d une nouvelle file d attente pour une nouvelle imprimante ; autorisation ou interdiction des dépôts dans des files d attente ; autorisation ou interdiction des impressions ; redirection des travaux d impression d une imprimante à une autre imprimante ; etc. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.8 Situation logicielle en 2007 Chapitre 13 Systèmes d impression 13.8 Situation logicielle en 2007 Plusieurs logiciels : mécanisme LP (SOLARIS) obsolète mécanisme LPR obsolète mécanisme LPRng (LINUX, UNIX) « a tendance à devenir obsolète mécanisme CUPS (LINUX, UNIX, Windows 2000/XP/2003, MacOSX) basé sur IPP (Internet Printing Protocol) « a la côte c T.Besançon (v ) Administration UNIX ARS Partie / 709

170 13 Systèmes d impression 13.8 Situation logicielle en 2007 Principes globaux de tous ces mécanismes : machines clientes d un serveur d impression le serveur d impression a des queues d impression pour les diverses imprimantes fonctionalités de gestion des queues plus ou moins élaborées selon le protocole : LP < LPR < LPRng < CUPS c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP Chapitre 13 Systèmes d impression 13.9 Protocole d impression LP commandes du système d impression LP Commande Autorisation Description accept administrateur accepte les requêtes cancel utilisateur supprime une requête disable utilisateur désactive une imprimante enable utilisateur active une imprimante lp utilisateur place une requête dans une file lpadmin administrateur configuration lpmove administrateur change la destination d une requête lpsched administrateur le démon proprement dit lpshut administrateur arrête le démon lpstat utilisateur liste la file d attente reject administrateur refuse les requêtes c T.Besançon (v ) Administration UNIX ARS Partie / 709

171 13 Systèmes d impression 13.9 Protocole d impression LP Les interactions entre les différents composants du système LP sont résumées dans la figure suivante : lp lpmove accept/reject file d attente flle d attente lpstat enable/disable lpsched imprimante 1 imprimante 2 imprimante 3 c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP Destinations - Files d attente Les requêtes sont dirigées vers des destinations. Une destination correspond à un file d attente. Chaque file d attente peut être associée à : une imprimante isolée (cas le plus fréquent). C est le cas de l imprimante 1 dans l exemple ; un groupe d imprimantes : c est ce qu on nomme une classe. Les requêtes sont alors envoyées indifféremment sur n importe laquelle des imprimantes de la classe. C est le cas des imprimantes 2 et 3 dans l exemple. c T.Besançon (v ) Administration UNIX ARS Partie / 709

172 13 Systèmes d impression 13.9 Protocole d impression LP Il y a trois moyens de spécifier une destination, classés par ordre de priorité : 1 avec l option «-d» ; 2 avec la variable d environnement «LPDEST» ; 3 en ne nommant aucune destination : la destination par défaut est alors choisie. Lorsque l utilisateur tape la commande «lp», la requête est mémorisée dans la file d attente correspondant à la destination spécifiée. La mémorisation est autorisée si le robinet contrôlant l accès à la file est ouvert. L administrateur agit sur ce robinet avec les commandes «accept» et «reject». c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP La commande «lpstat» permet de visualiser le contenu des files d attentes. La commande «cancel» permet de retirer une requête de sa file d attente. Les requêtes dans les files d attente sont ensuite traitées par le démon «lpsched». Celui-ci surveille l état de toutes files d attente et les imprimantes. Lorsqu une imprimante a fini d imprimer, «lpsched» choisit la requête suivante dans la file, et l envoie sur l imprimante. L impression est autorisée si le robinet contrôlant l accès à une imprimante est ouvert. L administrateur, ou les utilisateurs, peuvent contrôler ce robinet avec les commandes «enable» et «disable». Lorsqu une destination est indisponible, l administrateur peut rerouter une requête ou l ensemble des requêtes situées dans une file d attente dans une autre. Il faut pour cela que le démon soit arrêté. c T.Besançon (v ) Administration UNIX ARS Partie / 709

173 13 Systèmes d impression 13.9 Protocole d impression LP L arrêt du démon «lpsched» est effectué par «lpshut». De manière générale, toute modification sur le système d impression doit se faire lorsque le démon est à l arrêt. L arrêt est brutal : les requêtes en cours d impression sont purement et simplement stoppées. Le redémarrage du démon provoquera à nouveau leur impression depuis le début. Enfin, la commande «lpadmin» est la boîte à outils de l administrateur. Elle permet de contrôler tous les constituants du système (hors robinets). c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP La commande «lp» permet de demander l impression d un ou de plusieurs fichiers : lp [-d destination] [-m] [-n nombre] [-o options] [-s] [-t titre] [-w] fichiers Les options sont : Option Signification -d spécifie une imprimante -m envoie un courrier lorsque l impression est finie -n demande l impression de plusieurs copies -o passe des options au script d impression -s n affiche pas l identificateur dans la file d attente -t imprime un titre sur la page d en-tête -w envoie un message lorsque l impression est finie c T.Besançon (v ) Administration UNIX ARS Partie / 709

174 13 Systèmes d impression 13.9 Protocole d impression LP Scripts d impression Lorsque «lpsched» lance une impression, il appelle en réalité un script shell appelé le script d interface. Ce script, nommé du nom de l imprimante, a pour fonction d imprimer la bannière et le fichier. Il reçoit en paramètres : 1 l identificateur de la requête dans la file d attente ; 2 le nom de l utilisateur qui a formulé la requête ; 3 le titre qu il a éventuellement indiqué ; 4 le nombre de copies à imprimer ; 5 les options éventuellement spécifiées par l option «-o» de la commande «lp» ; 6 et enfin une liste de fichiers dans la file d attente. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP La sortie standard de ce script est redirigée sur le fichier spécial correspondant à l imprimante, et la sortie d erreur est éventuellement transmise par courrier à l utilisateur. Dans le cas le plus simple, ce script génère une bannière et ne fait qu un «cat» du fichier sur la sortie standard pour effectuer l impression. Mais des scripts plus évolués permettent de reconnaître automatiquement le type du fichier et l imprimer en conséquence (PostScript, texte, etc.). Les options peuvent permettre de changer de fonte, de bac papier, de taille de page, etc. L utilisation de tels scripts rend ce système d impression particulièrement souple. Si beaucoup de scripts modèles sont fournis par le constructeur, la possibilité de les modifier et de les adapter est très importante pour utiliser pleinement les imprimantes. c T.Besançon (v ) Administration UNIX ARS Partie / 709

175 Ajout d une imprimante 13 Systèmes d impression 13.9 Protocole d impression LP Lors de l ajout d une imprimante, il faut : avoir le bon cable (parallèle, série ou autre) ; créer le fichier spécial correspondant à l interface ; rendre «lp» propriétaire du fichier spécial ; changer les droits du fichier spécial pour que personne ne puisse y accéder autrement que par «lp» ; récapituler les paramètres de connexion (caractéristiques de la liaison) ; identifier le type de l imprimante et choisir en conséquence un script modèle s en approchant. Les scripts modèle sont en principe dans le répertoire : «/usr/spool/lp/model». choisir un nom pour l imprimante ; vérifier que le démon «lpsched» ne tourne pas et l arrêter éventuellement avec «lpshut». c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP Une fois cela fait, la commande «lpadmin» peut être appelée pour créer l imprimante : # lpadmin -pnom-de-l imprimante -mscript -vfichier-spécial avec : l option «-p» spécifie le nom de l imprimante ; l option «-m» spécifie le nom du script modèle qui sera utilisé comme script d interface. Le script modèle doit obligatoirement résider dans le répertoire des scripts modèles ; l option «-v» spécifie le fichier spécial dans «/dev». Cette commande place le script modèle dans le répertoire des scripts d interface (répertoire «/usr/spool/lp/interface»). c T.Besançon (v ) Administration UNIX ARS Partie / 709

176 13 Systèmes d impression 13.9 Protocole d impression LP Une fois ce script installé, il est possible, par le biais de la commande «stty», de modifier les paramètres de connexion s il s agit d une liaison série. Par exemple : # lpadmin -pps -mpostscript -v/dev/ps Une fois l imprimante créée, elle peut éventuellement devenir l imprimante par défaut. Pour cela, il faut exécuter : # lpadmin -dnom-de-l imprimante Il faut maintenant libérer l accès aux files d attente et à l imprimante. Pour cela, il faut utiliser les commandes : # accept nom-de-l imprimante # enable nom-de-l imprimante Après avoir redémarré le démon avec la commande «lpsched», vous pouvez à présent utiliser votre imprimante. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression 13.9 Protocole d impression LP Suppression d une imprimante Le retrait d une imprimante est effectué par la commande : # lpadmin -xnom-de-l imprimante c T.Besançon (v ) Administration UNIX ARS Partie / 709

177 13 Systèmes d impression 13.9 Protocole d impression LP Gestion des classes Une imprimante peut être directement créée dans une classe, ou peut être ajoutée a posteriori dans une classe. Pour cela, l option «-c» doit être spécifiée : création d une imprimante dans une classe : # lpadmin -pnom-de-l imprimante -mscript -vfichier-spécial -cn intégration d une imprimante existante dans une classe : # lpadmin -pnom-de-l imprimante -cnom-de-la-classe Pour supprimer une classe, il suffit d utiliser l option «-x» comme pour supprimer une imprimante. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Chapitre 13 Systèmes d impression Protocole d impression LPD Commandes du système d impression Commande Autorisation Description lpr utilisateur place une requête dans la file lprm utilisateur supprime une requête lpq utilisateur liste la file d attente lpc administrateur boîte à outils lpd administrateur le démon proprement dit c T.Besançon (v ) Administration UNIX ARS Partie / 709

178 13 Systèmes d impression Protocole d impression LPD Les interactions entre les différents composants du système d impression Berkeley sont résumées dans la figure suivante : lpr lpc enable lpc disable file d attente file d attente lpq lpd imprimante 1 imprimante 3 c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Les requêtes sont destinées à des file d attente. Il y a une file d attente par imprimante, et il n y a donc pas de possibilité de grouper des imprimantes comme dans le spouleur AT&T. Il y a trois moyens de spécifier une file d attente, classés par ordre de priorité : 1 avec l option «-P» ; 2 avec la variable d environnement «PRINTER» ; 3 en ne nommant aucune destination : la destination par défaut est alors choisie. Lorsque l utilisateur tape la commande «lpr», la requête est mémorisée dans la file d attente correspondant à l imprimante spécifiée. La mémorisation est autorisée si le robinet contrôlant l accès à la file est ouvert. c T.Besançon (v ) Administration UNIX ARS Partie / 709

179 13 Systèmes d impression Protocole d impression LPD L administrateur agit sur ce robinet avec la commande «lpc» (sous-commande «disable»). La commande «lpq» permet de visualiser le contenu des files d attentes. La commande «lprm» permet de retirer une requête de sa file d attente. Les requêtes dans la file d attente sont ensuite traitées par le démon «lpd». Celui-ci surveille les requêtes distantes et l état des files et des imprimantes. Lorsqu une imprimante a fini d imprimer, «lpr» choisit la requête suivante dans la file, et l envoie sur l imprimante. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Le fonctionnement du démon est très différent de celui de LP : requêtes réseau lpr lpd file d attente lpd lpd file d attente imprimante 1 imprimante 2 c T.Besançon (v ) Administration UNIX ARS Partie / 709

180 13 Systèmes d impression Protocole d impression LPD Le démon «lpd» est normalement inactif, à l écoute des requêtes venant des programmes «lpr» locaux ou des démons «lpd» d autres machines. Lorsqu un utilisateur lance la commande «lpr», «lpr» place la requête dans la file d attente, puis se connecte au démon «lpd» en lui demandant de surveiller la file d attente spécifiée. Sur cette requête, «lpd» génère un sous-processus pour imprimer toutes les requêtes de la file d attente. Ce sous-processus ne s arrête que lorsqu il n y a plus aucune requête en attente dans la file spécifiée. Il y a donc un sous-démon par file d attente non vide. Si la file d attente n est pas vide, mais qu aucun démon n est présent, on atteint le même effet que la commande «disable» avec le spouleur AT&T. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD La commande «lpc» est la boîte à outils de l administrateur. Elle permet de contrôler tous les robinets du système. C est une commande interactive qui dispose de sous-commandes. On peut également appeler directement une sous-commande (par exemple : «lpc up all»). Les différentes sous-commandes sont : Commande Effets sur... File Démon Autres abort arrêté démons interdits clean nettoyée disable désactivée lpr interdit down désactivée arrêté lpr interdit enable activée lpr autorisé exit termine lpc quit termine lpc restart redémarré start démarré démons autorisés status affiche l état du système stop arrêté démons interdits topq place un processus en tête de file up activée démarré lpr autorisé c T.Besançon (v ) Administration UNIX ARS Partie / 709

181 13 Systèmes d impression Protocole d impression LPD Fichier /etc/printcap Le fichier centralisant toutes les définitions d imprimantes est «/etc/printcap». Ce fichier contient des champs «code=valeur». Par exemple : lp ps postscript PostScript:\ :lp=/dev/ps:sd=/usr/spool/lpd/ps:\ :lf=/usr/spool/lpd/ps/ps-log:\ :mx#0:sf:sb:\ :if=/usr/local/lib/psif: L imprimante par défaut s appelle toujours «lp». c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Les options sont, dans cet exemple : lp=/dev/ps nom du fichier spécial ; sd=/usr/spool/lpd/ps nom du répertoire contenant la file d attente ; lf=/usr/spool/lpd/ps/ps-log nom du fichier contenant les erreurs ; mx#0 pas de limitation de taille des fichiers imprimés ; sf, sb pas de bannière, pas de page de fin ; if=/usr/local/lib/psif filtre d impression pour les fichiers texte ; c T.Besançon (v ) Administration UNIX ARS Partie / 709

182 Ajout d une imprimante 13 Systèmes d impression Protocole d impression LPD Lors de l ajout d une imprimante, il faut : avoir le bon cable (parallèle, série ou autre) ; créer le fichier spécial correspondant à l interface ; changer les droits du fichier spécial pour que personne ne puisse y accéder autrement que par lpr ; récapituler les paramètres de connexion ; choisir un nom pour l imprimante ; L ensemble des paramètres (y compris les paramètres de connexion, s il s agit d une liaison série) doivent être placés dans le fichier «/etc/printcap». Le répertoire correspondant à la file d attente doit être créé manuellement. Son nom doit correspondre au nom installé dans «/etc/printcap». Le propriétaire et le groupe doivent être «daemon». Les droits doivent être lecture, écriture et exécution pour le propriétaire et le groupe, lecture et exécution pour les autres. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Impression à distance La commande «lpr» permet également d imprimer des fichiers sur des imprimantes distantes. Pour mettre en place une impression à distance, il faut placer les informations suivantes dans le fichier «/etc/printcap» sur la machine cliente : # # l imprimante qui est sur cendrillon # lp ps postscript PostScript:\ :rm=cendrillon:\ :rp=ps:\ :sd=/usr/spool/lpd/ps: c T.Besançon (v ) Administration UNIX ARS Partie / 709

183 13 Systèmes d impression Protocole d impression LPD Les options sont : rm=cendrillon Nom de la machine distante ; rp=ps Nom de l imprimante sur la machine distante ; sd=/usr/spool/lpd/ps il faut un répertoire local, car la machine distante peut ne pas être disponible au moment où l utilisateur local lance la commande «lpr». La machine distante, quant à elle, doit autoriser les requêtes d impression. Ceci se fait en mettant le nom de la machine cliente dans un des fichiers : «/etc/hosts.equiv» «/etc/hosts.lpd» c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPD Protocole d impression LPD par la pratique Contexte : une imprimante réseau supportant directement le protocole LPD. L imprimante a le nom DNS «hp.example.com». L imprimante sera connue du système d impression sous le nom de queue «hp». La définition de la queue d impression LPD se fera dans le fichier «/etc/printcap» de la façon suivante : hp:\ :lp=:\ :mx#0:\ :rp=raw:\ :rm=hp.example.com:\ :lf=/var/spool/lpd/hp/log:\ :sd=/var/spool/lpd/hp: c T.Besançon (v ) Administration UNIX ARS Partie / 709

184 13 Systèmes d impression Protocole d impression LPRng Chapitre 13 Systèmes d impression Protocole d impression LPRng LPRng = LPR New Generation Amélioration de LPD. Voir annexe. c T.Besançon (v ) Administration UNIX ARS Partie / Systèmes d impression Protocole d impression LPRng Protocole d impression LPRNG par la pratique Contexte : une imprimante réseau supportant directement le protocole LPD. L imprimante a le nom DNS «hp.example.com». L imprimante sera connue du système d impression sous le nom de queue «hp». La définition de la queue d impression LPRNG se fera dans le fichier «/etc/printcap» de la façon suivante : hp: :cm=laserjet HP4050 :lp=raw@hp.example.com :sh :mc=0 :mx=0 :ifhp=model=hp4050 :filter=/usr/libexec/filters/ifhp :sd=/var/spool/lpd/%p :lf=/var/spool/lpd/%p/log :af=/var/spool/lpd/%p/acct :server c T.Besançon (v ) Administration UNIX ARS Partie / 709

185 13 Systèmes d impression Protocole d impression IPP / CUPS Chapitre 13 Systèmes d impression Protocole d impression IPP / CUPS CUPS = Common Unix Printing System c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes Chapitre 14 Monitoring de systèmes c T.Besançon (v ) Administration UNIX ARS Partie / 709

186 14 Monitoring de systèmes 14.1 Logiciels de dessin de réseaux Chapitre 14 Monitoring de systèmes 14.1 Logiciels de dessin de réseaux Plusieurs logiciels disponibles mais incompatibles : VISIO, disponible dans Microsoft Office sous Windows : « DIA, disponible sur UNIX ou Windows : « c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.1 Logiciels de dessin de réseaux Bibliothèque de symboles CISCO dans DIA : c T.Besançon (v ) Administration UNIX ARS Partie / 709

187 14 Monitoring de systèmes 14.2 Logiciels de tracés de courbes Chapitre 14 Monitoring de systèmes 14.2 Logiciels de tracés de courbes Objectif : visualiser certains aspects système : pagination débits réseau utilisation de jetons logiciels températures de salles machines etc. Avec quel(s) outil(s) tracer les mesures réalisées? GNUPLOT MRTG RRDTOOL etc. c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.3 GNUPLOT Chapitre 14 Monitoring de systèmes 14.3 GNUPLOT Site « Aussi disponible sur Windows. Exemple (tracé d une donnée en fonction du temps) : 500 "data" using 1: / / / / / / / / / /29 c T.Besançon (v ) Administration UNIX ARS Partie / 709

188 14 Monitoring de systèmes 14.3 GNUPLOT Gnuplot utilise un langage scriptable pour dessiner les courbes. Exemple de données : Script : set terminal png set output "data.png" set timefmt "%Y%m%d" set xdata time set format x "%Y\n%m/%d" set yrange [0:500] plot "data" using 1:2 with linespoints c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.3 GNUPLOT Image «data.png» obtenue par «gnuplot consommation.gnuplot» : 500 "data" using 1: / / / / / / / / / /29 c T.Besançon (v ) Administration UNIX ARS Partie / 709

189 14 Monitoring de systèmes 14.4 MRTG Chapitre 14 Monitoring de systèmes 14.4 MRTG Site « A completer... c T.Besançon (v ) Administration UNIX ARS Partie / 709 Exemples 14 Monitoring de systèmes 14.4 MRTG c T.Besançon (v ) Administration UNIX ARS Partie / 709

190 14 Monitoring de systèmes 14.5 RRDTOOL Chapitre 14 Monitoring de systèmes 14.5 RRDTOOL Site « Attention : version 2.x buggée rester sur 1.x A completer... c T.Besançon (v ) Administration UNIX ARS Partie / 709 Exemples 14 Monitoring de systèmes 14.5 RRDTOOL c T.Besançon (v ) Administration UNIX ARS Partie / 709

191 14 Monitoring de systèmes 14.5 RRDTOOL c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.5 RRDTOOL c T.Besançon (v ) Administration UNIX ARS Partie / 709

192 Principe 14 Monitoring de systèmes 14.5 RRDTOOL Fichier de données d extension «.rrd». RRD signifie Round Robin Database N slots Une fois les N slots remplis, on vire la valeur la plus vieille et on décale DONNEES 27 DONNEES 26 DONNEES 25 DONNEES 24 DONNEES 23 DONNEES 22 DONNEES 27 DONNEES 26 DONNEES 25 DONNEES 24 DONNEES 23 DONNEES 22 c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.5 RRDTOOL Possibilité de «consolider» des données. Par exemple : échantillonnage toutes les 5 minutes consolidation : 1 donnée par heure consolidation : 1 donnée par jour consolidatoin : 1 donnée par semaine Objectif des consolidations : obtenir des graphes sur différentes périodes de temps sans avoir à mémoriser toutes les données échantillonnées de façon à avoir un fichier de données de taille qui reste raisonnable : graphe des N dernières heures graphe des N derniers jours graphe des N dernières semaines graphe des N derniers mois c T.Besançon (v ) Administration UNIX ARS Partie / 709

193 14 Monitoring de systèmes 14.5 RRDTOOL Initialisation du fichier «.rrd» : A completer... Ajout de données : A completer... Graphe des données : A completer... c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.6 Logiciels de surveillance Chapitre 14 Monitoring de systèmes 14.6 Logiciels de surveillance Plusieurs solutions : produits maison logiciels clef en main framework permettant des adaptations maison etc. Dans la dernière catégorie : NAGIOS CACTI Big Brother, Big Sister HP OpenView BMC Patrol etc. c T.Besançon (v ) Administration UNIX ARS Partie / 709

194 14 Monitoring de systèmes 14.7 NAGIOS Chapitre 14 Monitoring de systèmes 14.7 NAGIOS Site « Principe : la «console» NAGIOS surveille des clients via des «agents logiciels» NAGIOS : Console Console Console indirecte host 1 host 2 host 1 host 2 c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS La console NAGIOS peut avoir une interface web (serveur web APACHE + scripts CGI) mais non obligatoire. Interface web simple. Le gros du travail : définir le réseau : liste des définitions des machines liste des définitions des services à surveiller sur les machines installer les agents NAGIOS c T.Besançon (v ) Administration UNIX ARS Partie / 709

195 Exemples 14 Monitoring de systèmes 14.7 NAGIOS c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS c T.Besançon (v ) Administration UNIX ARS Partie / 709

196 14 Monitoring de systèmes 14.7 NAGIOS c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS c T.Besançon (v ) Administration UNIX ARS Partie / 709

197 Objets NAGIOS 14 Monitoring de systèmes 14.7 NAGIOS host hostgroup service servicegroup contact contactgroup timeperiod command servicedependency (dépendance entre services) servicescalation hostdependency (dépendance entre machines) hostescalation hostextinfo (extended host information : icône, URL) serviceextinfo (extended service information : icône, URL) Il est possible d avoir des squelettes pour faciliter les définitions des objets en regroupant dans un squelette des caractéristiques communes. c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS Définition d un template Cas d un objet host : define host{ name generic-host ; Name of template register 0 ; DON T REGISTER ; IT IS JUST A TEMPLATE } notifications_enabled 1 ; Host notifications are enabled event_handler_enabled 1 ; Host event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restart notification_period 24x7 ; Send host notifications at any time c T.Besançon (v ) Administration UNIX ARS Partie / 709

198 14 Monitoring de systèmes 14.7 NAGIOS Possibilité de template imbriqué : define host { name server ; Name of template use generic-host ; Inherits from generic-host register 0 ; DON T REGISTER ; IT IS JUST A TEMPLATE } check_period 24x7 ; By default, Linux hosts are checked round the c max_check_attempts 10 ; Check each Linux host 10 times (max) check_command check-host-alive ; Default command to check Linux hosts notification_period workhours notification_interval 120 ; Resend notification every 2 hours notification_options d,u,r ; Only send notifications for specific host state contact_groups admins ; Notifications get sent to the admins by default c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS Définition d un host (machine) define host{ use server } host_name alias address mail.example.com smtp.example.com mail.example.com Etats d un host : «OK» «DOWN» «UNREACHABLE» «RECOVERING» c T.Besançon (v ) Administration UNIX ARS Partie / 709

199 Définition d un service 14 Monitoring de systèmes 14.7 NAGIOS define service { use host_name service_description check_command } define service { use host_name service_description check_command } local-service mail.example.com SSH check_ssh local-service mail.example.com CAMCONTROL check_nrpe!check_camcontrol_da0 Etats d un service : «OK» «WARNING» «CRITICAL» «UNKNOWN» «RECOVERING» c T.Besançon (v ) Administration UNIX ARS Partie / 709 Définition d une commande 14 Monitoring de systèmes 14.7 NAGIOS Un service NAGIOS fait appel à une commande NAGIOS. Commande NAGIOS = plugin NAGIOS = agent NAGIOS Nombreuses commandes fournies. define command { command_name check_ssh command_line $USER1$/check_ssh -H $HOSTADDRESS$ } define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } Facile d ajouter ses commandes : define command { command_name check-netapp-globalstatusmsg command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C public -o } c T.Besançon (v ) Administration UNIX ARS Partie / 709

200 14 Monitoring de systèmes 14.7 NAGIOS Plusieurs protocoles de communication entre NAGIOS et ses plugins. NAGIOS external command file check_xyz (plugin) check_by_ssh (plugin) check_nrpe (plugin) check_snmp (plugin) NSCA (daemon) service sshd (daemon) nrpe (daemon) snmpd (daemon) send_nsca (client) check_xyz (plugin) check_xyz (plugin) result of service check client client client client client c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS NRPE : NAGIOS Remote Plugin Executor port TCP 5666 monitoring actif : NAGIOS est à l initiative des tests NSCA : NAGIOS Service Check Acceptor monitoring passif ; NAGIOS reçoit des résultats de tests dont il n est pas l initiateur c T.Besançon (v ) Administration UNIX ARS Partie / 709

201 14 Monitoring de systèmes 14.7 NAGIOS Il est facile d écrire un plugin : #!/bin/sh if [... ] then # condition OK echo "OK - blabla" exit 0 fi if [... ] then # condition WARNING echo "WARNING - blabla" exit 1 fi if [... ] then # condition ERROR echo "CRITICAL - blabla" exit 1 fi if [... ] then # condition UNKNOWN echo "UNKNOWN - blabla" exit 3 fi N importe quel langage de programmation peut convenir. c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.7 NAGIOS Définition d un contact define contact{ contact_name alias service_notification_period host_notification_period service_notification_options host_notification_options service_notification_commands host_notification_commands } nagios-admin Nagios Admin 24x7 24x7 w,u,c,r d,r notify-by- host-notify-by- nagios-admin@example.com c T.Besançon (v ) Administration UNIX ARS Partie / 709

202 Notification via 14 Monitoring de systèmes 14.7 NAGIOS From Fri Aug 3 12:10: Date: Fri, 3 Aug :10: (CEST) From: nagios@example.com To: nagios-admin@example.com Subject: ::NAGIOS:: ** PROBLEM alert - mail.example.com/camcontrol is CRITICAL ** ***** Nagios 2.6 ***** Notification Type: PROBLEM Service: CAMCONTROL Host: mail.example.com Address: mail.example.com State: CRITICAL Date/Time: Fri Aug 3 12:10:02 CEST 2007 Additional Info: CAMCONTROL ALERT :09:28 da0 [COMPAQ RAID 1 VOLUME reco] c T.Besançon (v ) Administration UNIX ARS Partie / 709 Notification via (suite) 14 Monitoring de systèmes 14.7 NAGIOS From nagios@example.com Fri Aug 3 12:24: Date: Fri, 3 Aug :25: (CEST) From: nagios@example.com To: nagios-admin@example.com Subject: ::NAGIOS:: ** RECOVERY alert - mail.example.com/camcontrol is OK ** ***** Nagios 2.6 ***** Notification Type: RECOVERY Service: CAMCONTROL Host: mail.example.com Address: mail.example.com State: OK Date/Time: Fri Aug 3 12:25:02 CEST 2007 Additional Info: CAMCONTROL OK :24:28 da0 [COMPAQ RAID 1 VOLUME OK] c T.Besançon (v ) Administration UNIX ARS Partie / 709

203 14 Monitoring de systèmes 14.8 NAGIOS + OREON Chapitre 14 Monitoring de systèmes 14.8 NAGIOS + OREON L interface de NAGIOS n est pas très pratique. Possibilité d offrir une autre interface web : OREON Site « A completer... c T.Besançon (v ) Administration UNIX ARS Partie / Monitoring de systèmes 14.9 CACTI Chapitre 14 Monitoring de systèmes 14.9 CACTI Site « A completer... c T.Besançon (v ) Administration UNIX ARS Partie / 709

204 Exemples 14 Monitoring de systèmes 14.9 CACTI c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : /etc/passwd Chapitre 15 Mécanisme d authentification réseau : /etc/passwd c T.Besançon (v ) Administration UNIX ARS Partie / 709

205 15 Mécanisme d authentification réseau : /etc/passwd 15.1 Introduction Chapitre 15 Mécanisme d authentification réseau : /etc/passwd 15.1 Introduction Voir dans le volume 2 la partie sur «/etc/passwd» et «/etc/shadow». Problématique : comment gérer un réseau de machines qui n utiliseront que les fichiers «/etc/passwd» et «/etc/shadow»? c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : /etc/passwd 15.2 Principe d une solution Chapitre 15 Mécanisme d authentification réseau : /etc/passwd 15.2 Principe d une solution Une solution : recopier depuis une machine A sur les autres machines les fichiers «/etc/passwd» et «/etc/shadow» recopie sur les autres machines via SCP (voir SSH) recopie périodique via CRONTAB n autoriser les changements de mot de passe que sur la machine A Quels sont les inconvénients de cette méthode? Quels sont les avantages de cette méthode? c T.Besançon (v ) Administration UNIX ARS Partie / 709

206 16 Mécanisme d authentification réseau : NIS Chapitre 16 Mécanisme d authentification réseau : NIS c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.1 Introduction Chapitre 16 Mécanisme d authentification réseau : NIS 16.1 Introduction NIS Network Information Service Créé par SUN en 1985 Anciennement Yellow Pages certaines commandes ont un nom en «yp...» Version NIS+ vers 1992, radicalement différente (cf annexe) C est un protocole réseau d accès à des informations centralisées sur un ou plusieurs serveurs redondants. Utilisation la plus courante : partager la base des comptes UNIX. c T.Besançon (v ) Administration UNIX ARS Partie / 709

207 16 Mécanisme d authentification réseau : NIS 16.2 Architecture de NIS Chapitre 16 Mécanisme d authentification réseau : NIS 16.2 Architecture de NIS Architecture construite en mode client / serveur : D A T A Maitre D A T A D A T A Esclave 1 Esclave 2 Mise a jour push / pull D A T A D A T A D A T A D A T A D A T A Client 1 Client 2 Client 3 Client 4 c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.2 Architecture de NIS Caractéristiques : Communications réseau via RPC (Remote Procedure Call) Propagation des données (maps) du master server aux slave servers en mode pull ou en mode push. Propagation des maps complètes Seul le master server peut modifier les données Les slave servers diffusent les données sans pouvoir les modifier c T.Besançon (v ) Administration UNIX ARS Partie / 709

208 16 Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch Chapitre 16 Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch Les données manipulées par NIS : maps Les maps contiennent des couples (clef, valeur). Il n y a que le serveur NIS maître qui peut changer le contenu d une map. Une map est au format DBM (cf «man dbm») ; une map se compose de 3 fichiers : le fichier source le fichier de suffixe «.pag» le fichier de suffixe «.dir» c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch La commande «makedbm» permet de convertir le fichier source en les 2 fichiers constituant le DBM. % cat demo clef1 banane clef2 arbre % makedbm demo demo % ls -l demo -rw-r--r-- 1 besancon adm 23 Aug 15 11:56 demo -rw besancon adm 0 Aug 15 11:57 demo.dir -rw besancon adm 1024 Aug 15 11:57 demo.pag Dans le système NIS, les maps sont stockées sur le master server dans «/var/yp/nom-du-domaine-nis» : % cd /var/yp/nom-de-domaine-nis % ls -l passwd* -rw root other 4096 Nov 23 07:26 passwd.byname.dir -rw root other 8192 Nov 23 07:26 passwd.byname.pag -rw root other 4096 Nov 23 07:26 passwd.byuid.dir -rw root other 8192 Nov 23 07:26 passwd.byuid.pag c T.Besançon (v ) Administration UNIX ARS Partie / 709

209 16 Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch Les maps sont construites automatiquement à partir de tous les fichiers sources des maps : passwd.byname passwd.byuid /etc/hosts makedbm NIS MASTER hosts.byname hosts.byuid /etc/passwd Le fichier «/var/yp/makefile» automatise toutes les créations de maps et leur propagation aux slave servers (mode push). c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch Extrait de «/var/yp/makefile» :... hosts.time: $(B) -l $(DIR)/hosts $(CHKPIPE)) \ (awk BEGIN { OFS="\t"; } $$1!~ /^#/ { print $$1, $$0 } $(CHKPIPE)) \ $(MAKEDBM) $(B) - "updated [! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byname; [! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byaddr; [! $(NOPUSH) ]; then echo "pushed hosts"; fi... c T.Besançon (v ) Administration UNIX ARS Partie / 709

210 16 Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch La construction d une map se résume alors à (par exemple suite à une modification de /etc/hosts) : # vi /etc/hosts # cd /var/yp # make hosts updated hosts pushed hosts c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch La librairie DBM permet de créer des enregistrements de taille maximale 1024 octets : % man dbm SunOS/BSD Compatibility Library Functions dbm(3b) NAME dbm, dbminit, dbmclose, fetch, store, delete, firstkey, nextkey - data base subroutines The sum of the sizes of a key/content pair must not exceed the internal block size (currently 1024 bytes). Moreover all key/content pairs that hash together must fit on a single block. store will return an error in the event that a disk block fills with inseparable data. c T.Besançon (v ) Administration UNIX ARS Partie / 709

211 16 Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch Quelques noms de maps : passwd.byname, passwd.byuid, group.byname, group.bygid, publickey.byname, hosts.byaddr, hosts.byname, mail.byaddr, mail.aliases, services.byname, services.byservicename, rpc.bynumber, rpc.byname, protocols.bynumber, protocols.byname, networks.byaddr, networks.byname, netmasks.bymask, netmasks.byaddr, ethers.byname, ethers.byaddr, bootparams, auto.master, auto.home, auto.direct, auto.src dont les plus utiles sont : map «passwd» map «group» map «hosts» map «netgroup» c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.3 Données NIS : maps NIS, DBM, ypcat, ypmatch La commande «ypcat» permet de consulter une map NIS depuis n importe quel client. Syntaxe : «ypcat map-nis» La commande «ypmatch» permet de consulter la valeur d une ou plusieurs clefs dans une certaine map NIS depuis n importe quel client. Syntaxe : «ypmatch clef1 clef2... map-nis» c T.Besançon (v ) Administration UNIX ARS Partie / 709

212 16 Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Chapitre 16 Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Un client NIS doit se connecter à un serveur NIS. C est l action de binding. Le binding nécessite : de fournir un nom de domaine NIS, le domainname ; une machine se déclare comme membre du groupe servi par les serveurs NIS de préciser la méthode de localisation du serveur NIS : broadcast ou explicite c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Nom de domaine La commande activant le nom de domaine est domainname. Pour consulter le nom de domaine : «domainname» Pour configurer manuellement le nom de domaine : «domainname nom-du-domaine-nis» c T.Besançon (v ) Administration UNIX ARS Partie / 709

213 16 Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Configuration du domainname automatique au démarrage : Sur Solaris : renseigner le fichier «/etc/defaultdomain» Sur Linux : renseigner le variable «NISDOMAIN» du fichier «/etc/sysconfig/network» NETWORKING=yes FORWARD_IPV4=false HOSTNAME=pcars6.formation.jussieu.fr DOMAINNAME=formation.jussieu.fr GATEWAY= GATEWAYDEV=eth0 NISDOMAIN=real.world ATTENTION : sur LINUX, ne pas confondre avec la variable «DOMAINNAME» c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Réalisation du binding Un client NIS fait tourner le démon «ypbind» qui se connecte à un serveur NIS que l on trouve selon 2 méthodes possibles : découverte par broadcast ; c est le mode par défaut. Sur Solaris, «/usr/lib/netsvc/yp/ypbind -broadcast» En pratique il y a une map «ypservers» qui contient les noms des serveurs. Cf «/var/yp/binding/nom-de-domaine-nis/ypservers» demande de connexion explicite Sur Solaris faire : # ypbind -ypsetme # ypset nom-du-serveur-nis-voulu La commande «ypwhich» affiche le nom du serveur NIS utilisé. c T.Besançon (v ) Administration UNIX ARS Partie / 709

214 16 Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset On peut controler un peu quels sont les clients qui se bindent aux servers. Pour cela, remplir sur les slave servers et sur le master server le fichier «/var/yp/securenets». Il liste les machines autorisées, sous forme adresses et netmasks. Par exemple : Signification : seules les machines des réseaux « /16» et « /24» sont autorisées à se binder. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Consultation des maps Un client NIS doit indiquer quels maps il utilisera. La plus courante est la map «passwd» dont on indique l utilisation par l ajout d une ligne en fin de fichier «/etc/passwd» : +::65534:65534::: Signification de cette ligne supplémentaire (à vérifier sur chaque système car il existe des différences) : Tout champ renseigné de cette ligne + remplace le même champ de la map inconditionnellement sauf pour UID et GID. Pour UID et GID, les valeurs mentionnées s activeront si ces champs sont absents de la map (c est-à-dire quand la map est vérolée ce qui indique un problème de fichier source vérolé). c T.Besançon (v ) Administration UNIX ARS Partie / 709

215 16 Mécanisme d authentification réseau : NIS 16.4 Client NIS, domainname, ypbind, ypwhich, ypset Exemple : +:*LK*:65534:65534:::/usr/local/bin/tcsh Signification : le passwd chiffré des utilisateurs de la map passwd est «* LK*» l UID sera si l entrée de la map ne précise pas d UID le GID sera si l entrée de la map ne précise pas de GID le shell de login est mis automatiquement à «/usr/local/bin/tcsh» c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.5 Slave server NIS, ypserv, ypxfr Chapitre 16 Mécanisme d authentification réseau : NIS 16.5 Slave server NIS, ypserv, ypxfr Un serveur NIS esclave fait tourner plusieurs démons : ypserv ypbind Le démon «ypserv» est là pour répondre aux requêtes des client NIS qui se sont bindés sur lui. Le démon «ypbind» n est là que pour faire du slave server un client NIS aussi (mais ce n est pas obligatoire). Il n est pas garanti que le slave server soit client NIS de lui même. Il peut se binder sur un autre serveur NIS du même domaine. c T.Besançon (v ) Administration UNIX ARS Partie / 709

216 16 Mécanisme d authentification réseau : NIS 16.5 Slave server NIS, ypserv, ypxfr Un slave server peut être down au moment où un master slave fait un push des maps. besoin pour le slave server de se resynchroniser avec le master server ; pull des maps de la part du slave server Cela se fait au moyen de shell scripts lancés périodiquement via la crontab : 30 * * * * /usr/lib/netsvc/yp/ypxfr_1perhour 31 1,13 * * * /usr/lib/netsvc/yp/ypxfr_2perday 32 1 * * * /usr/lib/netsvc/yp/ypxfr_1perday Ces scripts récupérent plus ou moins de maps suivant la fréquence de leur lancement. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.5 Slave server NIS, ypserv, ypxfr Exemple de l un de ces shell scripts, «ypxfr_1perhour» : #! /bin/sh # ypxfr_1perhour.sh - Do hourly NIS map check/updates PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH export PATH ypxfr passwd.byname ypxfr passwd.byuid c T.Besançon (v ) Administration UNIX ARS Partie / 709

217 16 Mécanisme d authentification réseau : NIS 16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd Chapitre 16 Mécanisme d authentification réseau : NIS 16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd Un serveur NIS maître fait tourner plusieurs démons : ypserv ypbind ypxfrd rpc.yppasswdd Même rôle pour «ypserv» que pour un slave server. Même rôle pour «ypbind» que pour un slave server. Le démon «ypxfrd» assure les transferts de maps demandés par les slave servers (mode pull). (en UNIX, on rencontre souvent le mot xfr pour transfert) Le démon «rpc.yppasswdd» assure le changement des mots de passe. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd Avec NIS, un client NIS ne peut pas modifier le contenu d une map. Pour changer un mot de passe, on va émuler le changement du mot de passe sur le master server dans son fichier source («/etc/passwd») puis la reconstruction de la map passwd et sa transmission en totalité aux slave servers. Ce processus se réalise en utilisant la commande «yppasswd» qui demande les mots de passe à l utilisateur puis appelle «rpc.yppasswdd» sur le master server qui simule la session interactive composée des commandes : # passwd # cd /var/yp # make passwd c T.Besançon (v ) Administration UNIX ARS Partie / 709

218 16 Mécanisme d authentification réseau : NIS 16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd Sur un client NIS Linux : % yppasswd Changing NIS account information for besancon on linux.unixiens.org. Please enter old password: ******** Changing NIS password for besancon on linux.unixiens.org. Please enter new password: ******** Please retype new password: ******** The NIS password has been changed on linux.unixiens.org. Sur un master server NIS Solaris : % yppasswd Enter login(nis) password: ******** New password: ******** Re-enter new password: ******** NIS passwd/attributes changed on linux.unixiens.org c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.7 Netgroups Chapitre 16 Mécanisme d authentification réseau : NIS 16.7 Netgroups «/etc/netgroups» Le système NIS permet de définir des groupes d autorisation d accès : les netgroups. Ces groupes sont diffusés via la map netgroup. Un netgroup est un nom symbolique associé à un ensemble de triplets (je n ai jamais vu le troisième champ avoir une quelconque utilité en pratique) : nom-de-netgroup \ (machine, utilisateur, nom-de-domaine-nis) \ (machine, utilisateur, nom-de-domaine-nis) \... On définit en pratique des netgroups concernant des machines et des netgroups concernant des utilisateurs. On autorisera ainsi ou pas des groupes d utilisateurs ou de machines à accéder à certaines ressources. c T.Besançon (v ) Administration UNIX ARS Partie / 709

219 16 Mécanisme d authentification réseau : NIS 16.7 Netgroups Exemple de netgroup de machines : nains \ (atchoum.example.com,,mine-de-diamants) \ (dormeur.example.com,,mine-de-diamants) \ (joyeux.example.com,,mine-de-diamants) \ (grincheux.example.com,,mine-de-diamants) \ (prof.example.com,,mine-de-diamants) \ (timide.example.com,,mine-de-diamants) \ (simplet.example.com,,mine-de-diamants) Exemple de netgroup d utilisateurs : etudiants \ (,jean,) \ (,pierre,) \ (,valerie,) c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.7 Netgroups Exemple d utilisation d un netgroup d utilisateurs au niveau de «/etc/passwd» : field:password HERE:0:1:Field Service:/usr/field:/bin/csh operator:password HERE:5:28:Operator:/opr:/opr/opser sys:password HERE:2:3:Mr Kernel:/usr/sys: bin:password HERE:3:4:Mr Binary:/bin: pot:*:16:16:menupot:/users/staffs/pot: -@etudiants: +@net_administrateurs::0:0::: +@net_utilisateurs::65534:65534:::/bin/noshell Signification : On rejette les lignes de la map «passwd» dont le login est indiqué dans le netgroup «etudiants» On accepte les lignes de la map «passwd» dont le login est indiqué dans le netgroup «net_administrateurs» On accepte les lignes de la map «passwd» dont le login est indiqué dans le netgroup «net_utilisateurs» c T.Besançon (v ) Administration UNIX ARS Partie / 709

220 16 Mécanisme d authentification réseau : NIS 16.7 Netgroups Exemple d utilisation d un netgroup de machines au niveau de l exportation de disques via NFS (fichier «/etc/exports, cf chapitre sur NFS) : /usr/openwin -access=nains c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS 16.8 Installation de NIS Chapitre 16 Mécanisme d authentification réseau : NIS 16.8 Installation de NIS Master server Lancer «ypinit -m» Slave servers Lancer «ypinit -s master-server» Ajouter dans la crontab les appels aux scripts «ypxfr_*» Client NIS Spécifier le domainname c T.Besançon (v ) Administration UNIX ARS Partie / 709

221 17 Mécanisme d authentification réseau : NIS+ Chapitre 17 Mécanisme d authentification réseau : NIS+ c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : NIS Introduction / Conclusion Chapitre 17 Mécanisme d authentification réseau : NIS Introduction / Conclusion Cf annexe pour un document sur NIS+. Nous n évoquerons ici que les défauts de NIS ayant conduit à l apparition de son successeur, NIS+. Le système NIS+ n a pas connu de succès et il est maintenant officiellement abandonné au profit de LDAP par son principal défenseur, SUN. c T.Besançon (v ) Administration UNIX ARS Partie / 709

222 17 Mécanisme d authentification réseau : NIS Introduction / Conclusion Principaux reproches à NIS : pas d authentification du client aux serveurs NIS ; connaitre le domainname suffit à se binder les maps sont transmises en totalité même en cas de faible modification de leurs contenus inadaption du principe du domaine NIS dans le cas de structures WAN mode broadcast c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP Chapitre 18 Mécanisme d authentification réseau : LDAP c T.Besançon (v ) Administration UNIX ARS Partie / 709

223 18 Mécanisme d authentification réseau : LDAP 18.1 Problématique Chapitre 18 Mécanisme d authentification réseau : LDAP 18.1 Problématique Cas de l université de Paris 4 : base Microsoft Excel du personnel administratif base Microsoft Access du personnel enseignant base «/etc/passwd» des comptes des utilisateurs base mysql des 2 catégories de personnel prochainement logiciel à base d Oracle prochainement Microsoft Active Directory Question 1 : envoyer un à tous les personnels administratifs sachant que le service du personnel ne fournira qu une liste avec nom et prénom. Comment l ingénieur système fait-il? Question 2 : envoyer un à tous les personnels administratifs sauf ceux du site de Clignancourt, sachant que le service du personnel ne peut pas fournir de liste cette fois-ci. Comment l ingénieur système fait-il? c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.2 Principe d annuaire Chapitre 18 Mécanisme d authentification réseau : LDAP 18.2 Principe d annuaire Un annuaire informatique est un service permettant d accéder à des informations, relatives à des personnes ou à diverses ressources de façon organisée. Objectif : maintenir de façon cohérente et contrôlée les archipels de données et obtenir des données de référence. c T.Besançon (v ) Administration UNIX ARS Partie / 709

224 18 Mécanisme d authentification réseau : LDAP 18.2 Principe d annuaire Un annuaire n est pas une base de données relationnelles. Une base de données (SGBD) se caractérise par : Le schéma des données est défini à 100% pour résoudre un certain problème. Les applications connaissent explicitement le schéma des données. Les objets sont complexes et éclatés entre plusieurs tables liées par des relations complexes. Un SGBD supporte les transactions. Un SGBD supporte un langage comme SQL qui permet des fonctions d interrogation et de mises à jour très complexes. Un SGBD centralise les données pour éviter les problèmes de synchronisation de données et de qualité des temps de réponse. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.2 Principe d annuaire Un annuaire se caractérise par : Les objets sont indépendants (pas de liens de dépendance entre eux). Les objets peuvent être distribué sur plusieurs annuaires pour assurer une meilleure disponibilité. Le schéma est standardisé pour pouvoir partager les données. Le schéma est extensible pour prendre en compte tous les besoins mais cela est fait de façon compatible avec les standards. Les applications d annuaire ignorent la structure interne des données. Un annuaire est principalement consulté en lecture et est optimisé pour cela. c T.Besançon (v ) Administration UNIX ARS Partie / 709

225 18 Mécanisme d authentification réseau : LDAP 18.3 Annuaire LDAP Chapitre 18 Mécanisme d authentification réseau : LDAP 18.3 Annuaire LDAP LDAP Lightweight Directory Access Protocol Héritier de l annuaire ISO X500. Version 3 actuellement. RFC 2251 à 2256, RFC 2829 à 2830, RFC Il n y a pas de standard de représentation des contrôles d accès aux données. LDAP : nom d un protocole nom d une structure de données nom d implémentations de serveurs suivant le protocole Confusion possible... c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe Chapitre 18 Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe Les entrées sont organisées sous forme d arbre ou DIT (Directory Information Tree). L une des difficultés de LDAP : construire l organisation du DIT. De quoi est-il le reflet? : DIT à caractère organisationnel? DIT à caractère géographique? Pas de solution universelle. c T.Besançon (v ) Administration UNIX ARS Partie / 709

226 18 Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe DIT à caractère organisationnel? dc=company,dc=com dc=recherche dc=finance dc=marketing dc=people dc=people dc=people dc=groups dc=groups dc=groups c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe DIT à caractère géographique? dc=company,dc=com dc=america dc=europe dc=asia dc=people dc=people dc=people dc=groups dc=groups dc=groups c T.Besançon (v ) Administration UNIX ARS Partie / 709

227 18 Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe La racine de l arbre est uniquement conceptuelle et n existe pas réellement. C est le suffixe qui sert à déterminer les adresses absolues des objets (comme «/» pour l arborescence des fichiers UNIX). dc=company,dc=com SUFFIXE dc=recherche dc=finance dc=marketing dc=people dc=people dc=people dc=groups dc=groups dc=groups Le suffixe peut avoir plusieurs formes : forme 1 : «o=company.com» forme 2 : «o=company,c=com» forme 3 : «dc=company,dc=com» On préférera la 3ième forme, ayant un certain rapport avec les noms de domaine DNS. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.4 Modèle de données de LDAP : DIT, suffixe Exemple de DIT visualisé avec LdapBrowser disponible à l URL : c T.Besançon (v ) Administration UNIX ARS Partie / 709

228 18 Mécanisme d authentification réseau : LDAP 18.5 Modèle de données de LDAP : entrée, attributs, DN, URL Chapitre 18 Mécanisme d authentification réseau : LDAP 18.5 Modèle de données de LDAP : entrée, attributs, DN, URL DSE Directory Service Entry Les entrées dans le DIT (DSE) sont des agrégats d attributs monovalués ou multivalués qui permettent de stocker n importe quel format de données (prénom, numéro de téléphone, image, son, etc.) Les DSE sont stockées dans le DIT et arrangés selon leur identifiant unique, le DN (Distinguished Name). Un DN est la concaténation d un RDN (Relative DN) et du DN des parents. Un DN s apparente à une clef primaire. suffixe : dc=company,dc=com RDN : ou=recherche DN : ou=recherche,dc=company,dc=com RDN : uid=besancon DN : uid=besancon,ou=recherche,dc=company,dc=com (le RDN doit être un des attributs/valeurs du DSE) c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.5 Modèle de données de LDAP : entrée, attributs, DN, URL c T.Besançon (v ) Administration UNIX ARS Partie / 709

229 18 Mécanisme d authentification réseau : LDAP 18.5 Modèle de données de LDAP : entrée, attributs, DN, URL Il existe des URL LDAP (RC 2255) qui prennent la forme : ldap://serveur:389/dn Par exemple dans communicator de netscape : c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass Chapitre 18 Mécanisme d authentification réseau : LDAP 18.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass Le schéma du DIT regroupe les définitions relatives aux types d objets que peut contenir l annuaire ou que l on peut rechercher. Le schéma contiendra des objets instanciations de classes LDAP, les définitions de ces classes et de leurs attributs, les syntaxes de ces attributs. Tous ces éléments seront identifiés par des Object Identifiers dits OID. attributetype ( NAME uidnumber DESC An integer uniquely identifying a user in a domain EQUALITY integermatch SYNTAX SINGLE-VALUE ) objectclass ( NAME posixaccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidnumber $ gidnumber $ homedirectory ) MAY ( userpassword $ loginshell $ gecos $ description ) ) ( et sont des OIDS) c T.Besançon (v ) Administration UNIX ARS Partie / 709

230 18 Mécanisme d authentification réseau : LDAP 18.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass Une syntaxe est un modèle de représentation des valeurs de l attribut. Par exemple booléen, entier, binaire (pour une image, un son), etc. L attribut objectclass spécifie la liste des classes qu instancie un DSE. Chaque classe va construire la structure du DSE en spécifiant une liste d attributs obligatoirement présents («MUST» dans l objectclass) et une liste d attributs facultatifs («MAY» dans l objectclass). c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass Exemple : objectclass ( NAME inetorgperson DESC RFC2798: Internet Organizational Person SUP organizationalperson STRUCTURAL MAY ( audio $ businesscategory $ carlicense $ departmentnumber $ displayname $ employeenumber $ employeetype $ givenname $ homephone $ homepostaladdress $ initials $ jpegphoto $ labeleduri $ mail $ manager $ mobile $ o $ pager $ photo $ roomnumber $ secretary $ uid $ usercertificate $ x500uniqueidentifier $ preferredlanguage $ usersmimecertificate $ userpkcs12 ) ) objectclass ( NAME posixaccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidnumber $ gidnumber $ homedirectory ) MAY ( userpassword $ loginshell $ gecos $ description ) ) l attribut «uid» sera de type MUST. c T.Besançon (v ) Administration UNIX ARS Partie / 709

231 18 Mécanisme d authentification réseau : LDAP 18.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass Les objectclass de LDAP s inscrivent dans un hiérarchie dont la racine est l objectclass «top». Chaque classe hérite d une seule classe mère. Chaque classe peut donner lieu à plusieurs sous classes. (Abstract) top (Structural) person (Auxiliary) companyperson (Structural) organizationalperson (Structural) residentialperson c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.7 Protocole LDAP / Bind Chapitre 18 Mécanisme d authentification réseau : LDAP 18.7 Protocole LDAP / Bind Au niveau réseau : LDAP : TCP port 389 LDAP + SSL : TCP port 636 ( syntaxe LDAP au format ASN.1 ) + BER Un dialogue LDAP s établit après une phase d ouverture de session dite bind. Le bind peut être anonyme ou authentifié. c T.Besançon (v ) Administration UNIX ARS Partie / 709

232 18 Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF Chapitre 18 Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF Problème : comment manipuler les objets LDAP en pratique? Réponse : en les manipulant au format LDAP Data Interexchange Format, dit LDIF LDIF n intervient pas dans le protocole LDAP (pas de mention dans les RFC par exemple). LDIF n est compris que par les utilitaires qui le convertissent en protocole LDAP. c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF Attention aux caractères non ASCII : si la valeur d un attribut est uniquement composé de caractères ASCII, on l écrit «attribut : valeur» si la valeur d un attribut contient des caractères non ASCII, il faut coder cette valeur en UTF-8 puis la coder en BASE64 et écrire au final «attribut :: valeur2» Par exemple l attribut «description» de valeur Université de Paris-Sorbonne, Paris 4 ne sera pas codé en LDIF sous la forme description: Université de Paris-Sorbonne, Paris 4 mais sous la forme description:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=! Notez les différences! c T.Besançon (v ) Administration UNIX ARS Partie / 709

233 18 Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF 2 utilitaires pratiques : A verifier... c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF Exemple d une DSE avec des caractères accentués non encore codés en LDIF : dn: ou=personnel,dc=paris4,dc=sorbonne,dc=fr objectclass: top objectclass: organizationalunit ou: Personnels de l Université de Paris-Sorbonne, Paris 4 businesscategory: academic research telephonenumber: +33 (0) facsimiletelephonenumber: +33 (0) postofficebox: Université de Paris-Sorbonne, Paris 4 postalcode: F postaladdress: 1 rue Victor Cousin l: Paris, France description: Université de Paris-Sorbonne, Paris 4 c T.Besançon (v ) Administration UNIX ARS Partie / 709

234 18 Mécanisme d authentification réseau : LDAP 18.8 Format de données LDIF Exemple d une DSE au format LDIF : dn: ou=personnel,dc=paris4,dc=sorbonne,dc=fr objectclass: top objectclass: organizationalunit ou:: UGVyc29ubmVscyBkZSBsJ1VuaXZlcnNpdMOpIGRlIFBhcmlzLVNvcmJvbm5lLCBQYXJpcyA0 businesscategory: academic research telephonenumber: +33 (0) facsimiletelephonenumber: +33 (0) postofficebox:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ= postalcode: F postaladdress: 1 rue Victor Cousin l: Paris, France description:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ= c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP 18.9 Implémentations Chapitre 18 Mécanisme d authentification réseau : LDAP 18.9 Implémentations Il existe plusieurs implémentations de LDAP : OpenLdap, version (au 21 août 2002) SUN ONE (anciennement Netscape Directory Server, racheté par SUN devenu Sun Iplanet Directory puis SUN ONE) incorporé de base dans Solaris 8 et ultérieur Novell Directory Services, version 4? autes annuaires commerciaux... Les différentes implémentations respectent les normes du protocole. Par contre, elles différent au niveau de tout ce qui n est pas norme. En particulier, les droits d accès aux données sont codés de façon incompatible. c T.Besançon (v ) Administration UNIX ARS Partie / 709

235 18 Mécanisme d authentification réseau : LDAP OpenLDAP Chapitre 18 Mécanisme d authentification réseau : LDAP OpenLDAP Cf Les versions 2.x.y d OpenLDAP sont compatibles avec les normes de LDAP v3. Le logiciel se compose de : du serveur LDAP «slapd» du serveur de synchronisation «slurpd» d utilitaires («slapadd», «ldapsearch», «ldapadd», «ldapdelete», «ldapmodify», «ldappasswd», etc.) librairies, include LDAP un fichier de configuration «slapd.conf» dans lequel on définit le suffixe, le rootdn, le mot de passe du rootdn c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP OpenLDAP Le mécanisme de réplication de serveurs OpenLDAP est le suivant : 1) demande de modification 2) réponse : referral slapd (Esclave) 7) slurpd client 6) 3) demande de modification 4) réponse (OK/not OK) slapd (Maitre) 5) Journal des modifications c T.Besançon (v ) Administration UNIX ARS Partie / 709

236 18 Mécanisme d authentification réseau : LDAP ObjectClass posixaccount, shadowaccount Chapitre 18 Mécanisme d authentification réseau : LDAP ObjectClass posixaccount, shadowaccount Cf RFC2307 Cf le schéma «nis.schema» dans OpenLDAP. L objectclass «posixaccount» est l objet qui implémente l équivalent de la structure C de «<pwd.h>» : objectclass ( NAME posixaccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidnumber $ gidnumber $ homedirectory ) MAY ( userpassword $ loginshell $ gecos $ description ) ) L objectclass «shadowaccount» est l objet qui implémente le principe des shadow passwds : objectclass ( NAME shadowaccount SUP top AUXILIARY DESC Additional attributes for shadow passwords MUST uid MAY ( userpassword $ shadowlastchange $ shadowmin $ shadowmax $ shadowwarning $ shadowinactive $ shadowexpire $ shadowflag $ description ) ) c T.Besançon (v ) Administration UNIX ARS Partie / Mécanisme d authentification réseau : LDAP Un peu de bibliographie Chapitre 18 Mécanisme d authentification réseau : LDAP Un peu de bibliographie c T.Besançon (v ) Administration UNIX ARS Partie / 709

237 19 Sélection de naming services, /etc/nsswitch.conf Chapitre 19 Sélection de naming services, /etc/nsswitch.conf c T.Besançon (v ) Administration UNIX ARS Partie / Sélection de naming services, /etc/nsswitch.conf 19.1 Problématique Chapitre 19 Sélection de naming services, /etc/nsswitch.conf 19.1 Problématique Exemple : il y a les fichiers système («/etc/passwd», «/etc/hosts», «/etc/services»,...) il y a le DNS il y a NIS il y a NIS+ il y a LDAP etc. Comment choisir quels services répondront aux requêtes de recherche de nom? Une solution : préciser quels naming services seront utilisés et dans quel ordre au niveau du fichier «/etc/nsswitch.conf» (en anglais naming service switch). c T.Besançon (v ) Administration UNIX ARS Partie / 709

238 19 Sélection de naming services, /etc/nsswitch.conf 19.2 Syntaxe de /etc/nsswitch.conf Chapitre 19 Sélection de naming services, /etc/nsswitch.conf 19.2 Syntaxe de /etc/nsswitch.conf Le fichier est au format suivant : service: source [ status=action status=action... ] source... avec : pour source l un des mots clef «files», «dns», «ldap», «nis», «nisplus», «xfn» (liste à vérifier selon les systèmes UNIX offrant plus ou moins de ces services) pour status l un des mots clef suivants : «SUCCESS», entrée recherchée trouvée «NOTFOUND», entrée recherchée non trouvée «UNAVAIL», la source n est pas configurée sur ce système ou bien elle est défaillante «TRYAGAIN», la source est occupée et ne peut pas répondre actuellement, peut-être plus tard c T.Besançon (v ) Administration UNIX ARS Partie / Sélection de naming services, /etc/nsswitch.conf 19.2 Syntaxe de /etc/nsswitch.conf pour action l un des mots clefs : «return», retourner la valeur trouvée ou la non valeur «continue», essayer la source suivante «forever» (uniquement pour «TRYAGAIN»), persister sur cette source jusqu à avoir une réponse Par défaut, on a pour chaque source : [SUCCESS=return NOTFOUND=continue UNAVAIL=continue TRYAGAIN=forever] c T.Besançon (v ) Administration UNIX ARS Partie / 709

239 19 Sélection de naming services, /etc/nsswitch.conf 19.3 Exemple de /etc/nsswitch.conf Chapitre 19 Sélection de naming services, /etc/nsswitch.conf 19.3 Exemple de /etc/nsswitch.conf (pris sur SOLARIS) passwd: files ldap group: files ldap hosts: ldap [NOTFOUND=return] files ipnodes: files networks: ldap [NOTFOUND=return] files protocols: ldap [NOTFOUND=return] files rpc: ldap [NOTFOUND=return] files ethers: ldap [NOTFOUND=return] files netmasks: ldap [NOTFOUND=return] files bootparams: ldap [NOTFOUND=return] files publickey: ldap [NOTFOUND=return] files netgroup: ldap automount: files ldap aliases: files ldap # for efficient getservbyname() avoid ldap services: files ldap sendmailvars: files # role-based access control auth_attr: files ldap exec_attr: files ldap prof_attr: files ldap user_attr: files ldap # audit audit_user: files ldap project: files ldap c T.Besançon (v ) Administration UNIX ARS Partie / Sélection de naming services, /etc/nsswitch.conf 19.4 A propos de LDAP Chapitre 19 Sélection de naming services, /etc/nsswitch.conf 19.4 A propos de LDAP Pour les systèmes n incorporant pas LDAP en natif dans l OS, se reporter à : « « c T.Besançon (v ) Administration UNIX ARS Partie / 709

240 20 Pluggable Authentication Module (PAM) Chapitre 20 Pluggable Authentication Module (PAM) c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.1 Problématique Chapitre 20 Pluggable Authentication Module (PAM) 20.1 Problématique Exemple : Soit une machine dans une université, hébergeant les comptes de 10 professeurs et de 1000 élèves. La machine est équipée d un modem. Les professeurs sont autorisés à se connecter à la machine par modem, pas les élèves. La machine est cliente NIS. Quand on se connecte par modem sur une machine, le système lance la commande «login» lorsque la connexion s établit. Comment implémenter cela? En modifiant le programme «login» pour l adapter à ce cas très particulier??? c T.Besançon (v ) Administration UNIX ARS Partie / 709

241 20 Pluggable Authentication Module (PAM) 20.1 Problématique La problématique en général : Comment changer une méthode d authentification dans un programme (par exemple FTP) sans avoir à tout reprogrammer? Solution développée par SUN à l origine et reprise et encouragée dans Linux : Pluggable Authentication Module dit PAM c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.2 Principe de PAM Chapitre 20 Pluggable Authentication Module (PAM) 20.2 Principe de PAM L authentication fait appel par l intermédiaire de PAM à des modules externes de code d authentification appropriée selon le service. On déporte l authentification en dehors du programme. /etc/pam.conf programme1 programme2 modulea.so moduleb.so modulec.so moduleb.so modulec.so programme1 pam_init() pam_auth() moduled.so modulee.so modulef.so programme2 pam_init() pam_auth() modulea.so moduleb.so modulec.so moduled.so modulee.so modulef.so c T.Besançon (v ) Administration UNIX ARS Partie / 709

242 20 Pluggable Authentication Module (PAM) 20.2 Principe de PAM 4 catégories de modules PAM : module d authentification (authentication) fonctionnalités pour authentifier un utilisateur et définir ses créances module de gestion de compte (account management) fonctionnalités pour déterminer si l utilisateur dispose d un compte valide (car possibilité d expiration de mot de passe dit password aging, de restrictions d accès horaire) module de gestion de session (session management) fonctionnalités pour définir et terminer les sessions utilisateur module de gestion de mot de passe (password management) fonctionnalités pour changer un mot de passe utilisateur et certaines caractéristiques du compte Pour une certaine application, on organise les modules nécessaires sous forme d une pile et chaque module de la pile va être essayé pour constituer l authentification demandée. Selon la configuration, un utilisateur pourra être amené à rentrer plusieurs mots de passe. c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.3 Configuration de PAM : /etc/pam.conf, /etc/pam.d Chapitre 20 Pluggable Authentication Module (PAM) 20.3 Configuration de PAM : /etc/pam.conf, /etc/pam.d «/etc/pam.conf» définit quels modules seront utilisés pour chaque application. Sur Linux, on trouve aussi le répertoire «/etc/pam.d» qui contient un fichier par application portant le nom de l application. Ainsi «/etc/pam.d/login» pour le service «login». Une ligne de «/etc/pam.conf» contient 5 champs : service_name module_type control_flag module_path options c T.Besançon (v ) Administration UNIX ARS Partie / 709

243 20 Pluggable Authentication Module (PAM) 20.3 Configuration de PAM : /etc/pam.conf, /etc/pam.d service_name module_type control_flag module_path options Le «service_name» nomme le service concerné par la ligne («other» pour service joker) Le «module_type» est l un des 4 mots clef : «auth», «account», «session», «password» Le «control_flag» est l un des 4 mots clef : «requisite», «required», «optional», «sufficient» Le «module_path» est le chemin du module. Les options dépendent du module. c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.3 Configuration de PAM : /etc/pam.conf, /etc/pam.d Par exemple, le service «login» fait appel aux modules suivants : # Authentication management login auth required /usr/lib/security/pam_unix.so.1 login auth required /usr/lib/security/pam_dial_auth.so.1 # Account management login account requisite /usr/lib/security/pam_roles.so.1 login account required /usr/lib/security/pam_projects.so.1 login account required /usr/lib/security/pam_unix.so.1 # Session management other session required /usr/lib/security/pam_unix.so.1 # Password management other password required /usr/lib/security/pam_unix.so.1 c T.Besançon (v ) Administration UNIX ARS Partie / 709

244 20 Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules Chapitre 20 Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules Les directives possibles d essai des modules sont : directive «required» directive «requisite» directive «optional» directive «sufficient» c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules directive «required» La valeur de retour de ce module doit être «PAM_SUCCESS» pour sortir de la pile d authentification avec succès ; «PAM_AUTH_ERR» fera recommencer toute la pile : Pile de modules PAM REQUIRED SUCCESS AUTH_ERR c T.Besançon (v ) Administration UNIX ARS Partie / 709

245 20 Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules directive «requisite» Une valeur de retour «PAM_AUTH_ERR» fait sortir de la pile d authentification prématurément en échec : Pile de modules PAM REQUISITE SUCCESS AUTH_ERR c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules directive «optional» Si ce module échoue, on sortira de la pile avec succès si un autre module dans la pile réussit : Pile de modules PAM OPTIONAL SUCCESS AUTH_ERR c T.Besançon (v ) Administration UNIX ARS Partie / 709

246 20 Pluggable Authentication Module (PAM) 20.4 Directives d essai des modules directive «sufficient» Une valeur de retour «PAM_SUCCESS» de ce module fait sortir de la pile d authentification prématurément avec succès ; les autres modules dans la pile ne sont pas pris en compte : Pile de modules PAM SUFFICIENT AUTH_ERR SUCCESS c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.5 Modules, /usr/lib/security Chapitre 20 Pluggable Authentication Module (PAM) 20.5 Modules, /usr/lib/security Les modules sont conventionnellement stockés dans «/usr/lib/security/» Par exemple sur Solaris : % ls /usr/lib/security amiserv pam_ldap.so.1 pam_sample.so.1 pam_ami.so pam_projects.so pam_smartcard.so pam_ami.so.1 pam_projects.so.1 pam_smartcard.so.1 pam_dial_auth.so pam_rhosts_auth.so pam_unix.so pam_dial_auth.so.1 pam_rhosts_auth.so.1 pam_unix.so.1 pam_krb5.so pam_roles.so sparcv9 pam_krb5.so.1 pam_roles.so.1 pam_ldap.so pam_sample.so Chaque module fournit l implémentation d un mécanisme spécifique. c T.Besançon (v ) Administration UNIX ARS Partie / 709

247 20 Pluggable Authentication Module (PAM) 20.5 Modules, /usr/lib/security «/usr/lib/security/pam_unix.so.1» fournit un suport d authentification, gestion de compte, session de mot de passe. Il utilise les mots de passe UNIX pour l authenfication. «/usr/lib/security/pam_dial_auth.so.1» peut seulement être utilisé pour l authentification. Il utilise des données stockées dans «/etc/dialups» et «/etc/d_passwd». Principalement utilisé par «login». «/usr/lib/security/pam_rhosts_auth.so.1» peut seulement être utilisé pour l authentification. Il utilise les données stockées dans les fichiers «.rhosts» et «/etc/hosts.equiv». Principalement utilisé par «rlogin» et «rsh». c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.6 Options des modules Chapitre 20 Pluggable Authentication Module (PAM) 20.6 Options des modules On peut passer certaines options aux modules des options spécifiques à chaque module ; cf la documentation de chaque module ; par exemple «retry=3» ou «debug» option «use_first_pass» Cette option indique d utiliser exclusivement le mot de passe entré pour le premier module de la pile du service. option «try_first_pass» Cette option indique d utiliser d abord le mot de passe entré pour le premier module de la pile du service et en cas d échec de ce mot de passe d en demander un autre. (Le support des options «use_first_pass» et «try_first_pass» est fortement conseillé auprès des développeurs de modules PAM ; à vérifier donc avec chaque module) c T.Besançon (v ) Administration UNIX ARS Partie / 709

248 20 Pluggable Authentication Module (PAM) 20.7 Exemple 1 Chapitre 20 Pluggable Authentication Module (PAM) 20.7 Exemple 1 Extrait de «/etc/pam.conf» : # Authentication management login auth required /usr/lib/security/pam_unix.so.1 login auth required /usr/lib/security/pam_dial_auth.so.1 Fichier «/etc/dialups» : /dev/pts/9 Fichier «/etc/d_passwd» : /bin/bash:nuemrw70uy9m.: c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.7 Exemple 1 Session interactive : % tty /dev/pts/9 % exec login exec login login: besancon Password: XXXXXXXX <-- mot de passe Dialup Password: YYYYYYYY <-- mot de passe %% <-- connexion établie, shell lancé On voit bien la ligne supplémentaire «Dialup Password:» c T.Besançon (v ) Administration UNIX ARS Partie / 709

249 20 Pluggable Authentication Module (PAM) 20.7 Exemple 1 Si l on se trompe dans l un des mots de passe, toutes les demandes de mot de passe sont réessayées : % exec login login: besancon Password: ZZZZZZZZ <-- mauvais mot de passe Dialup Password: YYYYYYYY <-- mot de passe OK Login incorrect login: besancon Password: XXXXXXXX <-- mot de passe OK Dialup Password: ZZZZZZZZ <-- mauvais mot de passe Login incorrect login: besancon Password: XXXXXXXX <-- mot de passe OK Dialup Password: YYYYYYYY <-- mot de passe OK %% <-- connexion établie, shell lancé Au niveau SYSLOG, ça laisse quelques traces : Aug 20 14:51:14 cerise login: [ID auth.debug] pam_authenticate: error Authentication failed... Aug 20 14:51:34 cerise login: [ID auth.debug] pam_authenticate: error Authentication failed c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) 20.8 Exemple 2 Chapitre 20 Pluggable Authentication Module (PAM) 20.8 Exemple 2 Pour autoriser l authentification par LDAP, on mettra dans «/etc/pam.conf» : # Authentication management login auth sufficient /usr/lib/security/pam_unix.so.1 login auth required /usr/lib/security/pam_ldap.so.1 use_first_pass c T.Besançon (v ) Administration UNIX ARS Partie / 709

250 20 Pluggable Authentication Module (PAM) 20.9 A propos de LDAP Chapitre 20 Pluggable Authentication Module (PAM) 20.9 A propos de LDAP Pour les systèmes n incorporant pas LDAP en natif dans l OS, se reporter à : « c T.Besançon (v ) Administration UNIX ARS Partie / Pluggable Authentication Module (PAM) Un peu de bibliographie Chapitre 20 Pluggable Authentication Module (PAM) Un peu de bibliographie c T.Besançon (v ) Administration UNIX ARS Partie / 709

251 21 Système de multifenêtrage : X Chapitre 21 Système de multifenêtrage : X c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.1 Introduction : système de multi fenêtrage Chapitre 21 Système de multifenêtrage : X 21.1 Introduction : système de multi fenêtrage Système de multifenêtrage (Window System) : ensemble de programmes, de bibliothèques de programmation réalisant une interface homme / machine bâtie sur l utilisation de divers équipements : clavier souris écran graphique autres périphériques (spaceball, plaquette graphique,...) L écran tente de réaliser un modèle de bureau. L idée vient des travaux de Xerox, repris par Apple, repris par le projet Athena du MIT. c T.Besançon (v ) Administration UNIX ARS Partie / 709

252 21 Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Chapitre 21 Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Pour Unix, le système de multi fenêtrage est un système appelé : X ou X Window System ou X11 Ce n est pas «X Windows»! Historiquement : X11 sur «UNIX» XFree86 spécifiquement pour LINUX Xorg suite à querelles sur XFree86 = retour à l équipe de X11 c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Consortium de vendeurs d UNIX pour mettre au point X. Historique des versions : X10 X11R3 X11R4 X11R5 X11R6 X11R7 SUN a sa propre implémentation de X dérivée des X11R[3-7] : SUN OPENWINDOWS c T.Besançon (v ) Administration UNIX ARS Partie / 709

253 21 Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Le système graphique X est construit sur un modèle client serveur et est à la base un protocole de communication : Application X Message (dessine un cercle, etc.) Serveur X Affichage Reponse (OK, NOT OK, etc.) Erreur Evenement (clavier, clic souris, etc.) c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Serveur X : optimisé pour ses performances graphiques répond aux requêtes du client X envoie au client X des informations événementielles («clic du bouton droit de la souris», «appui sur la touche A avec Shift en même temps», etc.) Client X : effectue les calculs manipule les fichiers envoie des requêtes au serveur X («trace un cercle», «affiche du texte», «quelles sont les possibilités couleurs de l écran?», etc.) Souvent serveur X = client X = même machine. Parfois serveur X!= client X deux machines en réseau. Parfois! c T.Besançon (v ) Administration UNIX ARS Partie / 709

254 21 Système de multifenêtrage : X 21.2 Système de multifenêtrage : X Parfois serveur X!= client X deux machines en réseau. Parfois! C est donc un peu plus qu un système de multifenêtrage : il est réparti. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.3 Serveur X Chapitre 21 Système de multifenêtrage : X 21.3 Serveur X Serveur X : Au sens large : un serveur graphique Le serveur X gére les périphériques : écrans monochromes, niveaux de gris, couleurs, un ou plusieurs écrans souris, écran tactile, stylet, palette graphique claviers boutons, mollettes La configuration matérielle du serveur X peut varier considérablement (même si effet d unification suite à la mode du PC) le client X doit en tenir compte et doit s avoir s adapter. c T.Besançon (v ) Administration UNIX ARS Partie / 709

255 21 Système de multifenêtrage : X 21.3 Serveur X A noter qu il existe des serveurs X sur Windows et sur MacOS X. Sur Windows, utiliser CYGWIN (« : c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.4 Client X Chapitre 21 Système de multifenêtrage : X 21.4 Client X Client X : Client X == application L application doit être configurable : Environnement multi plateformes UNIX Environnement multi serveurs X Environnement multi utilisateurs L application ne doit jamais rien supposer du serveur X. Elle doit tenir compte de tous les cas envisageables et être paramétrée en conséquence. Nécessité que les applications soient configurables! c T.Besançon (v ) Administration UNIX ARS Partie / 709

256 21 Système de multifenêtrage : X 21.5 Chemins d accès Chapitre 21 Système de multifenêtrage : X 21.5 Chemins d accès On rencontre : Standard X11R4 et X11R5 : «/use/bin/x11/» «/use/lib/x11/» «/use/include/x11/» Standard X11R6 et X11R7 : «/use/x11r6/bin/» «/use/x11r6/lib/» «/use/x11r6/include/» Standard SUN OPENWINDOWS «/use/openwin/bin/» «/use/openwin/lib/» «/use/openwin/include/» c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.6 Variable d environnement DISPLAY Chapitre 21 Système de multifenêtrage : X 21.6 Variable d environnement DISPLAY La variable «DISPLAY» définit le serveur X qui sera utilisé. Formes possibles de la variable : «nom-machine.domaine:numéro-serveur.numéro-écran» «adresse-ip:numéro-serveur.numéro-écran» «:0.0» (anciennement «unix:0.0») ; sens spécial de cette forme : communication locale rapide via IPC et non pas via le réseau TCP/IP plus lent dans ce cas On notera «numéro-serveur» : une même machine peut faire tourner plusieurs serveurs X d où la nécessité de les numéroter. Cas général : un seul serveur X numéro = 0. On notera «numéro-écran» : une même machine peut avoir plusieurs écrans d où la nécessité de les numéroter. Cas général : un seul écran numéro = 0. c T.Besançon (v ) Administration UNIX ARS Partie / 709

257 21 Système de multifenêtrage : X 21.6 Variable d environnement DISPLAY Exemples : «cerise.example.com:0.0» «localhost:11.0» «:0.0» « :0.0» c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.7 Clavier Chapitre 21 Système de multifenêtrage : X 21.7 Clavier La gestion du clavier est quelque chose de compliqué... Tous les types de claviers doivent pouvoir être supportés (FR, EN, RU, etc.). Par exemple des claviers braille : c T.Besançon (v ) Administration UNIX ARS Partie / 709

258 21 Système de multifenêtrage : X 21.7 Clavier Par exemple des boites à boutons ou à molettes (marque SILICON GRAPHICS) : c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.7 Clavier Code clavier 1ere conversion SERVEUR X Keycode Shift 2eme conversion Alt Graph Keysym Keycode + Keysym + Status CLIENT X Alt, Num Lock, Alt Graph, Meta, Ctrl, Caps Lock, Shift c T.Besançon (v ) Administration UNIX ARS Partie / 709

259 21 Système de multifenêtrage : X 21.7 Clavier Keycode X définit une association entre le code généré par la touche du clavier et un code de la touche au niveau du serveur X : c est le keycode. Il existe un keycode et un seul par touche du clavier. On ne peut pas modifier l association entre le code du clavier et le keycode (sauf à recompiler le serveur X). On peut obtenir le keycode par l utilitaire «xev». c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.7 Clavier Exemple de XEV : appui sur la touche «p» : % xev... KeyPress event, serial 20, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x2, keycode 26 (keysym 0x70, p), same_screen YES, XLookupString gives 1 characters: "p" KeyRelease event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x2, keycode 26 (keysym 0x70, p), same_screen YES, XLookupString gives 1 characters: "p"... c T.Besançon (v ) Administration UNIX ARS Partie / 709

260 21 Système de multifenêtrage : X 21.7 Clavier Exemple de XEV : appui sur la touche «p» avec SHIFT en même temps : % xev... KeyPress event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x2, keycode 232 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 characters: "" KeyPress event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x3, keycode 26 (keysym 0x50, P), same_screen YES, XLookupString gives 1 characters: "P" KeyRelease event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x3, keycode 26 (keysym 0x50, P), same_screen YES, XLookupString gives 1 characters: "P" KeyRelease event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time , (103,101), root:(927,454), state 0x3, keycode 232 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 characters: ""... c T.Besançon (v ) Administration UNIX ARS Partie / 709 Keysym 21 Système de multifenêtrage : X 21.7 Clavier X définit un nom symbolique pour chaque caractère utilisable. On parle de keysym. Le fichier «<X11/keysymdef.h>» définit les valeurs numériques de ces noms symboliques.... #define XK_dollar #define XK_percent #define XK_ampersand #define XK_apostrophe #define XK_parenleft #define XK_parenright #define XK_asterisk #define XK_plus #define XK_comma #define XK_minus #define XK_period #define XK_slash #define XK_0 #define XK_1 #define XK_2 #define XK_3 #define XK_4 0x024 0x025 0x026 0x027 0x028 0x029 0x02a 0x02b 0x02c 0x02d 0x02e 0x02f 0x030 0x031 0x032 0x033 0x034 #define XK_5 #define XK_6 #define XK_7 #define XK_8 #define XK_9 #define XK_colon #define XK_semicolon #define XK_less #define XK_equal #define XK_greater #define XK_question #define XK_at #define XK_A #define XK_B #define XK_C #define XK_D #define XK_E... 0x035 0x036 0x037 0x038 0x039 0x03a 0x03b 0x03c 0x03d 0x03e 0x03f 0x040 0x041 0x042 0x043 0x044 0x045 c T.Besançon (v ) Administration UNIX ARS Partie / 709

261 21 Système de multifenêtrage : X 21.7 Clavier Au démarrage du serveur X, il y a mise en place de correspondances entre keycode et keysyms. On peut modifier les correspondances via la commande «xmodmap». X accepte au maximum 5 keysyms pour un keycode via le jeu des modificateurs comme Shift, Ctrl, etc.. Exemple des modificateurs d une machine SOLARIS % xmodmap -pm xmodmap: up to 2 keys per modifier, (keycodes in parentheses): shift Shift_L (0xe8), Shift_R (0xec) lock Control_L (0x40) control Control_L (0xe7), Control_R (0xeb) mod1 Meta_L (0xea), Meta_R (0xee) mod2 Mode_switch (0xed) mod3 Num_Lock (0x5a) mod4 Alt_L (0xe9) mod5 c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.7 Clavier Liste des keycodes et de leurs keysyms associés (exemple pris sur une machine SUN avec un clavier QWERTY) : % xmodmap -pk There are 5 KeySyms per KeyCode; KeyCodes range from 8 to KeyCode Keysym (Keysym)... Value Value (Name) x0056 (V) 33 0x0057 (W) 34 0x0058 (X) 35 0x0059 (Y) 36 0x005a (Z) 37 0x0031 (1) 0x0021 (exclam) 38 0x0032 (2) 0x0040 (at) 39 0x0033 (3) 0x0023 (numbersign) 40 0x0034 (4) 0x0024 (dollar) 0x20ac (EuroSign) 41 0x0035 (5) 0x0025 (percent) 0x20ac (EuroSign) 42 0x0036 (6) 0x005e (asciicircum) 43 0x0037 (7) 0x0026 (ampersand) 44 0x0038 (8) 0x002a (asterisk) 45 0x0039 (9) 0x0028 (parenleft) 46 0x0030 (0) 0x0029 (parenright) c T.Besançon (v ) Administration UNIX ARS Partie / 709

262 21 Système de multifenêtrage : X 21.7 Clavier Liste des keycodes et de leurs keysyms associés avec affichage sous une forme compatible avec la syntaxe de XMODMAP pour les modifications (exemple pris sur une machine SUN avec un clavier QWERTY) : % xmodmap -pke... keycode 32 = V keycode 33 = W keycode 34 = X keycode 35 = Y keycode 36 = Z keycode 37 = 1 exclam keycode 38 = 2 at keycode 39 = 3 numbersign keycode 40 = 4 dollar EuroSign keycode 41 = 5 percent EuroSign keycode 42 = 6 asciicircum keycode 43 = 7 ampersand keycode 44 = 8 asterisk keycode 45 = 9 parenleft keycode 46 = 0 parenright... c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X 21.7 Clavier Pour modifier le fonctionnement du clavier, deux syntaxes : «xmodmap -e keysym symbole = valeur» «xmodmap -e keycode code = valeur» Par exemple : on veut associer «é» à la touche «F2» (clavier SUN QWERTY) : Le keycode de «F2» est 66. Le keysym d origine associé à la touche est 0xffbf. Le keysym associé à «é» est d après «<X11/keysymdef.h>» 0x0e9 («XK_eacute»). «xmodmap -e keycode 66 = 0x0e9» A noter sur SOLARIS le script «/usr/openwin/bin/xmakemap» qui renvoie l image de la configuration actuelle du clavier. c T.Besançon (v ) Administration UNIX ARS Partie / 709

263 21 Système de multifenêtrage : X 21.8 Souris Chapitre 21 Système de multifenêtrage : X 21.8 Souris Tous les types de souris doivent pouvoir être supportés... c T.Besançon (v ) Administration UNIX ARS Partie / 709 Plus classiquement : 21 Système de multifenêtrage : X 21.8 Souris C est un outil de désignation ayant de 1 à 3 boutons. La position est suivie à l écran par un curseur. Le curseur est toujours affiché au premier plan. Pour permuter les boutons de la souris : «xmodmap -e pointer = 3 2 1» c T.Besançon (v ) Administration UNIX ARS Partie / 709

264 21 Système de multifenêtrage : X 21.9 Ecran Chapitre 21 Système de multifenêtrage : X 21.9 Ecran y x Il est de type bitmap (affichage point). L image est obtenue par balayage d une mémoire d écran (frame buffer) contenant une valeur par point à l écran (pixel). c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Fenêtre / icône Chapitre 21 Système de multifenêtrage : X Fenêtre / icône y x h Une fenêtre est un rectangle à l écran caractérisé par un emplacement, une bordure, ses dimensions. Une icône est la trace visible à l écran d une fenêtre temporairement non affichée. Les fenêtres sont organisées en arbre au niveau interne dans le serveur X. La racine de l arbre est la root window créée à l initialisation du serveur et couvrant tout l écran. Vulgairement, c est le fond d écran. w c T.Besançon (v ) Administration UNIX ARS Partie / 709

265 21 Système de multifenêtrage : X Copier / coller Chapitre 21 Système de multifenêtrage : X Copier / coller Pour copier, on sélectionne avec le bouton gauche de la souris. Pour coller, on clique avec le bouton du milieu de la souris. This is the text to select. All text around it is unselected. This is the text to select. All text around it is unselected. Modifiable. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Principe de personnalisation des clients Chapitre 21 Système de multifenêtrage : X Principe de personnalisation des clients Personnalisation via des ressources ou des arguments de la ligne de commande : O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande c T.Besançon (v ) Administration UNIX ARS Partie / 709

266 21 Système de multifenêtrage : X Options de la ligne de commande Chapitre 21 Système de multifenêtrage : X Options de la ligne de commande Il y a des options standard pour la plupart des clients car leur programmation s appuye sur une bibliothèque appelée «Xt». Exemples : display : «-display cerise.example.com:0.0» couleur des caractères : «-fg couleur» couleur de fond des fenêtres : «-bg couleur» caractères : «-fn font» dimensions et emplacement de la fenêtre : «-geometry WIDTH HEIGHT±XOFF±YOFF» c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Options de la ligne de commande Retour sur l option «-geometry WIDTH HEIGHT±XOFF±YOFF» : X X Y Y Y Y X X c T.Besançon (v ) Administration UNIX ARS Partie / 709

267 21 Système de multifenêtrage : X Ressources Chapitre 21 Système de multifenêtrage : X Ressources Une ressource = variable configurée dans un fichier ASCII (analogie : base de registres de Windows ou ressources Macintosh) 4 niveaux de ressources : ressources définies par le système ressources définies par le client X ressources définies par le serveur X ressources définies par l utilisateur O R D R E D E R E C H E R C H E $XFILESEARCHPATH ou /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH ou $XAPPLRESDIR ou $HOME propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Ressources Ressources définies par le système O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande Traditionnellement «/usr/x11r6/lib/x11/app-defaults/». Ce répertoire regroupe les fichiers correspondants aux classes des applications. Par exemple «XTerm» pour l application X «xterm», «Bitmap» pour l application X «bitmap», etc. Ces ressources sont lues par les clients X qui tournent sur la machine de ce répertoire. c T.Besançon (v ) Administration UNIX ARS Partie / 709

268 21 Système de multifenêtrage : X Ressources Ressources définies par le client X O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande Traditionnellement «$HOME». Ce mécanisme s applique aux applications X développées avec la librairie «Xt». Le fichier de ressources porte le nom de l application. Par exemple «XTerm» pour l application X «xterm», «Bitmap» pour l application X «bitmap», etc. Ces ressources sont lues par les clients X qui tournent sur la machine de ce répertoire. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Ressources Ressources définies par le serveur X O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande Des ressources peuvent être placées dans une base de données dans la mémoire du serveur X. Ces ressources sont donc communes à tous les clients de ce serveur X. Les clients les lisent lors de leur démarrage, plus après. La commande «xrdb» sert à manipuler cette base de données en mémoire dans le serveur X. c T.Besançon (v ) Administration UNIX ARS Partie / 709

269 21 Système de multifenêtrage : X Ressources Ressources définies par l utilisateur O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande Ce mécanisme permet d avoir un fichier propre à plusieurs systèmes même si le homedir est partagé (via NFS) entre ces systèmes. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Ressources Syntaxes des ressources Syntaxes : «nom-application.attribut: valeur» «classe.nom.sous-nom...attribut: valeur» Par exemple : xterm.background: black xterm.foreground: yellow c T.Besançon (v ) Administration UNIX ARS Partie / 709

270 21 Système de multifenêtrage : X Ressources Un client X est construit autour d un arbre de «widgets» (boutons, dropdown menus, etc.) fournis par les bibliothèques de programmation. On a en fait une arborescence de ressources. Programme «editres» pour les manipuler. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Ressources La syntaxe utilise des caractères «joker» : caractère «.» : séparateur des éléments dans la définition de la ressource caractère «*» : permet de remplacer un ou plusieurs éléments dans la définition de la ressource caractère «?» : permet de remplacer un et un seul élément dans la définition de la ressource Par exemple : xterm.background: black xterm.foreground: yellow c T.Besançon (v ) Administration UNIX ARS Partie / 709

271 21 Système de multifenêtrage : X Ressources Notion de : classe application de la classe fenêtre d une application C est la ressource la plus précise qui est prise en compte. Par exemple : «mon-application.sous-fenêtre.side.background: yellow» prime sur «mon-application.sous-fenêtre.background: blue» qui prime sur «mon-application.background: red» c T.Besançon (v ) Administration UNIX ARS Partie / 709 xrdb Rappel : 21 Système de multifenêtrage : X Ressources O R D R E D E ou ou ou $XFILESEARCHPATH /usr/x11r6/lib/x11/app-defaults $XUSERFILESEARCHPATH $XAPPLRESDIR $HOME R E C H E R C H E propriete RESOURCE_MANAGER (xrdb) ou $HOME/.Xdefaults $XENVIRONMENT ou $HOME/.Xdefaults-nom-host Arguments de la ligne de commande Des ressources peuvent être placées dans une base de données dans la mémoire du serveur X. La commande «xrdb» sert à manipuler cette base de données en mémoire dans le serveur X. xrdb = X server Resource DataBase utility c T.Besançon (v ) Administration UNIX ARS Partie / 709

272 Syntaxes : 21 Système de multifenêtrage : X Ressources «xrdb -query» : liste les ressources actuelles du serveur X «xrdb -merge fichier» : fusionne un fichier de ressources avec les ressources du serveur X «xrdb -load fichier» : écrase les ressources du serveur X par celles du fichier indiqué «xrdb -remove» : efface les ressources du serveur X «xrdb -symbols» : affiche la liste des symboles prédéfinis (voir ci-dessus pour la partie CPP) «xrdb» utilise «cpp» du langage C. Donc le fichier de ressources à charger peut contenir les directives classiques de CPP : «#include» «#ifdef» etc. Intérêt : un seul fichier mais pouvant traiter plusieurs cas de figures. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Ressources Par exemple : #ifndef COLOR XTerm*cursorColor: black XTerm*pointerColor: black #else /* COLOR is DEFINED :-) */ XTerm*cursorColor: red XTerm*pointerColor: red #endif c T.Besançon (v ) Administration UNIX ARS Partie / 709

273 21 Système de multifenêtrage : X Couleurs Chapitre 21 Système de multifenêtrage : X Couleurs On peut désigner une couleur sous un nom symbolique : «/usr/x11r6/lib/x11/rgb.txt» définit ainsi 738 couleurs (les noms ne sont pas forcément parlants). Par exemple : «Pink» On peut aussi donner une couleur via ses composantes Rouge Vert Bleu (RGB en anglais) sous la forme «rgb:red/green/blue». Ainsi «Pink» équivaut à «rgb:255/192/203». Ancienne syntaxe supportée pour compatibilité : #RGB #RRGGBB #RRRGGGBBB #RRRRGGGGBBBB (4 bits each) (8 bits each) (12 bits each) (16 bits each) c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Couleurs A partir de X11R5, adoption de la gestion des couleurs via X Color Management System (XCMS). Le fichier «/usr/x11r6/lib/x11/xcms.txt» décrit des couleurs. Par exemple : XCMS_COLORDB_START 0.1 red green blue aquamarine cadet blue cornflower blue navy blue navy brown gray0 gray10 gray20... gray80 gray90 gray100 XCMS_COLORDB_END CIEXYZ:0.3811/0.2073/ CIEXYZ:0.3203/0.6805/ CIEXYZ:0.2483/0.1122/ CIEXYZ:0.5512/0.7909/ CIEXYZ:0.2218/0.2815/ CIEXYZ:0.3400/0.3109/ CIEXYZ:0.0478/0.0216/ CIEXYZ:0.0478/0.0216/ CIEXYZ:0.1333/0.0772/ TekHVC:0.0/0.0/0.0 TekHVC:0.0/10.0/0.0 TekHVC:0.0/20.0/0.0 TekHVC:0.0/80.0/0.0 TekHVC:0.0/90.0/0.0 TekHVC:0.0/100.0/0.0 Commande associée : «xcmsdb» c T.Besançon (v ) Administration UNIX ARS Partie / 709

274 21 Système de multifenêtrage : X Polices de caractères Chapitre 21 Système de multifenêtrage : X Polices de caractères Les fontes ont des noms très détaillés. Par exemple : -adobe-courier-medium-r-normal m-60-iso «adobe» : concepteur de la police «courier» : famille de la police «medium» : graisse (bold, medium, extra bold, light, etc.) «r» : angle (roman, italic, etc.) «normal» : largeur (normal, narrow, etc.) vide : style complémentaire «10» : hauteur en pixels «100» : hauteur en points (un point = 1/72e de pouce) «75» : résolution horizontale de conception de la police «75» : résolution verticale de conception de la police «m» : espacement (p = proportionnel, m = monospace, etc.) «60» : largeur moyenne en 1/10e de pixel «iso8859-1» : jeu de caractères c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Polices de caractères Plusieurs formats sont possibles. Liste non exhaustive : BDF (Bitmap Distribution Format), SNF (Server Natural Font), PCF (Portable Compiled Font), Type1 PostScript depuis X11R6, True Type ( PEX, Speedo c T.Besançon (v ) Administration UNIX ARS Partie / 709

275 21 Système de multifenêtrage : X Polices de caractères On peut utiliser la commande «xlsfonts» pour avoir la liste des fontes utilisables sur son poste X. Les polices sont utilisables via les ressources. Par exemple : XTerm*Font: Emacs*paneFont: 7x13bold -adobe-times-medium-r-normal p-74-iso Les polices sont utilisables via la ligne de commande. Par exemple : % xfd -fn 9x15bold c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Polices de caractères Les fontes sont stockées dans l arborescence «/usr/x11r6/lib/x11/fonts/» contenant plusieurs sous répertoires dont : «75dpi/» : polices de résolution de 75 dpi «100dpi/» : polices de résolution de 100 dpi «misc/» : polices diverses Notion de font path. Configuration du font path via la commande «xset» : «xset -q» «xset +fp /chemin/vers/répertoire/de/fontes/» «xset fp+ /chemin/vers/répertoire/de/fontes/» «xset -fp /chemin/vers/répertoire/de/fontes/» «xset fp rehash» L ordre des répertoires est significatif. c T.Besançon (v ) Administration UNIX ARS Partie / 709

276 21 Système de multifenêtrage : X Répertoires de polices de caractères Chapitre 21 Système de multifenêtrage : X Répertoires de polices de caractères Un répertoire de polices de caractères a une structure précise : % ls /usr/x11r6/lib/x11/fonts/misc 10x20.pcf.Z Screen6.pcf.Z clr8x10.pcf.z 12x24.pcf.Z Screen7.pcf.Z clr8x12.pcf.z 12x24rk.pcf.Z Serif10.pcf.Z clr8x13.pcf.z 5x7.pcf.Z Serif11.pcf.Z clr8x14.pcf.z 5x8.pcf.Z Serif12.pcf.Z clr8x16.pcf.z 6x10.pcf.Z Serif14.pcf.Z clr8x8.pcf.z 6x12.pcf.Z Serif16.pcf.Z clr9x15.pcf.z 6x13.pcf.Z clb6x10.pcf.z cursor.pcf.z 6x13B.pcf.Z clb6x12.pcf.z deccurs.pcf.z 6x9.pcf.Z clb8x10.pcf.z decsess.pcf.z 7x13.pcf.Z clb8x12.pcf.z fonts.alias 7x13B.pcf.Z clb8x13.pcf.z fonts.dir... c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Répertoires de polices de caractères Fichier «fonts.dir» : ce fichier contient la liste des polices du répertoire ; plus exactement des lignes au format : «fichier-de-la-police nom-x-de-la-police». Par exemple :... 6x13.pcf.Z -misc-fixed-medium-r-semicondensed c-60-iso Fichier «fonts.alias» : ce fichier contient des alias plus parlant que les noms complets des polices X. Par exemple :... fixed... "-misc-fixed-medium-r-semicondensed c-60-iso8859-1" L ajout d une fonte ne se résume pas à copier le fichier de la fonte dans le répertoire! c T.Besançon (v ) Administration UNIX ARS Partie / 709

277 21 Système de multifenêtrage : X Répertoires de polices de caractères Pour ajouter une police, il faudra faire appel à la commande «mkfontdir» : 1 créer le répertoire des polices si nécessaire : «mkdir /tmp/fonts» 2 copier la police dans le répertoire : «cp toto.pcf /tmp/fonts» 3 créer le fichier «fonts.dir» : «mkfontdir» 4 créer éventuellement des alias : «vi /tmp/fonts/fonts.alias» 5 ajouter le nouveau répertoire à son font path : «xset +fp /tmp/fonts/» ; Attention : il faut le slash final «/tmp/fonts/» 6 reconstituer la liste à jour des polices X : «xset fp rehash» 7 vérification des polices disponibles : «xlsfonts» ou «xset -q» 8 utilisation des nouvelles polices : «application-x.exe -fn nouvelle-fonte» c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Serveur de polices de caractères Chapitre 21 Système de multifenêtrage : X Serveur de polices de caractères L ajout de polices X sur un parc de machines est une opération pénible (voir transparent précédent). Apparition d un mécanisme de serveur de fontes X. Administration simplifiée car centralisation des polices. En X11R5 : programme «fs». En X11R6 et après : programme «xfs». c T.Besançon (v ) Administration UNIX ARS Partie / 709

278 21 Système de multifenêtrage : X Serveur de polices de caractères Syntaxe : «xfs [-config fichier-config] [-port n]» Par défaut le fichier de configuration est «/etc/x11/fs/config». Par défaut le port TCP utilisé est 7100 (voir «/etc/services»). c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Serveur de polices de caractères Exemple de fichier de configuration : # allow a max of 10 clients to connect to this font server client-limit = 10 catalogue = /chemin/vers/fonts/ibm, /chemin/vers/fonts/ooffice, /chemin/vers/fonts/cmps, /chemin/vers/fonts/mathematica, /chemin/vers/fonts/msttcorefonts, /usr/x11r6/lib/x11/fonts/korean, /usr/x11r6/lib/x11/fonts/misc:unscaled, /usr/x11r6/lib/x11/fonts/75dpi:unscaled, /usr/x11r6/lib/x11/fonts/100dpi:unscaled, /usr/x11r6/lib/x11/fonts/type1, /usr/x11r6/lib/x11/fonts/cyrillic,... # how to log errors use-syslog = on # don t listen to TCP ports by default for security reasons # no-listen = tcp port = 7100 c T.Besançon (v ) Administration UNIX ARS Partie / 709

279 21 Système de multifenêtrage : X Serveur de polices de caractères Utilisation d un serveur de fontes par : «xset +fp tcp/xfs.example.com:7100» Liste des polices d un serveur de fontes par : «fslsfonts -server tcp/xfs.example.com:7100» Test du serveur serveur de fontes par : «fsinfo -server tcp/xfs.example.com:7100» c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Gestionnaire de fenêtres, window manager Chapitre 21 Système de multifenêtrage : X Gestionnaire de fenêtres, window manager Gestionnaire de fenêtres Window Manager client X au même titre que les autres. Il permet de réaliser les choses suivantes : déplacer ou redimensionner une fenêtre iconifier ou non une fenêtre faire passer au premier ou au dernier plan une fenêtre décorer les fenêtres créer ou détruire les fenêtres lancer ou terminer des applications L emploi d un gestionnaire de fenêtres n a rien d obligatoire mais ce serait se priver de beaucoup de fonctionnalités. Il ne faut pas confondre le gestionnaire de fenêtres avec le serveur X. c T.Besançon (v ) Administration UNIX ARS Partie / 709

280 21 Système de multifenêtrage : X Gestionnaire de fenêtres, window manager Quelques exemples de fenêtres décorées par des window managers : c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Configuration de la session X, $HOME/.xsession, FAILSAFE Chapitre 21 Système de multifenêtrage : X Configuration de la session X, $HOME/.xsession, FAILSAFE Sur une station avec une mire d accueil graphique, le script «$HOME/.xsession» est lancé lors de la connexion et il configure l environnement graphique de l utilisateur : applications X à lancer automatiquement au démarrage (par exemple des terminaux) réglages du clavier réglages de la souris etc. La durée de vie de la session sous X est celle du script «$HOME/.xsession». c T.Besançon (v ) Administration UNIX ARS Partie / 709

281 21 Système de multifenêtrage : X Configuration de la session X, $HOME/.xsession, FAILSAFE Forme générale du script «$HOME/.xsession» : #!/bin/sh client-x-1 & client-x-2 &... applix <--- pas de & Le dernier client X n est pas lancé en tâche de fond (sinon le script s arrête tout de suite et la session se ferme brutalement). En général, le dernier client est le window manager. c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Configuration de la session X, $HOME/.xsession, FAILSAFE S il y a des erreurs, les messages de celles-ci sont écrits dans le fichier «$HOME/.xsession-errors». En cas d erreur grave dans «$HOME/.xsession» empêchant le démarrage de la session X, utiliser le mode FailSafe : disponible via les menus de la fenêtre d accueil de KDE disponible via les menus de la fenêtre d accueil de GNOME dans l environnement de base X : 1 entrer le nom de login 2 valider par la touche Retour 3 entrer le mot de passe 4 valider par la touche F1 et non pas par la touche Retour Il apparait alors un simple xterm sans window manager. L utiliser pour corriger les erreurs indiquées dans le fichier «$HOME/.xsession-errors». c T.Besançon (v ) Administration UNIX ARS Partie / 709

282 21 Système de multifenêtrage : X Version KDE du FAILSAFE : via un menu : Configuration de la session X, $HOME/.xsession, FAILSAFE c T.Besançon (v ) Administration UNIX ARS Partie / Système de multifenêtrage : X Configuration de la session X, $HOME/.xsession, FAILSAFE c T.Besançon (v ) Administration UNIX ARS Partie / 709

Administration de systèmes UNIX Formation ARS 2011 2012

Administration de systèmes UNIX Formation ARS 2011 2012 Administration de systèmes UNIX Formation ARS 2011 2012 Partie 3 Thierry Besançon Formation Permanente de l Université Pierre et Marie Curie c T.Besançon (v14.0.689) Administration UNIX ARS 2011 2012 Partie

Plus en détail

Administration UNIX. Le réseau

Administration UNIX. Le réseau Administration UNIX Le réseau Plan Un peu de TCP/IP Configuration réseau sous linux DHCP Démarrage PXE TCP/IP Unix utilise comme modèle de communication TCP/IP Application Transport TCP - UDP Réseau IP

Plus en détail

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Résolution d adresses et autoconfiguration Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Le protocole ARP (Address Resolution Protocol) Se trouve au niveau de la couche réseau Interrogé par le protocole

Plus en détail

Internet Protocol. «La couche IP du réseau Internet»

Internet Protocol. «La couche IP du réseau Internet» Internet Protocol «La couche IP du réseau Internet» Rôle de la couche IP Emission d un paquet sur le réseau Réception d un paquet depuis le réseau Configuration IP par l administrateur Noyau IP Performance

Plus en détail

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet Chapitre I La couche réseau 1. Couche réseau 1 Historique de l Internet Né 1969 comme projet (D)ARPA (Defense) Advanced Research Projects Agency; US Commutation de paquets Interconnexion des universités

Plus en détail

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence Réseaux - Cours BOOTP et DHCP : Amorçage et configuration automatique Cyril Pain-Barre IUT Informatique Aix-en-Provence Semestre 2 - version du 2/4/2 /67 Cyril Pain-Barre BOOTP et DHCP /7 Introduction

Plus en détail

Introduction. Adresses

Introduction. Adresses Architecture TCP/IP Introduction ITC7-2: Cours IP ESIREM Infotronique Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr 27 février 2008 L Internet est basé sur l architecture TCP/IP du nom

Plus en détail

Attribution dynamique des adresses IP

Attribution dynamique des adresses IP Stéphane Gill Stephane.Gill@CollegeAhuntsic.qc.ca Table des matières Introduction 2 Installation d un serveur DHCP 2 Démarrage du service DHCP 2 Attribution dynamique des adresses IP 3 Attribution statique

Plus en détail

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage: Administration d un Intranet Rappel: Le routage dans Internet La décision dans IP du routage: - Table de routage: Adresse destination (partie réseau), netmask, adresse routeur voisin Déterminer un plan

Plus en détail

Couche application. La couche application est la plus élevée du modèle de référence.

Couche application. La couche application est la plus élevée du modèle de référence. Couche application La couche application est la plus élevée du modèle de référence. Elle est la source et la destination finale de toutes les données à transporter. Couche application La couche application

Plus en détail

TP : Introduction à TCP/IP sous UNIX

TP : Introduction à TCP/IP sous UNIX 1 Introduction TP : Introduction à TCP/IP sous UNIX Le but de cette séance est de vous familiariser au fonctionnement de la pile TCP/IP sous UNIX. Les systèmes UNIX (Linux, FreeBSD, Solaris, HPUX,...)

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

L3 informatique Réseaux : Configuration d une interface réseau

L3 informatique Réseaux : Configuration d une interface réseau L3 informatique Réseaux : Configuration d une interface réseau Sovanna Tan Septembre 2009 Révision septembre 2012 1/23 Sovanna Tan Configuration d une interface réseau Plan 1 Introduction aux réseaux 2

Plus en détail

TP SECU NAT ARS IRT 2010 2011 ( CORRECTION )

TP SECU NAT ARS IRT 2010 2011 ( CORRECTION ) TP SECU NAT ARS IRT 2010 2011 ( CORRECTION ) Présentation du TP le firewall sera une machine virtuelle sous Devil Linux le firewall a deux cartes réseaux eth0 ( interface externe ) et eth1 (interface interne)

Plus en détail

COMMANDES RÉSEAUX TCP/IP WINDOWS. frati@unice.fr

COMMANDES RÉSEAUX TCP/IP WINDOWS. frati@unice.fr COMMANDES RÉSEAUX TCP/IP WINDOWS frati@unice.fr COMMANDES RÉSEAUX TCP/IP WINDOWS Ipconfig Ping Tracert Route Netstat Arp Nslookup Hostname Finger Netmon Telnet / ssh Ftp / scp Net Netsh Nbtstat PING :

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (C:\Documents and Settings\bcousin\Mes documents\enseignement\res (UE18)\14.DHCP.fm- 25 janvier 2009 13:22) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion

Plus en détail

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark Wireshark est un programme informatique libre de droit, qui permet de capturer et d analyser les trames d information qui transitent

Plus en détail

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe : TP1 ASR4 Réseaux Département Informatique, IUT Bordeaux 1 ASR4-R Prénom : Nom : Groupe : 1 Gestion du réseau virtuel Le réseau virtuel utilisé lors de ce TP a été réalisé avec NEmu (Network Emulator),

Plus en détail

Réseau - VirtualBox. Sommaire

Réseau - VirtualBox. Sommaire Réseau - VirtualBox 2015 tv - v.1.0 - produit le 10 mars 2015 Sommaire Le réseau virtuel 2 Introduction.............................................. 2 Modes réseaux............................................

Plus en détail

DIFF AVANCÉE. Samy. samy@via.ecp.fr

DIFF AVANCÉE. Samy. samy@via.ecp.fr DIFF AVANCÉE Samy samy@via.ecp.fr I. RETOUR SUR QUELQUES PROTOCOLES COUCHE FONCTIONS Protocoles 7 Application 6 Présentation 5 Session 4 Transport 3 Réseau 2 Liaison 1 Physique Interface entre l utilisateur

Plus en détail

Département R&T, GRENOBLE TCP / IP 2007-2008

Département R&T, GRENOBLE TCP / IP 2007-2008 Département R&T, GRENOBLE TCP / IP 2007-2008 ASTUCE Vérifiez que les messages du système sont bien envoyés sur la console 5. Pour rappel, fichier /etc/inittab. 5 :2345 :respawn:/usr/bin/tail f /var/log/messages

Plus en détail

I. Adresse IP et nom DNS

I. Adresse IP et nom DNS Le système GNU/Linux Réseau et configuration IP By ShareVB Table des matières I.Adresse IP et nom DNS...1 II.Nom de la machine locale sous Debian...2 III.Nom de la machine locale sous Fedora...2 IV.Résolution

Plus en détail

TP DHCP et DNS. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

TP DHCP et DNS. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP DHCP et DNS TP DHCP et DNS Master IC 2 A 2014/2015 Christian Bulfone / Jean-Michel Adam 1/9 Câblage et configuration

Plus en détail

7.3 : Ce qu IPv6 peut faire pour moi

7.3 : Ce qu IPv6 peut faire pour moi 7.3 : Ce qu IPv6 peut faire pour moi Qu y a-t-il dans mon PC? Qu y a-t-il dans ma CrétinBox? Qu y a-t-il dans un routeur ipv6 ready? 2014 Eric Levy-Abégnoli (Cisco) Stéphane Frati (Unice) On a tout vu

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (/home/terre/d01/adp/bcousin/polys/internet:gestion_reseau/6.dhcp.fm- 29 Septembre 1999 12:07) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion Bibliographie

Plus en détail

Les clés d un réseau privé virtuel (VPN) fonctionnel

Les clés d un réseau privé virtuel (VPN) fonctionnel Les clés d un réseau privé virtuel (VPN) fonctionnel À quoi sert un «VPN»? Un «VPN» est, par définition, un réseau privé et sécurisé qui évolue dans un milieu incertain. Ce réseau permet de relier des

Plus en détail

DHCPD v3 Installation et configuration

DHCPD v3 Installation et configuration DHCPD v3 Installation et configuration Table des matières 1. Préambule... 2 2. Pré-requis... 2 3. Récupération du paquet... 2 4. Configuration du serveur... 3 4.1. Configuration de la carte réseau du serveur...

Plus en détail

Démarrage à partir du réseau

Démarrage à partir du réseau Démarrage à partir du réseau Matthieu Herrb LAAS-CNRS 12 octobre 2006 Plan 1 Introduction 2 Protocoles de démarrage réseau 3 Implémentations pratiques 4 Sécurité 5 Conclusion Pourquoi démarrer du réseau?

Plus en détail

Connexion à un réseau local: Configuration et dépannage

Connexion à un réseau local: Configuration et dépannage Connexion à un réseau local: Configuration et dépannage Configurer et Dépanner Ethernet Configuration de l'interface Unix Configuration Automatique Lorsque le réseau possède un serveur DHCP, il devient

Plus en détail

L annuaire et le Service DNS

L annuaire et le Service DNS L annuaire et le Service DNS Rappel concernant la solution des noms Un nom d hôte est un alias assigné à un ordinateur. Pour l identifier dans un réseau TCP/IP, ce nom peut être différent du nom NETBIOS.

Plus en détail

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6 Département des Sciences Informatiques Licence Pro R&S 2009 2010 Chiffrement et authentification T.T. Dang Ngoc dntt@u-cergy.fr TD 5 - Wifi / Radius Vous déployerez la salle en IPv4 de la manière suivante

Plus en détail

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86 Tunnels et VPN 22/01/2009 Formation Permanente Paris6 86 Sécurisation des communications Remplacement ou sécurisation de tous les protocoles ne chiffrant pas l authentification + éventuellement chiffrement

Plus en détail

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP. IP & Co L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP. 1. Service DHCP Faire un réseau de 4 machines comme ci-dessous. Pour l'instant seul la machine

Plus en détail

Plan. Programmation Internet Cours 3. Organismes de standardisation

Plan. Programmation Internet Cours 3. Organismes de standardisation Plan Programmation Internet Cours 3 Kim Nguy ên http://www.lri.fr/~kn 1. Système d exploitation 2. Réseau et Internet 2.1 Principes des réseaux 2.2 TCP/IP 2.3 Adresses, routage, DNS 30 septembre 2013 1

Plus en détail

Administration Système

Administration Système 1/66 Administration Système Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Programmation Réseau. ! UFR Informatique ! 2013-2014. Jean-Baptiste.Yunes@univ-paris-diderot.fr

Programmation Réseau. ! UFR Informatique ! 2013-2014. Jean-Baptiste.Yunes@univ-paris-diderot.fr Programmation Réseau Jean-Baptiste.Yunes@univ-paris-diderot.fr! UFR Informatique! 2013-2014 1 Programmation Réseau Introduction Ce cours n est pas un cours de réseau on y détaillera pas de protocoles de

Plus en détail

Administration Réseau sous Ubuntu SERVER 12.10 Serveur DHCP

Administration Réseau sous Ubuntu SERVER 12.10 Serveur DHCP Installation d un serveur DHCP (Dynamic Host Configuration Protocol) sous Ubuntu Server 12.10 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières 1. Comment le protocole DHCP alloue

Plus en détail

Administration réseau Résolution de noms et attribution d adresses IP

Administration réseau Résolution de noms et attribution d adresses IP Administration réseau Résolution de noms et attribution d adresses IP A. Guermouche A. Guermouche Cours 9 : DNS & DHCP 1 Plan 1. DNS Introduction Fonctionnement DNS & Linux/UNIX 2. DHCP Introduction Le

Plus en détail

Quelques protocoles et outils réseaux

Quelques protocoles et outils réseaux Quelques protocoles et outils réseaux 1 Adresses MAC et IP ifconfig Chaque point de connexion d un réseau est identifié par une adresse MAC (physique) et une adresse IP (logique). Pour l adresse MAC, il

Plus en détail

Configuration réseau Basique

Configuration réseau Basique Configuration réseau Basique 1. Configuration réseau bas niveau Les outils de configuration réseau bas niveau traditionnels des systèmes GNU/Linux sont les programmes ifconfig et route qui viennent dans

Plus en détail

Le système GNU/Linux DHCP

Le système GNU/Linux DHCP Le système GNU/Linux DHCP By ShareVB Table des matières I.Principe...1 1.Définition du terme DHCP...1 2.Fonctionnement de BOOTP...2 3.Fonctionnement du protocole DHCP...2 4.Les baux d'attribution d'adresses

Plus en détail

Présentation du modèle OSI(Open Systems Interconnection)

Présentation du modèle OSI(Open Systems Interconnection) Présentation du modèle OSI(Open Systems Interconnection) Les couches hautes: Responsables du traitement de l'information relative à la gestion des échanges entre systèmes informatiques. Couches basses:

Plus en détail

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX Enseignant: Ramzi BELLAZREG 1 La commande PING Cette commande permet de vérifier si un hôte est joignable ou non. Cette commande est basée sur le protocole

Plus en détail

Serveur DHCP et Relais DHCP (sous Linux)

Serveur DHCP et Relais DHCP (sous Linux) Source: http://doc.ubuntu-fr.org/dhcp3-server Serveur DHCP et Relais DHCP (sous Linux) Le protocole DHCP (Dynamic Host Configuration Protocol) est un service réseau TCP/IP. Il permet l'obtention automatique

Plus en détail

FILTRAGE de PAQUETS NetFilter

FILTRAGE de PAQUETS NetFilter TP RESEAUX MMI Semestre 3 FILTRAGE de PAQUETS NetFilter OBJECTIF : Introduction à Netfilter. Configuration d'un firewall. MATERIELS : (Machines Virtuelles) 1 Serveur Debian avec apache d'installé, 1 Poste

Plus en détail

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection) II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection) II.2/ Description des couches 1&2 La couche physique s'occupe de la transmission des bits de façon brute sur un canal de

Plus en détail

DHCP. Dynamic Host Configuration Protocol

DHCP. Dynamic Host Configuration Protocol DHCP Dynamic Host Configuration Protocol DHCP : Dynamic Host Configuration Protocol Permet la configuration des paramètres IP d une machine: adresse IP masque de sous-réseau l adresse de la passerelle

Plus en détail

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP réseau firewall L objectif de ce TP est de comprendre comment mettre en place un routeur pare-feu (firewall) entre

Plus en détail

Les commandes relatives aux réseaux

Les commandes relatives aux réseaux SHELL Les commandes relatives aux réseaux L'accès aux ou via les réseaux est devenu vital, aussi, les commandes traditionnelles de connexion et de transfert de fichiers ont été remplacées par des commandes

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier Plan 1. ARP 2. DHCP 3. ICMP et ping 4. DNS 5.Paquet IPv4 1.

Plus en détail

Corrigé du TP 6 Réseaux

Corrigé du TP 6 Réseaux Corrigé du TP 6 Réseaux Interrogations DNS et auto-configuration par DHCP C. Pain-Barre INFO - IUT Aix-en-Provence version du 5/4/2013 1 Noms de stations et de domaine 1.1 Noms officieux 1.1.1 Sous Unix

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015 M1101a Cours 4 Réseaux IP, Travail à distance Département Informatique IUT2, UPMF 2014/2015 Département Informatique (IUT2, UPMF) M1101a Cours 4 2014/2015 1 / 45 Plan du cours 1 Introduction 2 Environnement

Plus en détail

SSH, le shell sécurisé

SSH, le shell sécurisé , le shell sécurisé Objectifs : 1. Présenter le protocole et les outils associés Sébastien JEAN Pourquoi 1/2? Les services standards ne supportent que peu de propriétés de sécurité souvent l identification,

Plus en détail

module Introduction aux réseaux DHCP et codage Polytech 2011 1/ 5

module Introduction aux réseaux DHCP et codage Polytech 2011 1/ 5 DHCP et codage DHCP ( Dynamic Host Configuration Protocol RFC 2131 et 2132) est un protocole client serveur qui permet à un client hôte d un réseau local (Ethernet ou Wifi) d obtenir d un serveur DHCP

Plus en détail

Introduction aux Technologies de l Internet

Introduction aux Technologies de l Internet Introduction aux Technologies de l Internet Antoine Vernois Université Blaise Pascal Cours 2006/2007 Introduction aux Technologies de l Internet 1 Au programme... Généralités & Histoire Derrière Internet

Plus en détail

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS 1/25 Administration Système & Réseau Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS Dynamic Host Configuration Protocol L3 STRI 2005 Philippe Latu philippe.latu(at)linux-france.org

Plus en détail

Mise en œuvre de Rembo Toolkit

Mise en œuvre de Rembo Toolkit Mise en œuvre de Rembo Toolkit Pré requis serveurs Fonctionnement du service Configuration liée a PXE Tunnels TCP Installation/config Outils Rembo Les clients Os possible : Windows, Linux, Freebsd, MacOsX,

Plus en détail

INSTALLATION DEBIAN. Installation par le réseau

INSTALLATION DEBIAN. Installation par le réseau INSTALLATION DEBIAN Installation par le réseau Le but de ce cours est de vous apprendre à installer un Debian sur une machine ne disposant pas de lecteur CD. SALMON Nicolas INSTALLATION DEBIAN Installation

Plus en détail

Le Protocole DHCP. Module détaillé

Le Protocole DHCP. Module détaillé Le Protocole DHCP Module détaillé 1 1 Dynamic Host Configuration Protocol 2 2 Généralités SOMMAIRE Rôle de DHCP Fonctionnement de DHCP A propos de la mise en œuvre Installation et configuration du serveur

Plus en détail

Les techniques de la télémaintenance

Les techniques de la télémaintenance Les techniques de la télémaintenance 1. VNC Virtual Network Computer est un produit gratuit de prise de contrôle à distance; Sa particularité est de permettre le contrôle de l'interface graphique d'une

Plus en détail

Filtrage IP MacOS X, Windows NT/2000/XP et Unix

Filtrage IP MacOS X, Windows NT/2000/XP et Unix Filtrage IP MacOS X, Windows NT/2000/XP et Unix Cette présentation, élaborée dans le cadre de la formation SIARS, ne peut être utilisée ou modifiée qu avec le consentement de ses auteur(s). MacOS/NT/Unix

Plus en détail

Analyse du réseau local

Analyse du réseau local Gestion et Surveillance de Réseau Analyse du réseau local These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (http://creativecommons.org/licenses/by-nc/3.0/.

Plus en détail

Chapitre IX : Virtualisation

Chapitre IX : Virtualisation Chapitre IX : Virtualisation Eric Leclercq & Marinette Savonnet Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 5 mai 2011 1 Principes Problématique Typologie

Plus en détail

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP TR2 : Technologies de l'internet Chapitre VII Serveur DHCP Bootp Protocole, Bail Relais DHCP 1 Serveur DHCP Dynamic Host Configuration Protocol La configuration d un serveur DHCP permet : d assurer la

Plus en détail

CONVERTISSEUR RS 232/485 NOTICE

CONVERTISSEUR RS 232/485 NOTICE CONVERTISSEUR RS 232/485 068745 068745 NOTICE Ce convertisseur TCP/IP permet de convertir tous équipements à liaison série et de les superviser sur un réseau LAN. Sommaire 1 Description du produit...2

Plus en détail

ASRb/Unix Avancé II. Chapitre 2. Utilitaires réseaux. Arnaud Clérentin, IUT d Amiens, département Informatique

ASRb/Unix Avancé II. Chapitre 2. Utilitaires réseaux. Arnaud Clérentin, IUT d Amiens, département Informatique ASRb/Unix Avancé II Chapitre 2 Utilitaires réseaux Arnaud Clérentin, IUT d Amiens, département Informatique Sommaire 1- Connexion au réseau 2- Connexion distante 3- Transfert de fichier distant 1. et 2.

Plus en détail

Exercice 7.4.1 : configuration de base de DHCP et NAT

Exercice 7.4.1 : configuration de base de DHCP et NAT Exercice 7.4.1 : configuration de base de DHCP et NAT Diagramme de topologie Table d adressage Périphérique Interface Adresse IP Masque de sous-réseau S0/0/0 10.1.1.1 255.255.255.252 R1 Fa0/0 192.168.10.1

Plus en détail

Configuration d un firewall pour sécuriser un serveur WEB

Configuration d un firewall pour sécuriser un serveur WEB Configuration d un firewall pour sécuriser un serveur WEB Contexte : Dans le cadre de la mise en place d un serveur intranet, il est demandé de sécuriser son accès et de le personnaliser en fonction de

Plus en détail

Introduction à l'analyse réseau Philippe Latu philippe.latu(at)linux-france.org

Introduction à l'analyse réseau Philippe Latu philippe.latu(at)linux-france.org Philippe Latu philippe.latu(at)linux-france.org http://www.linux-france.org/prj/inetdoc/ Historique des versions $Revision: 12 $ $Date: 2004/12/09 16:24:42 $ PL Année universitaire 2004-2005 Table des

Plus en détail

Étude de l application DNS (Domain Name System)

Étude de l application DNS (Domain Name System) Étude de l application DNS (Domain Name System) RICM 4 - Option Réseaux Pascal Sicard Introduction Le but de ce TP est de comprendre l utilisation et le fonctionnement de l application réseau DNS (Domain

Plus en détail

DHCP Dynamic Host Control Protocol

DHCP Dynamic Host Control Protocol DHCP Dynamic Host Control Protocol Ce protocole permet aux administrateurs de réseaux TCP/IP de configurer les postes clients de façon automatique. Il a été utilisé par les fournisseurs d'accès à l'internet

Plus en détail

Dynamic Host Configuration Protocol

Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol 1 2 problèmes de gestion avec IP La Gestion des adresses IP Les adresses IP doivent être unique Nécessité d une liste d ordinateurs avec leurs adresses IP respectives

Plus en détail

Mise en place d'un Réseau Privé Virtuel

Mise en place d'un Réseau Privé Virtuel Travaux Pratiques Trucs utiles : tail f /var/log/syslog pour tous les logs de la machine et notamment les cartes ethernet d'une machine. /etc/init.d/nom_du_démon (re)start pour le démarrer ou le redémarrer.

Plus en détail

Figure 1a. Réseau intranet avec pare feu et NAT.

Figure 1a. Réseau intranet avec pare feu et NAT. TD : Sécurité réseau avec Pare Feu, NAT et DMZ 1. Principes de fonctionnement de la sécurité réseau Historiquement, ni le réseau Internet, ni aucun des protocoles de la suite TCP/IP n était sécurisé. L

Plus en détail

4-441-095-22 (1) Network Camera

4-441-095-22 (1) Network Camera 4-441-095-22 (1) Network Camera Guide de l outil SNC easy IP setup Logiciel version 1.0 Avant d utiliser cet appareil, lisez attentivement ce manuel et conservez-le pour vous y reporter ultérieurement.

Plus en détail

V - Les applications. V.1 - Le Domain Name System. V.1.1 - Organisation de l espace. Annuaire distribué. Définition. Utilisation par le resolver

V - Les applications. V.1 - Le Domain Name System. V.1.1 - Organisation de l espace. Annuaire distribué. Définition. Utilisation par le resolver V - Les applications V.1 - Le Domain Name System Annuaire distribué nom symbolique adresse IP chaque domaine gère sa partie Définition d un protocole de communication [RFC 1034] [RFC 1035] d une politique

Plus en détail

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE Projet de semestre ITI soir 4ème année Résumé configuration OpenVpn sur pfsense 2.1 Etudiant :Tarek

Plus en détail

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux Dernière révision : 1er novembre 2011 Remarque : Les informations les plus récentes sont dans un premier temps publiées dans la note

Plus en détail

D.H.C.P. Dynamic Host Control Protocol. Avis au lecteur. Plan du site.

D.H.C.P. Dynamic Host Control Protocol. Avis au lecteur. Plan du site. D.H.C.P. [ Accueil ] [ Protocole DHCP ] [ Serveur DHCP ] [ Les clients DHCP ] [ Analyse de trames ] [ Le luxe du luxe. ] Dynamic Host Control Protocol. Ce protocole permet aux administrateurs de réseaux

Plus en détail

La supervision des services dans le réseau RENATER

La supervision des services dans le réseau RENATER La supervision des services dans le réseau RENATER Simon Muyal (Services IP Avancés GIP RENATER) François-Xavier Andreu (Service de suivi opérationnel GIP RENATER) 1 Agenda Introduction Les nouveautés

Plus en détail

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad Outils d'analyse de la sécurité des réseaux HADJALI Anis VESA Vlad Plan Introduction Scanneurs de port Les systèmes de détection d'intrusion (SDI) Les renifleurs (sniffer) Exemples d'utilisation Conclusions

Plus en détail

TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows

TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows Auteur : Olivier GLÜCK, Université Lyon 1 Objectifs - répartition des adresses

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Protocoles DHCP et DNS

Protocoles DHCP et DNS Protocoles DHCP et DNS DHCP (Dynamic Host Configuration Protocol) est un protocole qui permet à un serveur DHCP (Unix, Windows, AS400...) d'affecter des adresses IP temporaires (et d'autres paramètres)

Plus en détail

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname Département d'informatique Architecture des réseaux TP2 - Conguration réseau et commandes utiles L'objectif de ce TP est d'une part de vous présenter la conguration réseau d'une machine dans l'environnement

Plus en détail

Configuration des routes statiques, routes flottantes et leur distribution.

Configuration des routes statiques, routes flottantes et leur distribution. Configuration des routes statiques, routes flottantes et leur distribution. Par : EL HAJIZ Adil 1. Introduction Le routage statique précéda le routage dynamique. Il faut savoir qu aujourd hui, un administrateur

Plus en détail

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre TP Wireshark Wireshark est un analyseur de protocole réseau. Il permet de visualiser et de capturer les trames, les paquets de différents protocoles réseau, filaire ou pas. Le site originel est à http://www.wireshark.org/.

Plus en détail

comment paramétrer une connexion ADSL sur un modemrouteur

comment paramétrer une connexion ADSL sur un modemrouteur comment paramétrer une connexion ADSL sur un modemrouteur CISCO 837 Sommaire Introduction 1 Connexion au routeur Cisco 1.1 Attribution d'un mot de passe par CRWS 1.2 Connexion avec Teraterm pro web 1.3

Plus en détail

Applications en réseau

Applications en réseau Applications en réseau Couche application NAT, DNS, DHCP, SMTP/POP, HTTP Rappels Transmet et reconstitue le fichier Transmet et reconstitue les paquets Transmet et reconstitue les datagrammes dans le réseau

Plus en détail

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

Installation et configuration d un serveur DHCP (Windows server 2008 R2) Installation et configuration d un serveur DHCP (Windows server 2008 R2) Contenu 1. Introduction au service DHCP... 2 2. Fonctionnement du protocole DHCP... 2 3. Les baux d adresse... 3 4. Etendues DHCP...

Plus en détail

Services Réseaux - Couche Application. TODARO Cédric

Services Réseaux - Couche Application. TODARO Cédric Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port

Plus en détail

CH3 Réseaux. Rappels sur les réseaux

CH3 Réseaux. Rappels sur les réseaux CH3 Réseaux Rappels sur les réseaux Modèle TCP/IP vs modèle OSI Modèle à 5 couches 5 4 3 2 1 Application Transport Network Data link Physical Physical layer Transport de données sous une représentation

Plus en détail

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau 1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau Fonctionnement de l Internet Fonctionnement de l Internet Basé sur une architecture TCP/IP du nom des deux principaux protocoles

Plus en détail

Linux Firewalling - IPTABLES

Linux Firewalling - IPTABLES Linux Firewalling - IPTABLES Aujourd hui tout le monde sait ce que c est qu un firewall ainsi que son utilité sur un réseau, un serveur ou même un ordinateur personnel. En gros, c est la partie du système

Plus en détail

Serveur de messagerie sous Debian 5.0

Serveur de messagerie sous Debian 5.0 Serveur de messagerie sous Debian 5.0 Avec Postfix et une connexion sécurisée GEORGET DAMIEN ET ANTHONY DIJOUX 06/10/2009 [Tutorial d installation d un serveur de messagerie POP et SMTP sous Debian, avec

Plus en détail

Travaux Pratiques Introduction aux réseaux IP

Travaux Pratiques Introduction aux réseaux IP Université de Savoie Initiation aux réseaux IP Travaux Pratiques Introduction aux réseaux IP Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TP1 : Analyse de

Plus en détail

Administration et Architectures des Systèmes

Administration et Architectures des Systèmes Administration et Architectures des Systèmes Fabrice Legond-Aubry Fabrice.Legond-Aubry@u-paris10.fr 26/09/2005 Fabrice Legond-Aubry Module AAS LEGOND Administration Fabrice Réseau 1 1 Section Administration

Plus en détail