Vous êtes sur la page 1sur 470

Administration de systmes UNIX Formation ARS 2009 2010

Partie 3 Thierry Besanon

Formation Permanente de lUniversit Pierre et Marie Curie

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

1 / 803

Chapitre 1

Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

2 / 803

1 Ethernet

Chapitre 1 Ethernet

1.1 Principe dEthernet : CSMA/CD

1.1 Principe dEthernet : CSMA/CD

Le principe dEthernet : Carrier Sence Multiple Access / Collision Detect (CSMA/CD) 2 cas de gure :
1 2

Emission dans le cas du cble libre Emission lorsque deux stations mettent simultanment = collision

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

3 / 803

1 Ethernet

1.1 Principe dEthernet : CSMA/CD

Emission dans le cas du cble libre

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

4 / 803

1 Ethernet

1.1 Principe dEthernet : CSMA/CD

Collision lorsque deux stations mettent simultanment

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

5 / 803

1 Ethernet

Chapitre 1 Ethernet

1.2 Ethernet 10 Base 5

1.2 Ethernet 10 Base 5

Cablage obsolte
"   1 # 0  "  !   !    )      !                     '    % 2   &  % 

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

6 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

DTE

DTE

DTE

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

7 / 803

"

'

$   (

#  &  #

%  %     &  3 #       5     &   4

1 Ethernet

1.2 Ethernet 10 Base 5

Un ensemble mont

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

8 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Une prise vampire dmonte

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

9 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Le cable AUI, une prise vampire et son transceiver

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

10 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Connecteurs 10 Base 5 sur un mini-transceiver et un drop cable

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

11 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Carte combo 10Base5 et 10BaseT

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

12 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Mini transceiver low prole 10Base5 - RJ45

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

13 / 803

1 Ethernet

1.2 Ethernet 10 Base 5

Mini transceiver low prole 10Base5 - RJ45 au dos dune machine

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

14 / 803

1 Ethernet

Chapitre 1 Ethernet

1.3 Ethernet 10 Base 2

1.3 Ethernet 10 Base 2

Cablage obsolte

Male BNC 50 Ohm


     % $  #

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

15 / 803

 " 

" 

 

  

  

 

 

 

 

   !

 ! '

   &

1 0 1 0 234     % )         % 5 

1 Ethernet

1.3 Ethernet 10 Base 2

DTE DTE

DTE DTE

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

16 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

17 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

Sertissage dune prise 10Base2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

18 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

19 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

20 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

La prise sertie

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

21 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

Raccordement : t 10Base2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

22 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

23 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

En n de cable : terminateur 50 Ohms 10Base2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

24 / 803

1 Ethernet

1.3 Ethernet 10 Base 2

Carte combo 10Base2 et 10BaseT

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

25 / 803

1 Ethernet

Chapitre 1 Ethernet

1.4 Ethernet 10 Base T, 100 Base T

1.4 Ethernet 10 Base T, 100 Base T

10 Base T = Cablage obsolte


 A   @ F 3      9 0 A  # F       8  D 3  % 8      & % C 4  8  D D     "  # # 1 D D B # 3  ' 3 3  ' ' %  8 8    # #   # 0 0 7   3 ( ( 6 ' E E E E 2 ' 7   2 ) 1 G H I 1 ) $ 7    ( 5 # 8 8 8 8  7  

c T.Besanon (v12.0.364)

Administration UNIX

1 Ethernet

H U B

c T.Besanon (v12.0.364)

Administration UNIX

"

'

&

% @

@ 9

" 9 C

! C %

 R  

8 # 8 8  A 5 Q Q 8 S A P

BNC

ARS 2009 2010 Partie 3

26 / 803

1.4 Ethernet 10 Base T, 100 Base T

ARS 2009 2010 Partie 3

27 / 803

1 Ethernet

1.4 Ethernet 10 Base T, 100 Base T

Prise sertir

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

28 / 803

1 Ethernet

1.4 Ethernet 10 Base T, 100 Base T

Cable crois pour relier deux ordinateurs entre eux ou deux switches

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

29 / 803

1 Ethernet

1.4 Ethernet 10 Base T, 100 Base T

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

30 / 803

1 Ethernet

Chapitre 1 Ethernet

1.5 Format dune adresse Ethernet

1.5 Format dune adresse Ethernet

Format dune adresse Ethernet : 6 octets crits sous la forme hexadcimale xx:yy:zz:rr:ss:tt avec : partie xx:yy:zz : elle identie un constructeur partie rr:ss:tt : elle identie un appareil chez le constructeur

Liste des constructeurs : liste des OUI (Organizationally Unique Identiers) : http://standards.ieee.org/regauth/oui/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

31 / 803

1 Ethernet

1.5 Format dune adresse Ethernet

Il existe une adresse de broadcast Ethernet : ff:ff:ff:ff:ff:ff Toutes les machines du segment Ethernet sont censes couter le paquet.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

32 / 803

1 Ethernet

Chapitre 1 Ethernet

1.6 Trouver son adresse Ethernet sur UNIX/LINUX

1.6 Trouver son adresse Ethernet sur UNIX/LINUX

Pour trouver son adresse Ethernet sur UNIX/LINUX : plusieurs mthodes :


1

reprer les priphriques dans la sortie de dmesg au moment du boot utiliser la commande de conguration des interfaces pour visualiser les adresses Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

33 / 803

1 Ethernet

1.6 Trouver son adresse Ethernet sur UNIX/LINUX

Mthode via dmesg

# dmesg ... Intel(R) PRO/1000 Network Driver - version 7.2.7-k2-NAPI Copyright (c) 1999-2006 Intel Corporation. e1000: 0000:02:01.0: e1000_probe: (PCI-X:66MHz:64-bit) 00:11:09:5a:f0:d8 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection ... e1000: 0000:02:01.1: e1000_probe: (PCI-X:66MHz:64-bit) 00:11:09:5a:f0:d9 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection ...

Attention ne pas attendre trop longtemps pour ne pas perdre le contenu de dmesg .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

34 / 803

1 Ethernet

1.6 Trouver son adresse Ethernet sur UNIX/LINUX

Mthode via dmesg


# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:11:09:5A:F0:D8 inet addr:134.157.13.95 Bcast:134.157.13.127 Mask:255.255.255.192 inet6 addr: fe80::211:9ff:fe5a:f0d8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12923628 errors:0 dropped:0 overruns:0 frame:0 TX packets:6317041 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2836026670 (2.6 GiB) TX bytes:3564552940 (3.3 GiB) Base address:0x2000 Memory:d0100000-d0120000 eth1 Link encap:Ethernet HWaddr 00:11:09:5A:F0:D9 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Base address:0x2040 Memory:d0120000-d0140000

...

Cest la mthode la plus universelle.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 35 / 803

1 Ethernet

Chapitre 1 Ethernet

1.7 Trouver son adresse Ethernet sur WINDOWS

1.7 Trouver son adresse Ethernet sur WINDOWS

Commande getmac.exe partir de MICROSOFT Windows XP.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

36 / 803

1 Ethernet

Chapitre 1 Ethernet

1.8 Format dune trame Ethernet

1.8 Format dune trame Ethernet

Trame Ethernet == Paquet Ethernet


62 bits Srie alterne de 0 et de 1

2 bits

Srie de 2 bits 1

Taille de la trame : 18 octets dentte + au maximum 1500 octets de donnes = 1518 octets La capacit de 1500 octets est appele MTU (Maximum Transmission Unit). Il existe des Jumbo frames : trame de 9000 octets de donnes. Souvent non support par les quipements rseau. A viter.

6 bytes

Adresse de destination

6 bytes

Adresse de lmetteur Longueur du paquet (standard 802.3) Type du paquet (standard Ethernet)

2 bytes de 46 bytes 1500 bytes

Donnes

4 bytes

Frame Check Sequence

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

37 / 803

1 Ethernet

Chapitre 1 Ethernet

1.9 Address Resolution Protocol (ARP)

1.9 Address Resolution Protocol (ARP)

RFC 826 Le protocole ARP apporte la rponse comment dialoguer avec une autre machine IP du mme brin Ethernet sans connaitre au pralable son adresse Ethernet . Synthtiquement le protocole fonctionne ainsi : Je suis la machine dadresse IP IP1 et dadresse Ethernet MAC1. Ecoutez moi tous sur le brin Ethernet. Je veux dialoguer avec la machine dadresse IP IP2. Que la machine avec cette adresse IP me communique son adresse Ethernet MAC2. Jai bien entendu. Je suis la machine avec IP2. Voici mon adresse Ethernet MAC2. Les autres machines en protent pour noter la rponse.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 38 / 803

1 Ethernet

1.9 Address Resolution Protocol (ARP)

QUI A LADRESSE IP a.b.c.d ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

39 / 803

1 Ethernet

1.9 Address Resolution Protocol (ARP)

JAI LADRESSE IP a.b.c.d

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

40 / 803

1 Ethernet

Chapitre 1 Ethernet

1.10 Table ARP : commande arp, /proc/net/arp

1.10 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 255.255.255.255 SP 00:03:ba:0f:15:35

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

41 / 803

1 Ethernet

1.10 Table ARP : commande arp, /proc/net/arp

Autre faon dobtenir la table ARP dune machine LINUX :


% cat /proc/net/arp IP address HW type 134.157.46.254 0x1 192.168.4.18 0x1

Flags 0x2 0x2

HW address 00:02:7E:21:F7:9C 00:48:54:6B:E5:B0

Mask * *

Device eth0 eth3

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

42 / 803

1 Ethernet

Chapitre 1 Ethernet

1.11 Rglages ARP : commande arp

1.11 Rglages ARP : commande arp

Syntaxes de la commande arp :


1 2 3

arp -a pour lister les adresses MAC connues arp -d hostname pour eacer une adresse MAC du cache ARP arp -s hostname adresse-ethernet pour mettre en cache une adresse MAC

Pourquoi les options 2 et 3 ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

43 / 803

1 Ethernet

1.11 Rglages ARP : commande arp

Exemple : conguration initiale dun boitier ethernet / parallle (ou USB) pour une imprimante :

On connait ladresse MAC du boitier (par exemple impression sur limprimante 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 lon se trouve : arp -s 192.168.1.1 11:22:33:44:55:66 On peut alors se connecter en IP pour nir de congurer le boitier

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

44 / 803

1 Ethernet

Chapitre 1 Ethernet

1.12 Surveillance ARP : commande arpwatch

1.12 Surveillance ARP : commande arpwatch

http://www.arpwatch.org ARPWATCH surveille les changes du protocole ARP et stocke les adresses changes. Attention : forte utilisation des switches dsormais dicile dcouter les paquets qui ne nous sont pas destins

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

45 / 803

1 Ethernet

1.12 Surveillance ARP : commande arpwatch

Dtection dune nouvelle machine

Date: Tue, 17 Feb 2009 16:07:40 +0100 (CET) From: arpwatch@math.jussieu.fr (Arpwatch) To: root@smtp.math.jussieu.fr Subject: new station hostname: ip address: ethernet address: ethernet vendor: timestamp: <unknown> 134.157.52.51 0:1e:68:be:93:32 <unknown> Tuesday, February 17, 2009 16:07:39 +0100

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

46 / 803

1 Ethernet

1.12 Surveillance ARP : commande arpwatch

Changement dadresse Ethernet sur une machine

Date: Tue, 17 Feb 2009 16:11:07 +0100 (CET) From: arpwatch@math.jussieu.fr (Arpwatch) To: root@smtp.math.jussieu.fr Subject: changed ethernet address (host-12-08.dhcp.math.jussieu.fr) hostname: ip address: ethernet address: ethernet vendor: old ethernet address: old ethernet vendor: timestamp: previous timestamp: delta: host-12-08.dhcp.math.jussieu.fr 134.157.12.8 0:1e:68:be:93:32 <unknown> 0:3:93:42:72:de <unknown> Tuesday, February 17, 2009 16:11:07 +0100 Tuesday, February 17, 2009 13:22:08 +0100 2 hours

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

47 / 803

1 Ethernet

1.12 Surveillance ARP : commande arpwatch

Flip op dadresses

Date: Tue, 17 Feb 2009 16:11:54 +0100 (CET) From: arpwatch@math.jussieu.fr (Arpwatch) To: root@smtp.math.jussieu.fr Subject: flip flop hostname: ip address: ethernet address: ethernet vendor: old ethernet address: old ethernet vendor: timestamp: previous timestamp: delta: <unknown> 0.0.0.0 0:3:93:3:8e:b8 <unknown> 0:1f:5b:f6:29:90 <unknown> Tuesday, February 17, 2009 16:11:53 +0100 Tuesday, February 17, 2009 16:11:14 +0100 39 seconds

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

48 / 803

1 Ethernet

Chapitre 1 Ethernet

1.13 (Windows : : purge du cache ARP : netsh)

1.13 (Windows : : purge du cache ARP : netsh)

Une machine WINDOWS utilise un cache ARP comme nimporte quelle autre machine faisant de lIP.

On peut purger le cache ARP par la commande netsh interface ip delete arpcache .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

49 / 803

1 Ethernet

Chapitre 1 Ethernet

1.14 Reverse Address Resolution Protocol (RARP)

1.14 Reverse Address Resolution Protocol (RARP)

(en anglais Reverse Address Resolution Protocol) Le protocole rpond je suis la machine dadresse Ethernet MAC1 ; qui peut me donner mon adresse IP ? . Exemple de telles machines : stations UNIX sans disque (dite diskless) terminaux X, clients lgers imprimantes rseau webcams rseau boitiers ethernet/USB ou ethernet/parallle pour imprimante

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

50 / 803

1 Ethernet

Chapitre 1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Question RARP : je suis la machine dadresse Ethernet MAC1 ; qui peut me donner mon adresse IP ? . Rponse : Dynamic Host Conguration Protocol (DHCP) RFC 2131 et RFC 2132 http://www.lip6.fr/pub/rfc/rfc/rfc2131.txt http://www.lip6.fr/pub/rfc/rfc/rfc2132.txt Port TCP 67 (port dcoute du serveur) Port TCP 68 (port de rponse du serveur)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

51 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

On distingue :
le serveur DHCP : lcoute sur ses interfaces rseau, il distribue par son autorit des adresses IP rsidant dans des plages le DHCP relay agent : il sait router les paquets IP du protocole DHCP entre un client et un serveur le client DHCP : il utilise le protocole DHCP pour dcouvrir son adresse IP et dautres paramtres rseau ou autres paramtres (dits DHCP options ; par exemple le serveur NTP)
DHCP SERVER

DHCP agent

DHCP CLIENT

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

52 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Protocole DHCP Principe :

CLIENT DHCP

SERVEUR DHCP
DHCPDISCOVER (broadcast)

DHCPOFFER (unicast)

DHCPREQUEST (broadcast)

DHCPACK (unicast)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

53 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Principe :
1 2

Une machine dmarre dans ltat INIT Elle cherche un serveur DHCP en envoyant un paquet DHCPDISCOVER . Un ou plusieurs serveurs DHCP rpondent par un paquet DHCPOFFER contenant une adresse IP et des options DHCP. Le client slectionne un serveur DHCP parmi ceux qui ont rpondu. Par exemple, le premier. Le client broadcaste un paquet DHCPREQUEST spciant ladresse IP retenue. Le serveur retenu rpond au client en lui envoyant un paquet DHCPACK . Aprs, le client possde ladresse IP pour un laps de temps appel lease.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

54 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Lorsquune machine qui a obtenu une adresse IP via DHCP reboote, elle ne recommence pas exactement les tapes ci-dessus. Elle commence dans ltat INIT-REBOOT . Elle envoie un paquet DHCPREQUEST reprenant ladresse prcdemment acquise. En cas de disponibilit de ladresse, le serveur rpond par DHCPACK . En cas de non disponibilit (par exemple, le portable a chang de rseau), un serveur DHCP rpond par DHCPNACK . A ce moment-l, la machine reprend ltape 1 de ci-dessus. Mcanisme de dtection de duplicate IP address : le serveur DHCP envoie un paquet ICMP Echo ; en cas de rponse, le serveur propose une autre adresse le client DHCP envoie un paquet ARP ; en cas de rponse, le client envoie un paquet DHCPDECLINE ; le serveur proposera alors une nouvelle adresse

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

55 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Faiblesses du protocole DHCP Denial of Service possible ; DHCPDISCOVER puis DHCPNAK jusqu puisement des numros libres sur le serveur DHCP par exemple single point of failure ; pas de mcanisme de serveur DHCP de secours pas dauthentication du client au serveur et vice-versa inadquation de ladresse MAC comme Client Identier ; par exemple un portable et un dock, une carte PCMCIA rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

56 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

ISC DHCP http://www.isc.org/products/DHCP/ ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl1.tar.gz Version 3 : supporte le Dynamic DNS Update, lauthentication DHCP Peut rpondre des requtes BOOTP. Fichier de conguration : en gnral /etc/dhcp.conf En cas de modication au chier de conguration, il faut arrter le dmon dhcpd et le relancer (par exemple /etc/rc.d/dhcp restart ). Pas de SIGHUP pour le recongurer on the y.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

57 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Exemple de /etc/dhcpd.conf :
ddns-update-style always-reply-rfc1048 option option option option option domain-name-servers domain-name subnet-mask broadcast-address log-servers none; on; 192.168.1.1; "jardiniers.org"; 255.255.255.0; 192.168.1.255; 192.168.1.1;

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.210; default-lease-time 120; max-lease-time 180; } host gutenberg { # Apple 12/640 hardware ethernet fixed-address }
c T.Besanon (v12.0.364)

08:00:07:24:46:59; 192.168.1.2;

Administration UNIX

ARS 2009 2010 Partie 3

58 / 803

1 Ethernet

1.15 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 dont ask about it. There is no portable way to store leases in the local timezone, so please dont request this as a feature. If this is inconvenient or confusing to you, we sincerely apologize. Seriously, though - dont 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 192.168.1.210 { starts 0 2002/09/08 22:57:10; ends 0 2002/09/08 22:59:10; binding state active; next binding state free; hardware ethernet 00:04:76:48:4f:65; }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

59 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Sur Red Hat Linux, on peut dire la machine de congurer son adresse rseau via DHCP au niveau de /etc/sysconfig/network-scripts/ifcfg-eth0 :
DEVICE = eth0 IPADDR = 0.0.0.0 NETMASK = 255.255.255.0 NETWORK = BROADCAST = 0.0.0.255 GATEWAY = none ONBOOT = yes DYNAMIC = dhcp

Une machine UNIX utilisant DHCP fait tourner dhclient

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

60 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Possibilit davoir une conguration du comportement DHCP du client au moyen du chier /etc/dhclient.conf . Par exemple :
timeout 60; retry 60; reboot 10; select-timeout 5; initial-interval 2; reject 192.33.137.209; 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 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

61 / 803

1 Ethernet

1.15 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 192.5.5.213; option subnet-mask 255.255.255.255; }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

62 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Options DHCP pour clients Microsoft Cf : http://www.microsoft.com/windows2000/en/server/help/\


default.asp?url=/windows2000/en/server/help/\ sag_DHCP_add_OptionsMsVendorSpecific.htm

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

63 / 803

1 Ethernet

1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Exemple de dialogue DHCP Scenario : une machine A fonctionne en mode DHCP. On change sa carte rseau et la machine continue de fonctionner en mode DHCP. Au niveau du serveur DHCP, on voit :
Sep Sep Sep Sep Sep Sep
1

27 27 27 27 27 27

17:58:22 17:58:22 17:58:31 17:58:31 17:58:31 17:58:31

dhcp.example.com dhcp.example.com dhcp.example.com dhcp.example.com dhcp.example.com dhcp.example.com

dhcpd: dhcpd: dhcpd: dhcpd: dhcpd: dhcpd:

[ID [ID [ID [ID [ID [ID

702911 702911 702911 702911 702911 702911

daemon.info] daemon.info] daemon.info] daemon.info] daemon.info] daemon.info]

DHCPREQU DHCPNAK DHCPDISC DHCPOFFE DHCPREQU DHCPACK

la machine A rclame ladresse IP quelle obtenait avec sa carte rseau prcdente 2 le serveur refuse cette adresse car il attribue les adresses en mode statique (une adresse ethernet bien prcise = une adresse IP bien prcise) 3 la machine demande donc poliment une adresse IP au serveur DHCP 4 le serveur DHCP propose une adresse IP 5 la machine accepte la machine et conrme ladresse IP au serveur DHCP c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 64 / 803 6 le serveur DHCP prend note de laectation de ladresse IP
1 Ethernet 1.15 DHCP, dhcpd, dhcpd.conf, dhclient

Outils satellites pour DHCP Quelques outils : logiciel dhcpdump : http://www.mavetju.org/download/dhcpdump-1.4.tar.gz logiciel dhcping : http://www.mavetju.org/download/dhcping-1.2.tar.gz
# ./dhcping -c 195.220.117.6 -s 195.220.117.22 -h 8:0:20:cf:62:12 Got answer from: 195.220.117.22

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

65 / 803

1 Ethernet

Chapitre 1 Ethernet

1.16 Mode promiscuous

1.16 Mode promiscuous

En thorie une carte rseau ncoute que les paquets qui lui sont destins.

Si une carte Ethernet est en mode promiscuous, elle peut capturer des paquets qui ne lui sont pas destins.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

66 / 803

1 Ethernet

1.16 Mode promiscuous

FREEBSD La commande ifconfig indique ltat promiscuous en cas de lancement dun programme faisant passer en mode promiscuous :

# ifconfig -a ... bge1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 150 options=1b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING> inet 134.157.13.124 netmask 0xffffffc0 broadcast 134.157.13.127 inet 134.157.13.102 netmask 0xffffffff broadcast 134.157.13.102 inet 192.168.1.1 netmask 0xffff0000 broadcast 192.168.255.255 ether 00:19:bb:21:2f:01 media: Ethernet autoselect (1000baseTX <full-duplex>) status: active ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

67 / 803

1 Ethernet

1.16 Mode promiscuous

Le passage en mode promiscuous est aussi noti par le noyau qui remonte linformation via dmesg :
# dmesg ... bge1: promiscuous mode enabled ... bge1: promiscuous mode disabled ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

68 / 803

1 Ethernet

1.16 Mode promiscuous

LINUX La commande ifconfig nindique pas ltat promiscuous en cas de lancement dun programme faisant passer en mode promiscuous :

# ifconfig -a ... eth0 Link encap:Ethernet HWaddr 00:11:09:5A:F0:D8 inet addr:134.157.13.95 Bcast:134.157.13.127 Mask:255.255.25 inet6 addr: fe80::211:9ff:fe5a:f0d8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:12923628 errors:0 dropped:0 overruns:0 frame:0 TX packets:6317041 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2836026670 (2.6 GiB) TX bytes:3564552940 (3.3 GiB) Base address:0x2000 Memory:d0100000-d0120000 ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

69 / 803

1 Ethernet

1.16 Mode promiscuous

Le passage en mode promiscuous est noti par le noyau qui remonte linformation via dmesg :
# dmesg ... device eth0 entered promiscuous mode ... device eth0 left promiscuous mode ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

70 / 803

1 Ethernet

1.16 Mode promiscuous

SOLARIS La commande ifconfig nindique pas ltat promiscuous en cas de lancement dun programme faisant passer en mode promiscuous :
# snoop -d eri0 Using device /dev/eri (promiscuous mode)

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

71 / 803

1 Ethernet

Chapitre 1 Ethernet

1.17 Capture de trames Ethernet : librairie libpcap

1.17 Capture de trames Ethernet : librairie libpcap

(en anglais library packet capture)

Cf http://www.tcpdump.org

Cest une bibliothque de programmation C spcialise dans la capture de paquets rseau.

Elle repose sur un driver rseau prsent dans le noyau, le packet lter BPF.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

72 / 803

1 Ethernet

Chapitre 1 Ethernet

1.18 Capture de trames Ethernet : tcpdump

1.18 Capture de trames Ethernet : tcpdump

Cf http://www.tcpdump.org Cest le logiciel de rfrence en ce qui concerne lanalyse des trames IP circulant sur un rseau. Il est bti au dessus de la libpcap qui fait tout le travail en fait. Cest juste de lenrobage au dessus de libpcap. En cas de problme rseau, on utilisera ce logiciel si lorigine du problme nest pas vidente. Exemple :
# # # # tcpdump tcpdump tcpdump tcpdump -s -s -s -s 1500 1500 1500 1500 host www.example.com arp icmp dst sgbd.example.com port 5432

# tcpdump -s 1500 -w fichier # tcpdump -s 1500 -r fichier

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

73 / 803

1 Ethernet

Chapitre 1 Ethernet

1.19 Capture de trames Ethernet : wireshark (ethereal)

1.19 Capture de trames Ethernet : wireshark (ethereal)

http://www.wireshark.com Ancien nom : ethereal ( http://www.ethereal.com ) Cest un logiciel graphique danalyse des trames IP circulant sur un rseau. On lutilise conjointement tcpdump :
1

on demande tcpdump denregistrer les trames : tcpdump -s 1500 -w enregistrement on demande ethereal de relire a posteriori ce chier denregistrement : ethereal enregistrement

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

74 / 803

1 Ethernet

1.19 Capture de trames Ethernet : wireshark (ethereal)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

75 / 803

1 Ethernet

Chapitre 1 Ethernet

1.20 (Windows : : capture de trames Ethernet : wireshark.exe)

1.20 (Windows : : capture de trames Ethernet : wireshark.exe)

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

76 / 803

1 Ethernet

Chapitre 1 Ethernet

1.21 Wake On Lan

1.21 Wake On Lan

Sur les machines modernes, la carte rseau reste alimente lectriquement la carte rseau peut alors dmarrer la carte mre sur rception de paquets rseau spciaux et dmarrer lOS = Wake On Lan

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

77 / 803

1 Ethernet

1.21 Wake On Lan

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

78 / 803

1 Ethernet

1.21 Wake On Lan

Manifestement dpend aussi du driver de la carte rseau :

Manifestement dpend aussi de la bonne qualit du driver de la carte rseau : Salle de TP de la Formation Permanente Carte mre ASUS P4P800X Boot de Windows ; shutdown propre WOL possible Boot de Mandriva 2006 ; shutdown propre WOL impossible

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

79 / 803

1 Ethernet

1.21 Wake On Lan

Comment contacter une machine ? Envoi dun paquet Ethernet spcial : paquet UDP destination du port discard le plus souvent contenu du paquet UDP (dit magic sequence) :
6 fois 0xFF 16 fois ladresse Ethernet

Par exemple, pour rveiller la carte dadresse 01:02:03:04:05:06 :


FFFFFFFFFFFF010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

80 / 803

1 Ethernet

1.21 Wake On Lan

Logiciels :
wakeonlan : http://gsd.di.uminho.pt/jpo/software/wakeonlan/ wakeonlan : http://www.moldaner.de/wakeonlan/ ( java -jar wakeonlan.jar -i 192.168.0.255 01:02:03:04:05:06

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

81 / 803

Chapitre 2

Protocole IP

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

82 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.1 IP v4 / IP v6

2.1 IP v4 / IP v6

Plusieurs versions de TCP/IP :


1 2

IP version 4 IP version 6

IP version 6 : revu plus tard page 165

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

83 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.2 Adresses IP

2.2 Adresses IP

Quelques caractristiques : 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 dadresses aux socits (pour la France AFNIC : http://www.afnic.asso.fr )

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

84 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.3 Adresses de rseaux : classes A, B et C

2.3 Adresses de rseaux : classes A, B et C

Notion de classes dadresses : A, B et C :


Classe Format des adresses
7 bits
0

24 bits hostid

netid

0.0.0.0 127.255.255.255
14 bits
1 0

16 bits hostid

netid

128.0.0.0 191.255.255.255
21 bits
1 1 0

8 bits hostid

netid

192.0.0.0 223.255.255.255

Devient obsolte.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 85 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.4 Adresses de rseaux : sous-rseaux, criture CIDR

2.4 Adresses de rseaux : sous-rseaux, criture CIDR

(en anglais subnets) Un sous-rseau = dcoupage plus n ou plus large que les classes A, B ou C. Le principe reste le mme : une longueur N de bits imposs une longueur 32 - N de bits laisss variables Ecriture dune adresse rseau : adresse-du-rseau/N (criture dite CIDR, Class Inter Domain Routing )

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

86 / 803

2 Protocole IP

2.4 Adresses de rseaux : sous-rseaux, criture CIDR

Par exemple : 134.157.13.128/25 Signication : 25 bits imposs 32 - 25 = 7 bits variables

134.157.13.128 = 10000110.10011101.00001101.10000000 <----------- 25 -----------><- 7 ->

Conclusion : les adresses disponibles sur ce subnet vont de 10000110.10011101.00001101.10000000 (134.157.13.128) 10000110.10011101.00001101.11111111 (134.157.13.255).
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 87 / 803

2 Protocole IP

2.4 Adresses de rseaux : sous-rseaux, criture CIDR

Combien dadresses IP utilisables par sous-rseau ? Rponse : si N bits variables alors 2N 2 : ladresse avec tous les bits variables 0 est rserve pour dsigner le sous-rseau ladresse avec tous les bits variables 1 est rserve pour dsigner ladresse de broadcast (voir page 96)

Par exemple : 134.157.13.128/25 128 adresses dans le sous-rseau 27 2 = 128 2 = 126 adresses utilisables pour des machines

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

88 / 803

2 Protocole IP

2.4 Adresses de rseaux : sous-rseaux, criture CIDR

Combien dadresses IP utilisables par sous-rseau ? Masque CIDR /8 / 16 / 24 / 25 / 26 / 27 / 28 / 29 / 30 / 31 224 = 16777216 216 = 65536 28 = 256 27 = 128 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 224 2 = 16777214 216 2 = 65534 28 2 = 254 27 2 = 126 26 2 = 62 25 2 = 30 24 2 = 14 23 2 = 6 22 2 = 2 21 2 = 0
Administration UNIX ARS 2009 2010 Partie 3 89 / 803

Nombres dadresses

Nombre dadresses utilisables

c T.Besanon (v12.0.364)

2 Protocole IP

Chapitre 2 Protocole IP

2.5 Masque rseau, netmask

2.5 Masque rseau, netmask

Le problme : comment la station A construit-elle les paquets Ethernet pour dialoguer avec la machine B, o que soit la station B ? Deux cas de gure :
1

A et B sont sur le mme rseau Ethernet local : A peut envoyer un paquet Ethernet directement B A et B ne sont pas sur le mme rseau Ethernet local : A doit passer par un routeur intermdiaire. Il faut alors construire un paquet avec pour adresse Ethernet de destination ladresse Ethernet du routeur et non pas avec ladresse Ethernet de B.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

90 / 803

2 Protocole IP

2.5 Masque rseau, netmask

Comment diagnostiquer si A et B sont sur le mme rseau Ethernet ou pas ? La solution : A et B sont sur le mme rseau physique si IP(A) et IP(B) partagent une mme proprit : avoir la mme adresse de rseau. On calcule ladresse de rseau dune adresse A en appliquant un masque de bits sur ladresse IP de A. Le masque de bits est appel le masque de rseau de A (ou netmask). IP(A) & netmask(A) = adresse-rseau(A)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

91 / 803

2 Protocole IP

2.5 Masque rseau, netmask

Comment diagnostiquer si A et B sont sur le mme rseau Ethernet ou pas ? En loccurence si : IP(A) & netmask(A) = IP(B) & netmask(A) (avec & dsignant le ET logique )

Rappel sur le ET logique : bit A bit B bit A ET bit B 0 0 0 1 0 0 0 1 0 1 1 1

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

92 / 803

2 Protocole IP

2.5 Masque rseau, netmask

Le netmask se construit ainsi : la partie xe des bits est mise 1 la partie variable des bits est mise 0 Bits 00000000 10000000 11000000 11100000 11110000 11111000 11111100 11111110 11111111
c T.Besanon (v12.0.364)

Masque 0 128 192 224 240 248 252 254 255


ARS 2009 2010 Partie 3 93 / 803

Administration UNIX

2 Protocole IP

2.5 Masque rseau, netmask

Exemple 1 : rseau 134.157.13.128/25 Netmask : 255.255.255.128


A A netmask(A) : 134.157.13.129 : 10000110.10011101.00001101.10000001 : 11111111.11111111.11111111.10000000 <----------- 25 -----------><- 7 -> A & netmask(A) : 10000110.10011101.00001101.10000000

B B netmask(A)

: 134.157.13.130 : 10000110.10011101.00001101.10000010 : 11111111.11111111.11111111.10000000 <----------- 25 -----------><- 7 -> B & netmask(A) : 10000110.10011101.00001101.10000000

Donc les machines sont sur le mme rseau.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 94 / 803

2 Protocole IP

2.5 Masque rseau, netmask

Exemple 2 : rseau 134.157.13.128/25 Netmask : 255.255.255.128


A A netmask(A) : 134.157.13.129 : 10000110.10011101.00001101.10000001 : 11111111.11111111.11111111.10000000 <----------- 25 -----------><- 7 -> A & netmask(A) : 10000110.10011101.00001101.10000000

B B netmask(A)

: 134.157.0.129 : 10000110.10011101.00000000.10000001 : 11111111.11111111.11111111.10000000 <----------- 25 -----------><- 7 -> B & netmask(A) : 10000110.10011101.00000000.10000000

Donc les machines ne sont pas sur le mme rseau.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 95 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.6 Adresse de broadcast IP

2.6 Adresse de broadcast IP

Chaque machine IP coute un paquet IP avec ladresse de broadcast pour adresse de destination et rpond peut-tre suivant le type du paquet.

Construction de ladresse de broadcast dune machine A dans le rseau rseau/N : les bits de la longueur N de bits restent inchangs les 32 - N bits (variables dans le subnet) sont mis 1

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

96 / 803

2 Protocole IP

2.6 Adresse de broadcast IP

Exemple 1 : rseau 134.157.12.0/24


A A : 134.157.12.3 : 10000110.10011101.00001100.00000011 <----------- 24 ----------><- 8 --> : 11111111.11111111.11111111.00000000 : 10000110.10011101.00001100.11111111 : 134.157.12.255

netmask(A) broadcast(A) broadcast(A)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

97 / 803

2 Protocole IP

2.6 Adresse de broadcast IP

Exemple 2 : rseau 134.157.13.128/25


A A : 134.157.13.129 : 10000110.10011101.00001101.10000001 <----------- 25 -----------><- 7 -> : 11111111.11111111.11111111.10000000 : 10000110.10011101.00001101.11111111 : 134.157.13.255

netmask(A) broadcast(A) broadcast(A)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

98 / 803

2 Protocole IP

2.6 Adresse de broadcast IP

Exemple 3 : rseau 134.157.13.64/26


A A : 134.157.13.71 : 10000110.10011101.00001101.01000111 <----------- 26 ------------><- 6-> : 11111111.11111111.11111111.11000000 : 10000110.10011101.00001101.01111111 : 134.157.13.127

netmask(A) broadcast(A) broadcast(A)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

99 / 803

2 Protocole IP

Chapitre 2 Protocole IP
Diusion unicast

2.7 Unicast, Broadcast, Multicast

2.7 Unicast, Broadcast, Multicast

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

100 / 803

2 Protocole IP

2.7 Unicast, Broadcast, Multicast

Diusion broadcast

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

101 / 803

2 Protocole IP

2.7 Unicast, Broadcast, Multicast

Diusion multicast

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

102 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.8 Adresse spciale : adresse de loopback

2.8 Adresse spciale : adresse de loopback

Interface virtuelle de loopback dadresse IP 127.0.0.1 Ladresse 127.0.0.1 est appele localhost . Permet de faire des connexions rseau avec soi-mme.
INTERNET

Adresse IP a.b.c.d APPL1

Adresse IP 127.0.0.1

APPL2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

103 / 803

2 Protocole IP

2.8 Adresse spciale : adresse de loopback

Adresse de loopback sur UNIX/LINUX

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

104 / 803

2 Protocole IP

2.8 Adresse spciale : adresse de loopback

Adresse de loopback sur WINDOWS

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

105 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.9 Adresses spciales : adresses prives / RFC 1918

2.9 Adresses spciales : adresses prives / RFC 1918

RFC 1918 : adresses prives : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 Adresses utilisables sur des rseaux sans interconnexion avec Internet ou avec NAT (Network Address Translation ; par exemple : boites ADSL).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

106 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.10 Adresses spciales : autres adresses / RFC 3330

2.10 Adresses spciales : autres adresses / RFC 3330

RFC 3330 :
Adresses 0.0.0.0/8 10.0.0.0/8 14.0.0.0/8 24.0.0.0/8 39.0.0.0/8 127.0.0.0/8 128.0.0.0/16 169.254.0.0/16 172.16.0.0/12 191.255.0.0/16 Rseau "This" Network Private-Use Networks Public-Data Networks Cable Television Networks Reserved but subject to allocation Loopback Reserved but subject to allocation Link Local Private-Use Networks Reserved but subject to allocation Documentation RFC1700, page 4 RFC1918 RFC1700, page 181 RFC1797 RFC1700, page 5 RFC1918

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

107 / 803

2 Protocole IP

2.10 Adresses spciales : autres adresses / RFC 3330

RFC 3330 (suite) :


Adresses 192.0.0.0/24
192.0.2.0/24 192.88.99.0/24 192.168.0.0/16 198.18.0.0/15

223.255.255.0/24 224.0.0.0/4 240.0.0.0/4

Rseau Reserved but subject to allocation Test-Net 6to4 Relay Anycast Private-Use Networks Network Interconnect Device Benchmark Testing Reserved but subject to allocation Multicast Reserved for Future Use

Documentation RFC3068 RFC1918 RFC2544 RFC3171 RFC1700, page 4

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

108 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.11 Encapsulation des paquets

2.11 Encapsulation des paquets

Principe des poupes russes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

109 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

header Ethernet

data

trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

110 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

Trame ARP header Ethernet trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

111 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

Trame IP header Ethernet trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

112 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

Trame IP header Ethernet header IP Trame UDP trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

113 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

Trame IP header Ethernet header IP Trame TCP trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

114 / 803

2 Protocole IP

2.11 Encapsulation des paquets

Trame Ethernet

Trame IP header Ethernet header IP Trame ICMP trailer Ethernet

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

115 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.12 Conguration dadresse IP : ifconfig

2.12 Conguration dadresse IP : ifconfig

(en anglais interface conguration) La commande ifconfig sert rgler les paramtres des cartes rseau :
# ifconfig le0 inet 134.157.253.1 # ifconfig le0 netmask 0xffffff80 # ifconfig le0 broadcast 134.157.253.127 # ifconfig -a lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232 inet 127.0.0.1 netmask ff000000 le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu 1500 inet 134.157.253.1 netmask ffffff80 broadcast 134.157.253.127 ether 8:0:20:83:12:4a

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

116 / 803

2 Protocole IP

2.12 Conguration dadresse IP : ifconfig

Sur une machine Linux, les cartes rseau ont pour noms eth0 , eth1 , eth2 , etc. Sur une machine Linux, la paramtrage rseau de la carte eth0 se trouve au niveau du chier /etc/sysconfig/network-scripts/ifcfg-eth0 (ainsi de suite pour les autres interfaces) :
DEVICE=eth0 BOOTPROTO=static BROADCAST=134.157.46.255 IPADDR=134.157.46.129 NETMASK=255.255.255.128 NETWORK=134.157.46.128 ONBOOT=yes GATEWAY=134.157.46.254 TYPE=Ethernet USERCTL=no PEERDNS=no

La commande dmesg renvoie la liste des interfaces.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 117 / 803

2 Protocole IP

2.12 Conguration dadresse IP : ifconfig

Sur une machine SOLARIS, les cartes rseau ont des noms dpendant du type de carte. Par exemple le0 , eri0 , qfe0 + qfe1 + qfe2 + qfe3 (carte quad port 10/100), etc. Sur une machine SOLARIS, la paramtrage rseau de la carte XYZ se trouve au niveau du chier /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 rseau via /etc/hosts Broadcast, netmask dduits

La commande dmesg renvoie la liste des interfaces.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

118 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.13 Adresses IP virtuelles

2.13 Adresses IP virtuelles

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

119 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.14 Conguration dadresses IP virtuelles : ifconfig

2.14 Conguration dadresses IP virtuelles : ifconfig

Sur une machine Linux, si la carte rseau sappelle par exemple eth0 , alors les adresses virtuelles utiliseront les interfaces rseau virtuelles de noms eth0:0 , eth0:1 , eth0:2 , etc. Sur une machine Linux, la paramtrage rseau de ladresse virtuelle eth0:0 se trouve au niveau du chier /etc/sysconfig/network-scripts/ifcfg-eth0:0 (ainsi de suite pour les autres interfaces) :
DEVICE=eth0:0 BOOTPROTO=static BROADCAST=134.157.46.255 IPADDR=134.157.46.130 NETMASK=255.255.255.128 NETWORK=134.157.46.128 ONBOOT=yes TYPE=Ethernet USERCTL=no PEERDNS=no

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

120 / 803

2 Protocole IP

2.14 Conguration dadresses IP virtuelles : ifconfig

Sur une machine SOLARIS, si la carte rseau sappelle par exemple eri0 , alors les adresses virtuelles utiliseront les interfaces rseau virtuelles de noms eri0:1 , eri0:2 , eri0:3 , etc. Sur une machine SOLARIS, la paramtrage rseau dune interface virtuelle eri0:1 se trouvera donc au niveau du chier /etc/hostname.eri0:1 :
-rw-r--r-1 root root 19 Dec 4 01:35 /etc/hostname.eri0:1

qui contient le hostname associ linterface virtuelle : hostname adresse rseau via /etc/host Broadcast, netmask dduits Manuellement ifconfig eri0 addif 192.168.0.1/prefix up

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

121 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.15 (Windows 98 : : winipcfg.exe)

2.15 (Windows 98 : : winipcfg.exe)

La commande winipcfg.exe permet de connaitre en mode graphique la conguration rseau des interfaces.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

122 / 803

2 Protocole IP

2.15 (Windows 98 : : winipcfg.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

123 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.16 (Windows : : ipconfig.exe)

2.16 (Windows : : ipconfig.exe)

La commande ipconfig.exe permet de connaitre en mode ligne de commande la conguration rseau des interfaces. interfaces DHCP etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

124 / 803

2 Protocole IP

2.16 (Windows : : ipconfig.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

125 / 803

2 Protocole IP

2.16 (Windows : : ipconfig.exe)

Libration dune adresse DHCP / Renouvellement dune adresse DHCP

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

126 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.17 (Windows : : netsh.exe)

2.17 (Windows : : netsh.exe)

La commande netsh permet de congurer en mode ligne de commande beaucoup daspects rseau : conguration des interfaces conguration DHCP conguration du rewall Microsoft conguration WIFI conguration IPSEC etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

127 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Dsactivation dune interface

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

128 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

129 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Achage de la conguration dune interface

(on notera que cest plus facile en anglais car le nom de linterface est facile crire)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 130 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Conguration manuelle dune interface

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

131 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Conguration via DHCP dune interface

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

132 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

133 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

134 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Eacement de la table ARP de la machine

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

135 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Sauvegarde de la conguration et rechargement ultrieur

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

136 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Ouverture sur le rewall dun port

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

137 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

138 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Autorisation sur le rewall dune application

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

139 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

140 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Achage des applications autorises sur le rewall

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

141 / 803

2 Protocole IP

2.17 (Windows : : netsh.exe)

Achage des ports autorises sur le rewall

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

142 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.18 Connexions IP / ports IP

2.18 Connexions IP / ports IP

Une connexion IP est constitue des lments suivants : une adresse IP source un numro de port source sur la machine de dpart une adresse IP de destination un numro de port sur la machine de destination protocole TCP ou UDP

IP1 port 1

IP2

port 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

143 / 803

2 Protocole IP

2.18 Connexions IP / ports IP

En pratique il y a 3 catgories de port : Les Well Known Ports de 0 1023 Les Registered Ports de 1024 49151 Les Dynamic and/or Private Ports de 49152 65535

Attention : Sur UNIX, la fonction C obtenant un port source < 1024 ne fonctionne que pour lUID 0. Sur Windows, la fonction C obtenant un port source < 1024 fonctionne quel que soit lUID

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

144 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.19 Fichier /etc/services

2.19 Fichier /etc/services

Le chier /etc/services mentionne des triplets (numro de port, protocole, nom du service). On peut obtenir un triplet ociellement pour un programme soi auprs de lIANA http://www.iana.org/assignments/port-numbers Le chier /etc/services sert convertir un port numrique en un nom symbolique plus parlant. Voir les fonctions C getservbyname() , getservbyport() , getservent() .

ATTENTION : Le chier /etc/services nindique pas les services rseau activs sur la machine.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 145 / 803

2 Protocole IP

2.19 Fichier /etc/services

Extrait dun chier /etc/services :


... chargen chargen ftp-data ftp-data ftp ftp ssh ssh telnet telnet smtp smtp ... 19/tcp 19/udp 20/tcp 20/udp 21/tcp 21/udp 22/tcp 22/udp 23/tcp 23/udp 25/tcp 25/udp ttytst source #Character Generator ttytst source #Character Generator #File Transfer [Default Data] #File Transfer [Default Data] #File Transfer [Control] #File Transfer [Control] #Secure Shell Login #Secure Shell Login

mail mail

#Simple Mail Transfer #Simple Mail Transfer

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

146 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.20 Liste des ports rseau actifs : netstat -a, netstat -an

2.20 Liste des ports rseau actifs : netstat -a, netstat -an

La commande netstat -a renvoie la liste des connexions rseau tablies ou en attente dtablissement de connexion. Les noms achs proviennent de /etc/services :

% netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp4 0 0 *.ssh *.* tcp46 0 0 *.ssh *.* udp4 0 0 *.syslog *.* udp6 0 0 *.syslog *.* udp4 0 0 *.bootpc *.* Active UNIX domain sockets ...

(state) LISTEN LISTEN

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

147 / 803

2 Protocole IP

2.20 Liste des ports rseau actifs : netstat -a, netstat -an

La commande netstat -an renvoie la liste des connexions rseau tablies ou en attente dtablissement de connexion, sans les traduire en noms via /etc/services . Ils sont achs sous forme numrique :
% netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp4 0 0 *.22 *.* tcp46 0 0 *.22 *.* udp4 0 0 *.514 *.* udp6 0 0 *.514 *.* udp4 0 0 *.68 *.* Active UNIX domain sockets ...

(state) LISTEN LISTEN

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

148 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.21 (Windows : : Liste des ports rseau actifs : netstat.exe)

2.21 (Windows : : Liste des ports rseau actifs : netstat.exe)

Mme principe sur UNIX :


Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\ars>netstat -an | more Active Connections Proto TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP UDP UDP ... Local Address 0.0.0.0:25 0.0.0.0:80 0.0.0.0:135 0.0.0.0:443 0.0.0.0:445 0.0.0.0:1025 127.0.0.1:1027 192.168.1.1:139 192.168.2.1:139 192.168.8.1:139 0.0.0.0:445 0.0.0.0:500 Foreign Address 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 0.0.0.0:0 *:* *:* State LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING LISTENING

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

149 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.22 Liste des connexions rseau : lsof

2.22 Liste des connexions rseau : lsof

(en anglais List of open les)


ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/

lsof permet de connatre les ledescriptors ouverts sur une machine UNIX. Cela comprend les connexions rseau. Par exemple, pour voir quels processus utilisent la partition /var/run :
% lsof /var/run COMMAND PID USER lpd 410 daemon dhcpd 12548 root FD 6u 6w TYPE DEVICE SIZE/OFF NODE NAME VREG 0,1 4 2193737 /var/run (swap) VREG 0,1 469 1571881 /var/run (swap)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

150 / 803

2 Protocole IP

2.22 Liste des connexions rseau : lsof

Par exemple pour voir qui utilise une certaine connexion TCP :
% lsof -i tcp:32771 COMMAND PID USER FD inetd 320 root 18u TYPE DEVICE SIZE/OFF NODE NAME IPv4 0x3000200f350 0t0 TCP *:32771 (LISTEN)

Par exemple pour voir qui utilise une certaine connexion UDP :
% lsof -i UDP@127.0.0.1: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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

151 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.23 (Windows : : Liste des connexions rseau : tcpview.exe)

2.23 (Windows : : Liste des connexions rseau : tcpview.exe)

Logiciel TCPVIEW sur http://www.sysinternals.com .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

152 / 803

2 Protocole IP

2.23 (Windows : : Liste des connexions rseau : tcpview.exe)

TCPVIEW a une version en ligne de commande : TCPVCON

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

153 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.24 Commande de connexion : telnet

2.24 Commande de connexion : telnet

Syntaxe : telnet host Exemples dutilisation : connexion une machine UNIX connexion une imprimante connexion un quipement rseau etc. A chaque fois que ce sera possible, prfrer une connexion shell distante en utilisant SSH.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

154 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Autre syntaxe importante : telnet host port

Exemples dutilisation : connexion manuelle un serveur POP connexion manuelle un serveur IMAP connexion manuelle un serveur HTTP etc.

Non remplaable par SSH.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

155 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Exemple : connexion une machine UNIX


% telnet server.example.com Trying 1.2.3.4... 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

156 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Exemple : connexion une imprimante


% telnet hp4100.example.com Trying 1.2.3.4... 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.08.49 MAC Address : 00:30:c1:0a:45:b2 Config By : USER SPECIFIED
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 157 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

IP Address : Subnet Mask : Default Gateway : Syslog Server : Idle Timeout : Set Cmnty Name : Host Name : Default Get Cmnty DHCP Config : Passwd : IPX/SPX : DLC/LLC : Ethertalk : Banner page : > exit

1.2.3.4 255.255.255.0 1.2.3.254 Not Specified 90 Seconds Not Specified Not Specified : Enabled Disabled Enabled Disabled Disabled Enabled Disabled

EXITING WITHOUT SAVING ANY ENTRIES > Connection closed by foreign host.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

158 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Exemple : interruption dune connexion par Ctrl-] (Control crochet fermant)


% telnet obsolete.example.com Trying 1.2.3.4... Connected to obsolete.example.com. Escape character is ^].

telnet login: besancon Password: XXXXXXXX Login incorrect login: ^] <-- taper Ctrl-] telnet> quit Connection closed.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

159 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Exemple : tentative de connexion une machine sans telnet


% telnet notelnet.example.com Trying 1.2.3.4... telnet: connect to address 1.2.3.4: Connection refused telnet: Unable to connect to remote host

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

160 / 803

2 Protocole IP

2.24 Commande de connexion : telnet

Humour

Faire telnet towel.blinkenlights.nl

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

161 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.25 (Windows : : Commande de connexion : telnet.exe)

2.25 (Windows : : Commande de connexion : telnet.exe)

Programme telnet.exe :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

162 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.26 Duplicate IP address

2.26 Duplicate IP address

Un problme rgulier : les duplicate IP addresses : deux machines sur le mme rseau Ethernet ont la mme adresse IP

Le pire scenario : lusurpateur prend ladresse du routeur par dfaut. Solution : tracer les adresses Ethernet au niveau des tables ARP des switches

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

163 / 803

2 Protocole IP

2.26 Duplicate IP address

Symptme dun duplicate IP address : un Apple MacOS X ache :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

164 / 803

2 Protocole IP

Chapitre 2 Protocole IP
Total address space allocated 1.6e+09

2.27 IP v6

2.27 IP v6

1.4e+09

1.2e+09 Addresses allocated

1e+09

8e+08

6e+08

4e+08

2e+08 83 84 85 86 87 88 Year 89 90 91 92 93

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

165 / 803

2 Protocole IP

2.27 IP v6

Total address space allocated 5e+09 4.5e+09 4e+09 3.5e+09 Addresses allocated 3e+09 2.5e+09 2e+09 1.5e+09 1e+09 5e+08 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09 Year

Epuisement prvu des numros IP cration de IP v6.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 166 / 803

2 Protocole IP

2.27 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:53 -0400 >> 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 Earths 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, wed 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 167 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.28 Annexe 1

2.28 Annexe 1

Ci joint dans la version imprime de ce cours, un diagramme dtats de TCP/IP.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

168 / 803

2 Protocole IP

Chapitre 2 Protocole IP

2.29 Annexe 2

2.29 Annexe 2

Ci joint dans la version imprime de ce cours, un tableau du top 10% des AS fournissant des prexes IPv6.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

169 / 803

http://bgpmon.net/blog/?p=228
Each network in the global Internet has a unique Autonomous System (AS) number. An Autonomous System can be an Internet Service Provider (ISP), Enterprise network, content provider or any other sort of network. Each AS number announces one or more prexes. By using Geo IP libraries we are able to determine a country for each prex. This in turn allows us to determine the unique number of networks (AS numbers) per country. Doing this for both IPv4 as well as IPv6 will result in the IPv4/IPv6 deployment ratio. Lets look at for example at Canada. There are 816 Autonomous Systems that originate a prex registered as in use in Canada. If we look at the IPv6 routing tables we see that 50 Autonomous Systems announce a Canadian IPv6 prex. This results in an IPv6 deployment percentage of 6.1

TAB . 1: Top 10% Country code JE CU OM MC VA FJ TN ML UY EE BT SN IM LU LK IS EU CZ NZ JP CI NL MY MU VE PT CR TW RW NO ZA VI HT IE MT DE Czech Republic New Zealand Japan Cote DIvoire Netherlands Malaysia Mauritius Venezuela Portugal Costa Rica Taiwan, Province of China Rwanda Norway South Africa Virgin Islands, U.s. Haiti Ireland Malta Germany Country Jersey Cuba Oman Monaco Holy See (Vatican City State) Fiji Tunisia Mali Uruguay Estonia Bhutan Senegal Isle of Man Luxembourg Sri Lanka Iceland Ipv6 deployment rate 100% 75% 50% 50% 50% 50% 33% 33% 31% 26% 25% 25% 25% 24% 23% 21% 20% 19% 18% 17% 17% 17% 17% 17% 16% 15% 15% 15% 14% 14% 14% 14% 14% 14% 13% 13% Ipv6 network / Ipv4 networks 1/1 3/4 1/2 1/2 1/2 1/2 1/3 1/3 8 / 26 10 / 39 1/4 1/4 1/4 10 / 42 3 / 13 6 / 29 22 / 109 34 / 176 35 / 194 92 / 545 1/6 85 / 511 13 / 78 1/6 6 / 38 11 / 75 2 / 13 18 / 122 1/7 17 / 120 13 / 92 1/7 1/7 18 / 130 3 / 23 149 / 1183 Suite la page suivante. . .

TAB . 1: Top 10% Country code QA LI VN AN CH EG SE TT SK Country Qatar Liechtenstein Viet Nam Netherlands Antilles Switzerland Egypt Sweden Trinidad and Tobago Slovakia Ipv6 deployment rate 13% 13% 12% 12% 12% 11% 11% 11% 10% Ipv6 network / Ipv4 networks 1/8 2 / 15 6 / 50 2 / 17 51 / 437 5 / 46 38 / 344 1/9 8 / 83

Chapitre 3

Routage IP par dfaut

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

170 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.1 Notion de routage

3.1 Notion de routage

Routage : acheminement des paquets IP leur destination selon un chemin dtermin par la destination Cas le plus simple : routage par dfaut : tous les paquets IP sont achemins vers un routeur qui les transmet plus loin. Les autres cas : protocoles spcialiss : ROUTED, BGP, OSPF, etc. (voir cours rseau) Un cas trs spcial : routage selon ladresse IP source : policy based routing Attention : souvent un hack au niveau de lOS !

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

171 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.2 Relation entre routage IP et paquets ethernet

3.2 Relation entre routage IP et paquets ethernet


E T H
ETH src = 11:22:33:44:55:66 ETH dest = AA:BB:CC:11:11:11

ETH = 11:22:33:44:55:66 IP = 1.1.1.1

machine A

I P

IP src = 1.1.1.1 IP dest = 2.2.2.2 IP data

ETH = AA:BB:CC:11:11:11 IP = 1.1.1.254

I P

IP src = 1.1.1.1 IP dest = 2.2.2.2 IP data

ROUTEUR

ETH = AA:BB:CC:22:22:22 IP = 2.2.2..254

machine B

E T H
ETH = 77:88:99:00:AA:BB IP = 2.2.2.2

ETH src = AA:BB:CC:22:22:22 ETH dest = 77:88:99:00:AA:BB

I P

IP src = 1.1.1.1 IP dest = 2.2.2.2 IP data

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

172 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.3 Routage par dfaut

3.3 Routage par dfaut

Routage par dfaut : tous les paquets IP sont achemins vers un routeur qui les transmet plus loin. La destination du routage par dfaut : le rseau 0.0.0.0 En utilisant la commande netstat (voir page pagerefnetstat) et loption -n , on voit bien ce rseau spcial :
% netstat -r Kernel IP routing table Destination Gateway 192.168.1.0 * default 192.168.1.254 % netstat -rn Kernel IP routing table Destination Gateway 192.168.1.0 0.0.0.0 0.0.0.0 192.168.1.254
c T.Besanon (v12.0.364)

Genmask 255.255.255.0 0.0.0.0

Flags U UG

MSS Window 0 0 0 0

Genmask 255.255.255.0 0.0.0.0

Flags U UG

MSS Window 0 0 0 0
173 / 803

Administration UNIX

ARS 2009 2010 Partie 3

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.4 Conguration du routage LINUX : route

3.4 Conguration du routage LINUX : route

La commande route sert congurer le routage.


# route add default gw 134.157.253.126

gw = gateway = routeur Sur une machine LINUX, se reporter au chier /etc/syscong/network :


NETWORKING=yes FORWARD_IPV4=false HOSTNAME=pcars5.formation.jussieu.fr DOMAINNAME=formation.jussieu.fr NISDOMAIN=real.world GATEWAY=134.157.253.126 GATEWAYDEV=eth0

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

174 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.5 Conguration du routage SOLARIS : route

3.5 Conguration du routage SOLARIS : route

La commande route sert congurer le routage.


# route add default 134.157.253.126

Sur une machine SOLARIS, se reporter au chier /etc/defaultrouter :


134.157.253.126

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

175 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.6 (Windows : : route.exe)

3.6 (Windows : : route.exe)

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

176 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.7 Routage : netstat

3.7 Routage : netstat

La commande netstat -r renvoie la table de routage dune machine UNIX :


% netstat -rn Routing Table: Destination -------------------255.255.255.255 134.157.253.0 224.0.0.0 default 127.0.0.1

Gateway Flags Ref Use Interface -------------------- ----- ----- ------ --------134.157.253.1 UGH 0 0 134.157.253.1 U 3 227555 le0 134.157.253.1 U 3 0 le0 134.157.253.126 UG 0 230176 127.0.0.1 UH 0 28650 lo0

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

177 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.8 (Windows : : netstat.exe)

3.8 (Windows : : netstat.exe)

Mme principe sur UNIX :


C:\Documents and Settings\ars>netstat -rn

Route Table =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 50 56 c0 00 02 ...... VMware Virtual Ethernet Adapter for VMnet2 0x3 ...00 50 56 c0 00 08 ...... VMware Virtual Ethernet Adapter for VMnet8 0x4 ...00 50 56 c0 00 01 ...... VMware Virtual Ethernet Adapter for VMnet1 0x5 ...00 90 4b 64 10 88 ...... Dell TrueMobile 1400 Dual Band WLAN Mini-PCI Card - Packet 0x6 ...00 0d 56 ad cc be ...... Broadcom 440x 10/100 Integrated Controller - Packet Schedu =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.1.0 255.255.255.0 192.168.1.1 192.168.1.1 20 192.168.1.1 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.1.255 255.255.255.255 192.168.1.1 192.168.1.1 20 192.168.2.0 255.255.255.0 192.168.2.1 192.168.2.1 20 192.168.2.1 255.255.255.255 127.0.0.1 127.0.0.1 20
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 178 / 803

3 Routage IP par dfaut

3.8 (Windows : : netstat.exe)

192.168.2.255 255.255.255.255 192.168.2.1 192.168.2.1 20 192.168.8.0 255.255.255.0 192.168.8.1 192.168.8.1 20 192.168.8.1 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.8.255 255.255.255.255 192.168.8.1 192.168.8.1 20 224.0.0.0 240.0.0.0 192.168.1.1 192.168.1.1 20 224.0.0.0 240.0.0.0 192.168.2.1 192.168.2.1 20 224.0.0.0 240.0.0.0 192.168.8.1 192.168.8.1 20 255.255.255.255 255.255.255.255 192.168.1.1 192.168.1.1 1 255.255.255.255 255.255.255.255 192.168.2.1 192.168.2.1 1 255.255.255.255 255.255.255.255 192.168.8.1 192.168.8.1 1 255.255.255.255 255.255.255.255 192.168.8.1 6 1 255.255.255.255 255.255.255.255 192.168.8.1 5 1 =========================================================================== Persistent Routes: None

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

179 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.9 Test de connectivit : ping

3.9 Test de connectivit : ping

La commande ping teste si une machine rpond au niveau rseau.


% ping localhost localhost is alive

On peut parfois pinger ladresse de broadcast :


% /usr/sbin/ping -s 134.157.253.127 1 PING 134.157.253.127: 1 data bytes 9 bytes from sunars1.formation.jussieu.fr (134.157.253.1): icmp_seq=0. 9 bytes from sunars2.formation.jussieu.fr (134.157.253.2): icmp_seq=0. 9 bytes from sunars4.formation.jussieu.fr (134.157.253.4): icmp_seq=0. 9 bytes from sunars3.formation.jussieu.fr (134.157.253.3): icmp_seq=0. 9 bytes from r-formation.formation.jussieu.fr (134.157.253.126): icmp_seq=0. 9 bytes from sunars1.formation.jussieu.fr (134.157.253.1): icmp_seq=1. 9 bytes from sunars2.formation.jussieu.fr (134.157.253.2): icmp_seq=1. 9 bytes from sunars4.formation.jussieu.fr (134.157.253.4): icmp_seq=1. 9 bytes from sunars3.formation.jussieu.fr (134.157.253.3): icmp_seq=1. 9 bytes from r-formation.formation.jussieu.fr (134.157.253.126): icmp_seq=1. ^C ----134.157.253.127 PING Statistics---2 packets transmitted, 10 packets received, 5.00 times amplification
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 180 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.10 Test de connectivit : fping, hping

3.10 Test de connectivit : fping, hping

Autres utilitaires parents de PING : FPING : http://fping.sourceforge.net HPING : http://www.hping.org

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

181 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.11 (Windows : : ping.exe)

3.11 (Windows : : ping.exe)

Mme principe sur UNIX :


C:\Documents and Settings\ars>ping 127.0.0.1 Pinging 127.0.0.1 with 32 bytes of data: Reply Reply Reply Reply from from from from 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: bytes=32 bytes=32 bytes=32 bytes=32 time<1ms time<1ms time<1ms time<1ms TTL=128 TTL=128 TTL=128 TTL=128

Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

182 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.12 Test de connectivit : traceroute

3.12 Test de connectivit : traceroute

La commande traceroute permet de tester si une machine est joignable. Elle renvoie les intermdiaires rseau qui route notre acheminement vers la machine distante. Syntaxe : traceroute machine
% traceroute ftp.lip6.fr traceroute to nephtys.lip6.fr (195.83.118.1), 30 hops max, 40 byte packets 1 yacht (129.199.96.254) 0 ms 0 ms 0 ms 2 renater (129.199.1.10) 2 ms 1 ms 1 ms 3 195.221.127.61 (195.221.127.61) 3 ms 1 ms 1 ms 4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms 5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 1 ms 6 jussieu.rap.prd.fr (195.221.126.33) 2 ms 2 ms 2 ms 7 nephtys.lip6.fr (195.83.118.1) 2 ms 2 ms 2 ms

Le nombre dintermdiaires nest pas proportionnel lloignement gographique de la machine destination.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 183 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.13 (Windows : : tracert.exe)

3.13 (Windows : : tracert.exe)

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

184 / 803

3 Routage IP par dfaut

Chapitre 3 Routage IP par dfaut

3.14 Machine LINUX routeur

3.14 Machine LINUX routeur

Routeur LINUX = une machine LINUX avec deux cartes rseau Les paquets rseau doivent tre routs dune interface rseau une autre interface rseau. Activation via /proc/sys/net/ipv4/ip_forward : 0 : les paquets ne sont pas routs dune interface une autre interface 1 : les paquets sont routs dune interface une autre interface

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

185 / 803

Chapitre 4

Domain Name Server (DNS)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

186 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.1 Principes du DNS

4.1 Principes du DNS

Impossibilit pratique de maintenir jour les chiers /etc/hosts . remplacement par un mcanisme dannuaire rparti dont chacun gre sa entre propre : le Domain Name Server Particularits de la base de donnes du DNS : rpartie petite avec une faible frquence de changements des donnes hirarchise accs en consultation uniquement ; pas de requte de modication

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

187 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.2 Zone DNS

4.2 Zone DNS

zone DNS : reet de laspect rparti et hirarchis du DNS partie contige de larbre une zone parente dlgue une zone lle un ou plusieurs serveurs dinformations (nameservers) sur la zone lle

. com net wanadoo fr jussieu www ...

formation... www ssh

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

188 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.3 Requte dinterrogation du DNS

4.3 Requte dinterrogation du DNS

Le DNS est bti selon un modle client serveur

Cf logiciel DNSTRACER sur http://www.mavetju.org


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 189 / 803

4 Domain Name Server (DNS)

4.3 Requte dinterrogation du DNS

Le DNS utilise des root nameservers :

Pour assurer un service able, une zone est servie par un nameserver primaire et plusieurs nameservers secondaires de secours qui se synchronisent entre eux.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 190 / 803

4 Domain Name Server (DNS)

4.3 Requte dinterrogation du DNS

Principe de mmorisation des informations passes recueillies pour acclrer les rponses aux requtes. Linformation a une date de premption (TTL = Time To Live). Le serveur qui mmorise un record DNS na pas autorit dessus. Chaque enregistrement de la base de donnes 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 requte ressemble alors :
(classe, (classe, type, *, cl, cl, ?, ?, ?) ?)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

191 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.4 Implmentation : BIND, named

4.4 Implmentation : BIND, named

URL : http://www.isc.org/products/BIND/

Dmon named

Fichier de conguration /etc/named.conf (en gnral). Directory /etc/namedb stockant les chiers de zone (en gnral).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

192 / 803

4 Domain Name Server (DNS)

4.4 Implmentation : BIND, named

Exemple 1 : 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 -- 192.168.1.1 WHEN: Mon Sep 30 00:20:19 2002 MSG SIZE sent: 30 rcvd: 49

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

193 / 803

4 Domain Name Server (DNS)

4.4 Implmentation : BIND, named

Exemple 2 : Pour connaitre la version de named :


% dig dmi.ens.fr version.bind chaos txt ; <<>> DiG 9.2.1 <<>> dmi.ens.fr version.bind chaos txt ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63986 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4 ;; QUESTION SECTION: ;dmi.ens.fr. ;; ANSWER SECTION: dmi.ens.fr. ;; AUTHORITY SECTION: ens.fr. ens.fr. ens.fr. ens.fr. ens.fr.

IN

172800

IN

129.199.96.11

172800 172800 172800 172800 172800

IN IN IN IN IN

NS NS NS NS NS

oseille.ens.fr. dmi.ens.fr. ext.lri.fr. ns2.nic.fr. clipper.ens.fr.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

194 / 803

4 Domain Name Server (DNS)

4.4 Implmentation : BIND, named

;; ADDITIONAL SECTION: ext.lri.fr. ns2.nic.fr. clipper.ens.fr. oseille.ens.fr. ;; ;; ;; ;;

290218 285943 172800 172800

IN IN IN IN

A A A A

129.175.15.4 192.93.0.4 129.199.129.1 129.199.98.16

Query time: 831 msec SERVER: 127.0.0.1#53(127.0.0.1) WHEN: Mon Sep 30 00:19:28 2002 MSG SIZE rcvd: 210

;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48476 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. ;; ANSWER SECTION: version.bind. ;; ;; ;; ;;

CH

TXT

CH

TXT

"9.2.1"

Query time: 42 msec SERVER: 127.0.0.1#53(127.0.0.1) WHEN: Mon Sep 30 00:19:28 2002 MSG SIZE rcvd: 48
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 195 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.5 F.root-servers.net (vieille version)

4.5 F.root-servers.net (vieille version)

OBSOLTE mais laiss pour se faire une ide

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

196 / 803

4 Domain Name Server (DNS)

4.5 F.root-servers.net (vieille version)

(cf http://www.isc.org/servicespublic/F-root-server.html ) 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 (http://www.iana.org/) since 1993. F (http://f.root-servers.org) 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 HPs Western Research Laboratory (http://www.research.digital.com/wrl/). Each server is a HP ES40 AlphaServer with 4 500mhz CPUs and 8Gig of RAM, and runs ISC BIND 8.3.2 as its DNS server.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

197 / 803

4 Domain Name Server (DNS)

4.5 F.root-servers.net (vieille version)

The servers are hosted at PAIX.net, Inc. (http://www.paix.net/) in Palo Alto, California and are connected to the Internet via fdx Fast Ethernet connections which are provided by UUNET (http://www.uu.net/), Teleglobe (http://www.teleglobe.com/), and MFN (http://www.mfn.com/).

For more information on the root DNS system, see : BCP 40 (RFC2870) Operational guidelines for Root Name Servers (http://www.isi.edu/in-notes/rfc2870.txt).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

198 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.6 F.root-servers.net ( jour)

4.6 F.root-servers.net ( jour)

(cf http://www.isc.org/ops/f-root )

2 nuds globaux, plus de trente nuds locaux rpartis dans divers pays.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 199 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.7 Utilitaire rndc

4.7 Utilitaire rndc

Syntaxe : rndc [options] cmd Il contrle le fonctionnement de named distance via TCP ( rndc.conf contient des clefs daccs).
status dumpdb reload stats trace/notrace start stop halt restart
c T.Besanon (v12.0.364)

status de NAMED dumpe la base et le cache dans /var/tmp/named_dump.db recharge les zones primaires et secondaires dumpe les statistiques dans /var/tmp/named.stats gestion du niveau de trace dans /var/tmp/named.run dmarre NAMED arrte NAMED en sauvant les mises jour en cours arrte NAMED froidement arrte et redmarre NAMED
Administration UNIX ARS 2009 2010 Partie 3 200 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.8 Fichier /etc/resolv.conf

4.8 Fichier /etc/resolv.conf

Consultation des nameservers indiqus via le chier /etc/resolv.conf Exemple de chier /etc/resolv.conf :
domain formation.jussieu.fr search formation.jussieu.fr jussieu.fr nameserver 134.157.253.1 nameserver 134.157.0.129

Attention : Au plus 3 lignes nameserver . Tous les UNIX ne comprennent pas la directive search . Un commentaire commence par ; .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

201 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.9 Interrogation manuelle DNS : nslookup

4.9 Interrogation manuelle DNS : nslookup

Syntaxe : nslookup [options] -rsoudre

% nslookup www.playboy.com Server: sunars1.formation.jussieu.fr Address: 134.157.253.1 Non-authoritative answer: Name: www.playboy.com Address: 206.251.29.10

La machine est dans le cache du DNS parce quelle a dj t rsolue dans un pass rcent. Cet utilitaire tombe en dsutude.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

202 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

4.10 Interrogation manuelle DNS : dig

Cest le remplaant de nslookup . Il est trs low level. Syntaxe : dig [options] -rsoudre Quelques ags utiliss : ag QR : Query ag AA : Authoritative Answer ag TC : TCP ag RD : Recursion Desired ag RA : Recursion Available ag AD : Authentic Data (DNSSEC) ag CD : Checking Disabled (DNSSEC)
1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z|AD|CD| RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

203 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

Exemple 1 : rcursivit jusqu la racine


% dig +trace www.formation.jussieu.fr ; <<>> DiG 9.2.1 <<>> +trace www.formation.jussieu.fr ;; global options: printcmd . 3600000 IN NS K.ROOT-SERVERS.NET. . 3600000 IN NS L.ROOT-SERVERS.NET. . 3600000 IN NS M.ROOT-SERVERS.NET. . 3600000 IN NS A.ROOT-SERVERS.NET. . 3600000 IN NS B.ROOT-SERVERS.NET. . 3600000 IN NS C.ROOT-SERVERS.NET. . 3600000 IN NS D.ROOT-SERVERS.NET. . 3600000 IN NS E.ROOT-SERVERS.NET. . 3600000 IN NS F.ROOT-SERVERS.NET. . 3600000 IN NS G.ROOT-SERVERS.NET. . 3600000 IN NS H.ROOT-SERVERS.NET. . 3600000 IN NS I.ROOT-SERVERS.NET. . 3600000 IN NS J.ROOT-SERVERS.NET. ;; Received 244 bytes from 127.0.0.1#53(127.0.0.1) in 5 ms fr. fr. fr. fr. 172800 172800 172800 172800 IN IN IN IN NS NS NS NS DNS.CS.WISC.EDU. NS1.NIC.fr. NS3.NIC.fr. DNS.INRIA.fr.
Administration UNIX ARS 2009 2010 Partie 3 204 / 803

c T.Besanon (v12.0.364)

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

fr. 172800 IN NS NS2.NIC.fr. fr. 172800 IN NS DNS.PRINCETON.EDU. fr. 172800 IN NS NS-EXT.VIX.COM. fr. 172800 IN NS NS3.DOMAIN-REGISTRY.NL. ;; Received 373 bytes from 193.0.14.129#53(K.ROOT-SERVERS.NET) in 273 ms jussieu.fr. jussieu.fr. jussieu.fr. ;; Received 345600 IN 345600 IN 345600 IN 166 bytes NS shiva.jussieu.fr. NS cendrillon.lptl.jussieu.fr. NS soleil.uvsq.fr. from 128.105.2.10#53(DNS.CS.WISC.EDU) in 337 ms

www.formation.jussieu.fr. 172800 IN CNAME serveur.formation.jussieu.fr. serveur.formation.jussieu.fr. 172800 IN A 134.157.46.129 formation.jussieu.fr. 172800 IN NS cendrillon.lptl.jussieu.fr. formation.jussieu.fr. 172800 IN NS shiva.jussieu.fr. formation.jussieu.fr. 172800 IN NS soleil.uvsq.fr. ;; Received 204 bytes from 134.157.0.129#53(shiva.jussieu.fr) in 217 ms

On voit bien le mcanisme de consultations des dirents nameservers.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

205 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

Exemple 2 : consultation la nslookup


% dig www.formation.jussieu.fr ; <<>> DiG 9.2.1 <<>> www.formation.jussieu.fr ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62679 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 3 ;; QUESTION SECTION: ;www.formation.jussieu.fr. IN A ;; ANSWER SECTION: www.formation.jussieu.fr. 172790 IN CNAME serveur.formation.jussieu.fr. serveur.formation.jussieu.fr. 172789 IN A 134.157.46.129 ;; AUTHORITY SECTION: formation.jussieu.fr. 172789 IN NS cendrillon.lptl.jussieu.fr. formation.jussieu.fr. 172789 IN NS shiva.jussieu.fr. formation.jussieu.fr. 172789 IN NS soleil.uvsq.fr.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

206 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

;; ADDITIONAL SECTION: shiva.jussieu.fr. 74075 IN A 134.157.0.129 soleil.uvsq.fr. 222426 IN A 193.51.24.1 cendrillon.lptl.jussieu.fr. 172790 IN A 134.157.8.24 ;; ;; ;; ;; Query time: 5 msec SERVER: 127.0.0.1#53(127.0.0.1) WHEN: Thu Aug 29 00:22:06 2002 MSG SIZE rcvd: 204

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

207 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

Exemple 3 : rponse en cas derreur


% dig cerise ; <<>> DiG 9.2.1 <<>> cerise ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 45146 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;cerise. IN A

;; AUTHORITY SECTION: . 10800 IN SOA A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM. 2002082801 1800 900 604800 8640 ;; ;; ;; ;; Query time: 206 msec SERVER: 127.0.0.1#53(127.0.0.1) WHEN: Thu Aug 29 00:22:13 2002 MSG SIZE rcvd: 98

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

208 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

Exemple 4 : prcision du type du record Premire fois :


% dig www.crlv.org SOA ; <<>> DiG 8.2 <<>> www.crlv.org 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: ;; www.crlv.org, type = SOA, class = IN ;; AUTHORITY SECTION: crlv.org.

2H IN SOA

ns.easynet.fr. hostmaster.easynet.fr. ( 2001020101 ; serial 1H ; refresh 30M ; retry 4W ; expiry 2H ) ; minimum

;; ;; ;; ;;

Total query time: 14 msec FROM: apollinaire.paris4.sorbonne.fr to SERVER: default -- 195.220.107.3 WHEN: Thu Aug 29 15:06:22 2002 MSG SIZE sent: 30 rcvd: 90
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 209 / 803

4 Domain Name Server (DNS)

4.10 Interrogation manuelle DNS : dig

Deuxime fois :
% dig www.crlv.org SOA ; <<>> DiG 8.2 <<>> www.crlv.org 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: ;; www.crlv.org, type = SOA, class = IN ;; AUTHORITY SECTION: crlv.org.

1h55m43s IN SOA

ns.easynet.fr. 2001020101 1H 30M 4W 2H )

hostmaster.easynet.fr. ( ; serial ; refresh ; retry ; expiry ; minimum

;; ;; ;; ;;

Total query time: 13 msec FROM: apollinaire.paris4.sorbonne.fr to SERVER: default -- 195.220.107.3 WHEN: Thu Aug 29 15:10:39 2002 MSG SIZE sent: 30 rcvd: 98

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

210 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.11 Record de type PTR

4.11 Record de type PTR

On peut aussi interroger un nameserver pour rsoudre des adresses :


% /usr/sbin/nslookup 193.252.79.61 Server: sunars1.formation.jussieu.fr Address: 134.157.253.1 Name: www.liberation.fr Address: 193.252.79.61

A rapprocher de :
% /usr/sbin/nslookup -query=ptr 61.79.252.193.in-addr.arpa Server: sunars1.formation.jussieu.fr Address: 134.157.253.1 Non-authoritative answer: 61.79.252.193.in-addr.arpa

name = www.liberation.fr from: = ns1.fth.net = ns2.fth.net 193.252.251.253 193.252.69.217


ARS 2009 2010 Partie 3 211 / 803

Authoritative answers can be found 79.252.193.in-addr.arpa nameserver 79.252.193.in-addr.arpa nameserver ns1.fth.net internet address = ns2.fth.net internet address =
c T.Besanon (v12.0.364)

Administration UNIX

4 Domain Name Server (DNS)

4.11 Record de type PTR

.
fr jussieu formation sunars1 134.157.253.1 253
Assurer la coherence

arpa inaddr 134 157

1 sunars1.formation.jussieu.fr

Une faute courante : oublier de mettre jour lentre relative ladresse IP de la machine.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

212 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.12 Fichier /etc/nsswitch.conf

4.12 Fichier /etc/nsswitch.conf

Certains systmes UNIX permettent de spcier quelles mthodes de rsolution utiliser (DNS, /etc/hosts , NIS) ainsi que lordre denchanement des mthodes. Sur Linux et Solaris, cf /etc/nsswitch.conf (voir page 566) :
... hosts: ... files nisplus nis dns

ou
... hosts: ... xfn nisplus dns [NOTFOUND=return] files

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

213 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.13 Dlgation dune partie de classe C

4.13 Dlgation dune partie de classe C

RFC 2317 http://www.lip6.fr/pub/rfc/rfc/rfc2317.txt.gz Avis : Mcanisme astucieux mais un peu compliqu mettre en uvre en pratique.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

214 / 803

4 Domain Name Server (DNS)

4.13 Dlgation dune partie de classe C

WebDNS Logiciel WebDNS : http://www-crc.u-strasbg.fr/webdns/ Principe : gnrer les donnes via une vraie base de donnes avec toutes les possibilits nes associes (par exemple une personne peut avoir le droit SQL de modier un et un seul record DNS dans la base SQL) Logiciel non rserv aux sous classes C. En utilisation sur le campus de Jussieu par exemple.

Avis : Approche trs tendance pour rsoudre un problme de fond dans le principe du DNS lors de vrais dployements. Avis 2 : Nouvel exemple de couplage une base de donnes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

215 / 803

4 Domain Name Server (DNS)

4.13 Dlgation dune partie de classe C

Serveur Web (client PostgreSQL)

HTTP/HTTPS

Internet
PostgreSQL DNS

named.boot PostgreSQL Base de donnes

fichiers de zones Serveur DNS (client PostgreSQL)

Serveur de donnes (PostgreSQL)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

216 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.14 Nom de machine : hostname

4.14 Nom de machine : hostname

Caractres autoriss : cf RFC 952 et RFC 1123 En rsum : lettres majuscules lettres minuscules chires caractre moins - caractre underscore _ http://www.lip6.fr/pub/rfc/rfc/rfc952.txt.gz http://www.lip6.fr/pub/rfc/rfc/rfc1123.txt.gz

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

217 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.15 WHOIS

4.15 WHOIS

WHOIS base de donnes des informations relatives lattribution des plages dadresses IP et des noms de domaines.

Exemple dun protocole Internet loup car les implmentations 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

218 / 803

4 Domain Name Server (DNS)

4.15 WHOIS

Quelques serveurs WHOIS : rs.internic.net whois.nic.fr ou via un interface WWW : http://www.afnic.asso.fr/cgi-bin/whois whois.ripe.net

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

219 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server4.16 (Windows : : ipconfig /displaydns, ipconfig /flushdns) (DNS)
4.16 (Windows : : ipconfig /displaydns, ipconfig /flushdns)

Une machine WINDOWS utilise un cache interne pour les requtes DNS.

On peut acher le cache interne par la commande ipconfig /displaydns .

On peut purger le cache interne par la commande ipconfig /flushdns .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

220 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.17 Espace de conance

4.17 Espace de conance

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

221 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.18 Un peu de documentation

4.18 Un peu de documentation

cours rseau ARS Cf http://www.isc.org/ et ftp://ftp.isc.org/isc/bind/ Cf http://www.cri.fr/ZoneCheck/ Cf http://www.univ-rennes1.fr/DNSRENATER/ Cf ftp://ftp.univ-rennes1.fr/pub/reseau/dns/exemple/ RFC 2317 Classless IN-ADDR.ARPA delegation http://www.uninett.no/navn/domreg.html ftp://ftp.jussieu.fr/jussieu/doc/local/dnsmail.ps.Z http://www.cri.ensmp.fr/people/keryell/cours DNS and BIND, 4th Edition, By Paul Albitz & Cricket Liu, 4th Edition April 2001, OReilly & Associates, Inc. 622 pages, $44.95

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

222 / 803

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.19 Annexe 1

4.19 Annexe 1

Ci joint dans la version imprime de ce cours, la liste des top level domains DNS.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

223 / 803

Generic top level domains http ://www.norid.no/domenenavnbaser/domreg.html Generic top level domains (gTLD)
.aero Aviation .asia Asia .biz Business Organizations .cat Catalan language and culture .com Commercial .coop Co-Operative Organizations .edu Education .gov US Government .info Open TLD .int International Organizations .jobs Jobs .mil US Department of Defense .mobi Mobile devices .museum Museums .name Personal .net Networks .org Organizations .pro Credentialed professionals and related entities .tel Publishing of contact data .travel Travelling

Country code top level domains (ccTLD) A


.ac .ad .ae .af .ag .ai .al .am .an .ao .aq .ar .as .at .au .aw .ax .az Ascension Island Andorra United Arab Emirates Afghanistan Antigua and Barbuda Anguilla Albania Armenia Netherlands Antilles Angola Antarctica Argentina American Samoa Austria Australia Aruba land Islands Azerbaijan .bf .bg .bh .bi .bj .bm .bn .bo .br .bs .bt .bv .bw .by .bz Burkina Faso Bulgaria Bahrain Burundi Benin Bermuda Brunei Darussalam Bolivia Brazil Bahamas Bhutan Bouvet Island Botswana Belarus Belize

C
.ca .cc .cd Zaire) .cf .cg .ch .ci Canada Cocos (Keeling) Islands Congo, Democratic republic of the (former Central African Republic Congo, Republic of Switzerland Cte dIvoire

B
.ba .bb .bd .be Bosnia and Herzegovina Barbados Bangladesh Belgium

.ck .cl .cm .cn .co .cr .cs .cu .cv .cx .cy .cz

Cook Islands Chile Cameroon China Colombia Costa Rica Czechoslovakia (former ? non-existing) Cuba Cape Verde Christmas Island Cyprus Czech Republic

.gs lands .gt .gu .gw .gy

South Georgia and the South Sandwich IsGuatemala Guam Guinea-Bissau Guyana

H
.hk .hm .hn .hr .ht .hu Hong Kong Heard and McDonald Islands Honduras Croatia Haiti Hungary

D
.de .dj .dk .dm .do .dz Germany Djibouti Denmark Dominica Dominican Republic Algeria

I
.id .ie .il .im .in .io .iq .ir .is .it Indonesia Ireland Israel Isle of Man India British Indian Ocean Territory Iraq Iran Iceland Italia

E
.ec .ee .eg .eh .er .es .et .eu Ecuador Estonia Egypt Western Sahara Eritrea Spain Ethiopia European Union

J
.je .jm .jo .jp Jersey Jamaica Jordan Japan

F
.fi .fj .fk .fm .fo .fr Finland Fiji Falkland Islands Micronesia Faroe Islands France

K
.ke .kg .kh .ki .km .kn .kp .kr .kw .ky .kz Kenya Kyrgyzstan Cambodia Kiribati Comoros Saint Kitts and Nevis Korea, Democratic Peoples Republic of Korea, Republic of Kuwait Cayman Islands Kazakhstan

G
.ga .gb .gd .ge .gf .gg .gh .gi .gl .gm .gn .gp .gq .gr Gabon United Kingdom Grenada Georgia French Guiana Guernsey Ghana Gibraltar Greenland Gambia Guinea Guadeloupe Equatorial Guinea Greece

L
.la .lb .lc .li .lk .lr .ls Lao Peoples Democratic Republic Lebanon Saint Lucia Liechtenstein Sri Lanka Liberia Lesotho

.lt .lu .lv .ly

Lithuania Luxembourg Latvia Libyan Arab Jamahiriya

M
.ma .mc .md .me .mg .mh .mk .ml .mm .mn .mo .mp .mq .mr .ms .mt .mu .mv .mw .mx .my .mz Morocco Monaco Moldova Montenegro Madagascar Marshall Islands Macedonia Mali Myanmar Mongolia Macau Northern Mariana Islands Martinique Mauritania Montserrat Malta Mauritius Maldives Malawi Mexico Malaysia Mozambique

.pm .pn .pr .ps .pt .pw .py

St. Pierre and Miquelon Pitcairn Puerto Rico Palestine Portugal Palau Paraguay

Q
.qa Qatar

R
.re .ro .rs .ru .rw Reunion Romania Serbia Russia Rwanda

S
.sa .sb .sc .sd .se .sg .sh .si .sj .sk .sl .sm .sn .so .sr .st .su .sv .sy .sz Saudi Arabia Solomon Islands Seychelles Sudan Sweden Singapore St. Helena Slovenia Svalbard and Jan Mayen Islands Slovakia Sierra Leone San Marino Senegal Somalia Surinam Sao Tome and Principe USSR (former) El Salvador Syrian Arab Republic Swaziland

N
.na .nc .ne .nf .ng .ni .nl .no .np .nr .nu .nz Namibia New Caledonia Niger Norfolk Island Nigeria Nicaragua The Netherlands Norway Nepal Nauru Niue New Zealand

T
.tc .td .tf .tg .th .tj .tk .tl .tm .tn .to .tp .tr The Turks and Caicos Islands Chad French Southern Territories Togo Thailand Tajikistan Tokelau Timor-Leste Turkmenistan Tunisia Tonga East Timor Turkey

O
.om Oman

P
.pa .pe .pf .pg .ph .pk .pl Panama Peru French Polynesia Papua New Guinea Philippines Pakistan Poland

.tt .tv .tw .tz

Trinidad and Tobago Tuvalu Taiwan Tanzania

.vi Virgin Islands U.S .vn Vietnam .vu Vanuatu

U
.ua .ug .uk .um .us .uy .uz Ukraine Uganda United Kingdom United States Minor Outlying Islands United States Uruguay Uzbekistan

W
.wf Wallis and Futuna Islands .ws Samoa

Y
.ye Yemen .yt Mayotte .yu Yugoslavia

V
.va .vc .ve .vg Holy See (Vatican City State) Saint Vincent and the Grenadines Venezuela Virgin Islands British

Z
.za .zm .zr .zw South Africa Zambia Zaire (non-existent, see Congo) Zimbabwe

4 Domain Name Server (DNS)

Chapitre 4 Domain Name Server (DNS)

4.20 Annexe 2

4.20 Annexe 2

Ci joint dans la version imprime de ce cours, la RFC 2870 sur les contraintes pour un serveur de noms de la racine.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

224 / 803

Network Working Group Request for Comments: 2870 Obsoletes: 2010 BCP: 40 Category: Best Current Practice

R. Bush Verio D. Karrenberg RIPE NCC M. Kosters Network Solutions R. Plzak SAIC June 2000

Root Name Server Operational Requirements Status of this Memo This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2000). Abstract As the internet becomes increasingly critical to the worlds social and economic infrastructure, attention has rightly focused on the correct, safe, reliable, and secure operation of the internet infrastructure itself. The root domain name servers are seen as a crucial part of that technical infrastructure. The primary focus of this document is to provide guidelines for operation of the root name servers. Other major zone server operators (gTLDs, ccTLDs, major zones) may also find it useful. These guidelines are intended to meet the perceived societal needs without overly prescribing technical details. 1. Background The resolution of domain names on the internet is critically dependent on the proper, safe, and secure operation of the root domain name servers. Currently, these dozen or so servers are provided and operated by a very competent and trusted group of volunteers. This document does not propose to change that, but merely to provide formal guidelines so that the community understands how and why this is done. All Rights Reserved.

Bush, et al. ^L

Best Current Practice

[Page 1]

RFC 2870

Root Name Server Operational Requirements

June 2000

1.1 The Internet Corporation for Assigned Names and Numbers (ICANN) has become responsible for the operation of the root servers. The ICANN has appointed a Root Server System Advisory Committee (RSSAC) to give technical and operational advice to the ICANN board. The ICANN and the RSSAC look to the IETF to provide engineering standards. 1.2 The root servers serve the root, aka ".", zone. Although today some of the root servers also serve some TLDs (top level domains) such as gTLDs (COM, NET, ORG, etc.), infrastructural TLDs such as INT and INADDR.ARPA, and some ccTLDs (country code TLDs, e.g. SE for Sweden), this is likely to change (see 2.5). 1.3 The root servers are neither involved with nor dependent upon the whois data. 1.4 The domain name system has proven to be sufficiently robust that we are confident that the, presumably temporary, loss of most of the root servers should not significantly affect operation of the internet. 1.5 Experience has shown that the internet is quite vulnerable to incorrect data in the root zone or TLDs. Hence authentication, validation, and security of these data are of great concern. 2. The Servers Themselves The following are requirements for the technical details of the root servers themselves: 2.1 It would be shortsighted of this document to specify particular hardware, operating systems, or name serving software. Variations in these areas would actually add overall robustness. 2.2 Each server MUST run software which correctly implements the IETF standards for the DNS, currently [RFC1035] [RFC2181]. While there are no formal test suites for standards compliance, the maintainers of software used on root servers are expected to take all reasonable actions to conform to the IETFs then current documented expectations. 2.3 At any time, each server MUST be able to handle a load of requests for root data which is three times the measured peak of such requests on the most loaded server in then current normal conditions. This is usually expressed in requests per second. This is intended to ensure continued operation of root services should two thirds of the servers be taken out of operation, whether by intent, accident, or malice.

Bush, et al. ^L

Best Current Practice

[Page 2]

RFC 2870

Root Name Server Operational Requirements

June 2000

2.4 Each root server should have sufficient connectivity to the internet to support the bandwidth needs of the above requirement. Connectivity to the internet SHOULD be as diverse as possible. Root servers SHOULD have mechanisms in place to accept IP connectivity to the root server from any internet provider delivering connectivity at their own cost. 2.5 Servers MUST provide authoritative responses only from the zones they serve. The servers MUST disable recursive lookup, forwarding, or any other function that may allow them to provide cached answers. They also MUST NOT provide secondary service for any zones other than the root and rootservers.net zones. These restrictions help prevent undue load on the root servers and reduce the chance of their caching incorrect data. 2.6 Root servers MUST answer queries from any internet host, i.e. may not block root name resolution from any valid IP address, except in the case of queries causing operational problems, in which case the blocking SHOULD last only as long as the problem, and be as specific as reasonably possible. 2.7 Root servers SHOULD NOT answer AXFR, or other zone transfer, queries from clients other than other root servers. This restriction is intended to, among other things, prevent unnecessary load on the root servers as advice has been heard such as "To avoid having a corruptible cache, make your server a stealth secondary for the root zone." The root servers MAY put the root zone up for ftp or other access on one or more less critical servers. 2.8 Servers MUST generate checksums when sending UDP datagrams and MUST verify checksums when receiving UDP datagrams containing a nonzero checksum. 3. Security Considerations The servers need both physical and protocol security as well as unambiguous authentication of their responses. 3.1 Physical security MUST be ensured in a manner expected of data centers critical to a major enterprise. 3.1.1 Whether or not the overall site in which a root server is located has access control, the specific area in which the root server is located MUST have positive access control, i.e. the number of individuals permitted access to the area MUST be limited, controlled, and recorded. At a

Bush, et al. ^L

Best Current Practice

[Page 3]

RFC 2870

Root Name Server Operational Requirements

June 2000

minimum, control measures SHOULD be either mechanical or electronic locks. Physical security MAY be enhanced by the use of intrusion detection and motion sensors, multiple serial access points, security personnel, etc. 3.1.2 Unless there is documentable experience that the local power grid is more reliable than the MTBF of a UPS (i.e. five to ten years), power continuity for at least 48 hours MUST be assured, whether through onsite batteries, on site power generation, or some combination thereof. This MUST supply the server itself, as well as the infrastructure necessary to connect the server to the internet. There MUST be procedures which ensure that power fallback mechanisms and supplies are tested no less frequently than the specifications and recommendations of the manufacturer. 3.1.3 Fire detection and/or retardation MUST be provided. 3.1.4 Provision MUST be made for rapid return to operation after a system outage. This SHOULD involve backup of systems software and configuration. But SHOULD also involve backup hardware which is preconfigured and ready to take over operation, which MAY require manual procedures. 3.2 Network security should be of the level provided for critical infrastructure of a major commercial enterprise. 3.2.1 The root servers themselves MUST NOT provide services other than root name service e.g. remote internet protocols such as http, telnet, rlogin, ftp, etc. The only login accounts permitted should be for the server administrator(s). "Root" or "privileged user" access MUST NOT be permitted except through an intermediate user account. Servers MUST have a secure mechanism for remote administrative access and maintenance. Failures happen; given the 24x7 support requirement (per 4.5), there will be times when something breaks badly enough that senior wizards will have to connect remotely. Remote logins MUST be protected by a secure means that is strongly authenticated and encrypted, and sites from which remote login is allowed MUST be protected and hardened. 3.2.2 Root name servers SHOULD NOT trust other hosts, except secondary servers trusting the primary server, for matters of authentication, encryption keys, or other access or

Bush, et al. ^L

Best Current Practice

[Page 4]

RFC 2870

Root Name Server Operational Requirements

June 2000

security information. If a root operator uses kerberos authentication to manage access to the root server, then the associated kerberos key server MUST be protected with the same prudence as the root server itself. This applies to all related services which are trusted in any manner. 3.2.3 The LAN segment(s) on which a root server is homed MUST NOT also home crackable hosts. I.e. the LAN segments should be switched or routed so there is no possibility of masquerading. Some LAN switches arent suitable for security purposes, there have been published attacks on their filtering. While these can often be prevented by careful configuration, extreme prudence is recommended. It is best if the LAN segment simply does not have any other hosts on it. 3.2.4 The LAN segment(s) on which a root server is homed SHOULD be separately firewalled or packet filtered to discourage network access to any port other than those needed for name service. 3.2.5 The root servers SHOULD have their clocks synchronized via NTP [RFC1305] [RFC2030] or similar mechanisms, in as secure manner as possible. For this purpose, servers and their associated firewalls SHOULD allow the root servers to be NTP clients. Root servers MUST NOT act as NTP peers or servers. 3.2.6 All attempts at intrusion or other compromise SHOULD be logged, and all such logs from all root servers SHOULD be analyzed by a cooperative security team communicating with all server operators to look for patterns, serious attempts, etc. Servers SHOULD log in GMT to facilitate log comparison. 3.2.7 Server logging SHOULD be to separate hosts which SHOULD be protected similarly to the root servers themselves. 3.2.8 The server SHOULD be protected from attacks based on source routing. The server MUST NOT rely on address or namebased authentication. 3.2.9 The network on which the server is homed SHOULD have inaddr.arpa service. 3.3 Protocol authentication and security are required to ensure that data presented by the root servers are those created by those authorized to maintain the root zone data.

Bush, et al. ^L

Best Current Practice

[Page 5]

RFC 2870

Root Name Server Operational Requirements

June 2000

3.3.1 The root zone MUST be signed by the Internet Assigned Numbers Authority (IANA) in accordance with DNSSEC, see [RFC2535] or its replacements. It is understood that DNSSEC is not yet deployable on some common platforms, but will be deployed when supported. 3.3.2 Root servers MUST be DNSSECcapable so that queries may be authenticated by clients with security and authentication concerns. It is understood that DNSSEC is not yet deployable on some common platforms, but will be deployed when supported. 3.3.3 Transfer of the root zone between root servers MUST be authenticated and be as secure as reasonably possible. Out of band security validation of updates MUST be supported. Servers MUST use DNSSEC to authenticate root zones received from other servers. It is understood that DNSSEC is not yet deployable on some common platforms, but will be deployed when supported. 3.3.4 A hidden primary server, which only allows access by the authorized secondary root servers, MAY be used. 3.3.5 Root zone updates SHOULD only progress after a number of heuristic checks designed to detect erroneous updates have been passed. In case the update fails the tests, human intervention MUST be requested. 3.3.6 Root zone updates SHOULD normally be effective no later than 6 hours from notification of the root server operator. 3.3.7 A special procedure for emergency updates SHOULD be defined. Updates initiated by the emergency procedure SHOULD be made no later than 12 hours after notification. 3.3.8 In the advent of a critical network failure, each root server MUST have a method to update the root zone data via a medium which is delivered through an alternative, non network, path. 3.3.9 Each root MUST keep global statistics on the amount and types of queries received/answered on a daily basis. These statistics must be made available to RSSAC and RSSAC sponsored researchers to help determine how to better deploy these machines more efficiently across the

Bush, et al. ^L

Best Current Practice

[Page 6]

RFC 2870

Root Name Server Operational Requirements

June 2000

internet. Each root MAY collect data snapshots to help determine data points such as DNS query storms, significant implementation bugs, etc. 4. Communications Communications and coordination between root server operators and between the operators and the IANA and ICANN are necessary. 4.1 Planned outages and other down times SHOULD be coordinated between root server operators to ensure that a significant number of the root servers are not all down at the same time. Preannouncement of planned outages also keeps other operators from wasting time wondering about any anomalies. 4.2 Root server operators SHOULD coordinate backup timing so that many servers are not offline being backed up at the same time. Backups SHOULD be frequently transferred off site. 4.3 Root server operators SHOULD exchange log files, particularly as they relate to security, loading, and other significant events. This MAY be through a central log coordination point, or MAY be informal. 4.4 Statistics as they concern usage rates, loading, and resource utilization SHOULD be exchanged between operators, and MUST be reported to the IANA for planning and reporting purposes. 4.5 Root name server administrative personnel MUST be available to provide service 24 hours a day, 7 days per week. On call personnel MAY be used to provide this service outside of normal working hours. 5. Acknowledgements The authors would like to thank Scott Bradner, Robert Elz, Chris Fletcher, John Klensin, Steve Bellovin, and Vern Paxson for their constructive comments.

Bush, et al. ^L

Best Current Practice

[Page 7]

RFC 2870 6. References

Root Name Server Operational Requirements

June 2000

[RFC1035] Mockapetris, P., "Domain names implementation and specification", STD 13, RFC 1035, November 1987. [RFC1305] Mills, D., "Network Time Protocol (Version 3) Specification, Implementation", RFC 1305, March 1992. [RFC2030] Mills, D., "Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI", RFC 2030, October 1996. [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, July 1997. [RFC2535] Eastlake, D. and C. Kaufman, "Domain Name System Security Extensions", RFC 2535, March 1999.

Bush, et al. ^L

Best Current Practice

[Page 8]

RFC 2870

Root Name Server Operational Requirements

June 2000

7. Authors Addresses Randy Bush Verio, Inc. 5147 Crystal Springs Bainbridge Island, WA US98110 Phone: +1 206 780 0431 EMail: randy@psg.com Daniel Karrenberg RIPE Network Coordination Centre (NCC) Singel 258 NL1016 AB Amsterdam Netherlands Phone: +31 20 535 4444 EMail: daniel.karrenberg@ripe.net Mark Kosters Network Solutions 505 Huntmar Park Drive Herndon, VA 220705100 Phone: +1 703 742 0400 EMail: markk@netsol.com Raymond Plzak SAIC 1710 Goodridge Drive McLean, Virginia 22102 +1 703 821 6535 EMail: plzakr@saic.com 8. Specification of Requirements The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Bush, et al. ^L

Best Current Practice

[Page 9]

RFC 2870 9.

Root Name Server Operational Requirements

June 2000

Full Copyright Statement Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.

Bush, et al.

Best Current Practice

[Page 10]

Chapitre 5

SSH

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

225 / 803

5 SSH

Chapitre 5 SSH

5.1 Introduction

5.1 Introduction

Voir cours de Frdrique BONGAT.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

226 / 803

Chapitre 6

Courrier lectronique

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

227 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.1 Composantes du systme du courrier lectronique

6.1 Composantes du systme du courrier lectronique

Cest un systme complexe dont la complexit crot sans cesse.

Il a de fortes interactions avec Internet, avec les Intranets.

De nombreuses implmentations sont disponibles (X400, SMTP, Microsoft Exchange, etc.).

Le systme est modulaire, son bon fonctionnement reposant sur des descriptions publiquement disponibles des dtails des dirents protocoles.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

228 / 803

6 Courrier lectronique

6.1 Composantes du systme du courrier lectronique

Rseau

Destinataire du courrier non local

Courriers destination dun utilisateur local

Transmission au facteur local

MTA

MDA
Distribution personnalise Bote aux lettres Emission dun courrier

Consultation des courriers

MUA

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

229 / 803

6 Courrier lectronique

6.1 Composantes du systme du courrier lectronique

Terminologie : MTA (Mail Transfer Agent agent de routage) En fonction de ladresse de destination, il passe le message un certain agent de transport. Plusieurs MTA existent : Sendmail, Postx MDA (Mail Delivery Agent agent de transport) Il reoit un message, une destination et se charge de lacheminement. Il est spcialis dans un type dacheminement. (synonyme mailer ) MUA (Mail User Agent agent utilisateur) Il sert la composition des messages quil envoie lagent de routage.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

230 / 803

6 Courrier lectronique

6.1 Composantes du systme du courrier lectronique

Normes utilises : RFC 822, description du format des messages RFC 821, description du protocole SMTP (Simple Mail Transfer Protocol) RFC 974, description de linteraction dun MTA avec le DNS RFC 1035 RFC 1123 Attention : documents techniques hermtiques la lecture complique Cf ftp://ftp.lip6.fr/pub/rfc/rfc/ Les problmes de mail sont adresser postmaster . Les MTA font lhypothse que cette adresse existe. Cette adresse doit tre lue par un humain.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

231 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.2 Sendmail

6.2 Sendmail

SENDMAIL : Conu en 1982, par Eric Allman (<eric@cs.berkeley.edu>) Site ociel http://www.sendmail.org/ Principal logiciel pour router les courriers des systmes UNIX rpandus Souple, puissant Sait sadapter aux nouveaux standards (aspects multimedia) Syntaxe dicile

Outils annexes simpliant la conguration : par exemple kit jussieu ftp://ftp.jussieu.fr/jussieu/sendmail/kit/kit-5.3.4.tar.Z ftp://ftp.jussieu.fr/jussieu/sendmail/kit/doc-kit-5.3.4.ps.Z

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

232 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.3 Sendmail plugins : MILTER

6.3 Sendmail plugins : MILTER

SENDMAIL soccupe 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 nimporte quoi qui na pas de rapport avec le routage de mails. Par contre, possibilit dinterfacer SENDMAIL des fonctionnalits externalises grce lAPI MILTER fourni par les dveloppeurs de SENDMAIL. Cf http://www.milter.org/ pour de la documentation ou des plugins.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

233 / 803

6 Courrier lectronique

6.3 Sendmail plugins : MILTER

MILTER = communication entre SENDMAIL et des programmes externes via des sockets UNIX.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

234 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.4 Postx

6.4 Postx

http://www.postfix.org Futur successeur de SENDMAIL certainement dans quelques annes. Une rexion sur SENDMAIL a conduit crire postx sous une forme non monolithique. Plusieurs dmons vont soccuper chacun dune tche bien prcise et nutilisent pour cela que le minimum de privilges systme 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 RBL access

virtual

deferred

relocated

pipe

UUCP, etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

235 / 803

6 Courrier lectronique

6.4 Postx

Le chier de conguration est une succession daectation de valeurs des variables. Approche radicalement dirente de celle de SENDMAIL plus proche dune programmation de la conguration. Approche de postx identique celle du kit jussieu pour SENDMAIL (ou vice versa). Possibilit de modier on the y le comportement de postx. Par exemple ltablissement dune connexion PPP ou lors de sa cloture, on peut depuis le script PPP dire postx dchanger les mails maintenant avec lextrieur. Avec SENDMAIL, il faudrait arrter SENDMAIL, mettre en place une nouvelle conguration sendmail.cf , relancer SENDMAIL, ensemble de manuvres lourdes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

236 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.5 Postx plugins

6.5 Postx plugins

Il existe un mcanisme MILTER de SENDMAIL dans POSTFIX.

Utilisation de sockets UNIX aussi.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

237 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.6 Boites aux lettres : folders

6.6 Boites aux lettres : folders

Deux formats classiques de folders sous UNIX : folder MBOX folder MAILDIR

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

238 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.7 Boites aux lettres : folder MBOX

6.7 Boites aux lettres : folder MBOX

Un chier stocke tous les mails reus du MDA et manipuls par les MUA :

Classiquement /var/mail/$USERNAME . Problmes de verrouillage du chier lors des lectures/critures, de manipulation de grosses boites aux lettres, etc.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 239 / 803

6 Courrier lectronique

6.7 Boites aux lettres : folder MBOX

Structure dun mail :

From samag@neodata.com Mon Nov 19 21:27:41 2001 Return-Path: <samag@neodata.com> Received: from localhost (localhost [127.0.0.1]) by apollinaire.paris4.sorbonne.fr (8.11.6/8.11.6) with ESMTP id fAJKRfY03543 for <Thierry.Besancon@localhost>; Mon, 19 Nov 2001 21:27:41 +0100 (MET) Received: from sorbon.sorbonne.fr [195.220.107.3] by localhost with POP3 (fetchmail-5.9.4) for Thierry.Besancon@localhost (single-drop); Mon, 19 Nov 2001 21:27:41+0100 (MET) Received: from neodata.com ([206.27.153.2]) by sorbon.sorbonne.fr (8.11.0/jtpda-5.3.3) with ESMTP id fAJKQnO06486 for <Thierry.Besancon@paris4.sorbonne.fr>; Mon, 19 Nov 2001 21:26:50+0100 (MET) Received: from bennett (bennett.neo.comm.eds.com [192.85.230.134]) by neodata.com (8.10.2+Sun/8.9.1) with ESMTP id fAJKRBK17328; Mon, 19 Nov 2001 13:27:11 -0700 (MST) Received: by bennett (8.8.8+Sun/SMI-SVR4) id NAA14733; Mon, 19 Nov 2001 13:26:57 -0700 (MST) Date: Mon, 19 Nov 2001 13:26:57 -0700 (MST) From: samag@neodata.com X-Gnus-Mail-Source: directory:~/Mail/incoming/ Message-Id: <200111192026.NAA14733@bennett> To: Thierry.Besancon@paris4.sorbonne.fr Subject: NEW ORDER Suite sur transparent suivant

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

240 / 803

6 Courrier lectronique

6.7 Boites aux lettres : folder MBOX

Structure dun mail (suite) :


X-AntiVirus: scanned for viruses by AMaViS 0.2.1 (http://amavis.org/) 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 rsum : une ligne commencant par From (attention lespace suivant le From) autres enttes une ligne blanche marquant la n des enttes et le dbut du corps du mail corps du mail une ligne blanche aprs le corps du mail
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 241 / 803

6 Courrier lectronique

6.7 Boites aux lettres : folder MBOX

Structure dun mail (suite) :

Attention : si le corps du message contient une ligne commencant par From , la ligne est transforme en >From . Pourquoi ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

242 / 803

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 N 2 besancon@example.c Fri Aug 25 01:45 32/1175 N 3 besancon@example.c Sat Aug 26 01:45 32/1175 N 4 me@localhost.com Mon Aug 28 00:27 44/1624 ---> 4 From apache@example.com Mon Aug 28 00:27:00 2006 Date: Mon, 28 Aug 2006 00:24:59 +0200 (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,

Output from "cron" comman Output from "cron" comman Output from "cron" comman Account details for besan

Thank you for registering at drupal. You may now log in to http://drupal.imj.loc username: besancon c T.Besanon (v12.0.364) password: urM87U9eFi
Administration UNIX ARS 2009 2010 Partie 3 243 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

6.8 Boites aux lettres : folder MAILDIR

Un chier stocke un seul mail.

Plus de problme de verrouillage du chier lors des lectures/critures. http://www.courier-mta.org/mbox-vs-maildir/


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 244 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

En rsum : une ligne commencant par From (attention lespace suivant le From) autres enttes une ligne blanche marquant la n des enttes et le dbut du corps du mail corps du mail Attention : si le corps du message contient une ligne commencant par From , la ligne nest pas transforme. Pourquoi ? pas de ligne blanche aprs le corps du mail. Pourquoi ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

245 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

Comment stocker les mails au format MAILDIR ? La structure dun folder MAILDIR appel FOLDER implique plusieurs rpertoires : FOLDER/new FOLDER/cur (cur pour current) FOLDER/tmp Le MDA place un nouveau mail dabord par le rpertoire FOLDER/tmp temporairement le temps de calculer un nom de chier unique. Le nouveau mail est ensuite plac dans le rpertoire FOLDER/new par le MDA. La lecture dun mail entraine son dplacement de FOLDER/new vers FOLDER/cur avec ajout dun suxe indiquant les oprations faites par le MUA sur le mail.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

246 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

Le nom du chier stockant un mail doit tre unique et en gnral a le format time.pid.host . Voir : http://www.qmail.org/man/man5/maildir.html http://cr.yp.to/proto/maildir.html Par exemple :
1185708514.M707068P58898V0700FF01I06974E18_1.mail. .example.com,S=989 :2,S avec : 1185708514 = temps depuis lorigine en secondes ;
ctime(1185708514) = Sun Jul 29 13:28:34 2007 M707068 = 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

1185188613.000035.mbox:2,RS ; ici cest le rsultat dune

conversion par le programme MB2MD


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 247 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

Aprs manipulation par le MUA, on ajoute un suxe :2,flags avec ag : ag P (Passed) = mail resent/forwarded/bounced ag R (Replied) = mail rpondu ag S (Seen) = mail lu ag T (Trashed) = mail mis la poubelle ag D (Draft) = mail brouillon ag F (Flagged) = mail tagg pour usage ultrieur Par exemple :
1185708514.M707068P58898V0700FF01I06974E18_1.mail. example.com,S=989 :2,S 1185188613.000035.mbox :2,RS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

248 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

Possibilit de folders MAILDIR imbriqus. Par exemple : ce qui donnera sous UNIX les rpertoires .system.sa-blacklist/ , .system.sa-false-negative/ , .system.sa-false-positive/ , .system.sa-whitelist/ (avec les classiques sous-rpertoires cur , new et tmp )

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

249 / 803

6 Courrier lectronique

6.8 Boites aux lettres : folder MAILDIR

On peut convertir un folder MBOX vers un folder MAILDIR : http://batleth.sapeinti-sat.org/projects/mb2md.html

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

250 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.9 Protocole de consultation : POP

6.9 Protocole de consultation : POP

SMTP

Serveur de mails

POP

download des mails

Client POP Mail folders

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

251 / 803

6 Courrier lectronique

6.9 Protocole de consultation : POP

POP Post Oce Protocol ; RFC ? ? ?

Port POP : 110

Port POP + SSL : 995

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

252 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.10 Protocole de consultation : IMAP

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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

253 / 803

6 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

254 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.11 Comparaison de session POP et IMAP xxx

6.11 Comparaison de session POP et IMAP xxx

Comparatif de session POP et IMAP : (extrait de http://cri.univ-lyon2.fr/doc/ImapMaisCEstTresSimple.html )


% telnet pop.example.com 110 +OK POP3 server ready USER pdupont +OK Name is a valid mailbox PASS XXXXXXXX +OK Maildrop locked and ready % * . . telnet imap.example.com 143 OK IMAP4 server ready LOGIN pdupont XXXXXXXX OK User logged in

LIST +OK scan listing follows 1 169 2 811 3 813


c T.Besanon (v12.0.364)

. * * * * * * . . * * * .

SELECT INBOX FLAGS (Answered Flagged Draft Deleted Seen) OK [PERMANENTFLAGS (Answered Flagged Draft Dele 3 EXISTS 3 RECENT OK [UNSEEN 1] OK [UIDVALIDITY 901006906] 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
ARS 2009 2010 Partie 3 255 / 803

Administration UNIX

6 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 .

. 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

DELE 1 +OK message deleted

QUIT +OK Connection closed by foreign host.

. UID STORE 1425 +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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

256 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.12 Antivirus

6.12 Antivirus

Plusieurs antivirus sont disponibles sous UNIX : CLAMAV (gratuit) ; http://www.clamav.org SOPHOS (commercial) ; http://www.sophos.com nombreux autres logiciels commerciaux

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

257 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.13 Antispam

6.13 Antispam

Plusieurs antispam sont disponibles sous UNIX : BOGOFILTER (gratuit) ; http://bogofilter.sourceforge.net DSPAM (gratuit) ; http://dspam.nuclearelephant.com SPAMASSASSIN (gratuit) ; http://www.spamassassin.org AMAVIS (gratuit) ; http://www.amavis.org nombreux autres logiciels commerciaux

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

258 / 803

6 Courrier lectronique

6.13 Antispam

Humour :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

259 / 803

6 Courrier lectronique

Chapitre 6 Courrier lectronique

6.14 Annexe 1

6.14 Annexe 1

Ci joint dans la version imprime de ce cours, un document sur la conception dune messagerie.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

260 / 803

The following paper was originally published in the Proceedings of the USENIX Symposium on Internet Technologies and Systems Monterey, California, December 1997

A Highly Scalable Electronic Mail Service Using Open Systems

Nick Christenson, Tim Bosserman, David Beckemeyer EarthLink Network, Inc.

For more information about USENIX Association contact: 1. Phone: 510 528-8649 2. FAX: 510 548-5738 3. Email: office@usenix.org 4. WWW URL: http://www.usenix.org/

A Highly Scalable Electronic Mail Service Using Open Systems


Nick Christenson, Tim Bosserman, David Beckemeyer EarthLink Network, Inc. Information Technology Pasadena, CA 91107 npc@earthlink.net, tboss@earthlink.net, david@earthlink.net

Abstract
Email is one of the most important of the Internet services. As a very large, fast growing, Internet Service Provider, EarthLink requires a robust and powerful email architecture that will support rapid expansion. This paper describes such an architecture, its motivations, its future, and the di culties in implementing a service on this scale.

1 Introduction
Electronic mail has a special standing in the ranks of Internet services. Of the direct services an ISP provides to its subscribers, email is certainly one of the most important. As a consequence, it requires special attention to keep email running as well as expected. Additionally, there are several issues that are far more problematic for email than for other services. Email typically requires more resources than any other service. This is because the storage needs, the processing power, and the bandwidth requirements are extreme. Furthermore, there are problems regarding authentication and provisioning that are often not required for other services. Despite its criticality, little work has been made available publicly on robust, large scale electronic mail systems. The few references we have found, such as Grubb96 , have neither addressed what we consider to be the key problems, nor have they been able to scale to the capacity that we require. This isn't too surprising. Providing email service for hundreds of thousands or millions of users is a problem nobody had to solve before the advent of the national or international Internet or on line service provider. Until now, none of these organizations have chosen to come forward and publish their service architecture. Additionally, the architecting of very high performance truly distributed services is still in its infancy. The issues of distributed storage and load

balancing have few, if any, available solutions that are both robust enough and perform satisfactorily for our purposes. The astute reader will certainly notice that the architecture we describe here bears a great deal of similarity to what we have already described as our news service architecture Christ97a . This, of course, is no accident. We've found a general set of principles which we have adapted to meet the needs of both services, and many of the important issues discussed in that article are equally applicable here. In the design of any of our service architectures, we have several requirements that must be met before we would consider deployment. For email, the rst of these is message integrity. It is absolutely essential that messages, once they are accepted by our system, be delivered to their proper destination intact. Second, the system must be robust. That is, in as much as is possible, the system should survive component outages gracefully. Additionally, the entire system design should minimize the number of single points of failure. Third, the system must be scalable. When EarthLink began deployment of the current architecture, in January of 1996, we had about 25 000 subscribers. In September of 1997, EarthLink provided email service for over 350 000 subscribers with a 99.9+ service uptime record. In fact, we expect the current system to scale to well over 1 000 000 users without signi cant alteration of the architecture as presented here. Moreover, one should be able to accomplish the scaling of any service with a minimum of outage time, preferably with none. In all cases the performance of the service must be at least adequate, and the service must be maintainable. Problems must be easily recognizable, and it should be obvious, whenever possible, what is the cause of the outage. Further, its solution should be easy to implement and, in the meantime, the impact of the outage should be small and locally con ned. Finally, we would like the service architecture to be cost e ective, not just in terms of
; ; ; ;

equipment acquisition, but, more critically, in terms of maintenance.

2 Architecture Description
There are several logically distinct components which make up the operation of EarthLink's email service. The rst, which we call the front end" of our email system front de ned as the portion which receives data from the Internet are the systems that receive mail for username@earthlink.net". These machines are also called the SMTP machines. The second component is the POP service, the servers to which subscribers connect to retrieve their mail. These same computers also send the mail originating from our subscribers to the Internet. At the time of this writing, EarthLink has not deployed an IMAP service. The third component is the le servers, which do nothing except store the mailboxes, mail queues, and auxiliary les associated with the email service. The fourth component is the authentication database which holds the username password information, information on where mailboxes are stored, and data on auxiliary email services to which that account may have subscribed. This architecture is demonstrated graphically in Figure 1 included at the end of this paper. All the servers we use in this architecture, except for the le servers, are running some avor of Unix. With the exception of our le servers and the authentication database servers, our architecture calls for all of the servers involved in our email service as well as all our other services to be dataless. That is, each server should store on local disk its own operating system, service software, swap space, temporary le storage for nonessential data|and nothing else. This allows us to add or subtract servers from service with which the Internet or our subscribers interact without a ecting the data stored.

2.1 Front End


Mail Exchange MX DNS records for earthlink.net and mail.earthlink.net point, with high preference, to a series of servers in Round Robin. These servers all run a recent version of the freely distributable stock sendmail Allman86 as their SMTP MTA Simple Mail Transfer Protocol, Mail Transfer Agent; see Postel82 for details. Writing and maintaining an SMTP MTA is a di cult and expensive task. Therefore, we have geared our architecture to allow us to use sendmail without any source modi cation. Since sendmail typically un-

dergoes several signi cant revisions during each calendar year, it's important that we be able to use sendmail in a form as close to the stock distribution as possible, since updating a modi ed sendmail every few months to re ect local modi cations would be about as time consuming as maintaining our own MTA. An electronic mail message to be delivered to username@earthlink.net" follows the DNS MX records for earthlink.net. We maintain several machines with high precedence MX records using Round Robin DNS to distribute the load. If any of these machines become overloaded or otherwise unavailable, we maintain a single machine with a lower precedence MX record to act as a spillway. This server does not deliver email directly, but it does hold it for forwarding to the rst available front end server. Our backup MX machine could easily be con gured to deliver email itself, but we have chosen not to do this to protect against the possibility of transient errors in the mailbox locking process. This way, if the locking scheme becomes overloaded, we have a server that can still accept mail on behalf of the earthlink.net" domain. It is our intention to minimize at all times the amount of email queued around the Internet for delivery to EarthLink. The key to using the stock sendmail in our architecture is to insure that the sendmail program itself attempts to do no authentication or lookup of user names. This is actually quite simple to do. One merely must remove the w" ag in the entry for the local delivery agent in the sendmail.cf le. Even if one runs a standard authentication scheme, we've found that this modi cation provides a considerable performance boost if one has a large, unhashed i.e. linear lookup passwd le, and the service is not completely inundated with email intended for non existent users. The portion of the mail reception service that we did modify heavily was the mail delivery agent. This is the program that receives the mail from the MTA and actually appends it to the user's mailbox. On most systems, this program is bin mail. The sendmail distribution provides a delivery agent called mail.local which we have rewritten to use our authentication methods and understand how we store mailboxes. This is a small program which hasn't changed substantially in years, so it is easy to maintain; hence, it is a better place to add knowledge about our email architecture than a moving target like sendmail. In addition to authentication and mailbox location, the mail delivery agent also knows about mailbox quotas which we impose on our subscribers. If

the current mailbox size is over the quota for that user, the default being 10 MB, then the message is bounced back to the MTA with reason, User npc, mailbox full." In addition to preventing resource abuse on the part of subscribers, this also helps mitigate possible damaging e ects of mail bombing by malicious people on the Internet. We believe that a 10 MB quota is quite generous, especially considering over a 28.8 modem using very high quality line speeds and no network bottlenecks, one could expect to take over an hour to download the contents of a 10 MB mailbox.

tation we started with was Qualcomm's POP daemon version 2.2, although like mail.local, we have modi ed it substantially. In the near future, we plan to completely rewrite the POP daemon tuned for efciency in our environment implementing many of the lessons learned from developments in Web server software.

2.3 Mailbox Storage


On a conventional Unix platform, mailboxes are typically stored in var mail or var spool mail. The passwd le, used to store valid user names for incoming mail and to authenticate POP connections, is usually located in etc, and mail which cannot be delivered immediately is stored in var spool mqueue. This is where our mail architecture started out as well, but we made some signi cant changes as we went along. As with Usenet news, we use the Network Appliance Hitz95 family of servers as our network le storage for essentially the same reasons: Very good performance, high reliability of the systems, easy maintenance, and the advantages provided by the WAFL lesystem Hitz94 . Due to performance considerations, the spool is split across several le servers and each is mounted on the SMTP and POP servers as var mail, where  is the number of the mount point, in single digits as of this writing. Currently, we're using version 2 of the NFS protocol. While version 3 does give some signi cant performance bene ts, we give it all back because of the implementation of the READDIRPLUS procedure Callag95 which prefetches attribute information on all les in that directory, whether we need them or not. Since we store a large number of les in the same directory and are only interested in operating on one of them at a time, this is signi cant overhead that we don't need. On balance, for our email system, the performance di erence between versions 2 and 3 of the NFS protocol is so small as to defy precise measurement. We typically change it whenever we suspect the current version might be responsible for some strange behavior we notice. The NFS version has never turned out to be the problem, so we usually leave that version in place until we feel the need to change it again in order to eliminate it as a factor in some other problem we face. Even though the Network Appliance's WAFL lesystem provides excellent protection against the performance penalties one normally encounters when there are very large numbers of les in a single

2.2 POP Daemon


What we call the back end" of our architecture is a set of machines using Round Robin DNS which act as the POP servers. They are the targets of the A records, but not the MX records, for earthlink.net and mail.earthlink.net. These are the servers to which the subscribers connect to retrieve and send email. If these machines receive email bound for user@earthlink.net from our subscribers, Internet machines compliant with the SMTP protocol must follow the MX records and send this message to a front end machine, these messages are redirected to our SMTP machines at the front end. The POP servers do no local delivery. They do, however, deliver directly to the Internet. We've debated the notion of having the POP servers forward mail on to yet another set of servers for Internet delivery, but have thus far elected against it. The bene t to doing this would be further compartmentalization of physical server function by logical operation, which we consider to be inherently good. We'd also reduce the likelihood of POP session slowdowns in the case that a subscriber oods the server with an inordinate amount of mail to be delivered. If the POP and Internet delivery functions were separate, the POP server would expend very few resources to hand this mail o to the delivery servers, whereas it would otherwise be required to try to send and possibly queue this mail itself. On the other hand, we don't observe this being a signi cant problem. Additionally, if we had a separate Internet delivery service within our mail architecture, we'd have to deploy an additional machine to maintain our complete N+1 redundancy to every component, at additional cost. Someday, we probably will make such a separation, but it does not seem to be justi ed for the present volume. Like the delivery agent, the POP daemon must also know about both our modi ed authentication system and mailbox locations. The base implemen-

directory using most other le systems, there are still signi cant advantages to breaking them up further. Since we have more les and require more storage and throughput than we can realize with any one le server, we need to split the spool up and provide some mechanism to locate mailboxes within this tree. So, we create a balanced hash for each mailbox over 319 possible subdirectories the prime base of the hash and divide these directories over the number of le servers that compose the spool. Thus, a path to a mailbox may look something like var mail2 00118 npc. The POP daemon and the local delivery agent are the only parts of the mail system that need to know about these locations. Once we have this mechanism for multiple locations of mailboxes in place, we are able to extend this to allow us to dynamically balance the mailboxes or expand capacity. In addition to the notion of the proper" location of each mailbox, both mail.local and popper the POP daemon understand the notion of the old" mailbox location. If the system receives email for a given mailbox, mail.local checks the proper" location for the mailbox, and if it nds it there, appends the message in the normal manner. If the mailbox isn't there, it checks the old" location for the mailbox. If it is found there, mail.local locks the mailbox in both locations, moves it to the new location and appends the message in the normal manner. If the mailbox exists in neither place, it creates a new mailbox in the proper" location. The POP daemon also knows this information. It looks in the proper" location rst, and if it is not there, it consults the old" location. In either case, it operates on the mailbox entirely in the place where it was found. Only mail.local actually moves the mailbox. We felt that it would be better to con ne the mailbox moving logic in the simpler of the two programs. Because the mailbox can only be in one of the two places and the delivery agent and POP daemon use a common locking system described below, there's no danger of confusion as to the mailbox location. The data on what constitutes the old" and proper" mailbox locations are kept in the authentication database explained below, and this information is returned to the client process when authentication information is accessed. This feature has a major bene t for our mail system. This allows us to move large numbers of mailboxes around without interrupting service. For example, if we have three le servers containing mailboxes and they are either getting to be full or running out of bandwidth capacity, we can create a new mount point, var mail4 for instance, mount a new

le server on the mail servers, create the hash value subdirectories that will reside there, and then slide a new mail.local and popper in place POP daemon rst! that know which of the subdirectories from each of the rst three le servers will now be housed on the fourth. Then, as mailboxes receive new mail, they are moved onto the new le server. After a few hours, days, or weeks depending on how much of a hurry we're in, we can start a second process of individually locking and moving mailboxes independent of any other activity on the systems. Thus, we have now expanded our email system without any downtime.

2.4 Authentication
One thing we quickly realized is that the standard Unix authentication systems were wholly inadequate for a service of this magnitude. The rst problem one runs into is that depending on the speci c operating system, one is typically con ned to between 30 000 and 65 535 distinct user identities. Fortunately, since none of these users have shell access to these servers or any access other than POP access, we can have a single UID own every one of these mailboxes as long as the POP daemon is careful not to grant access to other mailboxes without re authenticating. While this postpones several problems, it isn't su cient by itself to scale as far as we'd like. First, several Unix operating systems behave quite strangely, not to mention inappropriately, when the passwd le exceeds 60 000 lines. This isn't completely unexpected|after all how many OS vendor test suites are likely to include these cases| but some of these problems manifest themselves a great distance from the passwd le and, thus, can be di cult to track. Just as important, when the passwd le gets this large, the linear lookups of individual user names become expensive and time consuming. Therefore, the rst thing we did was make a hashed passwd like le using the Berkeley NEWDB scheme Seltze91 that both popper and mail.local would consult for authentication. This eliminated the need to carry a large passwd le and greatly increased performance of the system. A separate machine working in a tight loop continually rebuilt the hashed passwd le as the text le was continually being modi ed by the the new account provisioning system. The next logical extension of this was to store the passwd le in a SQL database and replace getpwnam calls with SQL equivalents. This provides another quantum improvement. First, this
; ; ;

eliminates the necessity of continually rebuilding the hash le from the at le, with savings in processor and delay times for user account modi cation. Second, this database may be used by other applications including RADIUS Rigney97 , Usenet news, etc.... Third, it's a logical place to store additional important information about that account. For example, when a username lookup by mail.local or a username password pair is authenticated for popper, the old" and proper" mailbox locations are returned to the application rather than having to be stored in at les on the system or hardcoded into the respective binary. We also intend to use this database as a repository for a great deal more information, for example storing variable mailbox quotas and lists of domains from whom to refuse mail on a user by user basis, etc.... Obviously, this database is critical to not only the operation of our electronic mail system, but to other components of our overall service architecture as well. If the authentication service isn't operating, electronic mail comes to a halt. Because of this, we have taken special pains to make certain that this application is always on line by using a clustered system with failover using a dual attached storage unit for the database to meet our high availability requirements. If it becomes necessary, we can still fail over to the old common hashed passwd le with only a marginal loss of functionality and performance.

small for our purposes. We can routinely require thousands of outstanding lock requests on a given NFS mounted lesystem at any one time, and few commercial solutions have lock tables large enough and or lock table lookup algorithms fast enough to meet our needs.

Today
Therefore, wherever possible, we use the le system to perform locking. This consists of requesting an open system call to create a new lock le with the O EXCL ag of a le of a predetermined name, typically mailboxname.lock, in a given location, which would typically be the mail spool. In our case, in order to keep the spool directory sizes down as much as possible and performance as high as possible, we store these les on their own shared le system. This may set o alarms in the heads of those familiar with NFS. One might well ask, How can you be certain that this is atomic on an NFS system? How do other clients know that one has locked a given le?" Recent implementations of NFS client software ignores the attribute cache on open calls which attempt to exclusively create a new le. Note, however, that other open calls do not ignore the attribute cache. This means that if a process's exclusive open on the lock le succeeds, that process has successfully locked that le. This allows us to use le locking on the mailboxes, as long as we are mortally certain that all NFS clients operate in exactly the same way. One can nd both NFS v2 and v3 implementations that behave this way. It cannot be overstated how important it is to be certain that all NFS clients behave in this manner. It is always possible that the process which creates the lock will die without having the opportunity to remove it. For this reason, all processes creating locks must touch the lock les to update their attributes periodically so that if these processes die, after a certain amount of time other processes will know that an existing lock is no longer valid and can be eliminated. Therefore, we need a function that, again, will bypass the cache and be guaranteed to immediately update the attributes on the lock le. Let us suppose that one process on one NFS client has created a lock on the mailbox npc". Let us also suppose that a process on a di erent NFS client then tried to lock that mailbox immediately afterwards and discovered the existing lock, as it must. It's always possible that the rst process has somehow died, so it's important to understand how long the second process must wait before it can assume that

2.5 File Locking


In any distributed system, concurrency issues are of paramount importance. In our email system, these manifest themselves in terms of le locking. It is so important, we have given the topic its own section in this paper to discuss the issues which the implementor faces.

Yesterday
For data stored on local disk, flock su ces to ward against two processes attempting to process the same message or modify the same mailbox at the same time. Since all of our persistent data is accessed over NFS, this presents some signi cant problems for us. When using flock on an NFS mounted le system, these calls get translated to requests via rpc.lockd. Now, lockd isn't the most robust le locking mechanism ever devised. It isn't advisable to bank on lockd working entirely as advertised. In addition to this, many systems have lockd tables too

the rst process no longer exists, at which time it can delete the lock le, lock the le itself, and perform operations on that mailbox. Again, let us suppose that all the NFS clients are set to refresh their mailbox lock every ve minutes, and that the NFS attribute cache is set on each client to be three minutes. One scenario is for a process on client1 to successfully lock the mailbox and then have client2 immediately attempt to lock the same mailbox and fail. At this point, the information on the locked mailbox is saved for three minutes, the duration of the attribute cache, after which client2 gets the same attribute information as before, because ve minutes has not elapsed, therefore client1 has not yet refreshed the lock. At the ve minute mark, client1 refreshes the lock le using utime, since it also bypasses the NFS cache and operates synchronously on the lock le, but client2 has not noticed because it will be looking at the attributes in its cache until the six minute mark, when its cache expires, and it can now gets the updated information. This is represented graphically in Figure 2.
client1 locks mbox client2 attempts to get lock Attribute cache on client2 expires client2 gets same lock info client1 refreshes lock client 2 notices new lock

concerns. If the le servers ever get saturated with requests, the server can seem to disappear" to client processes for many seconds or even minutes. This can happen as part of normal subscriber growth if one does not upgrade the capacity to handle load before it is needed. In these circumstances, problems usually manifest themselves as a sudden change in performance response from acceptable to unacceptable over a very small change in load. The mathematicians would call this a catastrophic response, where ...gradually changing forces produce sudden e ects." Zeeman77 If a le server's load is near, but not at the critical point, it can be pushed over the edge by a sudden change in the pro le of normal email use or by a small number of malicious or negligent individuals.
client1 creates lock client1 dies client2 attempts to get lock lock expires client2 learns that lock expires

0 1 2 3 4 5 6 7 8 minutes Figure 3

0 1 2 minutes

Figure 2

The worst case scenario is presented in Figure 3. Here we have client1 creating a lock on a mailbox and then immediately dying. Just before the lock is scheduled to be updated, client2 attempts to lock the mailbox and fails. Client2 cannot learn that the lock hasn't been updated until just before the eight minute mark, at which point it has license to remove the lock le and proceed with its actions. Unfortunately, this potentially gives us a window of eight minutes in which real users may not be able to access their mailboxes under pathological conditions. For example, if the subscriber interrupts a POP session at the wrong moment, the POP daemon on the mail server may exit without cleaning up its lock le. Further, we explain below why we must delay even longer than this to allow for other

It is self evident that one wants to provide enough surplus performance to prevent small changes from breaking the performance envelope, and certainly we strive for this, yet it is not always possible. As an example, consider a two week period in August 1996 where the total volume of email EarthLink was called upon to handle doubled for reasons that are still not fully understood. While not routine, these events are not uncommon in the ISP business and, because the subscriber has a much greater ability to impact service, represent a fundamental di erence between providing Internet services and, for example, providing electric power or dial tone service. In any case, when one enters into one of these catastrophic regimes, one often encounters pathologic behavior on the part of any or all of the components of the service. Client requests can come too fast for the servers to handle; consequently the RPC packets can get dropped before they are processed. This can result in retransmissions by multiple clients, and on top of an already saturated system, the problem is compounded.

Let us suppose that we have a saturated system where the client base demand is 105 of the server's capacity to deliver it over a given period of time, not counting the load put on the server because of retransmissions. Each of these clients will now retransmit their requests after a number of tenths of seconds speci ed by the timeo value in the etc vfstab or equivalent le. If this request does not receive a response, the client waits for twice timeo and retransmits again. This process is repeated until the value of the retry variable is reached. If retry is exceeded, then the client prints a message, typically NFS server raid not responding, still trying," and continues to retry at the maximum retry value. This maximum value will never exceed 30 seconds Stern91 . Under these conditions, we cannot achieve a steady state" condition, the amount of tra c grows, quite dramatically, without bound until something breaks. If this condition were to persist for 30 minutes, at this time as much as 25 of the requests sent to the servers may be over 5 minutes old. Note that this represents a true pathological condition, it's highly unlikely that a client machine would either be able to maintain this load given the lack of responsiveness of the server, or that the client load would be constant, but we haven't yet developed our mathematical models su ciently to account for all the known variables, so we're being conservative. Given these assumptions, if we are adding 2 000 000 new email messages to our spool in a day, a half an hour of operation at this level of saturation with a lock timeout of only 5 minutes, we must expect there to be on the order of a thousand mailbox corruptions due to multiple processes proceeding to modify mailboxes on the assumption that they have exclusive access to it. This is because they have encountered expired lock les which are actually valid, the owning process just hasn't been able to get the server to ack it's update of the lock le. The mathematics behind this analysis and an in depth examination of the rami cations of this will be fully explored in Christ97b . Therefore, it is important that our locking mechanism allow for the possibility that a client process may not be able to get their request through to the server for several minutes after the normal locking timeout window has closed. We use a lock timeout value of 15 minutes to allow for this possibility. With regard to locking, one area of concern we have is with sendmail. Current versions want to use flock to lock les in mail queues. On our email system, the depth of these queues is extreme and the number of processes that can concurrently be
; ;

trying to drain them can be as high as several hundred per machine, requiring a large number of outstanding lock requests at any one time, often too many for either the client lock daemon or the le server to accommodate. Because of this, we have two choices. Either we can put the mail queues on locally attached disk, violating our stateless architecture principle and losing the bene ts of the WAFL le system in handling directories with large numbers of les, or we can modify sendmail to use a di erent locking mechanism, thus violating our intention to use an unmodi ed SMTP MTA. Fortunately, the current sendmail implementation has very modular locking code which can be easily replaced without fundamentally altering the distribution. However, we'd like any folks working on sendmail to consider allowing a preference for various locking mechanisms to be de ne'd in the source code.

Tomorrow
While the mailbox locking mechanism we've just described has worked satisfactorily, it is not without its drawbacks. One drawback is the fact that locks may be orphaned, and other clients must wait up to 15 minutes before being able to assume they are no longer valid. Another drawback is that the synchronous NFS operations we employ greatly increase the load placed on the NFS servers which hold the lock les. Therefore, we are in the process of designing and building our next generation lock management system. In accordance with our design parameters, what we really want is a distributed lock system with no single points of failure. It has to maintain state in the case of a crash or hardware failure, and it must be able to handle at least several hundred transactions per second. We tried using a SQL database for this purpose, but we were not satis ed with the performance. A program like a large commercial database such as this requires too much overhead to be e cient in this manner. However, we can learn from the database style locking mechanisms and, essentially, strip away those portions of the database system which we don't need to create our own lean and mean network lock server. We plan to deploy two machines clustered together around a shared RAID system to act as our lock service. If the primary machine were to su er some form of failure, the other would take over with a target transition time of less than ve seconds. We intend to deploy the same hardware con guration

that we use for our authentication database. All the lock requests get written to the le system using unbu ered writes before they are acknowledged so that in case of machine failure there is no loss of state. The clients open up a socket to the lock daemon on the lock server and request a lock for a given mailbox, which the daemon either accepts or denies. If it is denied, the client waits for some pseudo random time and tries again. We project that this system will scale well into the millions of mailboxes for a single set of lock managers. To get this scheme to scale inde nitely, it's a simple matter of having the clients query di erent lock servers for di erent ranges of mailbox names.

3 Operation
One of our primary design goals was to deploy a system that would be cost e ective to maintain. This service accomplishes those goals in several ways. First, by centralizing authentication in a single system, we reduce the problems associated with both maintaining multiple parallel authentication systems and insuring that they are synchronized. This is a considerable overhead savings. Second, one of the key criteria in selecting the Network Appliance as our storage system was its ease of maintenance. Because its operating system has been stripped down, eliminating functionality not necessary to its operation as a le server, the server is less likely to fail and, if it does fail, it is easier to discover and remedy the problem due to the greatly reduced number of degrees of freedom presented by the operating system. Third, because the POP servers themselves are dataless, they require much less maintenance than their stateful equivalents. The only les which differ between these computers are those that contain their host names and or IP addresses. This means that new servers can be brought online in a very short time via cloning an active server. Just as signi cant, it means that since these machines contain no important persistent data aside from the operating system, there are few reasons for system administration to log on to the system and make changes. This helps eliminate one of the arch nemeses of distributed computing| state drift," the tendency for systems intended to be identical or nearly identical to become more and more di erent over time. At EarthLink, one of the things we do most often is to grow an existing service to accommodate

more subscribers. The e orts we have made to allow this to happen easily and with a minimum of interruption contribute greatly to lowering the cost of operation. We've already explained how we use the concept of old" and proper" mailbox locations to scale both le system storage and bandwidth by adding additional le servers easily and with no downtime. The network implementation we're using at this time is switched FDDI, which also scales well. As we've already mentioned the POP servers are dataless and, therefore, should lack of these resources present a problem, in very little time, and again, with a minimum of e ort, we can clone and deploy a new system. This results in our email service being extremely scalable on short notice. We attempt to maintain + 1 redundancy in every possible component of the system. Our data storage systems use RAID to protect against single disk failure. We keep extra data storage servers near line in case of failure for rapid exchange with the downed system. We keep extra FDDI cards in the switch and an extra switch chassis nearby in case these components fail. We also keep one more SMTP and POP server online than loading metrics indicate is necessary. Thus, if one fails, we can pull it out of Round Robin DNS without impacting service, aside from the problems caused by the initial component failure. Additionally, we get the bene t of not having to repair the failed server immediately. Instead, we can take time to ensure that everything else is in proper running order, and then we can diagnose and repair the failed server at our leisure. On top of all this, we use a monitoring system that ags problems with each component of the service in our Network Operations Center, which is sta ed 24x7x365 and contacts appropriate on site personnel.
N

4 Shortcomings
We consider the architecture presented above to have considerable merit as one of the better solutions available for satisfying high volume mail service. It is, of course, not without its limitations, some of which we mention here. One of the rst problems is with sendmail as an MTA. When Eric Allman developed the original sendmail, it was not envisioned that it would still be in service over fteen years later and be pushed, rewritten, and extended to the extent that it has. It is a testament to the skill of its creator and maintainer that it has performed as well as it has for this long. Nonetheless, if one were to code an SMTP MTA today, we doubt

anyone would want it to take the form of sendmail. Despite this, we don't see an MTA that would provide enough signi cant advantages that we would want to migrate to it in the immediate future. Of course, these statements about sendmail could have been uttered ve years ago without alteration. The bottom line is that we would prefer to run an SMTP MTA that is tighter, more e cient, and has fewer potential places for security bugs to creep in, but there isn't one available that meets our needs at this time. Probably the biggest problem with our architecture is that due to the nature of NFS, when we add additional le servers to address our performance and storage needs, we end up adding multiple single points of failure. Despite the fact that the Network Appliance le servers have been quite stable and recover quickly from problems, we feel that this is not easily scalable forever. Therefore, it is our opinion that at some point we need to abandon NFS as our distributed systems protocol for something better. Our ideal protocol would be very high performance; be completely distributed and, thus, highly scalable, local failures would cause local, not global outages, and would allow for redundant storage that eliminates local single points of failure. Unfortunately, given the current state of distributed computing, it's hard enough to nd a system that adequately addresses one of these points, and nothing seems close to providing good solutions for all of them. Consequently, we are currently in the process of designing our own distributed system to accommodate our next generation architecture requirements.

6 Conclusion
In conclusion, we believe we have architected a mechanism to extend a standard, freely distributable, open systems email system to handle from hundreds of thousands to millions of distinct email accounts with a minimum of modi cation to the underlying components. We also believe that this system meets, to the best of our ability to deliver, the required criteria we set out in the Introduction.

7 Acknowledgments
The authors of this paper are by no means the only folks who have put a lot of e ort into the development and operation of this system. We wish to especially thank Jay Cai and Max Chern who did a signi cant portion of the software development on this system. Thanks to Steve Dougherty and Mark Wagnon, who provided helpful comments, and to Jim Larson, who provided valuable input on the precise mathematics of packet retransmissions. Also, a great deal of thanks go to Trent Baker and his system administration team who maintain all our services: Gianni Carlo Contardo, Jason Savoy, Marty Greer, Alwin Sun, Horst Simon, Jewel Clark, Tom Hsieh, Lori Bar eld, David Van Sandt, Larry Wang, Hong Zhang, and Kenny Chen. We also wish to extend a special thank you to Scott Holstad who made many excellent editorial improvements to early versions of this paper.

References
Albitz97 P. Albitz, C Liu, DNS and BIND, 2nd Ed., O'Reilly & Associates, Inc., Sebastopol, CA, 1997, p. 212. Allman86 E. Allman, Sendmail: An Internetwork Mail Router, BSD UNIX Documentation Set, University of California, Berkeley, CA, 1986. Callag95 B. Callaghan, B. Pawlowski, P. Stau bach, RFC 1813, NFS Version 3 Protocol Speci cation, June 1995. Christ97a N. Christenson, D. Beckemeyer, T. Baker, A Scalable News Architecture on a Single Spool, ;login: vol. 22 1997, no. 3, pp. 41 45. Christ97b N. Christenson, J. Larson, Work in progress.

5 Current Data
Today, the system described here is in operation as EarthLink's core electronic mail system. At the time of this writing, this system supports about 460,000 mailboxes for over 350,000 users. The system processes, incoming and outgoing, over 13,000,000 email messages each week. This means we average about 20 incoming messages each second. We average about 20 new POP connections second and hold open about 600 concurrent active POP daemons at peak time, with spikes to over 1000 concurrent outstanding POP connections at any one time.

Grubb96 M. Grubb, How to Get There From Here: Scaling the Enterprise Wide Mail Infrastructure, Proceedings of the Tenth USENIX Systems Administration Conference LISA '96, Chicago, IL, 1996, pp. 131 138. Hitz94 D. Hitz, J. Lau, M. Malcom, File System Design for an NFS File Server Appliance, Proceedings of the 1994 Winter USENIX, San Francisco, CA, 1994, pp. 235 246. Hitz95 D. Hitz, An NFS File Server Appliance, http: www.netapp.com technology level3 3001.html. Postel82 J. Postel, RFC 821, Simple Mail Transfer Protocol, August 1982. Rigney97 C. Rigney, A. Rubens, W. Simpson, S. Willens, RFC 2058, Remote Authentication Dial In User Service RADIUS, January 1997. Seltze91 M. Seltzer, O. Yigit, A New Hashing Package for UNIX, Proceedings of the 1991 Winter USENIX, Dallas, TX, 1991. Stern91 H. Stern, Managing NFS and NIS, O'Reilly & Associates, Inc., Sebastopol, CA, 1991, chapter 12. Zeeman77 E. Zeeman, Catastrophe Theory, Selected Papers 1972-1977, Addison Wesley Publishing Company, Inc., Reading, MA, 1977, p. ix.

SMTP Servers SMTP

Auth NFS

INTERNET
Authentication Service File Servers File Servers

Auth NFS

SMTP

POP Servers POP & SMTP

SUBSCRIBERS

Figure 1

Chapitre 7

Gestionnaires de services rseau : inetd, tcpd, xinetd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

261 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services rseau : inetd7.1tcpd, xinetd IP , Rappel sur les connexions
7.1 Rappel sur les connexions IP

Rappel : Une connexion IP est constitue de plusieurs lments : une adresse IP source un numro de port source sur la machine de dpart une adresse IP de destination un numro 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 lUID 0. Sur Windows, la fonction C obtenant un port source < 1024 fonctionne quel que soit lUID

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

262 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.2 Fichier /etc/services Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.2 Fichier /etc/services

Le chier /etc/services mentionne des triplets (numro de port, protocole, nom du service). Le chier /etc/services sert convertir un port numrique en un nom symbolique plus parlant. Voir les fonctions C getservbyname() , getservbyport() , getservent() .

ATTENTION : Le chier /etc/services nindique pas les services rseau activs sur la machine.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

263 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.2 Fichier /etc/services

On peut obtenir un triplet ociellement pour un programme soi auprs de lIANA http://www.iana.org/assignments/port-numbers En pratique il y a 3 catgories de triplets : Les Well Known Ports sont ceux de 0 1023 Les Registered Ports sont ceux de 1024 49151 Les Dynamic and/or Private Ports sont ceux de 49152 65535

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

264 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.2 Fichier /etc/services

Extrait dun chier /etc/services :


... chargen chargen ftp-data ftp-data ftp ftp ssh ssh telnet telnet smtp smtp ... 19/tcp 19/udp 20/tcp 20/udp 21/tcp 21/udp 22/tcp 22/udp 23/tcp 23/udp 25/tcp 25/udp ttytst source #Character Generator ttytst source #Character Generator #File Transfer [Default Data] #File Transfer [Default Data] #File Transfer [Control] #File Transfer [Control] #Secure Shell Login #Secure Shell Login

mail mail

#Simple Mail Transfer #Simple Mail Transfer

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

265 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.3 Commandes netstat -a, netstat Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd-an

7.3 Commandes netstat -a, netstat -an

La commande netstat -a ache la liste des ports ouverts sur une machine. Les noms achs proviennent de /etc/services :

% netstat -a Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp4 0 0 *.ssh *.* tcp46 0 0 *.ssh *.* udp4 0 0 *.syslog *.* udp6 0 0 *.syslog *.* udp4 0 0 *.bootpc *.* Active UNIX domain sockets ...

(state) LISTEN LISTEN

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

266 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.3 Commandes netstat -a, netstat -an

La commande netstat -an ache la liste des ports ouverts sur une machine sans les traduire en noms via /etc/services . Ils sont achs sous forme numrique :
% netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp4 0 0 *.22 *.* tcp46 0 0 *.22 *.* udp4 0 0 *.514 *.* udp6 0 0 *.514 *.* udp4 0 0 *.68 *.* Active UNIX domain sockets ...

(state) LISTEN LISTEN

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

267 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.4 Gestionnaires Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, de services rseau xinetd

7.4 Gestionnaires de services rseau

Une machine UNIX ore de nombreux services accessibles par le rseau. Souvent les services rseau contacts durent peu de temps : inutile de les faire tourner en permanence (consommation de ressources) on va les activer uniquement suite une requte On utilise alors un gestionnaire de services pour couter les requtes pour certains services rseau et lancer ces services. Plus particulirement, le gestionnaire de services assure : lattente de connexions rseau sur certains ports le lancement des services contacts le comportement adapt au lancement de ces services

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

268 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.4 Gestionnaires de services rseau

Il existe plusieurs gestionnaires de services : programme INETD programme XINETD

Autre programme TCPD : ce nest pas un gestionnaire de services cest un contrleur de services

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

269 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

rseau : INETD Chapitre 7 Gestionnaires de services rseau : 7.5 Gestionnaire de servicesxinetd inetd, tcpd,

7.5 Gestionnaire de services rseau : INETD

Etape 1
host1.example.com host2.example.com

client

inetd

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

270 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.5 Gestionnaire de services rseau : INETD

Etape 2

host1.example.com

host2.example.com
fork() exec()

client

inetd

serveur

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

271 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.5 Gestionnaire de services rseau : INETD

Etape 3

host1.example.com

host2.example.com

client

inetd

serveur

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

272 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.6 INETD : chier de Chapitre 7 Gestionnaires de services rseau : inetd,conguration /etc/inetd.conf tcpd, xinetd

7.6 INETD : chier de conguration /etc/inetd.conf

Le chier /etc/inetd.conf est spcique 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 telnet ... stream stream tcp tcp nowait nowait root root /usr/sbin/in.ftpd /usr/sbin/in.telnetd in.ftpd in.telnetd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

273 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.6 INETD : chier de conguration /etc/inetd.conf

La signication des champs est la suivante : champ 1 : service_name Cest le nom symbolique dun service (cf /etc/services ). champ 2 : socket_type Cest le type du socket rseau. Cest essentiellement stream , dgram . champ 3 : proto Cest le protocole rseau utilis : tcp , udp champ 4 : flags Cela indique si lon peut rpondre une requte du mme type alors que la premire nest pas termine. On peut avoir : wait , nowait champ 5 : user Nom de lutilisateur sous lequel le programme tournera. champ 6 : server_pathname Cest le chemin absolu du programme excuter. champ 7 : args Ce sont les paramtres donner lors du execv() .
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 274 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.6 INETD : chier de conguration /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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

275 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.7 INETD : reconguration via SIGHUP Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.7 INETD : reconguration via SIGHUP

Inetd est lanc par les scripts de dmarrage.

Si lon modie le chier /etc/inetd.conf , la modication est prise en compte en envoyant le signal SIGHUP au processus inetd :
# ps -ax | grep inetd 173 ? IW 2 0:00 inetd 19544 p2 S 2 0:00 grep inetd # kill -HUP 173

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

276 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.8 Chapitre 7 Gestionnaires de services rseau : inetd, tcpd,INETD : problmes xinetd

7.8 INETD : problmes

INETD fonctionne trs bien en pratique. Il a un seul gros dfaut : il ne gre aucun aspect de scurit. On aimerait au moins : pouvoir ltrer laccs certains services avoir des traces dactivation de certains services Un remde : emploi du logiciel TCP WRAPPERS
http://ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz http://ftp.porcupine.org/pub/security/tcp_wrappers_7.6-ipv6.1.tar.gz

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

277 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, TCP WRAPPERS xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

Lide de TCP WRAPPERS : on va sintercaler dans la chane de INETD.


host1.example.com host2.example.com

client

inetd

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

278 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

host1.example.com

host2.example.com
fork() exec()

client

inetd

tcpd

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

279 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

host1.example.com

host2.example.com

client

inetd

tcpd

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

280 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

host1.example.com

host2.example.com
fork() exec()

client

inetd

tcpd

serveur

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

281 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

host1.example.com

host2.example.com

client

inetd

tcpd

serveur

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

282 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

host1.example.com

host2.example.com

client

inetd

serveur

rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

283 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.9 Gestionnaire de services rseau : TCP WRAPPERS

La librairie des TCP WRAPPERS est maintenant intgre beaucoup de produits (mme sous WINDOWS...).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

284 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services7.10 TCP WRAPPERS : modications de /etc/inetd.conf rseau : inetd, tcpd, xinetd
7.10 TCP WRAPPERS : modications de /etc/inetd.conf

Sintercaler dans la chane de INETD ncessite de modier le chier /etc/inetd.conf Par exemple on passe de :
ftp telnet shell login stream stream stream stream tcp tcp tcp tcp nowait nowait nowait nowait root root root root /usr/etc/in.ftpd /usr/etc/in.telnetd /usr/etc/in.rshd /usr/etc/in.rlogind in.ftpd -l in.telnetd in.rshd in.rlogind

ftp telnet shell login stream stream stream stream tcp tcp tcp tcp nowait nowait nowait nowait root root root root /chemin/vers/tcpd /chemin/vers/tcpd /chemin/vers/tcpd /chemin/vers/tcpd in.ftpd -l in.telnetd in.rshd in.rlogind

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

285 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.10 TCP WRAPPERS : modications de /etc/inetd.conf

Rappel sur linterprtation dune 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

286 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

Le principe du contrle daccs des TCP WRAPPERS repose sur les chiers /etc/hosts.allow et /etc/hosts.deny :
1

On vrie dabord si la requte TCP est autorise par le contenu de /etc/hosts.allow . Si oui, OK. Si non, on passe ltape 2. On vrie si la requte TCP est interdite par le contenu de /etc/hosts.deny . Si oui, la requte est rejete. Si non, on passe ltape 3. On accepte la requte TCP.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

287 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

Au niveau des chiers hosts.allow et hosts.deny , on peut appliquer des rgles de ltrage par service servi. Voici un exemple de politique de connexion : au niveau du chier /etc/hosts.allow :
in.telnetd: in.rlogind: in.rshd: .fr, 193.95.32. .fr, 193.95.32. .fr

au niveau du chier /etc/hosts.deny :


in.telnetd: in.rlogind: in.rshd: ALL ALL ALL

En franais intelligible, ces chiers indiquent que les connexions telnet, rlogin, rsh ne sont autorises que depuis des machines du domaine franais .fr et depuis un domaine de Tunisie (rseau dadresse 193.95.32.).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

288 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

Une seconde syntaxe existe pour TCPD. Utiliser cette syntaxe ! Syntaxe : service : designation-machines : allow service : designation-machines : deny La dsignation des machines peut se faire de diverses faons : noms de machines ( serveur.example.com ) rseaux de noms de machines ( .example.com ) adresses CIDR de rseaux ( 192.168.1.0/255.255.255.0 ) adresses de rseaux ( 192.168.1. ) nom spcial : ALL Nom de service spcial : ALL Tout autoriser : ALL : ALL : allow Tout interdire : ALL : ALL : deny
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 289 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

ATTENTION :

quand on interdit une machine, il faut linterdire via son nom FQDN et via son adresse IP (pour le cas o un nameserver serait injoignable on peut ainsi bloquer quand mme la machine).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

290 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd7.11 TCP WRAPPERS : contrle daccs, /etc/hosts.allow, /etc/hosts.deny

ATTENTION :

Ce nest par parce que lon active tcpd que lon a rsolu tous les problmes de scurit et que lon est tranquille !
Il ne faut pas oublier que plein dautres services ne passent pas par lintermdiaire de inetd.conf Il faut surveiller les traces de fonctionnement renvoyes par tcpd. Il faut renseigner les chiers hosts.allow et /etc/hosts.deny. Il faut des dmons sans trou de scurit.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

291 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.12 TCP Chapitre 7 Gestionnaires de services rseau : WRAPPERS ,: programmation via libwrap.a inetd tcpd, xinetd

7.12 TCP WRAPPERS : programmation via libwrap.a

Les TCP WRAPPERS orent aussi leur librairie de programmation : libwrap.a et tcpd.h Gnralement installe 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 cest ncessaire.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

292 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services rseau 7.13inetd, tcpd, rseau : XINETD : Gestionnaire de services xinetd
7.13 Gestionnaire de services rseau : XINETD

(en anglais extended inetd) Cf http://www.xinetd.org/ Numrotation des versions un peu complique. . . XINETD est une rcriture complte de INETD en incorporant plusieurs aspects manquants dans INETD : contrle daccs la TCP WRAPPERS accs horaires aux dmons traces syslog des connexions (choues, abouties) limitation du nombre dinstances de chaque dmon binding sur certaines adresses rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

293 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.14 XINETD chier de Chapitre 7 Gestionnaires de services rseau : :inetdconguration,/etc/xinetd.conf , tcpd xinetd

7.14 XINETD : chier de conguration /etc/xinetd.conf

XINETD utilise le chier /etc/xinetd.conf , incompatible avec /etc/inetd.conf . Format du chier :


defaults { attribut operateur valeur(s) ... } service toto { attribut operateur valeur(s) ... }

Les oprateurs sont = , += et -= . Cf la documentation pour la liste complte des attributs.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 294 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.14 XINETD : chier de conguration /etc/xinetd.conf

A noter avec certaines versions de xinetd la possibilit davoir un rpertoire /etc/xinetd.d dans lequel on trouve un chier par service, portant le nom du service et contenant le rglage du service.

Par exemple /etc/xinetd.d/ftpd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

295 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.15 Chapitre 7 Gestionnaires de services rseau : inetd, XINETD :,rglages par dfaut tcpd xinetd

7.15 XINETD : rglages par dfaut

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 dfaut toutes les machines se connecter aux services. On autorisera ce qui est ncessaire au niveau du bloc de conguration de chaque service.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

296 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.16 XINETD : conguration dun service Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.16 XINETD : conguration dun 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 = 192.168.1.0/24 }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

297 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.17 XINETD : /etc/xinetd.conf : directive nice Chapitre 7 Gestionnaires de services rseau : 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 = 192.168.1.0/24 }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

298 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services7.18 XINETD : /etc/xinetd.conf : directive access_times rseau : 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 = 192.168.1.0/24 }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

299 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.19 XINETD : /etc/xinetd.conf Chapitre 7 Gestionnaires de services rseau : inetd, tcpd:, directives bind, id xinetd

7.19 XINETD : /etc/xinetd.conf : directives bind, id

Soit une machine avec 2 interfaces rseau dadresses 192.168.1.1 et 192.168.2.1 :


service ftp { id = ftp-public bind = 192.168.1.1 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 = 192.168.1.0/24 } service ftp { id = ftp-private bind = 192.168.2.1 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 = 192.168.2.0/24 }

La directive id servira au niveau de SYSLOG direncier les traces de lun ou lautre de FTPD.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 300 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.20 XINETD : /etc/xinetd.conf Chapitre 7 Gestionnaires de services rseau : inetd, tcpd:, directive redirect 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 = 192.168.1.0/24 redirect = 192.168.1.23 }

Et un telnet vers 192.168.1.1 renverra vers le dmon telnetd de 192.168.1.23 .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

301 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.21 XINETD : /etc/xinetd.conf tcpd et directive NAMEINARGS Chapitre 7 Gestionnaires de services rseau : 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 = 192.168.1.0/24 }

TCP WRAPPERS et XINETD ne sont pas antinomiques.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 302 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.22 Chapitre 7 Gestionnaires de services rseauXINETD : /etc/xinetd.conf :xinetd : inetd, tcpd, directive chroot

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 = 192.168.1.0/24 }

On est ainsi compartiment larborescence de /quelquepart/blockhaus/ftp dont on ne peut pas sortir. Intrt pour la scurit de la machine.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 303 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.23 XINETD : reconguration, signaux Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.23 XINETD : reconguration, signaux

Sont supports les signaux : signal SIGHUP : sur sa rception, xinetd se recongure signal SIGTERM : sur sa rception, xinetd se saborde signal SIGUSR1 : sur sa rception, xinetd crit le chier /var/run/xinetd.dump

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

304 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services rseau : inetd, 7.24 Services internes inutiles tcpd, xinetd
7.24 Services internes inutiles

Rappel : INETD et XINETD lancent des services rseau 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 excutable externe . Mais le service peut tre interne et tre fourni directement par INETD ou XINETD.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

305 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.24 Services internes inutiles

Rgle fondamentale : tous les services internes sont inutiles et doivent tre dsactivs. Par exemple, pour INETD : dsactiver tous les services de type internal dans /etc/inetd.conf :
#daytime stream #daytime dgram #time stream #time dgram #echo stream #echo dgram #discard stream #discard dgram #chargen stream #chargen dgram tcp udp tcp udp tcp udp tcp udp tcp udp nowait wait nowait wait nowait wait nowait wait nowait wait root root root root root root root root root root internal internal internal internal internal internal internal internal internal internal

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

306 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.25 R-Services Chapitre 7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.25 R-Services

Plusieurs services lancs par INETD et XINETD sont connus sous le nom de R-services (remote services) :

service RLOGIND : connexion interactive un systme distant service RSHD : lancement dune commande sur un systme distant service RCPD : recopie de chiers locaux vers des chiers distants ou vice-versa

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

307 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

Chapitre 7 Gestionnaires de services rseau :7.26 R-service, rlogind, R-commande rlogin inetd tcpd, xinetd
7.26 R-service rlogind, R-commande rlogin

(en anglais remote login daemon, remote login) En gnral, 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 195.220.212.130 Sun Microsystems Inc. SunOS 5.5 Generic November 1995 server%

A chaque fois que ce sera possible, prfrer une connexion en SSH (ici avec ssh ).
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 308 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Contrles daccs (1) Deux chiers contrlent les accs : chier systme /etc/hosts.equiv chier personnel $HOME/.rhosts Syntaxe commune aux deux chiers : format 1 : hostname format 2 : hostname username Deux cas de gure lors dune connexion : une ligne lun des deux formats autorise la connexion et la connexion se fait alors sans demande de mot de passe aucune ligne nautorise la connexion et il y a alors demande du mot de passe de lutilisateur local

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

309 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Possibilit de mettre + la place de nimporte quel champ : signication nimporte quelle machine signication nimporte quel utilisateur

Voir fonction C ruserok() .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

310 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Contrles daccs (2) : Format hostname

Signication : les utilisateurs de la machine hostname sont autoriss se connecter au systme sous le mme nom sans demande de mot de passe. Ce format est utilisable dans /etc/hosts.equiv et dans les chiers personnels $HOME/.rhosts .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

311 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Par exemple, si le chier /etc/hosts.equiv contient :


cerise.example.com

cela permet un utilisateur martin de se connecter en RLOGIN depuis la machine cerise.example.com sous lidentit locale martin sans demande de mot de passe.

Par exemple, si lutilisateur jean a le chier $HOME/.rhosts suivant :


cerise.example.com

cela permet lutilisateur jean de se connecter en RLOGIN depuis la machine cerise.example.com sous lidentit locale jean sans demande de mot de passe.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 312 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Contrles daccs (3) : Format hostname username Signication : lutilisateur username de la machine hostname est autoris se connecter au systme 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 dun utilisateur local. Si ce format est utilis dans /etc/hosts.equiv alors cela autorise un utilisateur distant se connecter sous le nom de nimporte quel utilisateur local.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

313 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Par exemple, si lutilisateur jean a le chier $HOME/.rhosts suivant :


cerise.example.com martin

cela permet lutilisateur martin de se connecter en RLOGIN depuis la machine cerise.example.com sous lidentit locale jean sans demande de mot de passe.

Par exemple, si le chier /etc/hosts.equiv contient :


cerise.example.com jean

cela permet lutilisateur jean de se connecter en RLOGIN depuis la machine cerise.example.com sous nimporte quelle identit locale sans demande de mot de passe. DANGEREUX.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 314 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.26 R-service rlogind, R-commande rlogin

Problmes : Attention au contenu de /etc/hosts.equiv . SunOS 4.x.y fournissait un chier contenant + + . Attention aux connexions root via le rseau. Il faut interdire les connexions root via le rseau parce quelles sont anonymes.
Vrier /etc/ttys (ou quivalent /etc/securettys . . .) et minimaliser le nombre de terminaux scuriss. Vrier ~root/.rhosts . Cest une cible privilgie des pirates qui essayent dy crire + + .

Il ny a pas de traces des connexions locales. Au mieux, tcpd informe do vient la connexion mais pas de lidentit prise sur la machine locale. Remde : utiliser le package logiciel logdaemon URL
ftp://ftp.porcupine.org/pub/security/logdaemon-5.8.tar.gz

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

315 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.27 R-service rshd R-commande Chapitre 7 Gestionnaires de services rseau : inetd, tcpd,, xinetdrsh

7.27 R-service rshd, R-commande rsh

(en anglais remote shell daemon, remote shell) En gnral, 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

316 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.27 R-service rshd, R-commande rsh

Si lon ne prcise pas de commande, on lance un shell en interactif.


% rsh server.example.com Sun Microsystems Inc. SunOS 5.10 You have new mail. server%

Generic January 2005

A chaque fois que ce sera possible, prfrer une connexion en SSH (ici avec ssh ).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

317 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.27 R-service rshd, R-commande rsh

Contrles daccs Les contrles daccs se font comme page 309 (chapitre sur RLOGIND) sauf pour un point : soit la connexion en RSH est explicitement autorise par les chiers /etc/hosts.equiv ou $HOME/.rhosts et la connexion se fait alors sans demande de mot de passe soit la connexion nest pas explicitement autorise et elle est alors refuse et on ne demande pas de mot de passe.

% rsh -l besancon server.example.com date permission denied

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

318 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.28 R-service rcpd R-commande Chapitre 7 Gestionnaires de services rseau : inetd, tcpd,, xinetdrcp

7.28 R-service rcpd, R-commande rcp

(en anglais remote copy daemon, remote copy ) En gnral, 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

319 / 803

7 Gestionnaires de services rseau : 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, prfrer une connexion en SSH (ici avec scp ).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

320 / 803

7 Gestionnaires de services rseau : inetd, tcpd, xinetd

7.28 R-service rcpd, R-commande rcp

Contrles daccs Les contrles daccs se font comme page 309 (chapitre sur RLOGIND) sauf pour un point : soit la connexion en RCP est explicitement autorise par les chiers /etc/hosts.equiv ou $HOME/.rhosts et la connexion se fait alors sans demande de mot de passe soit la connexion nest pas explicitement autorise et elle est alors refuse et on ne demande pas de mot de passe.

% rcp ananas.txt jean@server.example.com:/tmp/banane.txt permission denied

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

321 / 803

Chapitre 8

Protocoles de transferts de chiers FTP, TFTP

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

322 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole Chapitre 8 Protocoles de transferts de chiers FTP, TFTP FTP, ftp, ftpd

8.1 Protocole FTP, ftp, ftpd

(en anglais File Transfer Protocol) Une connexion via FTP ncessite 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 assigns au protocole FTP :


ftp-data ftp 20/tcp 21/tcp

Deux protocoles FTP en fait : FTP actif (mode par dfaut sous Windows) FTP passif (mode par dfaut sous Linux)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 323 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

FTP actif

CLIENT FTP

SERVEUR FTP
FTP control connection High port 1 port 21

FTP data connection High port 2 port 20

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

324 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

Le protocole FTP est complexe car cest 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 ncessitent que des donnes soient reues (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 crer une connexion depuis le port 20 ( ftp-data de /etc/services ). La connexion FTP-DATA est close
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 325 / 803

ds que toutes les donnes sont transfres.


client
connexion port 21 PORT 33085 port 21 DIR port 21

serveur

data port 20 port 33085

8 Protocoles de transferts de chiers FTP, TFTP

Exemple :

8.1 Protocole FTP, ftp, ftpd

% 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,61 200 PORT command successful. ---> RETR motd 150 ASCII data connection for motd (127.0.0.1,33085) (54 bytes). 226 ASCII Transfer complete. local: motd remote: motd 55 bytes received in 0.00086 seconds (62.53 Kbytes/s) ftp> quit ---> QUIT 221 Goodbye.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 326 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

FTP passif

CLIENT FTP

SERVEUR FTP
FTP control connection High port 1 port 21

FTP data connection High port 2 High port 3

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

327 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

Rgles pour un client FTP protg par un rewall


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 High Established network Allow the client to establish data channels to remote server Active FTP server 20 FTP client or High New FTP network FTP client High FTP server 20 Established or network Passive FTP client High FTP server High New FTP or network FTP server High FTP client or High Established network

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

328 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

Rgles pour un serveur FTP protg par un rewall


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 High Established network Allow the server to establish data channels to remote client Active FTP server 20 FTP client or High New FTP network FTP client High FTP server 20 Established or network Passive FTP client High FTP server High New FTP or network FTP server High FTP client or High Established network

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

329 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

Contrle daccs Au niveau contrle daccs, les implmentations de base proposent : le chier /etc/ftpusers contient les noms des utilisateurs non autoriss utiliser ftp. root doit tre exclus comme dhabitude. le chier /etc/shells contient les shells des utilisateurs autoriss 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 congurer 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

330 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.1 Protocole FTP, ftp, ftpd

Implmentations de serveurs FTP Outre les versions fournies par les constructeurs, il y a plusieurs dmons du domaine public plus performants : http://www.wu-ftpd.org/ http://www.proftpd.org/ http://vsftpd.beasts.org/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

331 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.2 Protocole Chapitre 8 Protocoles de transferts de chiers FTP, TFTP TFTP, tftp, tftpd

8.2 Protocole TFTP, tftp, tftpd

TFTP : Trivial File Transfer Protocol Une connexion via tftp ncessite 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, cest en gros FTP sans pouvoir lister les directories distants et ne ncessitant pas de mot de passe pour rcuprer ou dposer des chiers ! En fait, celui qui utilise TFTP sait ce quil veut rcuprer et na pas besoin de lister le directory. Par exemple, rcupration dun chier de conguration pour : terminal X imprimante HP rseau

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

332 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.2 Protocole TFTP, tftp, tftpd

On rcupre les chiers dans la sous arborescence /tftpboot. Le danger : un dmon tftpd mal congur permet de rcuprer tout chier hors de /tftpboot . Le chier /etc/passwd par exemple. vrier les options de lancement. Traditionnellement utiliser loption -s au niveau de /etc/inetd.conf :
tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

333 / 803

8 Protocoles de transferts de chiers 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 requtes portent parfois sur des noms du type /tftpboot/fichier .
% cd /tftpboot % ls -l drwxr-xr-x 2 root drwxr-sr-x 7 root drwxr-sr-x 2 root drwxr-sr-x 4 root drwxr-sr-x 2 root drwxr-xr-x 2 root lrwxrwxrwx 1 root drwxr-sr-x 3 root

wheel wheel wheel wheel wheel wheel wheel wheel

1536 512 512 512 512 512 1 512

Jan 4 15:02 cisco/ Nov 10 1997 hds/ Sep 5 1996 hp/ Dec 5 1995 ncd/ Mar 19 1997 plaintree/ Aug 1 1997 sun/ May 8 1998 tftpboot -> . Feb 9 1994 usr/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

334 / 803

8 Protocoles de transferts de chiers FTP, TFTP

8.2 Protocole TFTP, tftp, tftpd

Utilisation de TFTP sur CISCO pour tlcharger des congurations ou des rmware. Idem sur dautres matriels rseau : par exemple marque FOUNDRY mise en place de la conguration du FOUNDRY via TFTP sur un serveur UNIX :
copy tftp start 11.22.33.44 router/4802.cfg reload

sauvegarde de la conguration du FOUNDRY sur UNIX via TFTP :


touch /tftpboot/router/downloads/x.y chown nobody:nobody /tftpboot/router/downloads/x.y copy run tftp 11.22.33.44 router/downloads/x.y

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

335 / 803

Chapitre 9

Remote Procedure Call (RPC)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

336 / 803

9 Remote Procedure Call (RPC)

Chapitre 9 Remote Procedure Call (RPC)

9.1 Introduction

9.1 Introduction

Les Remote Procedure Calls (RPC) sont ns dans les annes 1985 - 1990 : diminution des cots des matriels augmentation des puissances de calcul augmentation des capacits de stockage Bref, passage une informatique de systmes rpartis et de systmes distribus (utiliser le matriel le plus performant pour une tche donne, accrotre la disponibilit des systmes).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

337 / 803

9 Remote Procedure Call (RPC)

9.1 Introduction

Principe dun programme classique :

% prog.exe

int main(int argc, char *argv[]) { int n; n = coucou();

int coucou() { return(33); }

exit(0); }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

338 / 803

9 Remote Procedure Call (RPC)

9.1 Introduction

Principe dun programme rparti 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

339 / 803

9 Remote Procedure Call (RPC)

9.2 Chapitre 9 Remote Procedure Call (RPC) Protocole External Data Representation (XDR)

9.2 Protocole External Data Representation (XDR)

Rappel sur les processeurs : processeurs big endian processeurs little endian
0x01020304 =

0x01020304 = 0x01 0x02 0x03 0x04

0x04

0x03

0x02

0x01

@ 0xNNNN + 3 @ 0xNNNN +2 @ 0xNNNN + 1 @ 0xNNNN


@ 0xNNNN @ 0xNNNN + 1 @ 0xNNNN +2

@ 0xNNNN + 3

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

340 / 803

9 Remote Procedure Call (RPC)

9.2 Protocole External Data Representation (XDR)

Ncessit 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 donnes plus gnrales (structures, tableaux, etc.) = XDR

Les RPC utilisent massivement XDR.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

341 / 803

9 Remote Procedure Call (RPC)

Chapitre 9 Remote Procedure Call (RPC)

9.3 Modle Client / Serveur RPC

9.3 Modle Client / Serveur RPC

Les Remote Procedure Calls (RPC) utilisent un modle client / serveur : Le client est le processus qui appelle une procdure distante. Le serveur est le processus qui ralise la Remote Procedure. La communication se fait via TCP.
processus local processus distant

CLIENT

PROCEDURE

STUB client

STUB serveur

API RPC
RPC runtime RPC runtime

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

342 / 803

9 Remote Procedure Call (RPC)

9.4 Localisation Chapitre 9 Remote Procedure Call (RPC) des procdures RPC : portmapper, rpcbind

9.4 Localisation des procdures RPC : portmapper, rpcbind

Lappel la procdure distante ncessite de localiser la procdure distante (numro de port TCP) sur la machine distante. Le processus portmapper (autre nom possible : rpcbind ) joue le rle de serveurs de noms RPC. Il coute sur le port TCP 111. Principe : une procdure distante senregistre auprs du portmapper on demande au portmapper o se trouve la procdure on appelle ensuite la procdure Le processus portmapper (autre nom possible : rpcbind ) doit tre dmarr avant de lancer des processus enregistrant des RPC (voir scripts de dmarrage).
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 343 / 803

9 Remote Procedure Call (RPC)

9.4 Localisation des procdures RPC : portmapper, rpcbind

processus portmapper

1 4

Ou se trouve ananas() v2 ? port 111

2
ananas() v2 == port 3248 ananas(), v2 = port 3248 banane(), v2 = port 2147 banane(), v3 = port 2148 etc.

processus 927

processus 958

port 3248

port 2147 port 2148 procedure banane() version 2, version 3

procedure ananas() version 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

344 / 803

9 Remote Procedure Call (RPC)

Chapitre 9 Remote Procedure Call (RPC)

9.5 Liste des procdures RPC : rpcinfo

9.5 Liste des procdures RPC : rpcinfo

(en anglais RPC information) Syntaxe : rpcinfo [-p] [-s] hostname Par exemple :
% rpcinfo -s rpcinfo -s program version(s) 100000 2,3,4 100021 4,3,2,1 100024 1 100001 4,3,2 100002 3,2 100011 1 100005 3,2,1 100003 4,3,2 100227 3,2 ...
c T.Besanon (v12.0.364)

netid(s) udp,tcp,ticlts,ticotsord,ticots tcp,udp ticots,ticotsord,ticlts,tcp,udp udp,ticlts udp,ticlts,tcp,ticotsord,ticots udp,ticlts ticots,ticotsord,tcp,ticlts,udp tcp,udp tcp,udp

service rpcbind nlockmgr status rstatd rusersd rquotad mountd nfs nfs_acl

owner super 1 super super super super super 1 1

Administration UNIX

ARS 2009 2010 Partie 3

345 / 803

9 Remote Procedure Call (RPC)

9.5 Liste des procdures RPC : rpcinfo

% rpcinfo -p program vers proto 100000 4 tcp 100000 3 tcp 100000 2 tcp 100000 4 udp 100000 3 udp 100000 2 udp 100021 1 udp 100021 2 udp 100021 3 udp 100021 4 udp 100021 1 tcp 100021 2 tcp 100021 3 tcp 100021 4 tcp ...

port 111 111 111 111 111 111 4045 4045 4045 4045 4045 4045 4045 4045

service rpcbind rpcbind rpcbind rpcbind rpcbind rpcbind nlockmgr nlockmgr nlockmgr nlockmgr nlockmgr nlockmgr nlockmgr nlockmgr

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

346 / 803

9 Remote Procedure Call (RPC)

Chapitre 9 Remote Procedure Call (RPC)

9.6 Contrle daccs

9.6 Contrle daccs

Avec LINUX est apparu un contrle daccs au niveau de PORTMAP via sa compilation avec la librairie des TCPWRAPPERS. Les contrles daccs se font donc comme page 287 via /etc/hosts.allow .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

347 / 803

Chapitre 10

Partage de chiers NFS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

348 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.1 Introduction

10.1 Introduction

NFS Network File System cest laccs de faon transparente pour lutilisateur des chiers rsidants sur des machines distantes.

Actuellement, NFS version 2 la plus rpandue.

NFS version 3 existe et est disponible mais il existe des incompatibilits dimplmentations entre constructeurs.

NFS version 4 est en tude. Cf http://www.nfsv4.org ou http://www.citi.umich.edu/projects/nfsv4/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

349 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS


Client Serveur

10.2 Principes de NFS

10.2 Principes de NFS

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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 350 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

On a deux aspects dans NFS : client NFS et serveur NFS.

CLIENT NFS

SERVEUR NFS

# mount

% prog

rpc.statd

rpc.lockd

portmap (rpcbind)

portmap (rpcbind)

rpc.mountd

nfsd

rpc.statd

rpc.lockd

RESEAU

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

351 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Le client NFS fait tourner les dmons biod (ou nfsiod ), rpc.lockd et rpc.statd .

CLIENT NFS

# mount

% prog

rpc.statd

rpc.lockd

portmap (rpcbind)

RESEAU
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 352 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Le serveur NFS fait tourner les dmons portmap (ou rpcbind ), mountd (ou rpc.mountd ), nfsd , rpc.statd et rpc.lockd .

SERVEUR NFS

portmap (rpcbind)

rpc.mountd

nfsd

rpc.statd

rpc.lockd

RESEAU
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 353 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Montage NFS : lehandle


SERVEUR NFS
/home rpc.mountd autorisations dexportation : /etc/exports

3
calcul du filehandle

RESEAU

2
# mount server:/home /mnt

1 CLIENT NFS
kernel

/mnt + filehandle (= fh0)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

354 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Ouverture dun chier NFS : utilisations des lehandles


SERVEUR NFS
Serveur NFS / port 2049

lookup(jardin, fh0) fh1 lookup(cerise.txt, fh1) fh2

kernel

RESEAU

% prog.exe

1
open(/mnt/jardin/cerise.txt)

2 3 4 5
kernel

CLIENT NFS
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 355 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Lecture/Ecriture dun chier NFS : utilisations des lehandles


SERVEUR NFS
Serveur NFS / port 2049

read(fh2, 0, 1024) read(fh2, ... , 1024)

kernel

RESEAU

% prog.exe

...
kernel

read() / write()

CLIENT NFS
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 356 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Verrouillage NFS (1) : fonctionnement normal


SERVEUR NFS
/etc/sm

3
rpc.lockd

3 2

3
rpc.statd

RESEAU

rpc.lockd

rpc.statd

CLIENT NFS

1 fcntl() lockf()
% prog.exe

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

357 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Verrouillage NFS (2) : reboot du client NFS


SERVEUR NFS
/etc/sm

3
rpc.lockd

2
rpc.statd

1
RESEAU

rpc.lockd

rpc.statd

CLIENT NFS

reboot du client NFS termine

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

358 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Verrouillage NFS (3) : reboot du serveur NFS


SERVEUR NFS reboot du serveur NFS termine
/etc/sm

1
rpc.lockd rpc.statd

4?
RESEAU

nouvelle demande des verrous NFS ?

rpc.lockd

rpc.statd

3 4?
% prog.exe

perte des verrous NFS

CLIENT NFS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

359 / 803

10 Partage de chiers NFS

10.2 Principes de NFS

Suppression de chier NFS ouvert

exemple.txt rm

.nfsXXXXXXXXXX

read write

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

360 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.3 Lancement de NFS

10.3 Lancement de NFS

DIGITAL UNIX On rgle laspect NFS par la commande nfssetup qui modie alors le chier /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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 361 / 803

10 Partage de chiers NFS

10.3 Lancement de NFS

Linux Au niveau de /etc/sysconfig/network , on indique via la variable NETWORKING si lon veut les services rseau (dont NFS). Le script de dmarrage /etc/rc.d/rc3.d/S15nfsfs suivant la valeur de NETWORKING lance ou pas un client NFS. Le script de dmarrage /etc/rc.d/rc3.d/S60nfs suivant la valeur de NETWORKING et suivant lexistence de /etc/exports lance ou pas un serveur NFS. Solaris La lecture de /etc/init.d/nfs.client renseigne sur la faon de dmarrer un client NFS. La lecture de /etc/init.d/nfs.server apprend que la machine dmarre un serveur NFS sil existe le chier dexportation /etc/dfs/dfstab .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

362 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab

10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab

Le partage de disques repose sur lexportation par une machine darborescences. Lexportation peut tre en read-only ou en read-write. Lexportation se fait au niveau du chier /etc/exports en gnral. Suivant lUNIX, la syntaxe nest pas la mme : DIGITAL UNIX : chier /etc/exports :
/var/spool/mail -access=client-nfs.example.com

Linux : chier /etc/exports :


/home /zip client-nfs.example.com(rw) client-nfs.example.com(rw)

Solaris : chier /etc/dfs/dfstab :


# pathname /export/home
c T.Besanon (v12.0.364)

resource fstype specific_options description nfs rw=.example.com


Administration UNIX ARS 2009 2010 Partie 3 363 / 803

10 Partage de chiers NFS

10.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab

Comment faire prendre connaissance de modications dans le chier /etc/exports (ou quivalent) ? Mthode 1 : on ne fait rien ; le chier /etc/exports est consult lors de toute demande de montage de disque. Par exemple DIGITAL UNIX. Mthode 2 : on envoie un signal au programme mountd grant les montages :
# kill -HUP cat /var/run/mountd.pid

Par exemple Linux, FreeBSD. Mthode 3 : une commande spcialise 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 364 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.5 Exportation root NFS

10.5 Exportation root NFS

Le problme principal est celui de lquivalence root par NFS : quels droits possde le root dune machine cliente NFS sur les chiers exports par un serveur NFS ? Un chier de droits rw------- sur le serveur NFS (o le root peut le lire) peut-il tre lu par root sur un client NFS ? La rponse est fonction du contexte mais cela se paramtre au niveau de /etc/exports . Une requte manant de root sera sauf prcision contraire convertie au nom de lutilisateur nobody :
% grep nobody /etc/passwd nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin

(attention : parfois cest lutilisateur nfsnobody mais le principe reste le mme)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

365 / 803

10 Partage de chiers NFS

10.5 Exportation root NFS

Exemple de la conversion de lUID lors de la requte (la partition monte est exporte 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 1572045 1377401 37440 97% /mnt # touch test.txt # ls -l total 0 -rw------1 root daemon 75 Feb 3 15:01 motd nogroup 0 Feb 3 14:59 test.txt -rw-r--r-1 nobody # cat motd cat: motd: Permission denied

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

366 / 803

10 Partage de chiers NFS

10.5 Exportation root NFS

Exportation avec root NFS Mmes chiers que prcdemment : 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

367 / 803

10 Partage de chiers NFS

10.5 Exportation root NFS

Exportation sans root NFS Mmes chiers que prcdemment : 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 /usr/local /var/mail nfs nfs nfs rw=client.example.com rw=.example.com rw=.example.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

368 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.6 Rgle de non transitivit NFS

10.6 Rgle de non transitivit NFS

Il ny a pas de transitivit NFS. Si A exporte /partition B Si B monte /partition en /partition2 et exporte /partition2 C alors C na pas accs au contenu du /partition initial ! Sinon il ny aurait aucune scurit, aucun contrle possible dexportation.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

369 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.7 Montage NFS manuel

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 1015695 566015 388739 59% /mnt # umount /mnt

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

370 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.8 Montage NFS automatique

10.8 Montage NFS automatique

Les montages automatiques se rglent au niveau de /etc/fstab (ou quivalent) :


... serveur-nfs.example.com:/export/home /mnt nfs hard,intr ... 0 0

La syntaxe est celle montre ci dessus sur tous les systmes UNIX utilisant un chier /etc/fstab . Une fois le chier /etc/fstab congur, on peut faire les choses suivantes :
1

Monter une partition distante bien prcise :


# mount /users

Monter toutes les partitions distantes :


# mount -t nfs -v -a

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

371 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.9 Option de montage NFS soft

10.9 Option de montage NFS soft

Option de montage soft : si pour une raison ou pour une autre, les oprations RPC implantant la requte NFS viennent chouer, cette requte NFS choue elle aussi. On peut apparenter cette situation celle dun disque local tombant en panne. Une manifestation de ce problme est quil peut apparatre des blocs remplis de caractres NULL dans des chiers nouvellement crits travers NFS sur une partition qui aura montr des problmes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

372 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.10 Option de montage NFS hard

10.10 Option de montage NFS hard

Option de montage hard : si pour une raison ou pour une autre, les oprations RPC implantant la requte NFS viennent chouer, cette requte NFS est soumise nouveau et cela jusqu ce quelle aboutisse. On peut apparenter cette situation celle dun disque local trs lent. Pour viter que dans le cas hard, la requte 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 accde en lecture/criture.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

373 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.11 Vrication des exportations : showmount

10.11 Vrication des exportations : showmount

En cas de problme dans le montage NFS dune partition on peut vrier dabord si lexportation indispensable est dj assure. 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

374 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.12 Vrication des exportations : rpcinfo

10.12 Vrication des exportations : rpcinfo

On peut aussi vrier distance si le serveur NFS fait tourner le dmon mountd via la commande rpcinfo .

% rpcinfo -p serveur-nfs.example.com | grep mount 100005 1 udp 32843 mountd 100005 2 udp 32843 mountd 100005 3 udp 32843 mountd 100005 1 tcp 32798 mountd 100005 2 tcp 32798 mountd 100005 3 tcp 32798 mountd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

375 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.13 Messages derreur NFS

10.13 Messages derreur NFS

Un message derreur classique prend la forme :


NFS write error: on host serveur-nfs.example.com remote file system full

Parfois cest hermtique comme message :


NFS write error 60 on host nfs-client.example.com fh 716 1 a0000 cdbe 66b10eac a0000 1d00 5fdbece5

Pour le dcoder, se reporter <sys/errno.h> . Ici on dduit :


#define ETIMEDOUT 60 /* Connection timed out */

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

376 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.14 Automounter

10.14 Automounter

Les montages rencontrs jusqu prsent sont permanents. Un automounter rend les montages temporaires : un montage ne dure gure que le temps ncessaire ; quand il est ncessaire, on monte la partition distante que lon dmonte quand on nen a plus besoin. Il existe 3 automounters : automount fourni par les constructeurs (et dorigine SUN) amd ; version logiciel libre dont le dveloppement stagne
ftp://ftp.cs.columbia.edu/pub/amd

am-utils , bti sur la base de amd http://www.cs.columbia.edu/~ezk/am-utils/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

377 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.15 Machines diskless

10.15 Machines diskless

Une machine diskless est une machine UNIX sans disque dur local. Principe :
1 2

La machine UNIX est mise sous tension. La machine UNIX envoie sur le rseau son adresse ethernet (MAC address). Par exemple via PXE sur des cartes rseau rcentes. La machine rcupre son adresse IP et on lui indique o tlcharger un noyau et comment. Par exemple renseignements renvoys par DHCP. La machine tlcharge le noyau. Par exemple par TFTP. Le noyau monte par NFS la partition de / . Le programme init prend la main et ralise les oprations de montage des partitions indiques dans /etc/fstab . Ici les partitions seront donc montes par NFS.

4 5 6

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

378 / 803

10 Partage de chiers NFS

Chapitre 10 Partage de chiers NFS

10.16 Annexe 1

10.16 Annexe 1

Ci joint dans la version imprime de ce cours, un document sur le procd KICKSTART.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

379 / 803

Fedora Kickstart

Kickstart
Red Hat Magazine 2004 N 3

Utilisez Fedora Kickstart en rseau pour effectuer une nouvelle installation en peu de temps.

inux est de plus en plus utilis, non seulement au sein de trs grands rseaux, mais galement dans certaines situations o il est ncessaire dinstaller de nombreux ordinateurs ou bien de procder une nouvelle installation en un laps de temps rduit. Par exemple, dans le cas de clusters dordinateurs ou dune rinstallation manuelle de stations de travail dans les rseaux dentreprises, suite au dysfonctionnement dun disque dur... Oprations qui demandent beaucoup trop de temps et dnergie au personnel. Kickstart, disponible dans lInstaller de Fedora, est la solution idale ces problmes, puisquil permet deffectuer automatiquement une installation complte, y compris lexcution de scripts adapts pour une conguration ou des besoins spciques. Pourquoi Kickstart ? Par rapport aux autres mthodes dinstallation, Kickstart offre de nombreux avantages. Il est possible de congurer de faon centralise des installations types pour des groupes dordinateurs, tant donn que les divers composants hardware reconnus par le programme dinstallation de Red Hat peuvent tre ignors dans le chier de conguration. La mthode Kickstart ne requiert, comme modle dinstallation, quun seul chier de description qui utilise une syntaxe spcique pour indiquer lInstaller les oprations quil doit excuter. Ce chier de description introduit le second grand avantage de la mthode Kickstart : aucune image dinstallation propre chaque PC nest ncessaire, comme dans le cas de presque tous les autres programmes dinstallation ou de rtablissement dinstallation. Kickstart, en effet, nutilise que les supports dinstallation de Fedora. En outre, le chier de description est substantiellement indpendant de la version. Il est, par consquent, possible dutiliser le mme chier, avec cependant quelques limites, comme par exemple, le choix des paquetages, pour les installations courantes et futures de Fedora. En pratique, Kickstart installe chaque fois un systme avec les mmes caractristiques mais utilise comme base la distribution correspondante et le programme dinstallation relatif.

Toutefois, en cas dinstallations excutes normalement de faon automatique, dans le but de rinstaller sur le disque dur dun serveur ou dun poste de travail des donnes trs importantes, utilisez Kickstart avec prudence parce quune simple erreur dans le chier de conguration pourrait provoquer la perte de ces donnes. De ce fait, soyez trs vigilant lors de la cration du chier de conguration Kickstart. Types dinstallations Pour le stockage des chiers de description dinstallation, Kickstart offre deux mthodes diffrentes. La mthode base sur des disques ncessite un disque de lancement appropri pour chaque ordinateur install. Cette mthode prvoit lutilisation, soit du disque de lancement dinstallation (cr sur la base des chiers des images boot. img) de la distribution Linux utilise, soit du chier de description. la mthode base sur le rseau prvoit le chargement du chier Kickstart partir dun serveur appropri. Comme support de lancement, il est possible dutiliser un disque ou, par exemple, un PXE ou encore un environnement cr pour le lancement partir de cartes rseau dtermines. La premire mthode est conseille pour de petites installations, tandis que pour des installations de plus grande ampleur, il est souhaitable dutiliser la seconde mthode : celle base sur rseau. Dans ce cas, il nest pas ncessaire de consacrer trop de temps la personnalisation du serveur pour Kickstart. Pour dmarrer une installation automatique, il faut de toute faon copier les supports dinstallation de Red Hat sur le serveur, et ce, indpendamment du type dinstallation dsire : base sur disque ou sur rseau. Dans cet article, linstallation base sur CD-ROMs ne sera pas aborde, puisquelle ne permet pas linstallation automatique sans une intervention minimale de lutilisateur.

65

Fedora Kickstart

Red Hat Magazine 2004 N 3

Un rpertoire du disque (ext2) Un partage NFS Un partage http (Webserver) Un partage FTP Les CD-ROMs dinstallation de Red Hat (qui n autorisent pas linstallation automatique). Tableau 1 : Supports de base dinstallation. Copie des supports dinstallation sur le serveur Pour copier les supports dinstallation sur le serveur, il est avant tout ncessaire que la partition correspondante dispose despace sufsant : environ 2 Go. Il faut ensuite crer un nouveau rpertoire dans lequel sauvegarder les supports dinstallation. Dans l exemple suivant est utilis le rpertoire : /kickstart/FC1A. Insrez le premier CD de Fedora dans le lecteur CD-ROM appropri, et tapez ensuite :
#mount /mnt/cdrom #cp af /mnt/cdrom/RedHat /kickstart/FC1A #cp /mnt/cdrom/RELEASE-NOTES* /kickstart/FC1A (nexcutez cette dernire commande que pour le premier CD-ROM) #umount /mnt/CD-ROM

/kickstart

*(ro,all_squash)

Listing 1 : /etc/exports Par la suite, il sera possible de sauvegarder les chiers de conguration de Kickstart dans ce rpertoire. Activez le service NFS en tapant :
#/etc/init.d/nfs start

Si un message derreur comme celui-ci apparat :


Starting NFS quotas: Cannot register service: RPC: Unable to receive...

il faudra aussi lancer le mapper des ports via la commande :


#/etc/init.d/portmap start

Conguration DHCP Pour effectuer une installation partir dun serveur disposant des chiers de conguration, il faut quun serveur DHCP soit disponible sur le rseau de lordinateur installer. Dans lEncadr 2 est reprsent un chier de conguration un peu plus complexe pour le daemon DHCP, qui se base sur 2 sous-rseaux relis de faon logique au calculateur. Tous les sous-rseaux dont est responsable le daemon DHCP dun ordinateur doivent toujours tre directement relis, par exemple au moyen dune carte rseau, avec lordinateur correspondant. Assurez-vous, en outre, quun seul serveur DHCP est utilis par sous-rseau, car lutilisation de plusieurs serveurs pourraient distribuer les donnes de conguration de faon arbitraire. Pour installer et activer le daemon DHCP, ventuellement non install, tapez les commandes suivantes :
#up2date dhcp #vim /etc/dhcpd.conf (laboration du chier de conguration) #/etc/init.d/dhcp start

Rptez lopration pour les 2me et 3me CDs dinstallation. De cette faon, les paquetages dinstallation et tous les programmes binaires de Fedora sont copis dans le rpertoire kickstart/FC1A. Partages du serveur Exportez la base dinstallation an de permettre aux clients de la reprer sur le serveur. Pour excuter lexportation, de nombreuses mthodes sont disponibles, toutefois les partages NFS ou HTTP sont les plus communment utiliss. Dans lexemple suivant, le partage NFS sera utilis car, dans le cas dune installation base sur rseau, Kickstart requiert le chier de conguration correspondant sur partage NFS. En principe, il est galement possible dexcuter des installations par le biais dautres supports de base. Par exemple, un ordinateur qui fournit des donnes partages sur le Web pourrait tre utilis comme support de base pour dimportantes installations. Pour crer le partage NFS, il faut vrier que les paquetages RPM ncessaires sont disponibles sur le serveur. Pour cela, tapez la commande rpm ci-dessous :
#rpm q portmap nfs-utils

Si le serveur DHCP est actif, linstallation Kickstart recevra ladresse IP du serveur DHCP et choisira ensuite le chier de conguration Kickstart en service. Loption next-server spcie le serveur NFS qui contient le chier, tandis que loption lename assigne au programme dinstallation le nom du partage NFS. Kickstart cherchera ensuite dans ce rpertoire le chier de conguration selon le schma suivant :
< Adresse IP >-kickstart

La commande doit renvoyer les noms des deux programmes. Contrlez que le rpertoire complet /kickstart est bien export (voir le Listing 1).

Naturellement, il est galement possible de crer dans ce rpertoire des liens symboliques ainsi que des groupes. Il est, par exemple, possible de crer un chier Kickstart pour un groupe de stations de travail et lutiliser seulement pour les adresses IP intresses. L exemple suivant illustre la cration de ce type de chier Kickstart.

66

Fedora Kickstart

Red Hat Magazine 2004 N 3

# Dnitions globales: option domain-name reseau-essai.redhat.de; default-lease-time 3600; max-lease-time 7200; ddns-update-style none; # Denition du premier sous-rseau (tous les # paramtres spcis dans le sous-rseau, # ne sont valables que pour tel rseau). subnet 192.168.7.0 netmask 255.255.255.0 { option routers 192.168.7.1; # Passerelle prdnie option domain-name-servers # Server DNS 192.168.7.1;

Cration dun chier de conguration avec redhatcong-kickstart La version courante de Fedora comprend loutil redhat-cong-kickstart. Si cet outil nest pas encore install sur le systme, utilisez up2date pour excuter une telle opration. Pour le lancer, tapez redhat-congkickstart. Apparatra alors une fentre de lancement (Figure 1) qui offre les mmes options quune installation Fedora. L outil permet, soit de modier un chier de conguration existant, condition qu il ait t cr avec Red Hat Tool, soit den crer un nouveau. Explorez les lments du menu, visibles gauche. Encore une fois, faites trs attention si des donnes importantes ont t installes sur lordinateur. Llment du menu Conguration de base comprend des options trs importantes comme, par exemple, celle relative la Composition vocale ou l tablissement du mot de passe principal. Loption Mthode dinstallation permet de choisir diverses bases dinstallation et, en outre, deffectuer une nouvelle installation ou bien mettre jour une installation dj existante de Fedora. Les options du bootloader comprennent les bases pour la conguration de Grub/Lilo. Toutefois cet endroit, il n est pas possible dexcuter une conguration dtaille comme, par exemple, celle dun systme dual-boot. La section Information sur la partition permet de spcier le partitionnement. A cet effet, deux options spciques de Kickstart sont disponibles : ondisk qui permet de crer une partition dtermine sur un disque dur spcique et onpart qui permet, par contre, dutiliser une partition dj existante.

option subnet-mask 255.255.255.0; # Donnes du masque de sous-rseau next-server 192.168.7.1; # Adresse du serveur NFS avec le chier # de conguration Kickstart lename /kickstart/; # Rpertoire qui contient le chier # Kickstart (Schma: $[Adresse IP client]). range 192.168.7.200 192.168.7.230; # Adresse assigne par le serveur # (dans ce cas de 192.168.7.200 192.168.7.230) # Pour une installation et une # diversication efcaces, les clients # installer doivent toujours # avoir la mme adresse IP, ceci parce # que le chier Kickstart est slectionn # en fonction de ladresse IP. group { use-host-decl-names on; host workstation1 { # Nom de lordinateur hardware ethernet 00:cb:0b:18:10:45; # Adresse MAC de la carte rseau xed-address 192.168.7.101; # Adresse IP assigner lordinateur } #? Ici il est possible de spcier #? dautres ordinateurs. } # Fin de ladresseIP de lordinateur spci } # Fin du sous-rseau 192.168.7.0 # Il est possible de spcier dautres # sous-rseauX en suivant le mme schma subnet 192.168.200.0 netmask 255.255.255.0 { #? Dnitions? }

Encadr 2 : /etc/dhcpd.conf

Figure 1 : Conguration de base.

67

Fedora Kickstart

Red Hat Magazine 2004 N 3

Puisque Kickstart utilise le programme dinstallation de Red Hat et, par consquent, son systme de dtection hardware, il nest pas ncessaire de spcier les paramtres hardware dans les lments de menus cits ciaprs. Pendant linstallation, les drivers appropris seront congurs automatiquement. En gnral, les donnes dauthentication ne doivent tre modies que lorsquon utilise un systme dauthentication de rseau de type NIS ou LDAP. Si, par contre, le systme appartient un rseau local protg, il est possible de dsactiver loption Conguration Firewall. En ce qui concerne la Conguration de X, avant dactiver le lancement automatique du systme X Window, vriez si vous avez slectionn la conguration approprie. Bien quaujourdhui il soit possible de rsoudre presque tous les problmes hardware, lauteur comme le distributeur devraient faire trs attention avant de satisfaire des demandes hardware particulires. La conguration XFree, aprs que linstallation ait t effectue avec loutil redhatcong-xfree86, reprsente le meilleur compromis. Loutil graphique permet de slectionner les paquetages mais seulement des groupes de paquetages, comme illustr la Figure 2. Si lon dsire spcier un rglage particulier, par exemple slectionner un unique paquetage, il faudra modier manuellement le chier de conguration. Cet argument est trait plus en dtail dans un autre paragraphe du prsent article.

la conguration de Kickstart en cliquant sur Fichier-> Enregistrer chier. Le chier, obtenu pour le rseau utilis ici comme exemple est semblable celui illustr dans lEncadr 3. Un chier de ce type sera prsent plus en dtail dans le paragraphe suivant.
# Gnr par le congurateur Kickstart lang en_US # Langue du systme langsupport de_DE --default=en_US # Langues installer keyboard de-latin1-nodeadkeys # Type de clavier mouse generic3ps/2 # Type de souris timezone Europe/Berlin # Fuseau horaire rootpw --iscrypted $1$To1ZVQMJ$SjOFyd7tZ2y. fR.G2oMt// # Password principal reboot # Redmarrage aprs linstallation text # Installation en mode texte install # Excute une rinstallation et non # pas une mise jour nfs --server=192.168.7.1 --dir=/kickstart/ FC1A # Support dinstallation bootloader --location=mbr # Endroit o installer le chargeur de dmarrage zerombr yes # Efface le MBR principal clearpart --all --initlabel # Elimine toutes # les partitions existantes et la table des # partitions

# Informations sur le partionnement part /boot --fstype ext3 --size 80 -asprimary part / --fstype ext3 --size 1 --grow part swap --size 512

# Options dauthentication

Figure 2 : Slection des paquetages. La mme conguration sera utilise pour les scripts %pre et %post. Les scripts permettent dapporter des modications dnies par lutilisateur. Il est possible, par exemple, de contrler les donnes en rseau, comme envoyer un message avec le texte : Administrateur, lordinateur a t install et plus encore, sans poser de limites la crativit. Aprs avoir rgl toutes les options dsires, enregistrez

auth

--useshadow

--enablemd5

# Conguration de linterface rseau network --bootproto=static -ip=192.168.7.101 --netmask=255.255.255.0 -gateway=192.168.7.254 --nameserver=192.168.7.1 --device=eth0

68

Fedora Kickstart

Red Hat Magazine 2004 N 3

rewall --disabled # Dsactive les rgles du # rewall # Conguration de Xfree86 xcong --depth=32 --resolution=1280x1024 -defaultdesktop=KDE # Selection des paquets (rsoud automa# tiquement les dpendances) %packages --resolvedeps @ X Window System @ KDE Desktop Environment @ Graphical Internet @ Ofce/Productivity @ Administration Tools @ Printing Support

device ethernet 3c509 -opts io=0x320, irq=7 # Carte Ethernet bootloader -useLilo -linear --location=mbr zerombr yes # Efface le MBR clearpart --all --initlabel part /boot --fstype ext3 --size 80 --asprimary part / --fstype ext3 --size 1 --grow \ --onpart hda2 --maxsize 2000 part /var/www --fstype ext2 --size 20000 part swap --size 512 auth --useshadow --enablemd5

network --bootproto=dhcp rewall --disabled skipx # Ignore la conguration de X # Slection des paquets (rsoud # automatiquement les dpendances) %packages --resolvedeps @ Ofce/Productivity @ Administration Tools @ Printing Support lynx httpd %post # Les scripts CHROOT sont excuts # dans linstallation prte)

Encadr 3 : ks.cfg Cration manuelle dun chier de conguration Pourquoi crer manuellement un chier de conguration, opration plutt complique, alors que tout ou presque est disponible dans loutil Fedora ? Les rponses cette question sont multiples. Soit parce que le programme dinstallation ne reconnat pas un composant hardware, telle une carte rseau, soit parce que lutilisateur dsire personnaliser le systme avec des scripts. Mme la slection dun simple paquetage de la distribution pour une installation doit tre effectue manuellement. Il est conseill de se baser sur un chier cr avec loutil GUI, de faon viter des erreurs de construction ou de mise en place des lments un par un qui pourraient provoquer des interruptions dans le processus dinstallation, ou bien des demandes dinformations manquantes ou errones dans la description de Kickstart. Dans tous les cas, aprs quelques tentatives, lerreur est presque toujours repre, preuve de lefcacit de cette mthode dinstallation. Dans lEncadr 4, un exemple des grandes possibilits de Kickstart est prsent, en utilisant une vieille carte rseau non reconnue et un script post installation.
lang de_DE langsupport de_DE keyboard de-latin1-nodeadkeys mouse generic3ps/2 timezone Europe/Berlin rootpw redhattestpasswort text install nfs --server=192.168.7.1 --dir=/kickstart/FC1A

# Introduction du nom du serveur: cat > /etc/resolv.conf <<EON search domain1.de domain2.de unterdomain. domain2.de nameserver 192.168.7.2 nameserver 192.168.7.3 EON # Activation de laccs aux disques durs DMA cat > /etc/syscong/harddisks <<EOF USE_DMA=1 MULTIPLE_IO=16 EIDE_32BIT=3 LOOKAHEAD=1 EXTRA_PARAMS=-X68 EOF chkcong lpd off chkcong httpd on mail -s Fin Install Ordinateur \ root@mailserver < /dev/null

Encadr 4 : ks-avanc.cfg

69

Fedora Kickstart

Red Hat Magazine 2004 N 3

Les informations relatives aux groupes de paquetages utiliss dans le chier description, comme par exemple @Graphical Internet, sont disponibles dans le chier : /kickstart/FC1ARed Hat/base/comps Il est important dobserver que lInstaller de Red Hat neffectue que linstallation de paquetages signs lectroniquement Red Hat. Tous les paquetages tiers doivent tre installs dans la section %post au moyen de la commande rpm. Cest--dire quil permet dobtenir une installation de base toujours stable. Prparation dune disquette de dmarrage Pour crer une disquette de dmarrage, insrez le premier CD de Fedora dans le lecteur de CD-ROM appropri et une disquette 1,44 formate dans le premier lecteur de disquettes de lordinateur. Tapez ensuite les commandes suivantes :
#mount /mnt/cdrom #dd if=/mnt/cdrom/images/bootdisk.img of=/dev/fd0 #umount /mnt/cdrom \

Prparation dun CD-ROM de lancement Dans le cas o les drivers rseau ncessaires pour linstallation ne seraient pas compatibles avec une disquette, nous vous conseillons dutiliser un CD-ROM de lancement. Mastrisez le chier image ISO boot.iso, disponible dans le mme rpertoire de la disquette de dmarrage, sur un CD vierge et activez ensuite le lancement partir du CD-ROM dans le BIOS de lordinateur installer. Il suft de taper linuxks pour activer le mode Kickstart. Il est conseill de ne pas modier le chier syslinux.cfg pour le lancement automatique, parce qu il arrive souvent doublier les CD-ROM dans le lecteur et cela conduirait une nouvelle installation chaque dmarrage. Pour remdier au problme, surtout dans les cas d installations importantes, il est utile denvoyer un message la n du processus dinstallation qui indique ladministrateur sur quels ordinateurs linstallation a dj t effectue. Lancement du programme dinstallation par lintermdiaire de PXE PXE est sans doute la faon la plus lgante pour excuter dimportantes installations en rseau. Il est particulirement indiqu comme protocole pour les nombreuses cartes rseaux installes dans les ordinateurs dentreprises. PXE est en mesure de charger le programme dexcution de Fedora, directement partir du rseau, en vitant par consquent lutilisation dun support de lancement. Il est aussi possible dinclure des options au lancement qui permettent lutilisateur deffectuer le rtablissement automatique du systme. Puisquil nest pas possible dans cet article dillustrer en dtail lenvironnement PXE, nous vous renvoyons sur le site http://www.stanford.edu/~alfw/PXE-Kickstart/PXEKickstart.html qui contient un article intressant de Alf Wachsmann avec des instructions dtailles sur lutilisation de Kickstart. Procdure dinstallation Aprs avoir insr le support et dmarr lordinateur, Fedora commence par lancer lInstaller Anaconda. En mode Kickstart avec conguration base sur rseau, Kickstart tente avant tout dobtenir sa propre adresse IP au moyen dune requte DHCP et ensuite de charger le chier de description correspondant partir du serveur. Si cette procdure est excute correctement, la conguration de base peut tre estime complte. Pendant linstallation, il est possible de tenir sous contrle limage normale dinstallation sur la console 1 (ALT+F1). Dautres fonctions de lInstaller sont, quoi quil en soit, disponibles partir dune phase dtermine du processus dinstallation. Sur la console 2 (ALT+F2) il sera possible de trouver une console Bash pour la rcolte dinformations pour le debugging. La console 3 permet de relever dventuels problmes hardware car cest souvent ici que sont visibles les modules du kernel. Cest pourquoi, en cas de problmes

De cette faon, une image gnrique pour les installations a t crite sur disquette. Une telle disquette pourra par consquent tre utilise pour les installations standard de Linux avec une base rseau, ou mme pour les installations automatiques de Kickstart. Pour lancer automatiquement le mode Kickstart linuxks, montez la disquette qui vient d tre mentionne en tapant :
#mount /mnt/oppy

Suivez la mthode approprie parmi les deux rapportes cidessous : 1. Fichier Kickstart sur disquette (bas sur disquette) En utilisant lditeur de texte dsir, modiez les deux lignes suivantes dans le chier /mnt/oppy/syslinux.cfg
prompt 0 default linux ks=oppy

2. Fichier Kickstart en rseau (bas sur rseau) Modiez les deux lignes suivantes dans
prompt 0 default linux ks

A la n de cette opration, il sera possible de copier le chier de conguration de Kickstart de la disquette dans le chier
/mnt/oppy/ks.cfg

Daemontez de nouveau la disquette en tapant :


#umount /mnt/oppy

70

Fedora Kickstart

Red Hat Magazine 2004 N 3

durant linstallation, il est utile de les contrler via cette console. En outre, contrlez toujours le chier /var/log/messages dans le serveur appropri. En rappelant la commande :
#tail-f /var/log/messages

#showmount -e <Adresse IP du serveur> Il est toujours possible de visualiser tous les partages NFS du serveur intress. Le problme est presque toujours d des erreurs dintroduction contenues dans ces partages. Un autre type derreur trs frquemment rencontr dans les installations de Kickstart est une syntaxe incorrecte dans le chier de description, qui provoque une interruption du processus dinstallation ou bien galement, dans bien des cas, une erreur dun script python. Ces erreurs se trouvent presque toujours dans la description de base du systme plutt que dans les scripts %pre ou %post. Par consquent, la meilleure solution consiste effectuer une comparaison avec les scripts dj contrls et corrects. Si quelques scripts ont t crs manuellement avec la GUI, il sera possible de rsoudre encore plus rapidement les problmes ventuels grce la familiarit acquise. Installation de paquetages spars Sur des groupes dordinateurs installs avec Kickstart, il pourrait tre ncessaire dinstaller par la suite de nouvelles versions de logiciels. Dans ce but, utilisez loutil de gestion des paquetages RPM, lesquels peuvent tre installs dans le script %post. Les paquetages RPM permettent deffectuer des personnalisations complexes quil sera possible par la suite, de supprimer au moyen des commandes standard, ainsi que dajouter quelques utilisateurs ou de crer un prol pour des activits dtermines. LEncadr 5 illustre un exemple pour un chier spec qui permet dajouter un utilisateur qui pourra tre supprim nimporte quel moment. Le but de lexemple est de contrler distance un numro vert. Pour excuter cette opration, il a t fait rfrence un script log dans une archive tar du chier spec. Linstallation des paquetages RPM avec le script -%post de Kickstart permet dtendre galement laccs tous les autres ordinateurs.
Summary: RemoteSupportUser

Il sera possible de visualiser en live et par consquent de contrler les commandes du processus dinstallation qui ont t excuts correctement et celles qui, inversement, prsentent des problmes. Par exemple, le manque de rception de signaux DHCP ou NFS venant de lordinateur client est attribuable un problme hardware sur le rseau. Le paquetage sniffer tcpdump permet galement, par exemple, de diagnostiquer des problmes hardware sil ne relve aucun trac du client. Boot partir du CD-ROM/Disquette

DHCP: Dtermination de la conguration de rseau

NFS: Montage du rpertoire /kickstart

Interprtation de la conguration de Kickstart

Partitionnement et formatage du disque dur

%pre-script

Name: remotesupport Version: 0.1

Installation et conguration des paquetages

Release: 1 License: GPL

%post-script et redmarrage Squence d installation Kickstart. Sources d erreur Les partages errons NFS reprsentent une source derreur bien connue dans les installations automatiques, puisquils ne permettent pas lhte daccder aux chiers de conguration et de distribution de Kickstart. Avec la commande :

Group: System Environment/Base Source0: %{name}-%{version}.tar.gz Buildroot: %{_tmppath}/%{name}-%{version}buildroot Packager: Frederik Bijlsma <frederik@killesberg.org> Provides: remotesupportuser

71

Fedora Kickstart

Red Hat Magazine 2004 N 3

Requires: /bin/mail BuildArch: noarch %description NULL %prep %setup -q %build #empty %install rm -rf %{buildroot} mkdir -p %{buildroot}/home/remotesupportuser install -m 0755 .logrc %{buildroot}/home/ remotesupportuser install -m 0755 .bash_prole %{buildroot}/ home/remotesupportuser %clean rm -rf %{buildroot} %pre userdel remotesupportuser >/dev/null 2>&1 userdel `awk -F: $3 == 9993 /etc/passwd | awk -F: { print $1 }` >/dev/null 2>&1 useradd -c Remote Support User -d /home/ remotesupportuser -g root -s /bin/bash -u 499 remotesupportuser >/dev/null 2>&1 %postun userdel remotesupportuser > /dev/null 2> / dev/null %les %defattr(-,root,root) %attr(0775,remotesupportuser,root) home/remotesupportuser/scriptlog %attr(0755,remotesupportuser,root) home/remotesupportuser/.bash_prole %attr(0755,remotesupportuser,root) home/remotesupportuser/.logrc %changelog

Conclusion Le prsent article a dcrit une installation Kickstart base rseau, reposant sur un serveur DHCP fonctionnel et un serveur NFS disposant des chiers de description Kickstart et des supports dinstallation. Puisque beaucoup dentreprises utilisent dj ces deux types de serveurs au sein de leurs rseaux, lutilisation de Kickstart ne devrait pas se rvler trop dispendieuse, except les quelques modications ncessaires apporter. Lutilisation de Kickstart est recommande lorsquil est ncessaire dinstaller simultanment de nombreux ordinateurs comme, par exemple, pour les clusters. Avec un rseau trs rapide, il est possible dinstaller en lespace dune heure de nombreuses machines, automatiquement ou individuellement. Aprs avoir acquis un peu de pratique, il sera possible dutiliser Kickstart pour diverses raisons, par exemple pour installer de grands clusters ou pour rtablir le poste de travail de lordinateur de la secrtaire, sans devoir payer des techniciens qui gnralement rclament une compensation supplmentaire pour ces oprations. En cas de problme avec lutilisation de Kickstart, consultez la mailing list ladresse h t t p : / / w w w. r e d h a t . c o m / a r c h i v e s / k i c k s t a r t - l i s t / . Naturellement, il est galement possible de se rfrer au support technique, mais avec Kickstart vous en aurez rarement besoin.

Encadr 5 : rmeuser.spec

Frederik Bijlsma est consultant pour Red Hat, Stuttgart

72

Chapitre 11

Synchronisation de chiers

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

380 / 803

11 Synchronisation de chiers

Chapitre 11 Synchronisation de chiers

11.1 Introduction

11.1 Introduction

Contexte : deux ou plusieurs machines qui ne peuvent pas partager de chiers par NFS. Exemples : un ordinateur portable et une machine de bureau deux ordinateurs relis par une liaison intermittente comme une liaison tlphonique PPP etc. La synchronisation manuelle est pnible faire. Plusieurs logiciels automatisent la synchronisation. Reste les lancer au bon moment (cf CRON) et paramtrer ce que lon doit synchroniser.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

381 / 803

11 Synchronisation de chiers

Chapitre 11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

11.2 Synchronisation de chiers UNIX via rdist

RDIST est un programme de distribution de chiers sur des machines distantes, sur la base des dates de modication des chiers source ou des chiers distants.

De plus en plus livre en standard avec les dirents UNIX mais lui prfrer quand mme la version disponible lURL http://www.magnicomp.com/rdist/ (anciennement : ftp://ftp.usc.edu/pub/rdist/ )

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

382 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

La commande rdist utilise un chier de conguration appel par dfaut distfile ou Distfile Si le chier ne sappelle pas distfile ou Distfile , il faut utiliser loption -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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

383 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

Exemple 1 Objectif : mettre jour du chier /tmp/fichier.txt dune machine distante nomme remote.example.com partir du chier local /tmp/fichier.txt : Solution : chier Distfile contenant :
/tmp/fichier.txt -> remote.example.com install ;

Utilisation et rsultats :
% 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

384 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

La mise jour ci dessus est inconditionnelle. Elle ne fait pas de comparaison de date. Pour activer la vrication des dates de modication, il faut utiliser loption -y .

% rdist -y remote.example.com: updating host remote.example.com remote.example.com: updating of remote.example.com finished

Notez les dirence avec les rsultats prcdents.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

385 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

Exemple 2 : macros Objectif : mettre jour les chiers /var/tmp/fichier.txt et /var/tmp/fichier2.txt des machines distantes nommes remote.example.com , remote2.example.com et remote3.example.com partir des chiers locaux originaux /tmp/fichier.txt et /tmp/fichier2.txt .

Soit le chier 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

386 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

On constate : on utilise des macros : FILES , HOSTS on met jour des chiers distants de paths dirents des originaux on envoie un mail une fois la mise jour faite

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

387 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

Possibilit de ne mettre jour quune machine du lot via loption -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: notify @remote.example.com ( besancon ) remote.example.com: updating of remote.example.com finished

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

388 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers 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: notify @remote.example.com ( besancon ) remote.example.com: updating of remote.example.com finished

Notez le mot updating au lieu de installing .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

389 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

Exemple 3 : directive special Soit le chier Distfile contenant les lignes suivantes :
/tmp/fichier.txt -> remote.example.com install ; special "uname -a" ;

Son excution donne :


% rdist remote.example.com: remote.example.com: remote.example.com: remote.example.com: remote.example.com: updating host remote.example.com /tmp/fichier.txt: installing special "uname -a" FreeBSD remote.example.com 4.6.1-RC2 updating of remote.example.com finished

On constate quune fois la mise jour des chiers ralise, la commande spcie par special est excute sur la machine distante.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 390 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers UNIX via rdist

exemple 4 : essai blanc Loption -n essaye blanc le scenario de mise jour mais ne ralise pas la mise jour en pratique. Avec le chier Distfile de lexemple 1, on voit ainsi :
% rdist -n updating host remote.example.com install -onochkgroup,nochkowner,younger /tmp/fichier.txt /tmp/fichier.txt

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

391 / 803

11 Synchronisation de chiers

11.2 Synchronisation de chiers 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 chier Distfile de lexemple 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

392 / 803

11 Synchronisation de chiers

Chapitre 11 Synchronisation de chiers

11.3 Synchronisation de chiers UNIX via rsync

11.3 Synchronisation de chiers UNIX via rsync

(en anglais Remote Synchronisation) RSYNC est un protocole plus ecace que RDIST. Par exemple, on ne transfre que les dirences entre chiers et non pas la totalit du chier. Pas encore install en standard. Se reporter http://rsync.samba.org/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

393 / 803

11 Synchronisation de chiers

11.3 Synchronisation de chiers UNIX via rsync

On utilise la commande de ces diverses faons :


rsync rsync rsync rsync rsync rsync [OPTION]... [OPTION]... [OPTION]... [OPTION]... [OPTION]... [OPTION]... SRC [SRC]... [USER@]HOST:DEST [USER@]HOST:SRC DEST SRC [SRC]... DEST [USER@]HOST::SRC [DEST] SRC [SRC]... [USER@]HOST::DEST rsync://[USER@]HOST[:PORT]/SRC [DEST]

Il y a un mode de fonctionnement o un dmon rsyncd est install et rpond des requtes authenties ou non.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

394 / 803

11 Synchronisation de chiers

11.3 Synchronisation de chiers UNIX via rsync

Exemple Soit larborescence /tmp/exemple synchroniser :


% ls -lR /tmp/exemple /tmp/exemple/: total 64 -rwxr-xr-x 1 besancon -rwxr-xr-x 1 besancon -rwxr-xr-x 1 besancon drwxr-xr-x 2 besancon

adm adm adm adm

211 211 211 182

Aug Aug Aug Aug

26 26 26 26

17:53 17:53 17:53 17:54

fichier1* fichier2* fichier3* repertoire1/

/tmp/exemple/repertoire1: total 16 -rwxr-xr-x 1 besancon adm

211 Aug 26 17:53 fichier4*

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

395 / 803

11 Synchronisation de chiers

11.3 Synchronisation de chiers UNIX via rsync

La synchronisation avec une autre machine appele 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

396 / 803

11 Synchronisation de chiers

11.3 Synchronisation de chiers UNIX via rsync

La commande prcdente ache :


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 606.00 bytes/sec total size is 844 speedup is 0.93
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 397 / 803

11 Synchronisation de chiers

11.4 Synchronisation de chiers WINDOWS via FullSync.exe Chapitre 11 Synchronisation de chiers

11.4 Synchronisation de chiers WINDOWS via FullSync.exe

Programme FULLSYNC pour Windows. http://fullsync.sourceforge.net/ Synchronisation de chiers entre disques locaux Synchronisation de chiers entre disques locaux et rseau via FTP, SFTP, SMB Synchronisation unidirectionnelle sans eacement sur la destination Synchronisation unidirectionnelle exacte Synchronisation bidirectionnelle Programmation la CRON

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

398 / 803

11 Synchronisation de chiers

11.4 Synchronisation de chiers WINDOWS via FullSync.exe

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

399 / 803

Chapitre 12

SAMBA

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

400 / 803

12 SAMBA

Chapitre 12 SAMBA

12.1 Introduction

12.1 Introduction

Voir cours de Franck RUPIN.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

401 / 803

Chapitre 13

Systmes dimpression

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

402 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.1 Langage dimpression Postscript

13.1 Langage dimpression Postscript

Langage cr par la socit Adobe ( http://www.adobe.com ) Dessin vectoriel. Le nom dun chier Postscript se nit en gnral par le suxe .ps ou .eps . Systme de coordonnes au sein dune page Postscript Format amricain (dit letter ) : 612 x 795 Format europen (dit a4 ) : 595 x 842

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

403 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Langage de description de page, fonctionnant avec une stack (pile). Par exemple 1 + 6 5 peut se coder : forme 1 6 5 sub add forme 1 6 add 5 sub forme 1 6 5 neg add add etc. ce qui donne avec la premire forme :
sub add

5 6 1 1 1 2

Un document imprimer = un programme excuter


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 404 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Le contenu dun chier Postscript commence par les 2 premiers caractres %! . Les chiers Postscript destins tre inclus dans dautres documents sont dits Encapsulated Postscript (ou EPSF) et commencent par une ligne du genre :
%!PS-Adobe-2.0 EPSF-1.2

suivie dautres lignes de commentaires actifs :


%%Creator:Adobe Illustrator(TM) 1.0b2%%Title:golfer art+ %%CreationDate:1/6/87 9:32 AM %%DocumentFonts:Helvetica-Bold %%BoundingBox:7 31 577 726

dont %%BoundingBox: qui dtermine les dimensions du dessin.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

405 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Par exemple, le code suivant :

%! /Times-Roman findfont 40 scalefont setfont 60 500 moveto (TEST DE LIMPRIMANTE) show 175 300 moveto (T.BESANCON) show showpage

TEST DE LIMPRIMANTE

T.BESANCON

donne, une fois imprim, la page suivante :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

406 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Les dessins en Postscript peuvent tre complexes :

Poids de ce dessin vectoriel (par tte) : 78606 octets, ce qui est faible par rapport du bitmap
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 407 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Un document imprimer = un programme excuter La partie logicielle qui excute le chier Postscript est un interprteur Postscript. Linterprteur Postscript le plus connu est ghostscript. Cf http://www.ghostscript.com 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) http://wwwthep.physik.uni-mainz.de/~plass/gv/ (GUI pour UNIX) http://www.cs.wisc.edu/~ghost/gsview/ (GUI pour Windows) http://www.cs.wisc.edu/~ghost/macos/ (GUI pour Macintosh)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 408 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Lintrt de ghostscript est : visualiser des chiers Postscript comme les documentations convertir des chiers Postscript en dautres 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

409 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Quelques utilisations intressantes : calculer la BoundingBox dune gure Postscript :


gs -sDEVICE=bbox fichier.ps

acher 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

410 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Comment imprimer un chier texte sur une imprimante Postscript ? Rponse : aprs lavoir converti en Postscript Quelques outils : outil a2ps, cf http://www.gnu.org/software/a2ps/ outil gnu enscript, cf http://www.gnu.org/software/enscript/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

411 / 803

13 Systmes dimpression

13.1 Langage dimpression Postscript

Comment imprimer plusieurs pages cte cte (format dit N up) ? Rponse : convertir en chier Postscript normal le chier original puis regrouper les pages sur la mme page via un autre code Postscript Quelques outils : outil a2ps, cf http://www.gnu.org/software/a2ps/ outil mpage, cf http://www.mesa.nl/pub/mpage/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

412 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.2 Langage dimpression PCL

13.2 Langage dimpression PCL

PCL Printer Command Language Langage de description de la page imprimer. Dvelopp par HP pour ses imprimantes. 6 versions de PCL : PCL 1 (annes 1980), PCL 2 (annes 1980), PCL 3 (1984), PCL 4 (1985), PCL 5 (HP Laserjet III), PCL 6 (HP Lasetjet 4000) Les commandes PCL sont des squences descape. 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

413 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.3 Langage dimpression PJL

13.3 Langage dimpression PJL

PJL Printer Job Language Language de contrle de limpression des jobs. Par exemple : slection du bac dentre ou de sortie de papier impression recto verso taille du papier chier PCL ou chier Postscript etc. Exemple de commande : ESC%-12345X@PJL DEFAULTS DENSITY=5 Le logiciel ifhp associ LPRng sait tirer pleinement parti du langage PJL. Cf http://www.lprng.org
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 414 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.4 Limprimante vintage

13.4 Limprimante vintage

Limprimante vintage : imprimante matricielle etc. avec ruban encre papier listing avec bande dentrainement sectionnable connexion par voie srie 9600 bauds, gestion du ux XON/XOFF

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

415 / 803

13 Systmes dimpression

13.4 Limprimante vintage

Lundi 25 Juin 2007 00:42:23

woman1.txt
.. . . "..:I:... . ..:.:....:II: .... . .:.::.:I:.:II:...... ....::.:.:.:I:.... . .....:.:I::.:II:...... . ...:.:.::.:.::II::...... . .....:.::. .:::II:.:..... . .:..:...:.:I....... .. .. :. .:. ..:.::.::.:... :.... .. .:.:.:. .::I:.:.. ... : ... .. ..:.:. .:.II:.:.. . .:.. .. . . .. .. :.:.. .:.:I:.:. . . ..:..:. :..:. . . .:. :.:. .:.:I:.:. . . ..:I::. :: :: .. .. .. :..:. .:.:I:. ..:.:I:. :: ::. . . ..:. .:.. .:II: ..:IIIM. ::. :. . .:.::.:::..:.AII:. .::.. :I .::.::. . :..:.:II:.:I: ..: . .::PBIX:: ..:.. :. . . .. ::III:. :.:APPF:. . .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:. . . .. ..... . MMMMIMIII: . :.. . . . .. .:.:.:.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::.:.. . . . .. ......:..IMMMIMMMMMM2.. . . . . ... .:.: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::.:... . . .. .. .:. ..

Page 1

caractres normaux caractres gras par rcriture dun caractre une seconde fois sur lui-mme : A = A backspace A = A^HA idem pour caractres souligns = A backspace underscore = A^H_ peu ou pas de polices de caractres peu ou pas de possibilits de tailles varies de caractres documents au format texte uniquement etc.
c T.Besanon (v12.0.364) Administration UNIX

pas de graphiques ou de dessin (sauf ASCII art)

ARS 2009 2010 Partie 3

416 / 803

13 Systmes dimpression

13.4 Limprimante vintage

Rsum des caractristiques des impressions sur ce type dimprimantes : connexion non rseau par voie srie (plus tard par voie parallle)

imprimer = cat rapport.txt > /dev/tty0a

Dans cette logique, un logiciel dimpression est avant tout capable de grer des voies sries.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

417 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.5 Limprimante moderne

13.5 Limprimante moderne

Limprimante moderne : photocopieur, imprimante rseau, scanner, fax

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

418 / 803

13 Systmes dimpression

13.5 Limprimante moderne

Caractristiques : Photocopieur :
codes daccs quotas de photocopies relev des compteurs serveur web intgr : protection des accs, certicats HTTPS, etc.

Imprimante rseau :
conguration rseau minimale (adresse IP, netmask, routeur, . . .) conguration rseau avance : ACL pour contrler les accs dimpression, demail, de partage de chiers disque dur local (pour stocker des polices supplmentaires, des logos, des documents frquemment imprims, etc.)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

419 / 803

13 Systmes dimpression

13.5 Limprimante moderne

Caractristiques (suite) : Scanner (vers formats TIFF ou PDF) avec envoi des chiers numriss par email ou rcupration par FTP des chiers numriss :
logiciels spciques sur le poste de travail de lutilisateur, drivers TWAIN, etc. attention aux logiciels ne travaillant que sur un seul subnet ethernet ! conguration des paramtres de messagerie lectronique conguration dun annuaire LDAP dentreprise ou des contacts de lentreprise conguration de partages rseau pour accder aux chiers scanns stocks sur le photocopieur, conguration des ACL rseau pour FTP, ...

Systme dexploitation
bugs (exemple gestion LDAP sur photocopieur CANON couleur) disque dur + problmes de disques durs licences logicielles (codes dactivation, dongles, etc.)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

420 / 803

13 Systmes dimpression

13.5 Limprimante moderne

Rsum des caractristiques des impressions sur ce type dimprimantes : connexion rseau par TCP/IP protocoles rseau implments dans limprimante

imprimer = dialogue selon des protocoles avec un hte TCP/IP qui prend en charge un chier au jargon spcique imprimer physiquement
Dans cette logique, un logiciel dimpression est avant tout capable de dialoguer en rseau selon des protocoles spciaux.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

421 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.6 Scenarios dimpressions possibles

13.6 Scenarios dimpressions possibles

Pleins de scenarios sont possibles dans le monde de limpression :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

422 / 803

13 Systmes dimpression

13.6 Scenarios dimpressions possibles

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

423 / 803

13 Systmes dimpression

13.6 Scenarios dimpressions possibles

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

424 / 803

13 Systmes dimpression

13.6 Scenarios dimpressions possibles

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

425 / 803

13 Systmes dimpression

13.6 Scenarios dimpressions possibles

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

426 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.7 Mcanismes et protocoles dimpression

13.7 Mcanismes et protocoles dimpression

Dans un environnement rel, les mcanismes dimpression permettent aux utilisateurs de saranchir : de la connaissance des noms techniques des priphriques ; du risque dimpressions mlanges lorsque deux utilisateurs essayent dimprimer en mme temps ; des dtails matriels tels que labsence momentane de papier ; de la ncessit dattendre que limpression en cours se termine ; etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

427 / 803

13 Systmes dimpression

13.7 Mcanismes et protocoles dimpression

Pour rsoudre tous ces problmes, il a t conu des spouleurs (spoolers). Le principe en est simple : Les utilisateurs dposent leurs chiers dans un rpertoire convenu, laide de la commande dimpression . Cest la requte dimpression. Un dmon systme surveille ce rpertoire (le dattente), en extrait un chier, limprime, puis extrait le suivant, limprime, etc. Des commandes permettent aux utilisateurs de savoir ce quil y a dans la le dattente et ventuellement de dtruire une de leurs requtes. Des commandes permettent ladministrateur de grer ce mcanisme :
cration dune nouvelle le dattente pour une nouvelle imprimante ; autorisation ou interdiction des dpts dans des les dattente ; autorisation ou interdiction des impressions ; redirection des travaux dimpression dune imprimante une autre imprimante ; etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

428 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.8 Situation logicielle en 2007

13.8 Situation logicielle en 2007

Plusieurs logiciels : mcanisme LP (SOLARIS) obsolte mcanisme LPR obsolte mcanisme LPRng (LINUX, UNIX) http://www.lprng.com a tendance devenir obsolte mcanisme CUPS (LINUX, UNIX, Windows 2000/XP/2003, MacOSX) bas sur IPP (Internet Printing Protocol) http://www.cups.org a la cte

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

429 / 803

13 Systmes dimpression

13.8 Situation logicielle en 2007

Principes globaux de tous ces mcanismes : machines clientes dun serveur dimpression le serveur dimpression a des queues dimpression pour les diverses imprimantes fonctionalits de gestion des queues plus ou moins labores selon le protocole : LP < LPR < LPRng < CUPS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

430 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.9 Protocole dimpression LP

13.9 Protocole dimpression LP

commandes du systme dimpression LP


Commande
accept cancel disable enable lp lpadmin lpmove lpsched lpshut lpstat reject

Autorisation administrateur utilisateur utilisateur utilisateur utilisateur administrateur administrateur administrateur administrateur utilisateur administrateur

Description accepte les requtes supprime une requte dsactive une imprimante active une imprimante place une requte dans une le conguration change la destination dune requte le dmon proprement dit arrte le dmon liste la le dattente refuse les requtes

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

431 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Les interactions entre les dirents composants du systme LP sont rsumes dans la gure suivante :

lp

lpmove

accept/reject

file dattente lpstat

flle dattente

enable/disable lpsched

imprimante 1

imprimante 2

imprimante 3

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

432 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Destinations - Files dattente Les requtes sont diriges vers des destinations. Une destination correspond un le dattente. Chaque le dattente peut tre associe : une imprimante isole (cas le plus frquent). Cest le cas de limprimante 1 dans lexemple ; un groupe dimprimantes : cest ce quon nomme une classe. Les requtes sont alors envoyes indiremment sur nimporte laquelle des imprimantes de la classe. Cest le cas des imprimantes 2 et 3 dans lexemple.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

433 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Il y a trois moyens de spcier une destination, classs par ordre de priorit :


1 2 3

avec loption -d ; avec la variable denvironnement LPDEST ; en ne nommant aucune destination : la destination par dfaut est alors choisie.

Lorsque lutilisateur tape la commande lp , la requte est mmorise dans la le dattente correspondant la destination spcie. La mmorisation est autorise si le robinet contrlant laccs la le est ouvert. Ladministrateur agit sur ce robinet avec les commandes accept et reject .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

434 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

La commande lpstat permet de visualiser le contenu des les dattentes. La commande cancel permet de retirer une requte de sa le dattente. Les requtes dans les les dattente sont ensuite traites par le dmon lpsched . Celui-ci surveille ltat de toutes les dattente et les imprimantes. Lorsquune imprimante a ni dimprimer, lpsched choisit la requte suivante dans la le, et lenvoie sur limprimante. Limpression est autorise si le robinet contrlant laccs une imprimante est ouvert. Ladministrateur, ou les utilisateurs, peuvent contrler ce robinet avec les commandes enable et disable . Lorsquune destination est indisponible, ladministrateur peut rerouter une requte ou lensemble des requtes situes dans une le dattente dans une autre. Il faut pour cela que le dmon soit arrt.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 435 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Larrt du dmon lpsched est eectu par lpshut . De manire gnrale, toute modication sur le systme dimpression doit se faire lorsque le dmon est larrt. Larrt est brutal : les requtes en cours dimpression sont purement et simplement stoppes. Le redmarrage du dmon provoquera nouveau leur impression depuis le dbut.

Enn, la commande lpadmin est la bote outils de ladministrateur. Elle permet de contrler tous les constituants du systme (hors robinets).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

436 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

La commande lp permet de demander limpression dun ou de plusieurs chiers :


lp [-d destination] [-m] [-n nombre] [-o options] [-s] [-t titre] [-w] fichiers

Les options sont : Option


-d -m -n -o -s -t -w

Signication spcie une imprimante envoie un courrier lorsque limpression est nie demande limpression de plusieurs copies passe des options au script dimpression nache pas lidenticateur dans la le dattente imprime un titre sur la page den-tte envoie un message lorsque limpression est nie

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

437 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Scripts dimpression Lorsque lpsched lance une impression, il appelle en ralit un script shell appel le script dinterface. Ce script, nomm du nom de limprimante, a pour fonction dimprimer la bannire et le chier. Il reoit en paramtres :
1 2 3 4 5

lidenticateur de la requte dans la le dattente ; le nom de lutilisateur qui a formul la requte ; le titre quil a ventuellement indiqu ; le nombre de copies imprimer ; les options ventuellement spcies par loption -o de la commande lp ; et enn une liste de chiers dans la le dattente.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

438 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

La sortie standard de ce script est redirige sur le chier spcial correspondant limprimante, et la sortie derreur est ventuellement transmise par courrier lutilisateur. Dans le cas le plus simple, ce script gnre une bannire et ne fait quun cat du chier sur la sortie standard pour eectuer limpression. Mais des scripts plus volus permettent de reconnatre automatiquement le type du chier et limprimer en consquence (PostScript, texte, etc.). Les options peuvent permettre de changer de fonte, de bac papier, de taille de page, etc. Lutilisation de tels scripts rend ce systme dimpression particulirement souple. Si beaucoup de scripts modles sont fournis par le constructeur, la possibilit de les modier et de les adapter est trs importante pour utiliser pleinement les imprimantes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

439 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Ajout dune imprimante Lors de lajout dune imprimante, il faut : avoir le bon cable (parallle, srie ou autre) ; crer le chier spcial correspondant linterface ; rendre lp propritaire du chier spcial ; changer les droits du chier spcial pour que personne ne puisse y accder autrement que par lp ; rcapituler les paramtres de connexion (caractristiques de la liaison) ; identier le type de limprimante et choisir en consquence un script modle sen approchant. Les scripts modle sont en principe dans le rpertoire : /usr/spool/lp/model . choisir un nom pour limprimante ; vrier que le dmon lpsched ne tourne pas et larrter ventuellement avec lpshut .
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 440 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Une fois cela fait, la commande lpadmin peut tre appele pour crer limprimante :
# lpadmin -pnom-de-limprimante -mscript -vfichier-spcial

avec : loption -p spcie le nom de limprimante ; loption -m spcie le nom du script modle qui sera utilis comme script dinterface. Le script modle doit obligatoirement rsider dans le rpertoire des scripts modles ; loption -v spcie le chier spcial dans /dev . Cette commande place le script modle dans le rpertoire des scripts dinterface (rpertoire /usr/spool/lp/interface ).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

441 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Une fois ce script install, il est possible, par le biais de la commande stty , de modier les paramtres de connexion sil sagit dune liaison srie. Par exemple :
# lpadmin -pps -mpostscript -v/dev/ps

Une fois limprimante cre, elle peut ventuellement devenir limprimante par dfaut. Pour cela, il faut excuter :
# lpadmin -dnom-de-limprimante

Il faut maintenant librer laccs aux les dattente et limprimante. Pour cela, il faut utiliser les commandes :
# accept nom-de-limprimante # enable nom-de-limprimante

Aprs avoir redmarr le dmon avec la commande lpsched , vous pouvez prsent utiliser votre imprimante.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 442 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Suppression dune imprimante Le retrait dune imprimante est eectu par la commande :
# lpadmin -xnom-de-limprimante

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

443 / 803

13 Systmes dimpression

13.9 Protocole dimpression LP

Gestion des classes Une imprimante peut tre directement cre dans une classe, ou peut tre ajoute a posteriori dans une classe. Pour cela, loption -c doit tre spcie : cration dune imprimante dans une classe : intgration dune imprimante existante dans une classe :
# lpadmin -pnom-de-limprimante -cnom-de-la-classe

# lpadmin -pnom-de-limprimante -mscript -vfichier-spcial -cn

Pour supprimer une classe, il sut dutiliser loption -x comme pour supprimer une imprimante.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

444 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.10 Protocole dimpression LPD

13.10 Protocole dimpression LPD

Commandes du systme dimpression Commande


lpr lprm lpq lpc lpd

Autorisation utilisateur utilisateur utilisateur administrateur administrateur

Description place une requte dans la le supprime une requte liste la le dattente bote outils le dmon proprement dit

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

445 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Les interactions entre les dirents composants du systme dimpression Berkeley sont rsumes dans la gure suivante :

lpr

lpc enable lpc disable file dattente lpq file dattente lpd

imprimante 1

imprimante 3

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

446 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Les requtes sont destines des le dattente. Il y a une le dattente par imprimante, et il ny a donc pas de possibilit de grouper des imprimantes comme dans le spouleur AT&T. Il y a trois moyens de spcier une le dattente, classs par ordre de priorit :
1 2 3

avec loption -P ; avec la variable denvironnement PRINTER ; en ne nommant aucune destination : la destination par dfaut est alors choisie.

Lorsque lutilisateur tape la commande lpr , la requte est mmorise dans la le dattente correspondant limprimante spcie. La mmorisation est autorise si le robinet contrlant laccs la le est ouvert.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 447 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Ladministrateur agit sur ce robinet avec la commande lpc (sous-commande disable ).

La commande lpq permet de visualiser le contenu des les dattentes. La commande lprm permet de retirer une requte de sa le dattente.

Les requtes dans la le dattente sont ensuite traites par le dmon lpd . Celui-ci surveille les requtes distantes et ltat des les et des imprimantes. Lorsquune imprimante a ni dimprimer, lpr choisit la requte suivante dans la le, et lenvoie sur limprimante.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

448 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Le fonctionnement du dmon est trs dirent de celui de LP :


requtes rseau

lpr

lpd

file dattente

lpd

lpd

file dattente

imprimante 1

imprimante 2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

449 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Le dmon lpd est normalement inactif, lcoute des requtes venant des programmes lpr locaux ou des dmons lpd dautres machines. Lorsquun utilisateur lance la commande lpr , lpr place la requte dans la le dattente, puis se connecte au dmon lpd en lui demandant de surveiller la le dattente spcie. Sur cette requte, lpd gnre un sous-processus pour imprimer toutes les requtes de la le dattente. Ce sous-processus ne sarrte que lorsquil ny a plus aucune requte en attente dans la le spcie. Il y a donc un sous-dmon par le dattente non vide. Si la le dattente nest pas vide, mais quaucun dmon nest prsent, on atteint le mme eet que la commande disable avec le spouleur AT&T.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

450 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

La commande lpc est la bote outils de ladministrateur. Elle permet de contrler tous les robinets du systme. Cest une commande interactive qui dispose de sous-commandes. On peut galement appeler directement une sous-commande (par exemple : lpc up all ). Les direntes sous-commandes sont :
Commande
abort clean disable down enable exit quit restart start status stop topq up

File nettoye dsactive dsactive active active

Eets sur... Dmon Autres arrt dmons interdits lpr interdit arrt lpr interdit lpr autoris termine lpc termine lpc redmarr dmarr dmons autoriss ache ltat du systme arrt dmons interdits place un processus en tte de le dmarr lpr autoris
Administration UNIX ARS 2009 2010 Partie 3 451 / 803

c T.Besanon (v12.0.364)

13 Systmes dimpression

13.10 Protocole dimpression LPD

Fichier /etc/printcap Le chier centralisant toutes les dnitions dimprimantes est /etc/printcap . Ce chier 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:

Limprimante par dfaut sappelle toujours lp .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

452 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Les options sont, dans cet exemple :


lp=/dev/ps

nom du chier spcial ;


sd=/usr/spool/lpd/ps

nom du rpertoire contenant la le dattente ;


lf=/usr/spool/lpd/ps/ps-log

nom du chier contenant les erreurs ;


mx#0

pas de limitation de taille des chiers imprims ;


sf, sb

pas de bannire, pas de page de n ;


if=/usr/local/lib/psif

ltre dimpression pour les chiers texte ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

453 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Ajout dune imprimante Lors de lajout dune imprimante, il faut : avoir le bon cable (parallle, srie ou autre) ; crer le chier spcial correspondant linterface ; changer les droits du chier spcial pour que personne ne puisse y accder autrement que par lpr ; rcapituler les paramtres de connexion ; choisir un nom pour limprimante ; Lensemble des paramtres (y compris les paramtres de connexion, sil sagit dune liaison srie) doivent tre placs dans le chier /etc/printcap . Le rpertoire correspondant la le dattente doit tre cr manuellement. Son nom doit correspondre au nom install dans /etc/printcap . Le propritaire et le groupe doivent tre daemon . Les droits doivent tre lecture, criture et excution pour le propritaire et le groupe, lecture et excution pour les autres.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 454 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Impression distance La commande lpr permet galement dimprimer des chiers sur des imprimantes distantes. Pour mettre en place une impression distance, il faut placer les informations suivantes dans le chier /etc/printcap sur la machine cliente :
# # limprimante qui est sur cendrillon # lp|ps|postscript|PostScript:\ :rm=cendrillon:\ :rp=ps:\ :sd=/usr/spool/lpd/ps:

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

455 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Les options sont :


rm=cendrillon

Nom de la machine distante ;


rp=ps

Nom de limprimante sur la machine distante ;


sd=/usr/spool/lpd/ps

il faut un rpertoire local, car la machine distante peut ne pas tre disponible au moment o lutilisateur local lance la commande lpr . La machine distante, quant elle, doit autoriser les requtes dimpression. Ceci se fait en mettant le nom de la machine cliente dans un des chiers : /etc/hosts.equiv /etc/hosts.lpd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

456 / 803

13 Systmes dimpression

13.10 Protocole dimpression LPD

Protocole dimpression LPD par la pratique Contexte : une imprimante rseau supportant directement le protocole LPD. Limprimante a le nom DNS hp.example.com . Limprimante sera connue du systme dimpression sous le nom de queue hp . La dnition de la queue dimpression LPD se fera dans le chier /etc/printcap de la faon suivante :
hp:\ :lp=:\ :mx#0:\ :rp=raw:\ :rm=hp.example.com:\ :lf=/var/spool/lpd/hp/log:\ :sd=/var/spool/lpd/hp:

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

457 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.11 Protocole dimpression LPRng

13.11 Protocole dimpression LPRng

LPRng = LPR New Generation Amlioration de LPD. Voir annexe.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

458 / 803

13 Systmes dimpression

13.11 Protocole dimpression LPRng

Protocole dimpression LPRNG par la pratique Contexte : une imprimante rseau supportant directement le protocole LPD. Limprimante a le nom DNS hp.example.com . Limprimante sera connue du systme dimpression sous le nom de queue hp . La dnition de la queue dimpression LPRNG se fera dans le chier /etc/printcap de la faon 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

459 / 803

13 Systmes dimpression

Chapitre 13 Systmes dimpression

13.12 Protocole dimpression IPP / CUPS

13.12 Protocole dimpression IPP / CUPS

CUPS = Common Unix Printing System

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

460 / 803

Chapitre 14

Monitoring de systmes

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

461 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.1 Logiciels de dessin de rseaux

14.1 Logiciels de dessin de rseaux

Plusieurs logiciels disponibles mais incompatibles : VISIO, disponible dans Microsoft Oce sous Windows : http://www.microsoft.com/ DIA, disponible sur UNIX ou Windows : http://www.gnome.org/projects/dia/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

462 / 803

14 Monitoring de systmes

14.1 Logiciels de dessin de rseaux

Bibliothque de symboles CISCO dans DIA :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

463 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.2 Logiciels de tracs de courbes

14.2 Logiciels de tracs de courbes

Objectif : visualiser certains aspects systme : pagination dbits rseau utilisation de jetons logiciels tempratures de salles machines etc. Avec quel(s) outil(s) tracer les mesures ralises ? GNUPLOT MRTG RRDTOOL etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

464 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.3 GNUPLOT

14.3 GNUPLOT

Site http://www.gnuplot.info Aussi disponible sur Windows. Exemple (trac dune donne en fonction du temps) :
500 "data" using 1:2 450 400 350 300 250 200 150 100 50 0 2004 11/20

2004 11/21

2004 11/22

2004 11/23

2004 11/24

2004 11/25

2004 11/26

2004 11/27

2004 11/28

2004 11/29

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

465 / 803

14 Monitoring de systmes

14.3 GNUPLOT

Gnuplot utilise un langage scriptable pour dessiner les courbes. Exemple de donnes :
20041120 20041121 20041122 20041123 20041124 20041125 20041126 20041127 20041128 20041129 300 320 350 295 200 230 250 300 320 330

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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

466 / 803

14 Monitoring de systmes

14.3 GNUPLOT

Image data.png obtenue par gnuplot consommation.gnuplot :


500 "data" using 1:2 450 400 350 300 250 200 150 100 50 0 2004 11/20

2004 11/21

2004 11/22

2004 11/23

2004 11/24

2004 11/25

2004 11/26

2004 11/27

2004 11/28

2004 11/29

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

467 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.4 MRTG

14.4 MRTG

Site http://oss.oetiker.ch/mrtg/

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

468 / 803

14 Monitoring de systmes

14.4 MRTG

Exemples

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

469 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.5 RRDTOOL

14.5 RRDTOOL

Site http://oss.oetiker.ch/rrdtool/ Attention : version 2.x bugge rester sur 1.x

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

470 / 803

14 Monitoring de systmes

14.5 RRDTOOL

Exemples

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

471 / 803

14 Monitoring de systmes

14.5 RRDTOOL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

472 / 803

14 Monitoring de systmes

14.5 RRDTOOL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

473 / 803

14 Monitoring de systmes

14.5 RRDTOOL

Principe Fichier de donnes dextension .rrd . RRD signie Round Robin Database N slots Une fois les N slots remplis, on vire la valeur la plus vieille et on dcale
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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

474 / 803

14 Monitoring de systmes

14.5 RRDTOOL

Possibilit de consolider des donnes. Par exemple : chantillonnage toutes les 5 minutes consolidation : 1 donne par heure consolidation : 1 donne par jour consolidatoin : 1 donne par semaine Objectif des consolidations : obtenir des graphes sur direntes priodes de temps sans avoir mmoriser toutes les donnes chantillonnes de faon avoir un chier de donnes de taille qui reste raisonnable : graphe des N dernires heures graphe des N derniers jours graphe des N dernires semaines graphe des N derniers mois

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

475 / 803

14 Monitoring de systmes

14.5 RRDTOOL

Initialisation du chier .rrd :

A completer...
Ajout de donnes :

A completer...
Graphe des donnes :

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

476 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.6 Logiciels de surveillance

14.6 Logiciels de surveillance

Plusieurs solutions : produits maison logiciels clef en main framework permettant des adaptations maison etc. Dans la dernire catgorie : NAGIOS CACTI Big Brother, Big Sister HP OpenView BMC Patrol etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

477 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.7 NAGIOS

14.7 NAGIOS

Site http://www.nagios.org 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

478 / 803

14 Monitoring de systmes

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 : dnir le rseau :
liste des dnitions des machines liste des dnitions des services surveiller sur les machines

installer les agents NAGIOS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

479 / 803

14 Monitoring de systmes

14.7 NAGIOS

Exemples

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

480 / 803

14 Monitoring de systmes

14.7 NAGIOS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

481 / 803

14 Monitoring de systmes

14.7 NAGIOS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

482 / 803

14 Monitoring de systmes

14.7 NAGIOS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

483 / 803

14 Monitoring de systmes

14.7 NAGIOS

Objets NAGIOS host hostgroup service servicegroup contact contactgroup timeperiod command servicedependency (dpendance entre services) servicescalation hostdependency (dpendance entre machines) hostescalation hostextinfo (extended host information : icne, URL) serviceextinfo (extended service information : icne, URL) Il est possible davoir des squelettes pour faciliter les dnitions des objets en regroupant dans un squelette des caractristiques communes.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 484 / 803

14 Monitoring de systmes

14.7 NAGIOS

Dnition dun template Cas dun objet host :


define host{ name register generic-host ; Name of template 0 ; DONT REGISTER ; IT IS JUST A TEMPLATE 1 1 1 1 1 1 1 24x7 ; ; ; ; ; ; ; ;

notifications_enabled event_handler_enabled flap_detection_enabled failure_prediction_enabled process_perf_data retain_status_information retain_nonstatus_information notification_period }

Host notifications are enabled Host event handler is enabled Flap detection is enabled Failure prediction is enabled Process performance data Retain status information across program restarts Retain non-status information across program restart Send host notifications at any time

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

485 / 803

14 Monitoring de systmes

14.7 NAGIOS

Possibilit de template imbriqu :


define host { name use register

server generic-host 0

; ; ; ;

Name of template Inherits from generic-host DONT REGISTER IT IS JUST A TEMPLATE

check_period max_check_attempts check_command notification_period notification_interval notification_options contact_groups }

24x7 10 check-host-alive workhours 120 d,u,r admins

; By default, Linux hosts are checked round the c ; Check each Linux host 10 times (max) ; Default command to check Linux hosts

; Resend notification every 2 hours ; Only send notifications for specific host state ; Notifications get sent to the admins by default

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

486 / 803

14 Monitoring de systmes

14.7 NAGIOS

Dnition dun host (machine)


define host{ use host_name alias address }

server mail.example.com smtp.example.com mail.example.com

Etats dun host : OK DOWN UNREACHABLE RECOVERING

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

487 / 803

14 Monitoring de systmes

14.7 NAGIOS

Dnition dun service


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 dun service : OK WARNING CRITICAL UNKNOWN RECOVERING


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 488 / 803

14 Monitoring de systmes

14.7 NAGIOS

Dnition dune commande 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 dajouter ses commandes :


define command { command_name check-netapp-globalstatusmsg command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C public -o .1.3.6.1.4.1.789.1.2.2.25.0 }

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

489 / 803

14 Monitoring de systmes

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
Administration UNIX

client

client
490 / 803

c T.Besanon (v12.0.364)

ARS 2009 2010 Partie 3

14 Monitoring de systmes

14.7 NAGIOS

NRPE : NAGIOS Remote Plugin Executor port TCP 5666 monitoring actif : NAGIOS est linitiative des tests NSCA : NAGIOS Service Check Acceptor monitoring passif ; NAGIOS reoit des rsultats de tests dont il nest pas linitiateur

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

491 / 803

14 Monitoring de systmes

14.7 NAGIOS

Il est facile dcrire 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

Nimporte quel langage de programmation peut convenir.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

492 / 803

14 Monitoring de systmes

14.7 NAGIOS

Dnition dun contact

define contact{ contact_name alias service_notification_period host_notification_period service_notification_options host_notification_options service_notification_commands host_notification_commands email }

nagios-admin Nagios Admin 24x7 24x7 w,u,c,r d,r notify-by-email host-notify-by-email nagios-admin@example.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

493 / 803

14 Monitoring de systmes

14.7 NAGIOS

Notication via email


From nagios@example.com Fri Aug 3 12:10:16 2007 Date: Fri, 3 Aug 2007 12:10:02 +0200 (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 - 2007-08-03 12:09:28 da0 [COMPAQ RAID 1 VOLUME reco]

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

494 / 803

14 Monitoring de systmes

14.7 NAGIOS

Notication via email (suite)


From nagios@example.com Fri Aug 3 12:24:47 2007 Date: Fri, 3 Aug 2007 12:25:02 +0200 (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 - 2007-08-03 12:24:28 da0 [COMPAQ RAID 1 VOLUME OK]

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

495 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.8 NAGIOS + OREON

14.8 NAGIOS + OREON

Linterface de NAGIOS nest pas trs pratique. Possibilit dorir une autre interface web : OREON Site http://www.oreon.org

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

496 / 803

14 Monitoring de systmes

Chapitre 14 Monitoring de systmes

14.9 CACTI

14.9 CACTI

Site http://www.cacti.net

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

497 / 803

14 Monitoring de systmes

14.9 CACTI

Exemples

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

498 / 803

Chapitre 15

Mcanisme dauthentication rseau :


/etc/passwd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

499 / 803

15 Mcanisme dauthentication rseau : /etc/passwd

15.1 Introduction Chapitre 15 Mcanisme dauthentication rseau : /etc/passwd

15.1 Introduction

Voir dans le volume 2 la partie sur /etc/passwd et /etc/shadow .

Problmatique : comment grer un rseau de machines qui nutiliseront que les chiers /etc/passwd et /etc/shadow ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

500 / 803

15 Mcanisme dauthentication rseau : /etc/passwd

15.2 Principe dune Chapitre 15 Mcanisme dauthentication rseau : /etc/passwdsolution

15.2 Principe dune solution

Une solution : recopier depuis une machine A sur les autres machines les chiers /etc/passwd et /etc/shadow recopie sur les autres machines via SCP (voir SSH) recopie priodique via CRONTAB nautoriser les changements de mot de passe que sur la machine A Quels sont les inconvnients de cette mthode ? Quels sont les avantages de cette mthode ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

501 / 803

Chapitre 16

Mcanisme dauthentication rseau : NIS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

502 / 803

16 Mcanisme dauthentication rseau : NIS

Chapitre 16 Mcanisme dauthentication rseau : NIS

16.1 Introduction

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 dirente (cf annexe) Cest un protocole rseau daccs des informations centralises sur un ou plusieurs serveurs redondants. Utilisation la plus courante : partager la base des comptes UNIX.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

503 / 803

16 Mcanisme dauthentication rseau : NIS

Chapitre 16 Mcanisme dauthentication rseau : NIS

16.2 Architecture de NIS

16.2 Architecture de NIS

Architecture construite en mode client / serveur :


Maitre
D A T A D A T A D A T A

Mise a jour push / pull

Esclave 1
D A T A D A T A D A T A

Esclave 2
D A T A D A T A

Client 1

Client 2

Client 3

Client 4

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

504 / 803

16 Mcanisme dauthentication rseau : NIS

16.2 Architecture de NIS

Caractristiques : Communications rseau via RPC (Remote Procedure Call) Propagation des donnes (maps) du serveur maitre aux serveurs esclaves en mode pull ou en mode push. Propagation des maps compltes Seul le serveur maitre peut modier les donnes Les serveurs esclaves diusent les donnes sans pouvoir les modier

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

505 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Chapitre 16 Mcanisme dauthentication Donnes NIS:: maps NIS, DBM, ypcat, ypmatch rseau NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

Les donnes manipules par NIS : maps Les maps contiennent des couples (clef, valeur). Il ny a que le serveur NIS matre qui peut changer le contenu dune map. Une map est au format DBM (cf man dbm ) ; une map se compose de 3 chiers : le chier source le chier de suxe .pag le chier de suxe .dir

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

506 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

La commande makedbm permet de convertir le chier source en les 2 chiers constituant le DBM.
% cat demo clef1 banane clef2 arbre % makedbm demo % ls -l demo -rw-r--r-1 -rw------1 -rw------1

demo besancon adm besancon adm besancon adm 23 Aug 15 11:56 demo 0 Aug 15 11:57 demo.dir 1024 Aug 15 11:57 demo.pag

Dans le systme NIS, les maps sont stockes sur le serveur maitre dans /var/yp/nom-du-domaine-NIS :
% cd /var/yp/nom-de-domaine-NIS % ls -l passwd* -rw------1 root other 4096 -rw------1 root other 8192 -rw------1 root other 4096 -rw------1 root other 8192

Nov Nov Nov Nov

23 23 23 23

07:26 07:26 07:26 07:26

passwd.byname.dir passwd.byname.pag passwd.byuid.dir passwd.byuid.pag

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

507 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

Les maps sont construites automatiquement partir de tous les chiers sources des maps :
passwd.byname passwd.byuid
/etc/hosts

makedbm

NIS MASTER

hosts.byname hosts.byuid
/etc/passwd

Le chier /var/yp/Makefile automatise toutes les crations de maps et leur propagation aux serveurs esclaves (mode push).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

508 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

Extrait de /var/yp/Makefile :

... hosts.time: $(DIR)/hosts @($(MULTI) $(B) -l $(DIR)/hosts); @($(STDHOSTS) $(DIR)/hosts $(CHKPIPE))| \ (awk BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$1, $$0 } $(CHKPIPE)) | \ $(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/hosts.byaddr; @touch hosts.time; @echo "updated hosts"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed hosts"; fi ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

509 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

La construction dune map se rsume alors (par exemple suite une modication de /etc/hosts) :

# vi /etc/hosts # cd /var/yp # make hosts updated hosts

pushed hosts

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

510 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

La librairie DBM permet de crer des enregistrements de taille maximale 1024 octets :
% man dbm SunOS/BSD Compatibility Library Functions NAME dbm, dbminit, dbmclose, fetch, 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. ... store, delete, firstkey, dbm(3B)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

511 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

512 / 803

16 Mcanisme dauthentication rseau : NIS

16.3 Donnes NIS : maps NIS, DBM, ypcat, ypmatch

La commande ypcat permet de consulter une map NIS depuis nimporte quel client. Syntaxe : ypcat map-NIS La commande ypmatch permet de consulter la valeur dune ou plusieurs clefs dans une certaine map NIS depuis nimporte quel client. Syntaxe : ypmatch clef1 clef2... map-NIS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

513 / 803

16 Mcanisme dauthentication rseau : NIS

16.4 Chapitre 16 Mcanisme dauthentication Client NIS, domainname, ypbind, ypwhich, ypset rseau : NIS

16.4 Client NIS, domainname, ypbind, ypwhich, ypset

Un client NIS doit se connecter un serveur NIS. Cest laction de binding. Le binding ncessite : de fournir un nom de domaine NIS, le domainname ; une machine se dclare comme membre du groupe servi par les serveurs NIS de prciser la mthode de localisation du serveur NIS : broadcast ou explicite

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

514 / 803

16 Mcanisme dauthentication rseau : 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 congurer manuellement le nom de domaine : domainname nom-du-domaine-NIS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

515 / 803

16 Mcanisme dauthentication rseau : NIS

16.4 Client NIS, domainname, ypbind, ypwhich, ypset

Conguration du domainname automatique au dmarrage : Sur Solaris : renseigner le chier /etc/defaultdomain Sur Linux : renseigner le variable NISDOMAIN du chier /etc/sysconfig/network
NETWORKING=yes FORWARD_IPV4=false HOSTNAME=pcars6.formation.jussieu.fr DOMAINNAME=formation.jussieu.fr GATEWAY=134.157.253.126 GATEWAYDEV=eth0 NISDOMAIN=real.world

ATTENTION : sur LINUX, ne pas confondre avec la variable DOMAINNAME


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 516 / 803

16 Mcanisme dauthentication rseau : NIS

16.4 Client NIS, domainname, ypbind, ypwhich, ypset

Ralisation du binding Un client NIS fait tourner le dmon ypbind qui se connecte un serveur NIS que lon trouve selon 2 mthodes possibles : dcouverte par broadcast ; cest le mode par dfaut. 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 ache le nom du serveur NIS utilis.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

517 / 803

16 Mcanisme dauthentication rseau : 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 serveurs esclaves et sur le serveur maitre le chier /var/yp/securenets . Il liste les machines autorises, sous forme adresses et netmasks.

Par exemple :
159.169.0.0 255.255.0.0 129.187.135.0 255.255.255.0

Signication : seules les machines des rseaux 159.169.0.0/16 et 129.187.135.0/24 sont autorises se binder.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

518 / 803

16 Mcanisme dauthentication rseau : 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 lutilisation par lajout dune ligne en n de chier /etc/passwd :
+::65534:65534:::

Signication de cette ligne supplmentaire ( vrier sur chaque systme car il existe des dirences) : Tout champ renseign de cette ligne + remplace le mme champ de la map inconditionnellement sauf pour UID et GID. Pour UID et GID, les valeurs mentionnes sactiveront si ces champs sont absents de la map (cest--dire quand la map est vrole ce qui indique un problme de chier source vrol).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

519 / 803

16 Mcanisme dauthentication rseau : NIS

16.4 Client NIS, domainname, ypbind, ypwhich, ypset

Exemple :
+:*LK*:65534:65534:::/usr/local/bin/tcsh

Signication : le passwd chir des utilisateurs de la map passwd est *LK* lUID sera 65534 si lentre de la map ne prcise pas dUID le GID sera 65534 si lentre de la map ne prcise pas de GID le shell de login est mis automatiquement /usr/local/bin/tcsh

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

520 / 803

16 Mcanisme dauthentication rseau : NIS

Chapitre 16 Mcanisme dauthentication rseau16.5NIS server NIS, ypserv, ypxfr : Slave


16.5 Slave server NIS, ypserv, ypxfr

Un serveur NIS esclave fait tourner plusieurs dmons : ypserv ypbind Le dmon ypserv est l pour rpondre aux requtes des client NIS qui se sont binds sur lui. Le dmon ypbind nest l que pour faire du serveur esclave un client NIS aussi (mais ce nest pas obligatoire). Il nest pas garanti que le serveur esclave soit client NIS de lui mme. Il peut se binder sur un autre serveur NIS du mme domaine.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

521 / 803

16 Mcanisme dauthentication rseau : NIS

16.5 Slave server NIS, ypserv, ypxfr

Un serveur esclave peut tre down au moment o le serveur maitre fait un push des maps. besoin pour le serveur esclave de se resynchroniser avec le serveur maitre ; pull des maps de la part du serveur esclave Cela se fait au moyen de shell scripts lancs priodiquement 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 rcuprent plus ou moins de maps suivant la frquence de leur lancement.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

522 / 803

16 Mcanisme dauthentication rseau : NIS

16.5 Slave server NIS, ypserv, ypxfr

Exemple de lun 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

523 / 803

16 Mcanisme dauthentication rseau : NIS

16.6 Master server NIS, Chapitre 16 Mcanisme dauthentication rseau :ypxfrd, rpc.yppasswdd, yppasswd NIS

16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Un serveur NIS matre fait tourner plusieurs dmons : ypserv ypbind ypxfrd rpc.yppasswdd Mme rle pour ypserv que pour un serveur esclave. Mme rle pour ypbind que pour un serveur esclave. Le dmon ypxfrd assure les transferts de maps demands par les serveurs esclaves (mode pull). (en UNIX, on rencontre souvent le mot xfr pour
transfert)

Le dmon rpc.yppasswdd assure le changement des mots de passe.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 524 / 803

16 Mcanisme dauthentication rseau : NIS

16.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Avec NIS, un client NIS ne peut pas modier le contenu dune map. Pour changer un mot de passe, on va muler le changement du mot de passe sur le serveur maitre dans son chier source ( /etc/passwd ) puis la reconstruction de la map passwd et sa transmission en totalit aux serveurs esclaves. Ce processus se ralise en utilisant la commande yppasswd qui demande les mots de passe lutilisateur puis appelle rpc.yppasswdd sur le serveur maitre qui simule la session interactive compose des commandes :
# passwd # cd /var/yp # make passwd

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

525 / 803

16 Mcanisme dauthentication rseau : 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 serveur maitre NIS Solaris :


% yppasswd Enter login(NIS) password: ******** New password: ******** Re-enter new password: ******** NIS passwd/attributes changed on linux.unixiens.org

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

526 / 803

16 Mcanisme dauthentication rseau : NIS

Chapitre 16 Mcanisme dauthentication rseau : NIS

16.7 Netgroups

16.7 Netgroups

/etc/netgroups Le systme NIS permet de dnir des groupes dautorisation daccs : les netgroups. Ces groupes sont diuss via la map netgroup. Un netgroup est un nom symbolique associ un ensemble de triplets (je nai jamais vu le troisime champ avoir une quelconque utilit en pratique) :
nom-de-netgroup \ (machine, utilisateur, nom-de-domaine-NIS) \ (machine, utilisateur, nom-de-domaine-NIS) \ ...

On dnit en pratique des netgroups concernant des machines et des netgroups concernant des utilisateurs. On autorisera ainsi ou pas des groupes dutilisateurs ou de machines accder certaines ressources.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 527 / 803

16 Mcanisme dauthentication rseau : 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 dutilisateurs :


etudiants \ (,jean,) \ (,pierre,) \ (,valerie,)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

528 / 803

16 Mcanisme dauthentication rseau : NIS

16.7 Netgroups

Exemple dutilisation dun netgroup dutilisateurs 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

Signication : 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 529 / 803

16 Mcanisme dauthentication rseau : NIS

16.7 Netgroups

Exemple dutilisation dun netgroup de machines au niveau de lexportation de disques via NFS (chier /etc/exports, cf chapitre sur NFS) :

/usr/openwin

-access=nains

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

530 / 803

16 Mcanisme dauthentication rseau : NIS

Chapitre 16 Mcanisme dauthentication rseau : NIS

16.8 Installation de NIS

16.8 Installation de NIS

Master server Lancer ypinit -m

Slave servers Lancer ypinit -s serveur-maitre Ajouter dans la crontab les appels aux scripts ypxfr_*

Client NIS Spcier le domainname

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

531 / 803

Chapitre 17

Mcanisme dauthentication rseau : NIS+

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

532 / 803

17 Mcanisme dauthentication rseau : NIS+

17.1 Introduction / Conclusion Chapitre 17 Mcanisme dauthentication rseau : NIS+

17.1 Introduction / Conclusion

Cf annexe pour un document sur NIS+. Nous nvoquerons ici que les dfauts de NIS ayant conduit lapparition de son successeur, NIS+. Le systme NIS+ na pas connu de succs et il est maintenant ociellement abandonn au prot de LDAP par son principal dfenseur, SUN.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

533 / 803

17 Mcanisme dauthentication rseau : NIS+

17.1 Introduction / Conclusion

Principaux reproches NIS : pas dauthentication du client aux serveurs NIS ; connaitre le domainname sut se binder les maps sont transmises en totalit mme en cas de faible modication de leurs contenus inadaption du principe du domaine NIS dans le cas de structures WAN mode broadcast

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

534 / 803

17 Mcanisme dauthentication rseau : NIS+

Chapitre 17 Mcanisme dauthentication rseau : NIS+

17.2 Annexe 1

17.2 Annexe 1

Ci joint dans la version imprime de ce cours, un document sur NIS+.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

535 / 803

Solaris ONC
Network Information Service Plus (NIS+)
A White Paper

1991 by Sun Microsystems, Inc.Printed in USA. 2550 Garcia Avenue, Mountain View, California 94043-1100 All rights reserved. No part of this work covered by copyright may be reproduced in any form or by any meansgraphic, electronic or mechanical, including photocopying, recording, taping, or storage in an information retrieval system without prior written permission of the copyright owner. Portions of this paper were previously published in the proceedings of Sun User Group, United Kingdom (SUG UK), 1991. The OPEN LOOK and the Sun Graphical User Interfaces were developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, which license also covers Suns licensees. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987). The product described in this manual may be protected by one or more U.S. patents, foreign patents, and/or pending applications. TRADEMARKS Sun Microsystems, the Sun Logo, NFS, NeWS and SunLink are registered trademarks, and Sun, SunSoft, the SunSoft Logo, Solaris, SunOS, AnswerBook, Catalyst, CDWare, Copilot, DeskSet, Link Manager, Online: DiskSuite, ONC, OpenWindows, SHIELD, SunView, ToolTalk and XView are trademarks of Sun Microsystems, Inc., licensed to SunSoft, Inc., a Sun Microsystems company. SPARC is a registered trademark of SPARC International, Inc. SPARCstation is a trademark of SPARC International, Inc., licensed exclusively to Sun Microsystems, Inc. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. UNIX and OPEN LOOK are registered trademarks of UNIX System Laboratories, Inc. X Window System is a product of the Massachusetts Institute of Technology. All other products referred to in this document are identied by the trademarks of the companies who market those products.

ii

SunSoft

Table of Contents
Executive Summary Introduction NIS+ Overview NIS+ Features Who Benets? NIS+ Architecture Implementation of NIS+ Service Glossary of Terms 1 1 2 5 6 7 15 20

Network Information Service Plus (NIS+)

iii

iv

SunSoft

Network Information Service Plus (NIS+)


Chuck McManis, Saqib Jang

Executive Summary
The enormous growth in network computing over the past few years presents signicant challenges for distributed system administrators, end users, and application developers. Distributed networks have become larger, typically consisting of interconnected subnetworks spanning multiple sites. Management of these networks, with tasks such as addition, relocation, and removal of network resources, including hosts, applications, and printers, has taken on added complexity. The growth in size of distributed systems presents complex requirements for applications and end users to transparently access resources across a network. To a large extent, such challenges can be addressed through the deployment of a robust, high-performance, network-accessible repository of distributed system resources commonly called an enterprise naming service. This paper provides an architectural overview of SunSofts Network Information Service Plus (NIS+), an enterprise naming service for heterogeneous distributed systems.

Introduction
NIS+ replaces ONC Network Information Service (NIS) and is designed to address the management and resource location requirements for heterogeneous distributed systems of the 90s. It is a repository of user-friendly names and attributes of network resources such as hosts, applications, users, and mailboxes. Clients of NIS+, both applications and users, can efciently look up information on network resources and access these resources in a locationindependent way. NIS+ also plays a critical role in the efcient operation and administration of distributed systems by acting as a central point for addition, removal, or relocation of resources.

The NIS+ naming service was designed to address the following goals:

To prevent unauthorized access to network resources and act as the platform for distributed system security. To scale effectively from very small to very large networks, consisting of tens of thousands of systems. To provide the ability to easily administer from very small to large networks, spanning multiple sites. To provide for autonomous administration of subnetworks. To provide highly consistent information.

NIS+ Overview
NIS+ works with the ONC distributed computing platform, which is an integral part of the Solaris environment. Solaris 2.0 is comprised of SunOS 5.0, enhanced ONC, NIS+, OpenWindows V3, DeskSet V3, and OPEN LOOK. A network computing standard that enables Solaris-based systems to connect to any other proprietary or standard system, ONC permits users to access information throughout the network and make use of all the computing power in the user organization, regardless of location. ONC is supported on all major hardware platforms, from PCs to mainframes. With an installed base of over 1.3 million systems, ONC is unrivalled as the industry standard for distributed computing in heterogeneous networks. NIS+ is a client/server application built atop the ONC Transport-Independent Remote Procedure Call (TI-RPC) interface. RPC applications are also clients of the NIS+ name service. Since the RPC client and server components of an application may be located on arbitrary machines in a large network, RPC clients use the name service to locate and bind to RPC servers in a exible and high-performance way.

NIS+ Enhancements
NIS+ includes enhancements which fall into three general categories: the structure of the global namespace1, the structure of data within maps, and the authentication and authorization models associated with the namespace and the data that it contains.

1. Refer to Glossary of Terms at the end of this paper for denition of namespace and other terms.

SunSoft

First, NIS+ includes support for hierarchical domain names, which is a better model for a namespace of many smaller domains. This model has been very successfully used by the Domain Name System that is currently deployed on the Internet and brings other benets to the system as well. The most important benet is that hierarchical domains provide a structure upon which to hang a distributed authority mechanism. Other advantages of hierarchical names are that given some basic information, there are well-known mechanisms for locating nodes within a tree, and a mechanism for generating globally unique names that can be based on using the domain name as part of the name. Secondly, NIS+ includes a new database model, which consists of two parts. The rst part is a record containing the schema for the database that is stored in the namespace. The second part is the database itself, which is managed by the same server that serves the portion of the namespace where the schema record was found. To keep the databases simple and the representation of the schema manageable, only two properties of the database were chosen to be part of the schema. These properties are the number of columns in a database, and an indication for each column as to whether or not it should be used as one of the indexes for the database records. Additionally, for columns that were determined to be searchable, a ag is present to specify whether or not the case of the characters should be considered when searching the database with this index. Using this model, NIS dbm databases are described as twocolumn databases, with the rst column searchable and case sensitive. Figure 1 shows a graphical representation of how these hierarchical domains and databases, called tables, are related in a global namespace.

Network Information Service Plus (NIS+)

Master Server

Number of Columns : n Searchable Column : 0,1 Case Sensitive Columns : 0


Replica Server

Replica Server

Col 0
Replica Server

Col 1

Col 2

...

Col n

Table

Table

Figure 1

Graphical Representation of the New NIS+ Namespace

Thirdly, there are two classes of changes that have been made to the NIS authentication and authorization model. One is the ability to authenticate access to the service and thus discriminate between accesses that are allowed to members of the community versus other network entities. The other is an authorization model to allow specic rights to be granted or denied based on this authentication. Authentication is provided by mechanisms available to all users of ONC RPC. This allows the server to ensure the identity of principals making requests and clients to ensure the identity of the server answering the request. A second change is the need for the information to have an authorization model associated with it. This is accomplished by using an authorization model similar to the UNIX le system model. This model species that each item in the namespace has a set of access rights associated with it, and that these rights are granted to three broad classes of principals: the owner of the item, a group owner of the item, and all other principals. The specic access rights are different than the traditional read, write, and execute rights that the le system grants owing to the nature of information

SunSoft

services. Also, it is useful to include a class of clients which are not authenticated, the nobody principal. The authentication and authorization mechanisms incur a nite performance penalty when they are in effect. By allowing the client to specify access rights to unauthenticated principals, we allow them to choose better performance at the cost of weaker security. Finally, access rights to individual rows and columns within the database are also provided. This provides a desirable property, that we can maintain the privacy of particular elds in a record, such as the encrypted password, while still giving unrestricted access to the other elds of database records.

NIS+ Features
The highlights of the NIS+ naming services capabilities are:

Support of hierarchical namespace enables simplied distributed management. The namespace can be divided into domains with each domain managed on an autonomous basis. Comprehensive and exible security mechanisms prevent unauthorized access to network resources. Authentication facilities allow verication of a clients identity, while authorization is provided to ensure the client has rights to perform desired name service operation. Partitioning of name service information provides improved scalability. The unit of partitioning is the directory which contains object information for each namespace domain. Replication, on a per-directory basis, allows high availability/reliability. Each domain has a master directory to which all updates are applied and a number of slave replicated directories. Fast consistency between directory replicas enables support of rapidly changing network environments. Complete and consistent suite of administrative, namespace and information base functions with programmatic interfaces enables simplied access to and management of (subject to security constraints) name service. Administrative operations can be performed remotely and exibly. Namespace and information base operations allow applications and users to efciently access and modify information on network objects. Compatibility to allow NIS-based applications and environments to migrate smoothly to NIS+.

Network Information Service Plus (NIS+)

Who Benets?
System Administrators
NIS+ is a powerful tool for simplied administration of heterogeneous distributed systems. As the size of such systems grows and the requirements for decentralized administration emerge, a multidomain hierarchical namespace can be created. Assignment of names and modication of information on network resources within each domain can be decentralized. Further, the hierarchy can correspond to organizational (with each domain representing a functional group, for example, Engineering or Marketing) or logical hierarchies, allowing administrators to use intuitive schemes for organizing their namespace. Comprehensive security schemes benet administrators by ensuring that the name service is protected from unauthorized access. This is critical since the name service functions as the primary means for administrators to add, remove, or modify network resources. The security functionality is exible as administrative groups can ensure that name service information under their control is protected from access and modication by principals outside of that organization. Partitioning allows administrators to continue using NIS+ as the platform for distributed management as networks grow in size. As multiple domains are created, the overall namespace can have unbounded growth, yet the size of an individual directory remains within bounds. Replication of individual directories, on a master/slave basis, allows coping with computer and communication link failures. In addition, NIS+ provides for fast transfer of updates from master to slave servers, allowing authorized administrators to rapidly add, remove, or relocate network resources. NIS+ also includes a set of functions for exible and easy administration of the name service itself. This includes functions for starting and stopping NIS+ servers, replicating and partitioning operations, and setting security levels. NIS+ functions support a corresponding Application Programming Interface (API) designed to allow NIS+ to be the platform for next-generation administrative applications from SunSoft and Independent Software Vendors (ISVs).

SunSoft

Application Developers
Application developers can use the NIS+ API in a number of ways. First, applications can use the API to lookup information on network resources. The SunOS 5.0 system uses NIS+ as the repository for storage of information on hosts, passwords, and users for administrative purposes. Applications can use the NIS+ API to access this information in a high-performance fashion. Second, NIS+ can be used as a secure repository of network-accessible applicationspecic data. Improved consistency and the read/write capability within NIS+ API enable the service to be used to store and modify application-specic information. For example, the OpenWindows V3 Calendar Manager uses NIS+ to store group schedule information that authorized group members can access and modify to schedule meetings. Finally, new administrative applications can be developed that run atop the API and take advantage of its simplicity and consistency in providing access to network resources. NIS+ will serve as the platform for future administrative applications from SunSoft. NIS+ also provides full compatibility with the NIS (i.e., yp_xxx) programming interface to allow ease of application migration.

End Users
NIS+ also provides signicant advantages for end users. The security functionality within NIS+ enables users to trust network communications and to protect sensitive information from unauthorized access. Users productivity increases as applications transparently locate resources by accessing the central data storage facility with NIS+. The simplicity and completeness of the NIS+ interface enables users to take on a greater proportion of administrative tasks, which is particularly advantageous where administration resources cant keep pace with constantly growing distributed systems.

NIS+ Architecture
NIS+ provides two types of services to clients. The rst is a name service that maps names, such as domain names, to their respective servers. The second is a directory service where the desired information itself is returned, rather than a pointer to it, such as the UNIX password record.

Network Information Service Plus (NIS+)

NIS+ Naming Model


The naming model used by NIS+ is a graph structured as a singly rooted tree. Within this graph each vertex represents one NIS+ object, each of which may have several children associated with it but only one parent. There are six types of NIS+ objects dened: directory, table, group, link, entry, and private. Directory objects identify a database of NIS+ objects. Objects within that database are represented as children of the directory object. A directory object and all of its children is an NIS+ domain. An NIS+ directory that is a child of another NIS+ directory is a subdomain, and all domains below the root directory are the NIS+ namespace. An NIS+ object name consists of several labels, each separated from the next by a dot (.) character. The rightmost label is closest to the root of the namespace. Labels that contain the dot character are quoted. These names are shown graphically in Figure 2. Names that end with the dot character are said to be fully qualied, whereas names which do not are said to be partially qualied. Names that identify objects in the namespace are called NIS+ regular names.

mumble baz bar foo foo.bar.baz.mumble. fred bob.smith bob.smith.fred.mumble.

Figure 2

Construction of a Multipart NIS+ Name

SunSoft

NIS+ Database Model


Table objects in the NIS+ namespace identify databases called tables. These databases are called tables because the model used is that of a columnar table. The object contains the schema for the database it identies. This schema species the number of columns in the table and identies which columns can be searched with an NIS+ query. Rows within an NIS+ table are identied by a compound name syntax called indexed names. These names contain a search criterion and a regular name. The regular name portion identies the NIS+ table to search. The search criterion identies the rows of interest by specifying what value one or more searchable columns must contain to satisfy the search. The search criterion consists of an open bracket [ followed by zero or more attributes of the form column_name = column_value followed by a close bracket character ]. Attributes in the search criterion are separated by commas, and the search criterion and the name of the table to apply it to are also separated by commas. An example of these compound names is shown in Figure 3. In the rst example, the name [manager=susan],employees.widget.com. selects only the fourth row which satises this search. In the second example, the name [manager=george],employees.widget.com. selects the rst three rows which all satisfy the search criterion. Finally the name [manager=george, name=bob],employees.widget.com. would return only the rst row, because only that row satises the complete criterion. The null search criterion, [ ], selects all of the rows. Table name: employees.widget.com name manager department
bob mary jane

division

george engineering electronics george engineering electronics george engineering electronics susan sales electronics

}
9

sam

[manager=susan], employees.widget.com. [manager=george],employees.widget.com


Figure 3 Indexed Names Selecting Entries From a Table

Network Information Service Plus (NIS+)

The set of names that NIS+ will accept can be dened by the grammar shown in Figure 4. This grammar denes the terminal characters dot (.), comma (,), open bracket ([), close bracket (]), and equals (=). Generally, it is inadvisable to put terminal characters in the strings that make up the NIS+ names. However, should that be necessary, a quoting mechanism based on the double quote () character is provided. All characters between two double quote characters are not scanned. The double quote may itself be quoted by placing two double quote characters adjacent to each other. These two characters are treated as a single instance of the double quote character.

NAME REGULAR_NAME INDEXED_NAME SEARCH_CRITERION ATTRIBUTE_LIST ATTRIBUTE STRING

::= <REGULAR NAME> | <INDEXED_NAME> ::= . | <STRING> . | <STRING> . <REGULAR_NAME> ::= <SEARCH_CRITERION> , <REGULAR_NAME> ::= [ <ATTRIBUTE-LIST> ] ::= <ATTRIBUTE> | <ATTRIBUTE> , <ATTRIBUTE -LIST> ::= <STRING> = <STRING> ::= see note

Note: ISO Latin 1 character set, the initial character in the string may not be either @ or -; embedded terminal characters must be protected by double quotes.

Figure 4

NIS+ Name Grammar

In addition to the schema, the table object holds other properties associated with the database. These include the tables type, a concatenation path, and a separator character that clients printing entries from the table use to separate the data from each column in the output. All of these properties are shown graphically in Figure 5.

10

SunSoft

Table: foe.bar. Table: fie.bar.

Type: foo records

Path:foo.bar. :fie.bar. Column n

Entry Column Path:foo.bar. :foe.bar. Column Type: foo records ... Data 1 2 Entry 0Column Column Column Row ... Table: foo.bar. Type:Data records foo Path:fie.bar. :foe.bar. 1 2 n Row 1 Row Entry 0Column Column Column ... ... Data 1 2 n Row 1 Row 0 Row m ... Row 1 Row m ... Row m

Search Path Starting from foo.bar

Figure 5

Graphical Representation of an NIS+ Table

The type property is a string that the server uses to prevent adding to a table entries that are not compatible with the other entries in the table. This string is compared to the type string of the entry being added and, if they do not match, the update is rejected. The server also compares the number of columns in the entry being added to the number of columns in the table, as well as their type (binary or text) to minimize mistakes that could corrupt the database. The concatenation path, or search path, is a string containing the list of tables to search if the search criterion in the indexed name doesnt match any entries in the table. This search path allows all of the tables identied within it to appear to the client as one large table. When entries from several tables in the path all match the same search criteria, the rst ones found are the ones returned to the client. In addition to the column data, each row in a table contains some specic information about itself in the column labelled Entry Data. This entry data consists of the name of the owner for this row, a group owner, a time-to-live value for the row, and a set of access rights for this row. The entry data is

Network Information Service Plus (NIS+)

11

combined with the data from the columns when a row is returned in the form of an entry object. This data is present for all rows, but is neither searchable nor explicitly identied as a column in the table object.

NIS+ Object Model


NIS+ objects are implemented as variant records. All objects share a common set of properties which include an owner name, group owner name, access rights, object identier, and time-to-live values. Additionally, each type of object has a variant part that contains specic information for that type of object. Directory objects contain the names, addresses, and authentication information for machines that serve a domain. Table objects contain the schema for NIS+ tables. Group objects contain a list of principals that are members of that group. Link objects contain the name of another object, and entry objects contain data from an NIS+ table. A diagram of these objects is shown in Figure 6. The shaded portion represents properties that are unique to a particular type of object. The top portion show properties that are common to all objects.

DIRECTORY TABLE GROUP iod name domain owner group access rights time to live directory name table type group flags directory type number of columns group members(s) servers(s) column description(s) member 0 master column 0 member 0 replica(s) column 1 ... ...

LINK

ENTRY Common Properties

link name link type

entrys type entry data datum 0 datum 1 ...

Variant Properties

Figure 6

Format of NIS+ Objects

12

SunSoft

NIS+ Authorization Model


The NIS+ authorization model has four different access rights that can be granted to four classes of NIS+ principal. The four classes of principal are: the owner of an object; the group owner, which is a set of principals that is specied by a group object; the set of authenticated principals that are known to the NIS service, called collectively the world; and the set of unauthenticated principals called collectively the nobody principal. The four access rights that are grantable are read, modify, create, and destroy. Read conveys the right to read the contents of objects, directory objects, and table objects. Modify conveys the right to change the attributes of an object such as the owner, group owner, time-to-live, and so forth. For directory and table objects, create conveys the right to add objects to the namespace controlled by that object, either a domain or a database, depending on the objects type. Destroy conveys the right to remove objects from directories or tables. Domains and tables have additional access rights masks that allow rights to be granted with a ner degree of granularity. The NIS+ service uses authentication information extracted from the RPC messages it receives to identify the NIS+ principal making the request. ONC/RPC messages have attached to them authentication information in the form of an authentication avor. Each avor of authentication contains a unique principal name. The service uses this name and the authentication type to search an NIS+ table named cred.org_dir.<domain>. In that table, there is an entry that contains the avor-specic name and the NIS+ principal name. This NIS+ dened name is used in the authorization mechanism rather than the authentication avor-specic name. This mapping allows the NIS+ service to accept different avors of authentication information and continue to work correctly. The authorization model for tables is somewhat more sophisticated than that of the namespace. Access rights in tables can be granted on a per table, per entry, and per column basis. Each level supersedes all subsequent levels. Thus, if read access is allowed for the table, it is allowed for every row and every column in the table. If read access is not allowed for the table but is allowed for a particular row, then it is allowed for all columns in that row. Finally, if read access is not allowed for the table and not allowed for the row but is granted for a particular column, then that columns value is returned. This is shown graphically in Figure 7. Each mask serves to narrow the authorization to a ner grain. In the gure, the entire table is readable only by the owner of the table.

Network Information Service Plus (NIS+)

13

However, all of Row 1 is readable by the group owner of that row. Finally, Column 1 of Row 1 is readable by all NIS+ principals. The modify right may be similarly granted.

Table: foo.bar. Entry Data Row 0 Row 1 ... Row m

Type: foo records Column 1

Path:fie.bar. :foe.bar. ... Column n

Column 2

Table Object access rights: r----/----/---/----

Access rights shown for: owner/group/world/nobody

Column n access rights: -----/----/r--/---Row m Entry data: -----/----/r--/----

DATUM

Figure 7

Access Rights for Tables Showing Narrowing of Access Rights

The service enforces read access by censoring the information that the requesting principal is not allowed to read. When one or more, but not all, columns of an entry are protected, the protected columns have the sensitive data replaced by the *NP* string. Entries that are completely protected are simply removed from the list of entries that are returned. If no access to the table is allowed, an error of NIS_PERMISSION is returned.

14

SunSoft

NIS+ Replication Model


Like the existing NIS service, NIS+ domains are replicated using a master and slave model. However, the replication is done on a per domain basis with each internal node in the hierarchy having its own master and replicas. Further, all changes to either a domain or a table within that domain are logged on an event basis, and it is these change events that are propagated to replicas rather than to complete databases.

Implementation of NIS+ Service


The components of the NIS+ design which implement these models are shown in Figure 8. The highlighted components are currently part of the SunOS system and are not considered to be part of this design. In Figure 8, each box represents a set of interfaces. Dependencies are not strictly linear since the location mechanism may be required to lookup directory objects within the NIS+ namespace, and this causes it to make use of the NIS+ client library interfaces.

Application / System API NIS+ Client Library RPC Authentication Mechanism NIS+ Location Mechanism ONC/RPC NIS+ Service Daemon
Figure 8 Database Storage/Retrieval Mechanism

Cache Manager

The Components of the NIS+ Service

Network Information Service Plus (NIS+)

15

NIS+ Client Library


The NIS+ client library interface provides the application interface to the NIS+ service. Generally, applications have their own naming interface that meets their particular requirements. For example the operating system denes a naming interface gethostbyname( ), which takes a host name and returns a structure containing addressing information about that machine. This additional level of indirection allows different naming services to be used in different implementations of the interface. The NIS+ client library is designed to provide a set of capabilities upon which custom naming interfaces may be built. The two primary operations that are provided are the lookup and list operations. The lookup operation locates objects in the namespace and the list operation searches tables. Both provide the service binding and name resolution functions. Additionally, they provide services specic to their operation. The lookup routine implements the symbolic link facility. When a lookup request is made and the object returned is a link, the function checks to see if a ag was passed that specied links were to be followed. If it was, the function restarts the lookup using the name stored within the link. Similarly, the list function implements the table search paths. When a search of an NIS+ table returns no entries, and the user has specied that the tables path is to be followed, this function begins searching each table in the path until a match is found or the path is exhausted. The client library also provides the service location mechanism. All NIS+ clients have a le in their le system that contains the name, address, and authentication information for at least one trusted machine. Requests for service go to that machine or machines rst when the client boots up. When the desired name is not within the local domain, the machine serving the domain is queried for a server that does serve the desired domain. This query will be answered by either the name of a server who serves that domain or a server that is closer to that domain. The location function will cache this information with a local daemon named the NIS+ cache manager. If the returned information is not the desired domain, the domain returned is queried for the name of a machine serving the desired domain. In this way, all nodes in the namespace can be located.

16

SunSoft

The client library also provides the interfaces to add, remove, or modify NIS+ objects and entries in NIS+ tables. Various routines for manipulating NIS+ names, routines for returning the NIS+ names associated with the current process, and various object handling functions, round out the package.

NIS+ Cache Manager


The NIS+ location mechanism is predicated on the fact that a machine that serves a domain is itself a client of a domain above the one it serves. When a location request comes from a client for a domain, the service checks to see if it serves the requested domain. If it does not serve the domain, then it checks to see if the desired domain is below the domain it serves in the namespace. If the desired domain is below its domain, it locates the directory object in its domain that is an ancestor of the desired domain and returns that to the client. If the desired domain is located above the servers domain, it returns the directory object for its domain, which is always above the one it serves. Eventually this mechanism will nd its way to the root of the namespace and begin to work its way down again. Once the desired directory object is found, the service returns it to the client. Prior to returning the directory object, it signs it with a cryptographic checksum, using a key that only a root process on the client machine will know. When the client library gets the directory object, it passes it to the cache manager which veries the signature and adds it to its shared memory cache of directories. Future client requests will nd the directory object in the cache managers cache and avoid the time-consuming location step.

NIS+ Service Daemon


Once the directory object for a domain is located, the client library will attempt to bind to each of the servers within it until a binding is successful. Update operations will attempt to bind only to the master server. Given a binding, the client library then makes an RPC call to the NIS+ service. The service uses a virtual memory database to store its information. It receives the request, checks the access rights, and then responds with the requested information. The database used is linked to the service at runtime using the shared library facilities of the SunOS system. The use of shared libraries allows the database to be replaced with specialized versions for different applications.

Network Information Service Plus (NIS+)

17

An In-depth Look at an NIS+ Operation


A diagram showing the execution of an NIS+ lookup is provided in Figure 9. An NIS+ operation begins with a call to an application or system library interface (1) that uses NIS+ in its implementation. Most often, this operation will be a search of an NIS+ table. In our example, the gethostbyname function call searches the hosts table. The gethostbyname function then calls the NIS+ client library in Step 2. The client library looks in the cache managers shared memory location cache for the name and address of an appropriate machine. If there are no appropriate bindings, the client library will locate one using Steps 2.1 and 2.2 to call the nis_finddirectory function in search of a server. When a machine is located, the client library issues an RPC request, Step 3, to talk to the service. The service consults its database and returns the results in Step 4. The client library takes the results and passes them up to the application interface in Step 5, and the gethostbyname call converts the data in the entry object into a struct hostent for the calling program.

18

SunSoft

hostent *gethostbyname(pepper);

1 Cache Manager

Local library API

Legend: Shared Memory Interface Shared Library Interface Remote Procedure Call Cache Message Protocol Shared Memory Mapping

2 2.1 NIS+ Client Library Cache Library 2.2 NIS+ find_directory()

3 NIS+ Service Daemon Structured Storage Manager NIS+ Service Daemon Structured Storage Manager

Occurs on Cache Miss

Figure 9

Execution of an NIS+ Lookup

Network Information Service Plus (NIS+)

19

Glossary of Terms
Throughout this document, terms are used that have specic meanings. These terms are collected here for easy reference. API The Application Programming Interface, or API, consists of a series of C routines that give application programs access to the naming service. Binding An NIS+ name, protocol information and valid credential for the local NIS+ server. This information is sufcient to contact the server and resolve names administered by it. Credential A piece of information that identies the user or host providing it. If the information is encrypted in such a way that only its true owner, as opposed to an imposter, could encrypt it, then it is a Secure Credential. Datum The dbm structure that NIS uses: it consists of an opaque key and an opaque data array. dbm A collection of C language routines that implement a very simple database. The database is divided into maps. DNS The Domain Name Service: the Internet name service that is dened in RFC 1034 and RFC 1035. Domain A namespace administered by a single authority. The domain contains one or more servers that have its directory. Global Namespace The space of all possible names that NIS+ can name. This space starts at dot (.) and goes down. Information Base A generic term for a collection of information that is named.

20

SunSoft

Internet A network whose participants are machines and users from more than one organization. Additionally, those organizations do not share any common management at any level. Leaf Node A leaf node or name has no other names below it in the namespace tree. Namespace A namespace is a collection of names administered by a single authority. This space can be composed of several branches of the Organizational Namespace. Object An NIS+ object is the basic unit in the namespace. This data structure consists of an administrative part that identies ownership, access rights, and so forth, and a data part that contains the value of the object. Object Value The data portion of an NIS+ object. Principal Clients of the naming service, such as users and hosts, having credentials.

Network Information Service Plus (NIS+)

21

22

SunSoft

SunSoft, Inc. 2550 Garcia Avenue Mountain View, CA 94043 For more information, call 1 800 227-9227.
Printed in USA 9/91 91027-0 1.5K

Chapitre 18

Mcanisme dauthentication rseau : LDAP

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

536 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication rseau : LDAP

18.1 Problmatique

18.1 Problmatique

Cas de luniversit de Paris 4 : base Microsoft Excel du personnel administratif base Microsoft Access du personnel enseignant base /etc/passwd des comptes email des utilisateurs base mysql des 2 catgories de personnel prochainement logiciel base dOracle prochainement Microsoft Active Directory Question 1 : envoyer un email tous les personnels administratifs sachant que le service du personnel ne fournira quune liste avec nom et prnom. Comment lingnieur systme fait-il ? Question 2 : envoyer un email 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 lingnieur systme fait-il ?
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 537 / 803

18 Mcanisme dauthentication rseau : LDAP

18.2 Chapitre 18 Mcanisme dauthentication rseau : LDAP Principe dannuaire

18.2 Principe dannuaire

Un annuaire informatique est un service permettant daccder des informations, relatives des personnes ou diverses ressources de faon organise. Objectif : maintenir de faon cohrente et contrle les archipels de donnes et obtenir des donnes de rfrence.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

538 / 803

18 Mcanisme dauthentication rseau : LDAP

18.2 Principe dannuaire

Un annuaire nest pas une base de donnes relationnelles. Une base de donnes (SGBD) se caractrise par : Le schma des donnes est dni 100% pour rsoudre un certain problme. Les applications connaissent explicitement le schma des donnes. Les objets sont complexes et clats entre plusieurs tables lies par des relations complexes. Un SGBD supporte les transactions. Un SGBD supporte un langage comme SQL qui permet des fonctions dinterrogation et de mises jour trs complexes. Un SGBD centralise les donnes pour viter les problmes de synchronisation de donnes et de qualit des temps de rponse.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

539 / 803

18 Mcanisme dauthentication rseau : LDAP

18.2 Principe dannuaire

Un annuaire se caractrise par : Les objets sont indpendants (pas de liens de dpendance entre eux). Les objets peuvent tre distribu sur plusieurs annuaires pour assurer une meilleure disponibilit. Le schma est standardis pour pouvoir partager les donnes. Le schma est extensible pour prendre en compte tous les besoins mais cela est fait de faon compatible avec les standards. Les applications dannuaire ignorent la structure interne des donnes. Un annuaire est principalement consult en lecture et est optimis pour cela.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

540 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication rseau : LDAP

18.3 Annuaire LDAP

18.3 Annuaire LDAP

LDAP Lightweight Directory Access Protocol Hritier de lannuaire ISO X500. Version 3 actuellement. RFC 2251 2256, RFC 2829 2830, RFC 2849. Il ny a pas de standard de reprsentation des contrles daccs aux donnes. LDAP : nom dun protocole nom dune structure de donnes nom dimplmentations de serveurs suivant le protocole Confusion possible. . .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

541 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication 18.4 Modle:deLDAPde LDAP : DIT, suxe rseau donnes
18.4 Modle de donnes de LDAP : DIT, suxe

Les entres sont organises sous forme darbre ou DIT (Directory Information Tree). Lune des dicults de LDAP : construire lorganisation du DIT. De quoi est-il le reet ? : DIT caractre organisationnel ? DIT caractre gographique ? Pas de solution universelle.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

542 / 803

18 Mcanisme dauthentication rseau : LDAP

18.4 Modle de donnes de LDAP : DIT, suxe

DIT caractre 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

543 / 803

18 Mcanisme dauthentication rseau : LDAP

18.4 Modle de donnes de LDAP : DIT, suxe

DIT caractre gographique ?


dc=company,dc=com

dc=america

dc=europe

dc=asia

dc=people

dc=people

dc=people

dc=groups

dc=groups

dc=groups

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

544 / 803

18 Mcanisme dauthentication rseau : LDAP

18.4 Modle de donnes de LDAP : DIT, suxe

La racine de larbre est uniquement conceptuelle et nexiste pas rellement. Cest le suxe qui sert dterminer les adresses absolues des objets (comme / pour larborescence des chiers 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 suxe peut avoir plusieurs formes : forme 1 : o=company.com forme 2 : o=company,c=com forme 3 : dc=company,dc=com On prfrera la 3ime forme, ayant un certain rapport avec les noms de domaine DNS.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 545 / 803

18 Mcanisme dauthentication rseau : LDAP

18.4 Modle de donnes de LDAP : DIT, suxe

Exemple de DIT visualis avec LdapBrowser disponible lURL http://www.iit.edu/~gawojar/dap/ :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

546 / 803

18 Mcanisme dauthentication rseau : LDAP

18.5 Modle donnes de Chapitre 18 Mcanisme dauthenticationderseau :LDAP : entre, attributs, DN, URL LDAP

18.5 Modle de donnes de LDAP : entre, attributs, DN, URL

DSE Directory Service Entry Les entres dans le DIT (DSE) sont des agrgats dattributs monovalus ou multivalus qui permettent de stocker nimporte quel format de donnes (prnom, numro de tlphone, image, son, etc.) Les DSE sont stockes dans le DIT et arrangs selon leur identiant unique, le DN (Distinguished Name). Un DN est la concatnation dun RDN (Relative DN) et du DN des parents. Un DN sapparente 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 547 / 803

18 Mcanisme dauthentication rseau : LDAP

18.5 Modle de donnes de LDAP : entre, attributs, DN, URL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

548 / 803

18 Mcanisme dauthentication rseau : LDAP

18.5 Modle de donnes de LDAP : entre, 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

549 / 803

18 Mcanisme dauthentication rseau : LDAP

18.6 Modle de donnes de LDAP Chapitre 18 Mcanisme dauthentication rseau ::schma, syntaxes, OID, objectclass LDAP

18.6 Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Le schma du DIT regroupe les dnitions relatives aux types dobjets que peut contenir lannuaire ou que lon peut rechercher. Le schma contiendra des objets instanciations de classes LDAP, les dnitions de ces classes et de leurs attributs, les syntaxes de ces attributs. Tous ces lments seront identis par des Object Identiers dits OID.
attributetype ( 1.3.6.1.1.1.1.0 NAME uidNumber DESC An integer uniquely identifying a user in a domain EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) )

(1.3.6.1.1.1.1.0 et 1.3.6.1.4.1.1466.115.121.1.27 sont des OIDS)


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 550 / 803

18 Mcanisme dauthentication rseau : LDAP

18.6 Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Une syntaxe est un modle de reprsentation des valeurs de lattribut. Par exemple boolen, entier, binaire (pour une image, un son), etc. Lattribut objectclass spcie la liste des classes quinstancie un DSE. Chaque classe va construire la structure du DSE en spciant une liste dattributs obligatoirement prsents ( MUST dans lobjectclass) et une liste dattributs facultatifs ( MAY dans lobjectclass).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

551 / 803

18 Mcanisme dauthentication rseau : LDAP

18.6 Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Exemple :
objectclass ( 2.16.840.1.113730.3.2.2 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 ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) )

lattribut uid sera de type MUST.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

552 / 803

18 Mcanisme dauthentication rseau : LDAP

18.6 Modle de donnes de LDAP : schma, syntaxes, OID, objectclass

Les objectclass de LDAP sinscrivent dans un hirarchie dont la racine est lobjectclass top . Chaque classe hrite dune seule classe mre. Chaque classe peut donner lieu plusieurs sous classes.
(Abstract)

top

(Structural)

(Auxiliary)

person

companyPerson

(Structural)

(Structural)

organizationalPerson

residentialPerson

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

553 / 803

18 Mcanisme dauthentication rseau : LDAP

18.7 Protocole LDAP / Bind Chapitre 18 Mcanisme dauthentication rseau : LDAP

18.7 Protocole LDAP / Bind

Au niveau rseau : LDAP : TCP port 389 LDAP + SSL : TCP port 636 ( syntaxe LDAP au format ASN.1 ) + BER

Un dialogue LDAP stablit aprs une phase douverture de session dite bind. Le bind peut tre anonyme ou authenti.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

554 / 803

18 Mcanisme dauthentication rseau : LDAP

18.8 Format Chapitre 18 Mcanisme dauthentication rseau : LDAP de donnes LDIF

18.8 Format de donnes LDIF

Problme : comment manipuler les objets LDAP en pratique ? Rponse : en les manipulant au format LDAP Data Interexchange Format, dit LDIF LDIF nintervient pas dans le protocole LDAP (pas de mention dans les RFC par exemple). LDIF nest compris que par les utilitaires qui le convertissent en protocole LDAP.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

555 / 803

18 Mcanisme dauthentication rseau : LDAP

18.8 Format de donnes LDIF

Attention aux caractres non ASCII : si la valeur dun attribut est uniquement compos de caractres ASCII, on lcrit attribut : valeur si la valeur dun attribut contient des caractres non ASCII, il faut coder cette valeur en UTF-8 puis la coder en BASE64 et crire au nal attribut :: valeur2 Par exemple lattribut 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 dirences !


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 556 / 803

18 Mcanisme dauthentication rseau : LDAP

18.8 Format de donnes LDIF

2 utilitaires pratiques :
http://docs.univ-nancy2.fr/ldap/OutilsPERL/DecodLDIF.pl http://docs.univ-nancy2.fr/ldap/OutilsPERL/EncodLDIF.pl

A verifier...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

557 / 803

18 Mcanisme dauthentication rseau : LDAP

18.8 Format de donnes LDIF

Exemple dune DSE avec des caractres accentus non encore cods en LDIF :
dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr objectclass: top objectclass: organizationalUnit ou: Personnels de lUniversit de Paris-Sorbonne, Paris 4 businessCategory: academic research telephoneNumber: +33 (0) 1 40 46 22 11 facsimileTelephoneNumber: +33 (0) 1 40 46 25 88 postOfficeBox: Universit de Paris-Sorbonne, Paris 4 postalCode: F-75230 postalAddress: 1 rue Victor Cousin l: Paris, France description: Universit de Paris-Sorbonne, Paris 4

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

558 / 803

18 Mcanisme dauthentication rseau : LDAP

18.8 Format de donnes LDIF

Exemple dune 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) 1 40 46 22 11 facsimileTelephoneNumber: +33 (0) 1 40 46 25 88 postOfficeBox:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ= postalCode: F-75230 postalAddress: 1 rue Victor Cousin l: Paris, France description:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

559 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication rseau : LDAP 18.9 Implmentations


18.9 Implmentations

Il existe plusieurs implmentations de LDAP : OpenLdap, http://www.openldap.org, version 2.1.3 (au 21 aot 2002) SUN ONE (anciennement Netscape Directory Server, rachet par SUN devenu Sun Iplanet Directory puis SUN ONE) incorpor de base dans Solaris 8 et ultrieur Novell Directory Services, version 4 ? autes annuaires commerciaux. . . Les direntes implmentations respectent les normes du protocole. Par contre, elles dirent au niveau de tout ce qui nest pas norme. En particulier, les droits daccs aux donnes sont cods de faon incompatible.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

560 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication rseau : LDAP

18.10 OpenLDAP

18.10 OpenLDAP

Cf http://www.openldap.org/ Les versions 2.x.y dOpenLDAP sont compatibles avec les normes de LDAP v3. Le logiciel se compose de : du serveur LDAP slapd du serveur de synchronisation slurpd dutilitaires ( slapadd , ldapsearch , ldapadd , ldapdelete , ldapmodify , ldappasswd , etc.) librairies, include LDAP un chier de conguration slapd.conf dans lequel on dnit le suxe, le rootDN, le mot de passe du rootDN

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

561 / 803

18 Mcanisme dauthentication rseau : LDAP

18.10 OpenLDAP

Le mcanisme de rplication de serveurs OpenLDAP est le suivant :

1) demande de modification

slapd
2) rponse : referral (Esclave)

7)

slurpd

client
3) demande de modification

6)

slapd
4) rponse (OK/not OK) (Maitre)

5)

Journal des modifications

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

562 / 803

18 Mcanisme dauthentication rseau : LDAP

Chapitre 18 Mcanisme dauthentication 18.11 ObjectClass posixAccount, shadowAccount rseau : LDAP


18.11 ObjectClass posixAccount, shadowAccount

Cf RFC2307 Cf le schma nis.schema dans OpenLDAP. Lobjectclass posixAccount est lobjet qui implmente lquivalent de la structure C de <pwd.h> :
objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY DESC Abstraction of an account with POSIX attributes MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) )

Lobjectclass shadowAccount est lobjet qui implmente le principe des shadow passwds :
objectclass ( 1.3.6.1.1.1.2.1 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 563 / 803

18 Mcanisme dauthentication rseau : LDAP

18.12 Un Chapitre 18 Mcanisme dauthentication rseau : LDAP peu de bibliographie

18.12 Un peu de bibliographie

http://docs.univ-nancy2.fr/ldap/ http://www.openldap.org/ http://www.linux-france.org/article/serveur/ldap/ http://www.unich.edu/~dirsvc/ldap/ http://www.redbooks.ibm.com

http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/LDAP.html http://www.cru.fr/ldap/ http://www.ldapcentral.com http://www.rage.net/ldap/ http://www.annuairesldap.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

564 / 803

Chapitre 19

Slection de naming services,


/etc/nsswitch.conf

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

565 / 803

19 Slection de naming services, /etc/nsswitch.conf

19.1 Problmatique Chapitre 19 Slection de naming services, /etc/nsswitch.conf

19.1 Problmatique

Exemple : il y a les chiers systme ( /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 rpondront aux requtes de recherche de nom ? Une solution : prciser quels naming services seront utiliss et dans quel ordre au niveau du chier /etc/nsswitch.conf (en anglais naming service switch).
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 566 / 803

19 Slection de naming services, /etc/nsswitch.conf

19.2 Syntaxe de /etc/nsswitch.conf Chapitre 19 Slection de naming services, /etc/nsswitch.conf

19.2 Syntaxe de /etc/nsswitch.conf

Le chier est au format suivant :


service: source [ status=action status=action... ] source...

avec : pour source lun des mots clef files , dns , ldap , nis , nisplus , xfn (liste vrier selon les systmes UNIX orant plus ou moins de ces services) pour status lun des mots clef suivants :
SUCCESS , entre recherche trouve NOTFOUND , entre recherche non trouve UNAVAIL , la source nest pas congure sur ce systme ou bien elle est dfaillante TRYAGAIN , la source est occupe et ne peut pas rpondre actuellement, peut-tre plus tard

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

567 / 803

19 Slection de naming services, /etc/nsswitch.conf

19.2 Syntaxe de /etc/nsswitch.conf

pour action lun des mots clefs :


return , retourner la valeur trouve ou la non valeur continue , essayer la source suivante forever (uniquement pour TRYAGAIN ), persister sur cette source jusqu avoir une rponse

Par dfaut, on a pour chaque source :


[SUCCESS=return NOTFOUND=continue UNAVAIL=continue TRYAGAIN=forever]

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

568 / 803

19 Slection de naming services, /etc/nsswitch.conf

19.3 Exemple de /etc/nsswitch.conf Chapitre 19 Slection de naming services, /etc/nsswitch.conf

19.3 Exemple de /etc/nsswitch.conf

(pris sur SOLARIS)


passwd: group: hosts: ipnodes: networks: protocols: rpc: ethers: netmasks: bootparams: publickey: netgroup: automount: aliases: ... files ldap files ldap ldap [NOTFOUND=return] files ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap [NOTFOUND=return] ldap files ldap files ldap

files files files files files files files files

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

569 / 803

19 Slection de naming services, /etc/nsswitch.conf

19.4 A propos de Chapitre 19 Slection de naming services, /etc/nsswitch.conf LDAP

19.4 A propos de LDAP

Pour les systmes nincorporant pas LDAP en natif dans lOS, se reporter : http://www.padl.com/download/nss_ldap.tgz http://www.openldap.org/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

570 / 803

Chapitre 20

Pluggable Authentication Module (PAM)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

571 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.1 Problmatique

20.1 Problmatique

Exemple : Soit une machine dans une universit, hbergeant les comptes de 10 professeurs et de 1000 lves. La machine est quipe dun modem. Les professeurs sont autoriss se connecter la machine par modem, pas les lves. La machine est cliente NIS. Quand on se connecte par modem sur une machine, le systme lance la commande login lorsque la connexion stablit. Comment implmenter cela ? En modiant le programme login pour ladapter ce cas trs particulier ? ? ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

572 / 803

20 Pluggable Authentication Module (PAM)

20.1 Problmatique

La problmatique en gnral : Comment changer une mthode dauthentication dans un programme (par exemple FTP) sans avoir tout reprogrammer ?

Solution dveloppe par SUN lorigine et reprise et encourage dans Linux : Pluggable Authentication Module dit PAM

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

573 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.2 Principe de PAM

20.2 Principe de PAM

Lauthentication fait appel par lintermdiaire de PAM des modules externes de code dauthentication approprie selon le service. On dporte lauthentication en dehors du programme.
/etc/pam.conf
programme1
moduleA.so moduleB.so moduleC.so

programme2

moduleB.so moduleC.so moduleE.so moduleF.so

programme1
pam_init() pam_auth()

moduleD.so

programme2
pam_init() pam_auth()

moduleA.so

moduleB.so

moduleC.so

moduleD.so

moduleE.so

moduleF.so

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

574 / 803

20 Pluggable Authentication Module (PAM)

20.2 Principe de PAM

4 catgories de modules PAM : module dauthentication (authentication) fonctionnalits pour authentier un utilisateur et dnir ses crances module de gestion de compte (account management) fonctionnalits pour dterminer si lutilisateur dispose dun compte valide (car possibilit dexpiration de mot de passe dit password aging, de restrictions daccs horaire) module de gestion de session (session management) fonctionnalits pour dnir et terminer les sessions utilisateur module de gestion de mot de passe (password management) fonctionnalits pour changer un mot de passe utilisateur et certaines caractristiques du compte Pour une certaine application, on organise les modules ncessaires sous forme dune pile et chaque module de la pile va tre essay pour constituer lauthentication demande. Selon la conguration, un utilisateur pourra tre amen rentrer plusieurs mots de passe.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 575 / 803

20 Pluggable Authentication Module (PAM)

20.3 Conguration de PAM : Chapitre 20 Pluggable Authentication Module (PAM) /etc/pam.conf, /etc/pam.d

20.3 Conguration de PAM : /etc/pam.conf, /etc/pam.d

/etc/pam.conf dnit quels modules seront utiliss pour chaque application. Sur Linux, on trouve aussi le rpertoire /etc/pam.d qui contient un chier par application portant le nom de lapplication. 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

576 / 803

20 Pluggable Authentication Module (PAM)

20.3 Conguration 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 lun des 4 mots clef : auth , account , session , password Le control_flag est lun des 4 mots clef : requisite , required , optional , sufficient Le module_path est le chemin du module. Les options dpendent du module.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

577 / 803

20 Pluggable Authentication Module (PAM)

20.3 Conguration de PAM : /etc/pam.conf, /etc/pam.d

Par exemple, le service login fait appel aux modules suivants :

# Authentication management login auth required login auth required # Account management login account requisite login account required login account required # Session management other session required # Password management other password required

/usr/lib/security/pam_unix.so.1 /usr/lib/security/pam_dial_auth.so.1 /usr/lib/security/pam_roles.so.1 /usr/lib/security/pam_projects.so.1 /usr/lib/security/pam_unix.so.1 /usr/lib/security/pam_unix.so.1 /usr/lib/security/pam_unix.so.1

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

578 / 803

20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules Chapitre 20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules

Les directives possibles dessai des modules sont : directive required directive requisite directive optional directive sufficient

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

579 / 803

20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules

directive required La valeur de retour de ce module doit tre PAM_SUCCESS pour sortir de la pile dauthentication avec succs ; PAM_AUTH_ERR fera recommencer toute la pile :
Pile de modules PAM

REQUIRED

SUCCESS

AUTH_ERR

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

580 / 803

20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules

directive requisite Une valeur de retour PAM_AUTH_ERR fait sortir de la pile dauthentication prmaturment en chec :
Pile de modules PAM

REQUISITE

SUCCESS

AUTH_ERR

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

581 / 803

20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules

directive optional Si ce module choue, on sortira de la pile avec succs si un autre module dans la pile russit :
Pile de modules PAM

OPTIONAL

SUCCESS

AUTH_ERR

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

582 / 803

20 Pluggable Authentication Module (PAM)

20.4 Directives dessai des modules

directive sufficient Une valeur de retour PAM_SUCCESS de ce module fait sortir de la pile dauthentication prmaturment avec succs ; les autres modules dans la pile ne sont pas pris en compte :
Pile de modules PAM

SUFFICIENT

AUTH_ERR

SUCCESS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

583 / 803

20 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 stocks dans /usr/lib/security/ Par exemple sur Solaris :
% ls /usr/lib/security amiserv pam_ldap.so.1 pam_ami.so pam_projects.so pam_ami.so.1 pam_projects.so.1 pam_dial_auth.so pam_rhosts_auth.so pam_dial_auth.so.1 pam_rhosts_auth.so.1 pam_krb5.so pam_roles.so pam_krb5.so.1 pam_roles.so.1 pam_ldap.so pam_sample.so pam_sample.so.1 pam_smartcard.so pam_smartcard.so.1 pam_unix.so pam_unix.so.1 sparcv9

Chaque module fournit limplmentation dun mcanisme spcique.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 584 / 803

20 Pluggable Authentication Module (PAM)

20.5 Modules, /usr/lib/security

/usr/lib/security/pam_unix.so.1 fournit un suport dauthentication, gestion de compte, session de mot de passe. Il utilise les mots de passe UNIX pour lauthencation. /usr/lib/security/pam_dial_auth.so.1 peut seulement tre utilis pour lauthentication. Il utilise des donnes stockes dans /etc/dialups et /etc/d_passwd . Principalement utilis par login . /usr/lib/security/pam_rhosts_auth.so.1 peut seulement tre utilis pour lauthentication. Il utilise les donnes stockes dans les chiers .rhosts et /etc/hosts.equiv . Principalement utilis par rlogin et rsh .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

585 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.6 Options des modules

20.6 Options des modules

On peut passer certaines options aux modules des options spciques chaque module ; cf la documentation de chaque module ; par exemple retry=3 ou debug option use_first_pass Cette option indique dutiliser exclusivement le mot de passe entr pour le premier module de la pile du service. option try_first_pass Cette option indique dutiliser dabord le mot de passe entr pour le premier module de la pile du service et en cas dchec de ce mot de passe den demander un autre.
(Le support des options use_first_pass et try_first_pass est fortement conseill auprs des dveloppeurs de modules PAM ; vrier donc avec chaque module)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

586 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.7 Exemple 1

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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

587 / 803

20 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 supplmentaire Dialup Password:

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

588 / 803

20 Pluggable Authentication Module (PAM)

20.7 Exemple 1

Si lon se trompe dans lun des mots de passe, toutes les demandes de mot de passe sont ressayes :
% 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 427203 auth.debug] pam_authenticate: error Authentication failed ... Aug 20 14:51:34 cerise login: [ID 427203 auth.debug] pam_authenticate: error Authentication failed

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

589 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.8 Exemple 2

20.8 Exemple 2

Pour autoriser lauthentication 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

590 / 803

20 Pluggable Authentication Module (PAM)

Chapitre 20 Pluggable Authentication Module (PAM)

20.9 A propos de LDAP

20.9 A propos de LDAP

Pour les systmes nincorporant pas LDAP en natif dans lOS, se reporter : http://diamond.rug.ac.be/pam_LDAP/index.shtml

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

591 / 803

20 Pluggable Authentication Module (PAM)

20.10 Chapitre 20 Pluggable Authentication Module (PAM) Un peu de bibliographie

20.10 Un peu de bibliographie

http://www.sun.com/software/solaris/pam/ http://www.kernel.org/pub/linux/libs/pam/ http://www.netlogic.ro/linuxdoc/pam-0.64/html/pam.html http://www.mailgate.org/mailgate/LINUX/linux.redhat.pam/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

592 / 803

Chapitre 21

Systme de multifentrage : X

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

593 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X 21.1 Introduction : systme de multi fentrage


21.1 Introduction : systme de multi fentrage

Systme de multifentrage (Window System) : ensemble de programmes, de bibliothques de programmation ralisant une interface homme / machine btie sur lutilisation de divers quipements : clavier souris cran graphique autres priphriques (spaceball, plaquette graphique, . . .) Lcran tente de raliser un modle de bureau. Lide vient des travaux de Xerox, repris par Apple, repris par le projet Athena du MIT.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

594 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.2 Systme de multifentrage : X

21.2 Systme de multifentrage : X

Pour Unix, le systme de multi fentrage est un systme appel : X ou X Window System ou X11 Ce nest pas X Windows ! Historiquement : X11 sur UNIX XFree86 spciquement pour LINUX Xorg suite querelles sur XFree86 = retour lquipe de X11
http://www.x.org

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

595 / 803

21 Systme de multifentrage : X

21.2 Systme de multifentrage : X

Consortium de vendeurs dUNIX pour mettre au point X. Historique des versions : X10 X11R3 X11R4 X11R5 X11R6 X11R7 SUN a sa propre implmentation de X drive des X11R[3-7] : SUN OPENWINDOWS

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

596 / 803

21 Systme de multifentrage : X

21.2 Systme de multifentrage : X

Le systme graphique X est construit sur un modle 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

597 / 803

21 Systme de multifentrage : X

21.2 Systme de multifentrage : X

Serveur X : optimis pour ses performances graphiques rpond aux requtes du client X envoie au client X des informations vnementielles ( clic du bouton droit de la souris , appui sur la touche A avec Shift en mme temps , etc.) Client X : eectue les calculs manipule les chiers envoie des requtes au serveur X ( trace un cercle , ache du texte , quelles sont les possibilits couleurs de lcran ? , etc.) Souvent serveur X = client X = mme machine. Parfois serveur X != client X deux machines en rseau. Parfois !
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 598 / 803

21 Systme de multifentrage : X

21.2 Systme de multifentrage : X

Parfois serveur X != client X deux machines en rseau. Parfois ! Cest donc un peu plus quun systme de multifentrage : il est rparti.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

599 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.3 Serveur X

21.3 Serveur X

Serveur X : Au sens large : un serveur graphique Le serveur X gre les priphriques :


crans monochromes, niveaux de gris, couleurs, un ou plusieurs crans souris, cran tactile, stylet, palette graphique claviers boutons, mollettes

La conguration matrielle du serveur X peut varier considrablement (mme si eet dunication suite la mode du PC) le client X doit en tenir compte et doit savoir sadapter.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

600 / 803

21 Systme de multifentrage : X

21.3 Serveur X

A noter quil existe des serveurs X sur Windows et sur MacOS X. Sur Windows, utiliser CYGWIN ( http://www.cygwin.com ) :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

601 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.4 Client X

21.4 Client X

Client X : Client X == application Lapplication doit tre congurable :


Environnement multi plateformes UNIX Environnement multi serveurs X Environnement multi utilisateurs

Lapplication ne doit jamais rien supposer du serveur X. Elle doit tenir compte de tous les cas envisageables et tre paramtre en consquence. Ncessit que les applications soient congurables !

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

602 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.5 Chemins daccs

21.5 Chemins daccs

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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

603 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.6 Variable denvironnement DISPLAY

21.6 Variable denvironnement DISPLAY

La variable DISPLAY dnit le serveur X qui sera utilis. Formes possibles de la variable : nom-machine.domaine:numro-serveur.numro-cran adresse-ip:numro-serveur.numro-cran :0.0 (anciennement unix:0.0 ) ; sens spcial de cette forme : communication locale rapide via IPC et non pas via le rseau TCP/IP plus lent dans ce cas On notera numro-serveur : une mme machine peut faire tourner plusieurs serveurs X do la ncessit de les numroter. Cas gnral : un seul serveur X numro = 0. On notera numro-cran : une mme machine peut avoir plusieurs crans do la ncessit de les numroter. Cas gnral : un seul cran numro = 0.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 604 / 803

21 Systme de multifentrage : X

21.6 Variable denvironnement DISPLAY

Exemples : cerise.example.com:0.0 localhost:11.0 :0.0 192.168.0.1:0.0

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

605 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.7 Clavier

21.7 Clavier

La gestion du clavier est quelque chose de compliqu. . . Tous les types de claviers doivent pouvoir tre supports (FR, EN, RU, etc.). Par exemple des claviers braille :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

606 / 803

21 Systme de multifentrage : X

21.7 Clavier

Par exemple des boites boutons ou molettes (marque SILICON GRAPHICS) :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

607 / 803

21 Systme de multifentrage : 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.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 608 / 803

21 Systme de multifentrage : X

21.7 Clavier

Keycode X dnit une association entre le code gnr par la touche du clavier et un code de la touche au niveau du serveur X : cest le keycode. Il existe un keycode et un seul par touche du clavier. On ne peut pas modier lassociation entre le code du clavier et le keycode (sauf recompiler le serveur X). On peut obtenir le keycode par lutilitaire xev .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

609 / 803

21 Systme de multifentrage : 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 2631657543, (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 2631657607, (103,101), root:(927,454), state 0x2, keycode 26 (keysym 0x70, p), same_screen YES, XLookupString gives 1 characters: "p" ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

610 / 803

21 Systme de multifentrage : X

21.7 Clavier

Exemple de XEV : appui sur la touche p avec SHIFT en mme temps :


% xev ... KeyPress event, serial 22, synthetic NO, window 0xc00001, root 0x2f, subw 0x0, time 2631671991, (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 2631672071, (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 2631672127, (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 2631672215, (103,101), root:(927,454), state 0x3, keycode 232 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 characters: "" ...
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 611 / 803

21 Systme de multifentrage : X

21.7 Clavier

Keysym X dnit un nom symbolique pour chaque caractre utilisable. On parle de keysym. Le chier <X11/keysymdef.h> dnit les valeurs numriques de ces noms symboliques.
... #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define XK_dollar XK_percent XK_ampersand XK_apostrophe XK_parenleft XK_parenright XK_asterisk XK_plus XK_comma XK_minus XK_period XK_slash XK_0 XK_1 XK_2 XK_3 XK_4 0x024 0x025 0x026 0x027 0x028 0x029 0x02a 0x02b 0x02c 0x02d 0x02e 0x02f 0x030 0x031 0x032 0x033 0x034 #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define ... XK_5 XK_6 XK_7 XK_8 XK_9 XK_colon XK_semicolon XK_less XK_equal XK_greater XK_question XK_at XK_A XK_B XK_C XK_D XK_E 0x035 0x036 0x037 0x038 0x039 0x03a 0x03b 0x03c 0x03d 0x03e 0x03f 0x040 0x041 0x042 0x043 0x044 0x045

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

612 / 803

21 Systme de multifentrage : X

21.7 Clavier

Au dmarrage du serveur X, il y a mise en place de correspondances entre keycode et keysyms. On peut modier les correspondances via la commande xmodmap . X accepte au maximum 5 keysyms pour un keycode via le jeu des modicateurs comme Shift, Ctrl, etc.. Exemple des modicateurs dune machine SOLARIS
% xmodmap -pm xmodmap: up to 2 keys per modifier, (keycodes in parentheses): shift lock control mod1 mod2 mod3 mod4 mod5 Shift_L (0xe8), Shift_R (0xec) Control_L (0x40) Control_L (0xe7), Control_R (0xeb) Meta_L (0xea), Meta_R (0xee) Mode_switch (0xed) Num_Lock (0x5a) Alt_L (0xe9)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

613 / 803

21 Systme de multifentrage : X

21.7 Clavier

Liste des keycodes et de leurs keysyms associs (exemple pris sur une machine SUN avec un clavier QWERTY) :
% xmodmap -pk There are 5 KeySyms per KeyCode; KeyCodes range from 8 to 254. KeyCode Value ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 ...
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 614 / 803

Keysym (Keysym) ... Value (Name) ... 0x0056 0x0057 0x0058 0x0059 0x005a 0x0031 0x0032 0x0033 0x0034 0x0035 0x0036 0x0037 0x0038 0x0039 0x0030 (V) (W) (X) (Y) (Z) (1) (2) (3) (4) (5) (6) (7) (8) (9) (0)

0x0021 0x0040 0x0023 0x0024 0x0025 0x005e 0x0026 0x002a 0x0028 0x0029

(exclam) (at) (numbersign) (dollar) 0x20ac (EuroSign) (percent) 0x20ac (EuroSign) (asciicircum) (ampersand) (asterisk) (parenleft) (parenright)

21 Systme de multifentrage : X

21.7 Clavier

Liste des keycodes et de leurs keysyms associs avec achage sous une forme compatible avec la syntaxe de XMODMAP pour les modications (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 keycode 38 = 2 keycode 39 = 3 keycode 40 = 4 keycode 41 = 5 keycode 42 = 6 keycode 43 = 7 keycode 44 = 8 keycode 45 = 9 keycode 46 = 0 ...

exclam at numbersign dollar EuroSign percent EuroSign asciicircum ampersand asterisk parenleft parenright

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

615 / 803

21 Systme de multifentrage : X

21.7 Clavier

Pour modier 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 dorigine associ la touche est 0xbf. Le keysym associ est daprs <X11/keysymdef.h> 0x0e9 ( XK_eacute ). xmodmap -e keycode 66 = 0x0e9 A noter sur SOLARIS le script /usr/openwin/bin/xmakemap qui renvoie limage de la conguration actuelle du clavier.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

616 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.8 Souris

21.8 Souris

Tous les types de souris doivent pouvoir tre supports. . .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

617 / 803

21 Systme de multifentrage : X

21.8 Souris

Plus classiquement :

Cest un outil de dsignation ayant de 1 3 boutons. La position est suivie lcran par un curseur. Le curseur est toujours ach au premier plan. Pour permuter les boutons de la souris : xmodmap -e pointer = 3 2 1
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 618 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.9 Ecran

21.9 Ecran

y x

Il est de type bitmap (achage point). Limage est obtenue par balayage dune mmoire dcran (frame buer) contenant une valeur par point lcran (pixel).
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 619 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.10 Fentre / icne

21.10 Fentre / icne

y x h w

Une fentre est un rectangle lcran caractris par un emplacement, une bordure, ses dimensions. Une icne est la trace visible lcran dune fentre temporairement non ache. Les fentres sont organises en arbre au niveau interne dans le serveur X. La racine de larbre est la root window cre linitialisation du serveur et couvrant tout lcran. Vulgairement, cest le fond dcran.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 620 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.11 Copier / coller

21.11 Copier / coller

Pour copier, on slectionne 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.

Modiable.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 621 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.12 Principe de personnalisation des clients

21.12 Principe de personnalisation des clients

Personnalisation via des ressources ou des arguments de la ligne de commande :

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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

622 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.13 Options de la ligne de commande

21.13 Options de la ligne de commande

Il y a des options standard pour la plupart des clients car leur programmation sappuye sur une bibliothque appele Xt . Exemples : display : -display cerise.example.com:0.0 couleur des caractres : -fg couleur couleur de fond des fentres : -bg couleur caractres : -fn font dimensions et emplacement de la fentre : -geometry WIDTHHEIGHTXOFFYOFF
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 623 / 803

21 Systme de multifentrage : X

21.13 Options de la ligne de commande

Retour sur loption -geometry WIDTHHEIGHTXOFFYOFF :


+0+0 X +100+100 +600+100 X -450+150 -200+150 -0+0

-450-200 +100-100 X +0-0


c T.Besanon (v12.0.364) Administration UNIX

-200-200

+600-100 X -0-0
ARS 2009 2010 Partie 3 624 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.14 Ressources

21.14 Ressources

Une ressource = variable congure dans un chier ASCII (analogie : base de registres de Windows ou ressources Macintosh) 4 niveaux de ressources : ressources dnies par le systme ressources dnies par le client X ressources dnies par le serveur X ressources dnies par lutilisateur
c T.Besanon (v12.0.364)

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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

Administration UNIX

ARS 2009 2010 Partie 3

625 / 803

21 Systme de multifentrage : X

21.14 Ressources

Ressources dnies par le systme


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 ou

$XAPPLRESDIR $HOME

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 rpertoire regroupe les chiers correspondants aux classes des applications. Par exemple XTerm pour lapplication X xterm , Bitmap pour lapplication X bitmap , etc. Ces ressources sont lues par les clients X qui tournent sur la machine de ce rpertoire.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

626 / 803

21 Systme de multifentrage : X

21.14 Ressources

Ressources dnies par le client X


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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

Traditionnellement $HOME . Ce mcanisme sapplique aux applications X dveloppes avec la librairie Xt . Le chier de ressources porte le nom de lapplication. Par exemple XTerm pour lapplication X xterm , Bitmap pour lapplication X bitmap , etc. Ces ressources sont lues par les clients X qui tournent sur la machine de ce rpertoire.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

627 / 803

21 Systme de multifentrage : X

21.14 Ressources

Ressources dnies par le serveur X


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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

Des ressources peuvent tre places dans une base de donnes dans la mmoire du serveur X. Ces ressources sont donc communes tous les clients de ce serveur X. Les clients les lisent lors de leur dmarrage, plus aprs. La commande xrdb sert manipuler cette base de donnes en mmoire dans le serveur X.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

628 / 803

21 Systme de multifentrage : X

21.14 Ressources

Ressources dnies par lutilisateur


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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

Ce mcanisme permet davoir un chier propre plusieurs systmes mme si le homedir est partag (via NFS) entre ces systmes.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

629 / 803

21 Systme de multifentrage : X

21.14 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

630 / 803

21 Systme de multifentrage : X

21.14 Ressources

Un client X est construit autour dun arbre de widgets (boutons, dropdown menus, etc.) fournis par les bibliothques de programmation.

On a en fait une arborescence de ressources.

Programme editres pour les manipuler.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 631 / 803

21 Systme de multifentrage : X

21.14 Ressources

La syntaxe utilise des caractres joker : caractre . : sparateur des lments dans la dnition de la ressource caractre * : permet de remplacer un ou plusieurs lments dans la dnition de la ressource caractre ? : permet de remplacer un et un seul lment dans la dnition de la ressource Par exemple :
xterm.background: black xterm.foreground: yellow

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

632 / 803

21 Systme de multifentrage : X

21.14 Ressources

Notion de : classe application de la classe fentre dune application

Cest la ressource la plus prcise qui est prise en compte.

Par exemple : mon-application.sous-fentre.side.background: yellow prime sur mon-application.sous-fentre.background: blue qui prime sur mon-application.background: red

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

633 / 803

21 Systme de multifentrage : X

21.14 Ressources

xrdb Rappel :
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 ou

$XAPPLRESDIR $HOME

propriete RESOURCE_MANAGER (xrdb)


ou

$HOME/.Xdefaults

$XENVIRONMENT
ou

$HOME/.Xdefaults-nom-host

Arguments de la ligne de commande

Des ressources peuvent tre places dans une base de donnes dans la mmoire du serveur X. La commande xrdb sert manipuler cette base de donnes en mmoire dans le serveur X. xrdb = X server Resource DataBase utility

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

634 / 803

21 Systme de multifentrage : X

21.14 Ressources

Syntaxes : xrdb -query : liste les ressources actuelles du serveur X xrdb -merge fichier : fusionne un chier de ressources avec les ressources du serveur X xrdb -load fichier : crase les ressources du serveur X par celles du chier indiqu xrdb -remove : eace les ressources du serveur X xrdb -symbols : ache la liste des symboles prdnis (voir ci-dessus pour la partie CPP) xrdb utilise cpp du langage C. Donc le chier de ressources charger peut contenir les directives classiques de CPP : #include #ifdef etc. Intrt : un seul chier mais pouvant traiter plusieurs cas de gures.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 635 / 803

21 Systme de multifentrage : X

21.14 Ressources

Par exemple :
#ifndef COLOR XTerm*cursorColor: black XTerm*pointerColor: black #else /* COLOR is DEFINED :-) */ XTerm*cursorColor: red XTerm*pointerColor: red #endif

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

636 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.15 Couleurs

21.15 Couleurs

On peut dsigner une couleur sous un nom symbolique : /usr/X11R6/lib/X11/rgb.txt dnit ainsi 738 couleurs (les noms ne sont pas forcment 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 supporte pour compatibilit :
#RGB #RRGGBB #RRRGGGBBB #RRRRGGGGBBBB (4 bits each) (8 bits each) (12 bits each) (16 bits each)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

637 / 803

21 Systme de multifentrage : X

21.15 Couleurs

A partir de X11R5, adoption de la gestion des couleurs via X Color Management System (XCMS). Le chier /usr/X11R6/lib/X11/Xcms.txt dcrit 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/0.0213 CIEXYZ:0.3203/0.6805/0.1430 CIEXYZ:0.2483/0.1122/1.2417 CIEXYZ:0.5512/0.7909/0.9759 CIEXYZ:0.2218/0.2815/0.4708 CIEXYZ:0.3400/0.3109/1.1067 CIEXYZ:0.0478/0.0216/0.2392 CIEXYZ:0.0478/0.0216/0.2392 CIEXYZ:0.1333/0.0772/0.0217 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 associe : xcmsdb


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 638 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.16 Polices de caractres

21.16 Polices de caractres

Les fontes ont des noms trs dtaills. Par exemple :


-adobe-courier-medium-r-normal--10-100-75-75-m-60-iso8859-1

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 complmentaire 10 : hauteur en pixels 100 : hauteur en points (un point = 1/72e de pouce) 75 : rsolution horizontale de conception de la police 75 : rsolution 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 caractres
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 639 / 803

21 Systme de multifentrage : X

21.16 Polices de caractres

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 (http://www.freetype.org/), PEX, Speedo

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

640 / 803

21 Systme de multifentrage : X

21.16 Polices de caractres

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--14-140-75-75-p-74-iso8859-1

Les polices sont utilisables via la ligne de commande. Par exemple :


% xfd -fn 9x15bold

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

641 / 803

21 Systme de multifentrage : X

21.16 Polices de caractres

Les fontes sont stockes dans larborescence /usr/X11R6/lib/X11/fonts/ contenant plusieurs sous rpertoires dont : 75dpi/ : polices de rsolution de 75 dpi 100dpi/ : polices de rsolution de 100 dpi misc/ : polices diverses Notion de font path. Conguration du font path via la commande xset : xset -q xset +fp /chemin/vers/rpertoire/de/fontes/ xset fp+ /chemin/vers/rpertoire/de/fontes/ xset -fp /chemin/vers/rpertoire/de/fontes/ xset fp rehash Lordre des rpertoires est signicatif.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 642 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.17 Rpertoires de polices de caractres

21.17 Rpertoires de polices de caractres

Un rpertoire de polices de caractres a une structure prcise :


% ls /usr/X11R6/lib/X11/fonts/misc 10x20.pcf.Z Screen6.pcf.Z 12x24.pcf.Z Screen7.pcf.Z 12x24rk.pcf.Z Serif10.pcf.Z 5x7.pcf.Z Serif11.pcf.Z 5x8.pcf.Z Serif12.pcf.Z 6x10.pcf.Z Serif14.pcf.Z 6x12.pcf.Z Serif16.pcf.Z 6x13.pcf.Z clB6x10.pcf.Z 6x13B.pcf.Z clB6x12.pcf.Z 6x9.pcf.Z clB8x10.pcf.Z 7x13.pcf.Z clB8x12.pcf.Z 7x13B.pcf.Z clB8x13.pcf.Z ...

clR8x10.pcf.Z clR8x12.pcf.Z clR8x13.pcf.Z clR8x14.pcf.Z clR8x16.pcf.Z clR8x8.pcf.Z clR9x15.pcf.Z cursor.pcf.Z deccurs.pcf.Z decsess.pcf.Z fonts.alias fonts.dir

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

643 / 803

21 Systme de multifentrage : X

21.17 Rpertoires de polices de caractres

Fichier fonts.dir : ce chier contient la liste des polices du rpertoire ; 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--13-120-75-75-c-60-iso8859-1 ...

Fichier fonts.alias : ce chier contient des alias plus parlant que les noms complets des polices X. Par exemple :
... fixed ... "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1"

Lajout dune fonte ne se rsume pas copier le chier de la fonte dans le rpertoire !
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 644 / 803

21 Systme de multifentrage : X

21.17 Rpertoires de polices de caractres

Pour ajouter une police, il faudra faire appel la commande mkfontdir :


1 2 3 4 5

crer le rpertoire des polices si ncessaire : mkdir /tmp/fonts copier la police dans le rpertoire : cp toto.pcf /tmp/fonts crer le chier fonts.dir : mkfontdir crer ventuellement des alias : vi /tmp/fonts/fonts.alias ajouter le nouveau rpertoire son font path : xset +fp /tmp/fonts/ ; Attention : il faut le slash nal /tmp/fonts/ reconstituer la liste jour des polices X : xset fp rehash vrication des polices disponibles : xlsfonts ou xset -q utilisation des nouvelles polices : application-X.exe -fn nouvelle-fonte

6 7 8

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

645 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.18 Serveur de polices de caractres

21.18 Serveur de polices de caractres

Lajout de polices X sur un parc de machines est une opration pnible (voir transparent prcdent). Apparition dun mcanisme de serveur de fontes X. Administration simplie car centralisation des polices. En X11R5 : programme fs . En X11R6 et aprs : programme xfs .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

646 / 803

21 Systme de multifentrage : X

21.18 Serveur de polices de caractres

Syntaxe : xfs [-config fichier-config] [-port n]

Par dfaut le chier de conguration est /etc/X11/fs/config .

Par dfaut le port TCP utilis est 7100 (voir /etc/services ).

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

647 / 803

21 Systme de multifentrage : X

21.18 Serveur de polices de caractres

Exemple de chier de conguration :


# 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 # dont listen to TCP ports by default for security reasons # no-listen = tcp port = 7100

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

648 / 803

21 Systme de multifentrage : X

21.18 Serveur de polices de caractres

Utilisation dun serveur de fontes par : xset +fp tcp/xfs.example.com:7100 Liste des polices dun 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.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

649 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X21.19 Gestionnaire de fentres, window manager


21.19 Gestionnaire de fentres, window manager

Gestionnaire de fentres Window Manager client X au mme titre que les autres. Il permet de raliser les choses suivantes : dplacer ou redimensionner une fentre iconier ou non une fentre faire passer au premier ou au dernier plan une fentre dcorer les fentres crer ou dtruire les fentres lancer ou terminer des applications Lemploi dun gestionnaire de fentres na rien dobligatoire mais ce serait se priver de beaucoup de fonctionnalits. Il ne faut pas confondre le gestionnaire de fentres avec le serveur X.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 650 / 803

21 Systme de multifentrage : X

21.19 Gestionnaire de fentres, window manager

Quelques exemples de fentres dcores par des window managers :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

651 / 803

21 Systme de multifentrage : X

21.20 Conguration Chapitre 21 Systme de multifentrage : X de la session X, $HOME/.xsession, FAILSAFE

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

Sur une station avec une mire daccueil graphique, le script $HOME/.xsession est lanc lors de la connexion et il congure lenvironnement graphique de lutilisateur : applications X lancer automatiquement au dmarrage (par exemple des terminaux) rglages du clavier rglages de la souris etc. La dure de vie de la session sous X est celle du script $HOME/.xsession .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

652 / 803

21 Systme de multifentrage : X

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

Forme gnrale du script $HOME/.xsession :


#!/bin/sh client-X-1 & client-X-2 & ... appliX <--- pas de &

Le dernier client X nest pas lanc en tche de fond (sinon le script sarrte tout de suite et la session se ferme brutalement).

En gnral, le dernier client est le window manager.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

653 / 803

21 Systme de multifentrage : X

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

Sil y a des erreurs, les messages de celles-ci sont crits dans le chier $HOME/.xsession-errors . En cas derreur grave dans $HOME/.xsession empchant le dmarrage de la session X, utiliser le mode FailSafe : disponible via les menus de la fentre daccueil de KDE disponible via les menus de la fentre daccueil de GNOME dans lenvironnement de base X :
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
1

Il apparait alors un simple xterm sans window manager. Lutiliser pour corriger les erreurs indiques dans le chier $HOME/.xsession-errors .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

654 / 803

21 Systme de multifentrage : X

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

Version KDE du FAILSAFE : via un menu :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

655 / 803

21 Systme de multifentrage : X

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

656 / 803

21 Systme de multifentrage : X

21.20 Conguration de la session X, $HOME/.xsession, FAILSAFE

Pour lancer KDE, mettre au minimum dans son chier $HOME/.xsession


#!/bin/sh PATH=/usr/X11R6/bin:/usr/local/bin:$PATH export PATH startkde

Pour lancer GNOME, mettre au minimum dans son chier $HOME/.xsession


#!/bin/sh PATH=/usr/X11R6/bin:/usr/local/bin:$PATH export PATH enlightment & gnome-session

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

657 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

21.21 Environnements CDE, KDE, GNOME

Objectif avou : fournir aux utilisateurs un environnement comparable au bureau de Windows, pratique, congurable souhait Plusieurs environnements sympatiques : CDE : cf http://www.cde.com KDE : cf http://www.kde.org GNOME : cf http://www.gnome.org CDE quasi mort. Guerre entre KDE et GNOME. SUN a adopt GNOME.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

658 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

CDE :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

659 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

KDE :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

660 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

GNOME :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

661 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

Revers de la mdaille : complexit de lenvironnement par rapport ce que lon faisait avant. Impossible de congurer manuellement lenvironnement. Par exemple lenvironnement graphique GNOME utilise une arborescence complexe de chiers utilisateur :
% du $HOME/.gnome* 22 .gnome/accels 18 .gnome/panel.d/default/launchers 38 .gnome/panel.d/default 40 .gnome/panel.d 2 .gnome/apps 2 .gnome/application-info 132 .gnome 14 .gnome-desktop 6 .gnome_private/panel.d/default 8 .gnome_private/panel.d 10 .gnome_private 2 .gnomerc-errors

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

662 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

Par exemple lenvironnement graphique GNOME lance de nombreux process lors dune session X :
% ps -ax PID TT ... 203 ?? 214 ?? 226 ?? 228 ?? 275 ?? 277 ?? 280 ?? 282 ?? 285 ?? 290 ?? 292 ?? 300 ?? 301 ?? 303 ?? 1047 ?? 191 v0 202 v0 208 v0 209 v0 ... STAT R Ss Ss S Ss Ss Is I Is Ss Ss Is R I Is I+ I+ I I TIME COMMAND 53:03.26 0:00.85 0:05.55 0:03.47 0:18.31 0:18.97 0:00.02 0:00.28 0:00.85 0:01.16 0:01.24 0:00.01 0:13.20 0:00.01 0:00.22 0:00.00 0:00.00 0:00.00 0:00.40 X :0 -nolisten tcp (XFree86) gnome-smproxy --sm-config-prefix /.gnome-smproxy-kumf /usr/X11R6/bin/sawfish --sm-client-id default2 --sm-p xscreensaver -nosplash panel --sm-config-prefix /panel.d/default-tZvCrQ/ --s nautilus --sm-config-prefix /nautilus-DXsk2u/ --sm-cl gnome-name-service /usr/X11R6/bin/gconfd-1 12 oafd --ac-activate --ior-output-fd=16 tasklist_applet --activate-goad-server tasklist_apple deskguide_applet --activate-goad-server deskguide_app /bin/sh -c gnome-terminal --use-factory --start-facto gnome-terminal --use-factory --start-factory-server gnome-pty-helper oafd --ac-activate --ior-output-fd=22 /bin/sh /usr/X11R6/bin/startx xinit /users/sri/besancon/.xinitrc -- -nolisten tcp /bin/sh /users/sri/besancon/.xinitrc gnome-session

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

663 / 803

21 Systme de multifentrage : X

21.21 Environnements CDE, KDE, GNOME

Le recours un Control Center est indispensable :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

664 / 803

21 Systme de multifentrage : X

21.22 Rinitialisation des environnements KDE / Gnome Chapitre 21 Systme de multifentrage : X

21.22 Rinitialisation des environnements KDE / Gnome

Que faire si votre environnement KDE ou GNOME ne fonctionne plus ? Lancez la commande suivante spcique la Formation Permanente :
% ~besancon/resetX

et suivez les instructions. Attention : cela eacera toute conguration personnalise de KDE ou de GNOME !

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

665 / 803

21 Systme de multifentrage : X

21.23 Chapitre 21 Systme de multifentrage : X Scurit : xhost, MAGIC-COOKIE, xauth, ssh

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Rappel : principe client / serveur :

On veut pouvoir contrler quels clients X peuvent se connecter au serveur X.


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 666 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Contrle daccs par machine La commande xhost permet de grer de faon basique les accs au serveur X :
% xhost access control enabled, only authorized clients can connect % xhost + machine2.example.com machine2.example.com being added to access control list % xhost access control enabled, only authorized clients can connect INET:machine2.example.com % xhost - machine2.example.com machine2.example.com being removed from access control list

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

667 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

En pratique :
% echo $DISPLAY machine1.example.com:0.0 % xhost + machine2.example.com % rlogin machine2.example.com $ DISPLAY=machine1.example.com:0.0 $ export DISPLAY $ clientX ... $ exit <- affichage des fentres du client X distant

% xhost - machine1.example.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

668 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Dfauts de la commande xhost : Le principal dfaut de la commande xhost est dautoriser une machine et donc tout utilisateur y tant connect. Si lutilisateur fait xhost + sans comprendre tout client X peut se connecter ! Dangereux ! Exemples :
lecture / espionnage du clavier spyware Par exemple rcupration de mots de passe lors de su root Cf ftp://ftp.giga.or.at/pub/hacker/unix/xscan.tar.gz destruction de fentres par lutilisation de xkill par exemple capture dcran par lutilisation de xwd -root

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

669 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Contrle daccs par utilisateur : MAGIC-COOKIE, xauth Solution au problme de lautorisation XHOST : emploi dun cookie, pseudo secret connu du serveur rappeler lors dune demande de connexion au serveur X.
transmission du cookie au dmarrage

2bis

copie du cookie

dmarrage du terminal X : lancement de X direct

1 xdm
$HOME/.Xauthority

rseau Serveur X

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

670 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Qui peut connatre le cookie ? Celui qui peut accder au contenu du chier $HOME/.Xauthority
magic cookie A

ACCEPT

Transmission magic cookie A

CLIENT X 1

~alice/.Xauthority
Transmission magic cookie B

REFUS

~bob/.Xauthority
CLIENT X 2

rseau Serveur X

La scurit de X repose dans ce cas sur la scurit du lesystem. Do :


% ls -l $HOME/.Xauthority -rw------- 1 besancon software 1510 Dec 17 19:12 $HOME/.Xauthority

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

671 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Que faire si $HOME/.Xauthority nest pas disponible sur la machine distante ? Utiliser la commande xauth pour les oprations suivantes :
1

extraction du MAGIC-COOKIE du DISPLAY de la machine locale (login local = besancon ) copie sur la machine distante du MAGIC-COOKIE (le login distant peut tre dirent = tbesancon ) fusion sur la machine distante du MAGIC-COOKIE au chier $HOME/.Xauthority distant

ce qui se traduit par lune de ces commandes :


% xauth extract - $DISPLAY | rsh host2.example.com -l tbesancon xauth merge -

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

672 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Dfauts du mcanisme du MAGIC-COOKIE : le cookie transite en clair sur le rseau et peut donc tre rcupr par un mouchard.

Pas de rponse simple ce problme en dehors du protocole SUN-DES-1 mais trs peu rpandu (chirement des donnes dautorisation par DES et transfert par Secure RPC ce qui implique NIS = compliqu)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

673 / 803

21 Systme de multifentrage : X

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

SSH et MAGIC-COOKIE Dfaut de la commande xauth : syntaxe lourde lorsque le chier $HOME/.Xauthority nest pas disponible sur la machine distante ; rappel :
% xauth extract - $DISPLAY | rsh host2.example.com -l tbesancon xauth merge -

Solution : SSH (voir http://www.openssh.org ) SSH incorpore de base un mcanisme de transmission automatique du DISPLAY et du cookie associ avec scurisation de la liaison par chirement de la communication.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

674 / 803

21 Systme de multifentrage : X
rseau

21.23 Scurit : xhost, MAGIC-COOKIE, xauth, ssh

Chiffrement Dechiffrement

S S H

S S H

Chiffrement Dechiffrement

client X

PSEUDO CLIENT X

PSEUDO SERVEUR X PSEUDO $DISPLAY = stationB:11.0

$DISPLAY = stationA:0.0

client X

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

675 / 803

21 Systme de multifentrage : X

Chapitre 21 Systme de multifentrage : X

21.24 X Display Manager Protocol

21.24 X Display Manager Protocol

XDMCP : X Display Management Control Protocol X Display Manager (processus xdm ) est un client qui contrle la connexion de lutilisateur et lance sa session. Visuellement, cest une fentre dauthentication :

cerise.example.com Login: Password:

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

676 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

On a plusieurs programmes XDM disponibles : xdm : programme de base historique kdm : version KDE amliore de XDM gdm : version GNOME amliore de XDM

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

677 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Programmes plus ou moins complexes, riches, personnalisables :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

678 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Plusieurs chiers et shell-scripts de conguration de XDM :


Xservers Xaccess Xresources xdm-config GiveConsole TakeConsole Xsetup_0 Xsession .xsession .Xresources

/usr/X11R6/lib/X11/xdm
c T.Besanon (v12.0.364) Administration UNIX

$HOME
ARS 2009 2010 Partie 3 679 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

chier xdm-config Cest un chier de ressources pour le programme xdm . Il indique les autres chiers de conguration ou des shell scripts.

chier Xservers A lorigine indique la liste des serveurs X grer ; partir de X11R4, le protocole XDMCP permet un DISPLAY de contacter XDM et de se faire grer

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

680 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

chier Xaccess Il dnit la liste des serveurs X autoriss se connecter XDM ; un serveur X met une requte de gestion dun de ces types : requte direct requte indirect requte broadcast

Syntaxe utilisant des metacharacters : *.example.com , !cerise.example.com , etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

681 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Accs direct :
Requete XDMCP directe

Login:

xdm

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

682 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Accs indirect :

Requete XDMCP indirecte

xdm1 Login:

xdm2

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

683 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Accs broadcast :

xdm1
Requete XDMCP broadcast

xdm2

xdm3 Login:
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 684 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Possibilit davoir un chooser (slection de htes UNIX) : liste explicite dhtes :


ncd.example.com CHOOSER unix1.example.com unix2.example.com

liste par broadcast dhtes : ncd.example.com CHOOSER BROADCAST


Requete XDMCP indirecte

chooser

xdm

Liste predefinie ou broadcast

X
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 685 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

chier Xresources Dnit les ressources utiliss par la fentre de connexion.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

686 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

chiers GiveConsole , TakeConsole Ce sont des shells scripts. Ils dnissent les oprations systme faire la connexion et la dconnexion de lutilisateur. Par exemple : rendre lutilisateur propritaire de /dev/console rendre lutilisateur propritaire de /dev/fb rendre lutilisateur propritaire du priphrique de la carte son

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

687 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

chier Xsession Dnit la session de lutilisateur aprs sa connexion.

En gnral, cest un shell script qui appelle le script $HOME/.xsession de lutilisateur, qui charge les ressources de lutilisateur, etc.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

688 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Par exemple sur SUN SOLARIS :


#!/bin/sh # redirect errors to a file in users home directory if we can for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER" do if ( cp /dev/null "$errfile" 2> /dev/null ) then chmod 600 "$errfile" exec > "$errfile" 2>&1 break fi done case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; esac esac

Suite sur le transparent suivant. . .


c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 689 / 803

21 Systme de multifentrage : X

21.24 X Display Manager Protocol

Suite. . .

startup=$HOME/.xsession resources=$HOME/.Xresources if [ -f "$startup" ]; then exec "$startup" else if [ -f "$resources" ]; then xrdb -load "$resources" fi twm & exec xterm -geometry 80x24+10+10 -ls fi

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

690 / 803

21 Systme de multifentrage : X

21.25 Chapitre 21 Systme de multifentrage : Terminaux X / Clients lgers X / Autres terminaux X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Terminaux X Un terminal X est un poste de travail graphique : orant le systme graphique X sans systme dexploitation complexe grer et maintenir simple congurer

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

691 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Fonctionnement : boot du terminal requte DHCP ou BOOTP qui retourne ladresse IP et ladresse TFTP du serveur X tlcharger :
host droopy.example.com { hardware ethernet 00:80:96:04:71:63; fixed-address 192.168.1.69; filename "/hds/netOS/tX/prom/common/X.hds"; }

tlchargement par TFTP du serveur X du terminal et de sa conguration lancement du serveur X qui accroche le XDM dun serveur prcis par la conguration tlcharge Parfois, NFS est utilisable la place des tlchargements TFTP.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

692 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Aprs 2000, on constate : cot lev dun terminal X ; parfois plus cher quun poste PC Windows multimdia dsaection des constructeurs (HDS, NCD ont ferm boutique) manque de priphriques supports ; pas de oppy, pas de son, pas de USB. . .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

693 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Terminaux lgers Un vrai terminal X est maintenant trop cher. Un vrai terminal X est maintenant trop limitatif : pas de multimdia Solution : le client lger

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

694 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Le client lger : ni un PC, ni un terminal X : succdan darchitecture de PC x86 faible consommation lectrique pas de ventilateur silencieux mmoire ash (pas de disque dur local) systme dexploitation de type LINUX minimaliste ou Windows CE support des priphriques rcents (USB, wake-on-lan, . . .)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

695 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Autres terminaux : Sunray

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

696 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

697 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Caractristiques du SUNRAY : Pas de disque dur Pas dapplications locales Pas de conguration Pas de systme dexploitation Pas de barrette mmoire Pas de ventilateur Pas de paramtrage particulier Il est 10 fois plus lger quun PC et 12 fois moins volumineux Il peut mme sintgrer dans un cran cathodique 17 pouces ou un cran plat de 15 pouces...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

698 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Avantages : Instantan, constant et simple Gestion centralise Jamais besoin de mise jour Silencieux 16 millions de couleurs (24 bits) Pas de setup Donc, pas de d-setup Pas de modications de vos applications AUCUN tranfert de chier au boot

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

699 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Caractristiques hardware : CPU Sparc 1280 x 1024 @ 76 Hz frame buer 24 bits 10/100Mb Ethernet Accs a Solaris , X11, Java , ICA fonctionnalits multimdia Lecteur de carte puce E/S audio qualit CD Entre vido NTSC/PAL Support USB ( 4 ports ) mais limit en pratique. . .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

700 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Architecture rseau :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

701 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Architecture logicielle :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

702 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Architecture logicielle (2) :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

703 / 803

21 Systme de multifentrage : X

21.25 Terminaux X / Clients lgers X / Autres terminaux

Cohabitation avec Windows possible :

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

704 / 803

Chapitre 22

Langage SQL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

705 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.1 Introduction

22.1 Introduction

SQL Structured Query Language SQL permet : la dnition et la modication du schma de la base de donnes la manipulation des donnes linterrogation des donnes le contrle des accs la base

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

706 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.2 Dnition des exemples

22.2 Dnition des exemples

Voici les relations qui seront utilises dans ce cours :


Table AVION
Numav Capacite Type Entrepot

14 345

25 75

A400 B200 Table PILOTE

Garches Maubeuge

Matricule

Nom

Ville

Age

Salaire

1 2

Figue Lavande

Cannes Touquet

45 24

28004 11758

Table PASSAGER
Numtab Nomab

1 2

Nifance Tearice

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

707 / 803

22 Langage SQL

22.2 Dnition des exemples

Table VOL
Numvol Heure_depart Heure_arrivee Ville_depart Ville_arrivee

AL12 AF8

08-18 11-20

09-12 23-54

Paris Vaux

Lilles Rio

Table DEPART
Numvol Date_dep Numav Matricule

AL12 AL12

31-DEC-95 19-DEC-95

14 342

1 2

Table RESERVATION
Numab Numvol Date_sep

1 2

AL12 AL12

31-DEC-95 31-DEC-95

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

708 / 803

22 Langage SQL

Chapitre 22 Langage SQL


Cration dune relation

22.3 Description des donnes

22.3 Description des donnes

CREATE TABLE Pilote ( pl# Number(4), plnom char(20), adresse char(30) ) ;

Cration dune relation avec contraintes dintgrit


CREATE TABLE Pilote ( pl# Number(4) not null, plnom char(20), adresse char(30) ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

709 / 803

22 Langage SQL

22.3 Description des donnes

Cration dindex
CREATE UNIQUE INDEX IPL# ON Pilote(pl#);

Suppression dune relation


DROP TABLE Pilote ;

Modication du schma dune relation


ALTER TABLE Pilote ADD ( age number(2) ); ALTER TABLE Pilote MODIFY ( adresse char(50) ); ALTER TABLE Pilote MODIFY ( pl# not null );

Cration dune vue


CREATE VIEW VoldeParis AS ( SELECT vol#, va, hd, ha FROM Vol WHERE vd=Paris ) ;
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 710 / 803

22 Langage SQL

Chapitre 22 Langage SQL


Insertion des donnes

22.4 Manipulation des donnes

22.4 Manipulation des donnes

INSERT INTO Pilote values (1, Antoine, Annecy) ; INSERT INTO Pilote values (2, Arthur, Adge) ; INSERT INTO Pilote values (3, Jean, null) ;

Suppression des donnes


DELETE FROM Pilote WHERE pl# = 1 ;

Modication des donnes


UPDATE Pilote SET adresse = Aurillac WHERE pl#=2 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

711 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.5 Contrle des accs

22.5 Contrle des accs

Fin normale (validation) dune transaction


COMMIT ;

Linstruction commit rend eectifs les changements eectus sur la base. Ils deviennent visibles aux autres utilisateurs. Annulation dune transaction
ROLLBACK ;

Linstruction rollback dfait toutes les modications eectues sur la base depuis le dbut de la transaction.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

712 / 803

22 Langage SQL

Chapitre 22 Langage SQL


Principe

22.6 Projection, Restriction

22.6 Projection, Restriction

SELECT AVION.numav FROM AVION WHERE AVION.capacite > 200 ;

Projection seule :
SELECT AVION.numav FROM AVION ;

Restriction seule :
SELECT AVION.* FROM AVION WHERE AVION.capacite > 200 ;

Exercice 1 : Quel est lge du pilote de matricule 15 ? Exercice 2 : Quels sont les pilotes de cette compagnie arienne ? (leur matricule, leur nom, leur ville, leur ge et leur salaire)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 713 / 803

22 Langage SQL

22.6 Projection, Restriction

Tri Tri croissant : ORDER BY... ASC Tri dcroissant : ORDER BY... DESC
SELECT AVION.numav FROM AVION WHERE AVION.capacite > 200 ORDER BY AVION.numav DESC ;

Suppression des doubles


SELECT DISTINCT AVION.numav FROM AVION WHERE AVION.capacite > 200 ;

Omission du prxe
SELECT numav FROM AVION WHERE capacite > 200 ;
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 714 / 803

22 Langage SQL

22.6 Projection, Restriction

Emploi de variables
SELECT A.numav FROM AVION A WHERE A.capacite > 200 ;

Exercice 3 : Quels sont les types davions entreposs Tarascon, avec leur capacit, par ordre de capacits croissantes ? Prdicats dans le critre de slection Les prdicats disponibles : =, !=, >, <, >=, <= OR, AND, LIKE, NOT NULL, IN, NOT, BETWEEN X AND Y

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

715 / 803

22 Langage SQL

22.6 Projection, Restriction

SELECT numav FROM AVION WHERE capacite > 200 AND ( (ENTREPOT = Saint nom la Breteche) OR (ENTREPOT = Mantes la jolie) ) AND numav != 300 ; SELECT numav FROM AVION WHERE entrepot in (Saint nom la Breteche, Mantes la jolie) AND capacite BETWEEN 200 AND 210 AND TYPE LIKE B_EING%;

Exercice 4 : Quelles sont les villes ayant un nom commencant par L et o un pilote de moins de 20 ans gagne plus de 20000 F ? Exercice 5 : Quels sont les numros davions, avec leut entrept, ne rsidant pas Marolles-en-Hurepoix, ayant une capacit suprieure 200 ? (donns par ordre de numros dcroissants)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 716 / 803

22 Langage SQL

22.6 Projection, Restriction

Les fonctions Quelques fonctions disponibles : fonction lower(a) fonction soundex(a) fonction abs(a)
SELECT numav FROM AVION WHERE LOWER(ENTREPOT) = le vesiney; SELECT MATRICULE, NOM FROM PILOTE WHERE SOUNDEX(NOM) = SOUNDEX(SINTEXUPERI) ; SELECT UPPER(NOM) FROM PILOTE WHERE ADRESSE = Cordillre des Andes ;

fonction sqrt(a) fonction length(a) etc.

Exercice 6 : Quelles sont les villes do part un vol pour Ajaccio ? (donner les rsultats en majuscule)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 717 / 803

22 Langage SQL

22.6 Projection, Restriction

Les agrgats Quelques agrgats disponibles : agrgat avg() agrgat count() agrgat max() agrgat min() agrgat sum() agrgat stddev() agrgat variance() etc.

Exemple : Quel est le nombre davions ayant une capacit suprieure 200 ?
SELECT COUNT(NUMAV) FROM AVION WHERE CAPACITE > 200 ; SELECT COUNT(DISTINCT NUMAV) FROM AVION WHERE CAPACITE > 200 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

718 / 803

22 Langage SQL

22.6 Projection, Restriction

Exercice 7 : Quel est le nombre davions en service (ie dans la relation DEPART), le 19 dcembre 1995 ? Exercice 8 : Quelle est la capacit moyenne des avions entreposs Pogo Togo ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

719 / 803

22 Langage SQL

Chapitre 22 Langage SQL


Prdicat dexistence

22.7 Les requtes imbriques

22.7 Les requtes imbriques

SELECT FROM WHERE EXISTS ( SELECT FROM WHERE ) ;

Exemple : Quels sont les pilotes qui habitent dans une ville o nest bas aucun avion ?
SELECT PILOTE.NOM FROM PILOTE WHERE NOT EXISTS ( SELECT AVION.* FROM AVION WHERE AVION.ENTREPOT = PILOTE.VILLE ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

720 / 803

22 Langage SQL

22.7 Les requtes imbriques

Requte lintrieur du IN Exemple : Quels sont les noms des pilotes qui habitent dans une ville o sont localiss des avions de capacit suprieure 250 ?
SELECT PILOTE.NOM FROM PILOTE WHERE VILLE IN ( SELECT ENTREPOT FROM AVION WHERE CAPACITE > 250 ) ;

Exercice 9 : Exprimer la requte suivante avec un EXISTS : Quels sont les noms des pilotes qui habitent dans une ville o sont localiss des avions de capacit suprieure 250 ? Exercice 10 : Exprimer la requte suivante avec un IN : Quels sont les noms des passagers ayant rserv pour le 1er avril 1996 ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

721 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.8 La jointure

22.8 La jointure

2 mthodes principales : prdicative requtes imbriques Exemple : Quels sont les noms des pilotes qui assurent un vol le vendredi 13 octobre 1996 ? Prdicative :
SELECT PILOTE.NOM FROM PILOTE, DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.DAPE_SEP = 13-10-95;

Imbrication :
SELECT NOM FROM PILOTE WHERE MATRICULE IN ( SELECT DEPART.MATRICULE FROM MATRICULE WHERE DATE_SEP = 13-10-95 ) ;
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 722 / 803

22 Langage SQL

22.8 La jointure

Il y a de nombreuses autres faons dexprimer une jointure. Par exemple :


SELECT PILOTE.NOM FROM PILOTE WHERE EXISTS ( SELECT * FROM DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.DATE_DEP = 13-10-95 ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

723 / 803

22 Langage SQL

22.8 La jointure

Exercice 11 : Quels sont les noms des pilotes qui assurent un vol le vendredi 13 octobre 1995, sur un avion de capacit suprieure 250 ? de manire prdicative laide de requtes imbriques Exercice 12 : Quelles sont les paires de pilotes (matricules) habitant dans la mme ville ? Exercice 13 : Quels sont les noms des pilotes qui conduisent lavion de numro 666 ? Exercice 14 : Quels sont les noms des pilotes qui habitent dans la ville o est entrepos lavion 666 ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

724 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.9 Lunion

22.9 Lunion

Quels sont les pilotes qui conduisent lavion de numro 666 OU qui habitent dans la ville o est entrepos lavion 666 ?
SELECT NOM FROM PILOTE, DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.NUMAV = 666 UNION SELECT NOM FROM PILOTE, AVION WHERE PILOTE.VILLE = AVION.ENTREPOT AND AVION.NUMAV = 666 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

725 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.10 Lintersection

22.10 Lintersection

Quels sont les pilotes qui conduisent lavion de numro 666 ET qui habitent dans la ville o est entrepos lavion 666 ?
SELECT NOM FROM PILOTE, DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.NUMAV = 666 INTERSECT SELECT NOM FROM PILOTE, AVION WHERE PILOTE.VILLE = AVION.ENTREPOT AND AVION.NUMAV = 666 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

726 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.11 La dirence

22.11 La dirence

Quels sont les pilotes qui conduisent lavion de numro 666 SAUF ceux qui habitent dans la ville o est entrepos lavion 666 ?
SELECT NOM FROM PILOTE, DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.NUMAV = 666 MINUS SELECT NOM FROM PILOTE, AVION WHERE PILOTE.VILLE = AVION.ENTREPOT AND AVION.NUMAV = 666 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

727 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.12 La division

22.12 La division

Quels sont les pilotes qui conduisent tous les avions ? Quels sont les pilotes tels que, quel que soit lavion, ils le conduisent ? Quels sont les pilotes tels que, quel que soit lavion, il existe un dpart assur par ce pilote sur cet avion ? Quels sont les pilotes tels quil nexiste pas davion tel quil nexiste pas dpart de ce pilote sur cet avion ?
SELECT MATRICULE FROM PILOTE WHERE NOT EXISTS ( SELECT * FROM AVION WHERE NOT EXISTS ( SELECT * FROM DEPART WHERE DEPART.MATRICULE = PILOTE.MATRICULE AND DEPART.NUMAV = AVION.NUMAV ) ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

728 / 803

22 Langage SQL

22.12 La division

Exercice 15 : Quels sont les passagers qui ont rserv sur tous les vols ? Exercice 16 : Quel est le nombre de pilotes qui conduisent des avions en service ? (ie dans la relation DEPART)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

729 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.13 Group by

22.13 Group by

Loprateur GROUP BY partitionne la table. Exemple : Quel est le nombre de pilotes qui conduisent des avions en service, par avion ?
SELECT NUMAV, COUNT(DISTINCT DEPART.MATRICULE) FROM DEPART GROUP BY NUMAV ;

Exercice 17 : Quelle est la capacit moyenne des avions, par entrept et part type ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

730 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.14 Group by . . . HAVING

22.14 Group by . . . HAVING

Loprateur HAVING permet dintroduire une qualication sur les sous-tables issues du GROUP BY. Le HAVING est au GROUP BY ce que le WHERE est au FROM. Exemple : quels sont les avions qui assurent plus de 3 dpart ?
SELECT DEPART.NUMAV FROM DEPART GROUP BY NUMAV HAVING COUNT(*) > 3 ;

Exercice 18 : Quelles sont les villes o sont entreposs plus de 2 avions de type ICBM ?

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

731 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.15 Conclusion

22.15 Conclusion

SQL est un langage dinterrogation trs lisible, par tous les utilisateurs. SQL est un langage dans lequel il est relativement facile dcrire, pour un programmeur, condition de bien visualiser lordre dapplication des instructions :
1 2 3 4 5 6

From Where Group By Having Select Order By

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

732 / 803

22 Langage SQL

Chapitre 22 Langage SQL

22.16 Correction des exercices

22.16 Correction des exercices

Exercice 1 Quel est lge du pilote de matricule 15 ?


SELECT PILOTE.AGE FROM PILOTE WHERE MATRICULE = 15 ;

Exercice 2 Quels sont les pilotes de cette compagnie arienne (leur matricule, leur nom leur ville, leur ge et leur salaire)
SELECT * FROM PILOTE ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

733 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 3 Quels sont les types davions entreposs Tarascon, avec leur capacit, par ordre de capacit croissantes ?
SELECT DISTINCT TYPE, CAPACITE FROM AVION WHERE ENTREPOT = Tarascon ORDER BY CAPACITE ASC ;

Exercice 4 Quelles sont les villes ayant un nom commenant par L et o un pilote de moins de 20 ans gagne plus de 200000 F ?
SELECT VILLE FROM PILOTE WHERE AGE < 20 AND SALAIRE > 200000 AND VILLE LIKE L%;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

734 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 5 Quels sont les numros davions, avec leur entrept, ne rsidant pas Marolles-en-Hurepoix, ayant une capacit suprieure 200 ? (donns par ordre de numros dcroissants)
SELECT NUMAV, ENTREPOT FROM AVION WHERE ENTREPOT != Marolles-en-Hurepoix AND CAPACITE > 200 ORDER BY NUMAV DESC ;

Exercice 6 Quelles sont les villes do part un vol pour Ajaccio ? (donner les rsultats en majuscules)
SELECT UPPER(VILLE_DEPART) FROM VOL WHERE VILLE_ARRIVEE = Ajaccio;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

735 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 7 Quel est le nombre davions en service (ie dans la relation DEPART), le 19 dcembre 1995 ?
SELECT COUNT(DISTINCT NUMAV) FROM DEPART WHERE DATE_DEP = 19-12-95 ;

Exercice 8 Quelle est la capacit moyenne des avions entreposs Pogo Togo ?
SELECT AVG(ALL CAPACITE) FROM AVION WHERE AVION.ENTREPOT = Pogo Togo;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

736 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 9 Exprimer la requte suivante avec un EXISTS : Quels sont les noms des pilotes qui habitent dans une ville o sont localiss des avions de capacit suprieure 250 ?
SELECT PILOTE.NOM FROM PILOTE WHERE EXISTS ( SELECT * FROM AVION WHERE CAPACITE > 250 AND AVION.ENTREPOT = PILOTE.VILLE ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

737 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 10 Quels sont les noms des passagers ayant rserv pour le 1er avril 1996 ? (avec un IN)
SELECT PASSAGER.NOMAB FROM PASSAGER WHERE NUMAB IN ( SELECT RESERVATION.NUMAB FROM RESERVATION WHERE RESERVATION.DATE_DEP = 01-04-96 ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

738 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 11 a Quels sont les noms des pilotes qui assurent un vol le vendredi 13 octobre 1995, sur un avion de capacit suprieure 250 ? De manire prdicative :
SELECT PILOTE.NOM FROM PILOTE, DEPART, AVION WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.DATE_DEP = 13-10-95 AND DEPART.NUMAV = AVION.NUMAV AND AVION.CAPACITE > 250 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

739 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 11 b Quels sont les noms des pilotes qui assurent un vol le vendredi 13 octobre 1995, sur un avion de capacit suprieure 250 ? A laide de requtes imbriques :
SELECT NOM FROM PILOTE WHERE MATRICULE IN ( SELECT DEPART.MATRICULE FROM DEPART WHERE DATE_DEP = 13-10-95 AND NUMAV IN ( SELECT AVION.NUMAV FROM AVION WHERE CAPACITE > 250 ) ) ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

740 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 12 Quelles sont les paires de pilotes (matricules) habitant dans la mme ville ?
SELECT P1.MATRICULE, P2.MATRICULE FROM PILOTE P1, PILOTE P2 WHERE P1.VILLE = P2.VILLE AND P1.MATRICULE > P2.MATRICULE ;

(il sagit dune auto jointure) Exercice 13 Quels sont les noms des pilotes qui conduisent lavion de numro 666 ?
SELECT NOM FROM PILOTE, DEPART WHERE PILOTE.MATRICULE = DEPART.MATRICULE AND DEPART.NUMAV = 666 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

741 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 14 Quels sont les noms des pilotes qui habitent dans la ville o est entrepos lavion 666 ?
SELECT NOM FROM PILOTE, AVION WHERE PILOTE.VILLE = AVION.ENTREPOT AND AVION.NUMAV = 666;

Exercice 15 Quels sont les passagers qui ont rserv sur tous les vols ?
SELECT NUMAB FROM PASSAGER WHERE NOT EXISTS ( SELECT * FROM VOL WHERE NOT EXISTS ( SELECT * FROM RESERVATION WHERE RESERVATION.NUMAB = PASSAGER.NUMAB AND RESERVATION.NUMVOL = VOL.NUMVOL ) ) ;
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 742 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 16 Quel est le nombre de pilotes qui conduisent des avions en service ? (ie dans la relation DEPART)
SELECT COUNT(DISTINCT DEPART.MATRICULE) FROM DEPART ;

Exercice 17 Quelle est la capacit moyenne des avions, par entrept et par type ?
SELECT ENTREPOT, TYPE, AVG(CAPACITE) FROM AVION GROUP BY ENTREPOT, TYPE ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

743 / 803

22 Langage SQL

22.16 Correction des exercices

Exercice 18 Quelles sont les villes o sont entreposs plus de 2 avions de type ICBM ?
SELECT ENTREPOT FROM AVION WHERE TYPE = ICBM GROUP BY ENTREPOT HAVING COUNT(*) > 2 ;

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

744 / 803

Chapitre 23

Base de donnes ORACLE

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

745 / 803

23 Base de donnes ORACLE

Chapitre 23 Base de donnes ORACLE

23.1 Introduction

23.1 Introduction

Plusieurs moteurs de bases de donnes disponibles : Oracle Microsoft SQL Server Microsoft MSDE (version light et gratuite de SQL Server) IBM DB2 Sybase MYSQL POSTGRESQL ORACLE est la rfrence en bases de donnes. Version de ORACLE disponible au moment de lcriture de ce document : 10g Site ociel : http://www.oracle.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

746 / 803

23 Base de donnes ORACLE

23.1 Introduction

A noter quOracle diuse maintenant des versions gratuites 100% fonctionnelles pour LINUX, pour SOLARIS, pour WINDOWS.

A noter le livre Oracle 9i sous Linux par Gilles Briard, diteur Eyrolles, prix 50 euros, livr avec la distribution Oracle 9i complte pour Linux. (je nai pas lu le livre)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

747 / 803

23 Base de donnes ORACLE

Chapitre 23 Base de donnes ORACLE

23.2 Outil TOAD

23.2 Outil TOAD

Outil de mise au point des requtes SQL : TOAD

Voir http://www.toadsoft.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

748 / 803

Chapitre 24

Base de donnes MYSQL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

749 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.1 Introduction

24.1 Introduction

Plusieurs moteurs de bases de donnes disponibles : Oracle Microsoft SQL Server Microsoft MSDE (version light et gratuite de SQL Server) IBM DB2 Sybase MYSQL POSTGRESQL Version de MYSQL disponible au moment de lcriture de ce document : 5.0.22 (2006-08-03) Site ociel : http://www.mysql.com Changement de la licence de MYSQL dans la version 4. Mal reu par la communaut des dveloppeurs Par exemple dans PHP 5, il ny a plus de support dorigine pour MYSQL.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 750 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.2 Utilisateur UNIX ddi MYSQL : mysql

24.2 Utilisateur UNIX ddi MYSQL : mysql

Etape prliminaire linstallation mais indispensable.

Le bon fonctionnement de MYSQL ncessite la dnition dun utilisateur au sens UNIX qui sappelle mysql .

On crera aussi un groupe UNIX mysql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

751 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.3 Arborescence MYSQL

24.3 Arborescence MYSQL

Par dfaut, les sources de MYSQL sinstalleront dans /usr/local/mysql . On trouvera alors dans /usr/local/mysql : sous-rpertoire bin : binaires de lapplication sous-rpertoire include/mysql : headers de programmation C sous-rpertoire info : chiers de documentation sous-rpertoire lib/mysql : librairies partages sous-rpertoire libexec : binaires systme de lapplication sous-rpertoire share/mysql : chiers des textes des erreurs sous-rpertoire sql-bench : chiers de tests sous-rpertoire var : chiers de donnes et de log A noter le chier var/my.cnf qui dnit la conguration de MYSQL. Linstallation de MYSQL doit se complter de la cration des bases initiales de MYSQL.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 752 / 803

24 Base de donnes MYSQL

24.4 Chapitre 24 Base de donnes MYSQLCration des bases initiales MYSQL : mysql_install_db

24.4 Cration des bases initiales MYSQL : mysql_install_db

(en anglais MYSQL install databases) Syntaxe : mysql_install_db Par dfaut, cest le rpertoire var dans larborescence MYSQL (par dfaut donc /usr/local/mysql/var ). La cration des bases initiales se fera sous lidentit de lutilisateur mysql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

753 / 803

24 Base de donnes MYSQL

24.4 Cration des bases initiales MYSQL : mysql_install_db

% id uid=6000(mysql) gid=6000(mysql) % mysql_install_db Installing all prepared tables Fill help tables To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/local/mysql/bin/mysqladmin -u root password new-password /usr/local/mysql/bin/mysqladmin -u root -h linux.example.com password new-password See the manual for more instructions. You can start the MySQL daemon with: cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe & You can test the MySQL daemon with the benchmarks in the sql-bench directory: cd sql-bench ; perl run-all-tests Please report any problems with the /usr/local/mysql/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at https://order.mysql.com
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 754 / 803

24 Base de donnes MYSQL

24.4 Cration des bases initiales MYSQL : mysql_install_db

ATTENTION : Finaliser linstallation par la mise en place dun mot de passe pour le compte SQL de nom root :
% /usr/local/mysql/bin/mysqladmin -u root password XXXXXXXX

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

755 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.5 lancement/arrt de MYSQL

24.5 lancement/arrt de MYSQL

Lancer sous lidentit de mysql le programme bin/mysqld_safe sous lidentit UNIX mysql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

756 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.6 Cration de bases MYSQL (1) : mysqladmin

24.6 Cration de bases MYSQL (1) : mysqladmin

La cration de bases normales MYSQL se fait par la commande mysqladmin . Syntaxe : mysqladmin [options] create base Exemple 1 : cration dune base
% mysqladmin -u root -p create ars Enter password: XXXXXXX

Exemple 2 : suppression dune base


% mysqladmin -u root -p drop ars Enter password: XXXXXXX Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed. Do you really want to drop the base database [y/N] y Database "base" dropped
c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

757 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.7 Cration de bases MYSQL (2) : commandes SQL

24.7 Cration de bases MYSQL (2) : commandes SQL

% mysql -u root -pXXXXXXXX mysql> create database ars ; Query OK, 1 row affected (0.01 sec) mysql> show databases ; +----------+ | Database | +----------+ | ars | | mysql | | test | +----------+ 3 rows in set (0.01 sec)

mysql> drop database ars ; Query OK, 0 rows affected (0.02 sec) mysql> show databases ; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.01 sec)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

758 / 803

24 Base de donnes MYSQL

24.8 Chapitre 24 Base de donnes MYSQL Dialogue interactif avec MYSQL en mode CLI : mysql

24.8 Dialogue interactif avec MYSQL en mode CLI : mysql

La commande mysql permet dinteragir avec MYSQL et de lui demander dexcuter des commandes SQL. Cela se prsente comme un shell spcialis en SQL. Syntaxe : mysql [options] base De nombreuses commandes sont ensuite disponibles. Exemple 1 : connexion et dconnexion
% mysql -u root -pXXXXXXXX ars ... mysql> quit ; Bye

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

759 / 803

24 Base de donnes MYSQL

24.8 Dialogue interactif avec MYSQL en mode CLI : mysql

Exemple 2 : liste des bases


% mysql -u root -pXXXXXXXX ... mysql> show databases ; +----------+ | Database | +----------+ | ars | | mysql | | test | +----------+ 3 rows in set (0.01 sec) mysql> quit ; Bye

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

760 / 803

24 Base de donnes MYSQL

24.8 Dialogue interactif avec MYSQL en mode CLI : mysql

Exemple 3 : liste des tables systmes


% mysql -u root -pXXXXXXXX mysql ... mysql> show tables ; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 15 rows in set (0.00 sec)
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 761 / 803

24 Base de donnes MYSQL

24.8 Dialogue interactif avec MYSQL en mode CLI : mysql

Exemple 4 : liste des utilisateurs


% mysql -u root -pXXXXXXXX mysql ... mysql> select User from user order by User asc ; +------+ | User | +------+ | | | | | root | | root | +------+ 4 rows in set (0.03 sec)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

762 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.9 Notion dutilisateurs MYSQL

24.9 Notion dutilisateurs MYSQL

Une requte SQL est mise au nom dun utilisateur ctif interne la base SQL. Un utilisateur SQL nest pas ncessairement un vrai utilisateur UNIX. La notion dutilisateurs SQL est utilise dans le contrle des requtes SQL :
GRANT privilge[,privilge...] ON table | * | *.* | base.* TO utilisateur [IDENTIFIED BY [PASSWORD] PASSWORD] [, utilisateur [IDENTIFIED BY [PASSWORD] PASSWORD]] ...

o : les privilges sont parmi les mots clef SELECT , INSERT , UPDATE , DELETE , RULE , ALL
utilisateur dsignera un utilisateur bien prcis qui obtient les

privilges indiqus

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

763 / 803

24 Base de donnes MYSQL

24.9 Notion dutilisateurs MYSQL

Exemple : ajout de droits pour un utilisateur


% mysql -u root -pXXXXXXXX mysql ... mysql> grant all on ars.* to besancon@localhost identified by XXXXXXXX ; Query OK, 0 rows affected (0.02 sec)

Exemple : rvocation de droits pour un utilisateur


% mysql -u root -pXXXXXXXX mysql ... mysql> revoke all privileges on ars.* from besancon@localhost ; Query OK, 0 rows affected (0.02 sec)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

764 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.10 Fichier de conguration : my.cnf

24.10 Fichier de conguration : my.cnf

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

765 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.11 Sauvegarde : mysqldump

24.11 Sauvegarde : mysqldump

MYSQL fournit un outil pour sauvegarder au format SQL sous forme de commandes SQL une ou plusieurs bases. Pour sauver une base, utiliser la commande mysqldump . Syntaxe : mysqldump -u root -p [options] base Pour sauver toutes les bases, utiliser la commande mysqldump --all-databases . Syntaxe : mysqldumpall -u root -p [options] Attention : joindre la sauvegarde le chier my.cnf qui nest pas sauvegard par loutil SQL mysqldump.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

766 / 803

24 Base de donnes MYSQL

24.11 Sauvegarde : mysqldump

Exemple 1 : sauvegarde dune seule base


% mysqldump -u root -pXXXXXXXX base > /tmp/base.sql % ls -l /tmp/base.sql -rw-r--r-1 besancon adm

15054229 Oct 23 12:12 /tmp/base.sql

% head /tmp/base.sql -- MySQL dump 10.8 --- Host: localhost Database: ars -- ------------------------------------------------------- Server version 4.1.7-log ... DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

767 / 803

24 Base de donnes MYSQL

24.11 Sauvegarde : mysqldump

Exemple 2 : sauvegarde de toutes les bases


% mysqldump -u root -pXXXXXXXX --all-databases > /tmp/bases.sql % ls -l /tmp/bases.sql -rw-r--r-1 besancon adm

15064263 Oct 23 12:18 /tmp/bases.sql

% head /tmp/base.sql -- MySQL dump 10.8 --- Host: localhost Database: -- ------------------------------------------------------- Server version 4.1.7-log ... CREATE DATABASE /*!32312 IF NOT EXISTS*/ ars; USE ars; ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

768 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.12 Rechargement dune sauvegarde

24.12 Rechargement dune sauvegarde

Sil sagit de recharger la sauvegarde dune base, faire sous lidentit de lutilisateur mysql :
% mysql -u root -pXXXXXXXX < /tmp/base.sql

Sil sagit de recharger la sauvegarde de la totalit des bases, faire sous lidentit de lutilisateur mysql :
% mysql -u root -pXXXXXXXX < /tmp/bases.sql

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

769 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.13 Interface de gestion de MYSQL : phpmyadmin

24.13 Interface de gestion de MYSQL : phpmyadmin

A noter un interface WWW de conguration et dadministration : phpmyadmin

Cf http://www.phpmyadmin.net/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

770 / 803

24 Base de donnes MYSQL

Chapitre 24 Base de donnes MYSQL

24.14 Outil TOAD

24.14 Outil TOAD

Outil de mise au point des requtes SQL : TOAD

Voir http://www.toadsoft.com

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

771 / 803

Chapitre 25

Base de donnes POSTGRESQL

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

772 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.1 Introduction

25.1 Introduction

(On rencontre souvent le mot PGSQL pour POSTGRESQL)

Plusieurs moteurs de bases de donnes disponibles : Oracle Microsoft SQL Server Microsoft MSDE (version light et gratuite de SQL Server) IBM DB2 Sybase MYSQL POSTGRESQL Version de PGSQL disponible au moment de lcriture de ce document : 8.1.4 (2006-08-03) Site ociel : http://www.postgresql.org
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 773 / 803

25 Base de donnes POSTGRESQL

25.1 Introduction

Systme de rplication possible mais cela semble un produit jeune.

A completer...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

774 / 803

25 Base de donnes POSTGRESQL

25.2 Chapitre 25 Base de donnes POSTGRESQL Utilisateur UNIX ddi PGSQL : pgsql

25.2 Utilisateur UNIX ddi PGSQL : pgsql

Etape prliminaire linstallation mais indispensable. Le bon fonctionnement de PGSQL ncessite la dnition dun utilisateur au sens UNIX qui sappelle pgsql . On crera aussi un groupe UNIX pgsql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

775 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.3 Arborescence PGSQL

25.3 Arborescence PGSQL

Par dfaut, les sources de PGSQL sinstalleront dans /usr/local/pgsql. On trouvera alors dans /usr/local/pgsql : sous-rpertoire bin : rpertoire des binaires de lapplication sous-rpertoire data : rpertoire des chiers de conguration au premier niveau ; ce rpertoire devra tre la proprit de lutilisateur pgsql . sous-rpertoire data/base : rpertoire des chiers de stockage de la base de donnes sous-rpertoire doc : rpertoire de documentation (format HTML) sous-rpertoire include : rpertoire des headers de programmation C sous-rpertoire lib : rpertoire des librairies partages des binaires PGSQL sous-rpertoire man : rpertoire des pages de manuel sous-rpertoire share : rpertoire de chiers dexemples
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 776 / 803

25 Base de donnes POSTGRESQL

25.3 Arborescence PGSQL

A noter le chier data/pga_hba.conf qui dnit les accs autoriss.

Linstallation de PGSQL doit se complter de la cration des bases initiales de PGSQL.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

777 / 803

25 Base de donnes POSTGRESQL

25.4 Chapitre 25 Base de donnes POSTGRESQLCration des bases initiales PGSQL : initdb

25.4 Cration des bases initiales PGSQL : initdb

(en anglais initialize database) Syntaxe : initdb -D rpertoire-de-donnes Par dfaut, on prend le rpertoire data dans larborescence PGSQL (par dfaut donc /usr/local/pgsql/data ). La cration des bases initiales se fera sous lidentit de lutilisateur pgsql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

778 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.5 Lancement/arrt de PGSQL : pg_ctl

25.5 Lancement/arrt de PGSQL : pg_ctl

Deux processus sont en jeu :


postmaster : accepte les requtes de connexion postgres : excute les requtes SQL et renvoie les rsultats

Attention : les processus doivent tre lancs au nom de lutilisateur pgsql .

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

779 / 803

25 Base de donnes POSTGRESQL

25.5 Lancement/arrt de PGSQL : pg_ctl

Un script de lancement et darrt est fourni avec PGSQL : pg_ctl

Syntaxes : dmarrage de PGSQL : pg_ctl start :


# su pgsql -c "pg_ctl -D /chemin/vers/pgsql/data start" postmaster successfully started

arrt de PGSQL : pg_ctl stop :


# su pgsql -c "pg_ctl -D /chemin/vers/pgsql/data stop" waiting for postmaster to shut down......done postmaster successfully shut down

redmarrage de PGSQL : pg_ctl restart

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

780 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL 25.6 Cration de bases PGSQL : createdb


25.6 Cration de bases PGSQL : createdb

La cration de bases normales PGSQL se fait par la commande createdb . Syntaxe : createdb [options] base La cration de toute nouvelle base se fait par duplication de la base initiale de nom template1 . Exemple
% createdb -e test CREATE DATABASE base; CREATE DATABASE

<-- commande interne lance <-- affichage du rsultat de cette commande

Loption -e sert acher les commandes internes SQL en fait ralises par le programme.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

781 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL 25.7 Destruction de bases PGSQL : dropdb


25.7 Destruction de bases PGSQL : dropdb

La destruction de bases normales PGSQL se fait par la commande dropdb . Syntaxe : dropdb [options] base

Exemple
% dropdb -e test DROP DATABASE base; DROP DATABASE

<-- commande interne lance <-- affichage du rsultat de cette commande

Loption -e sert acher les commandes internes SQL en fait ralises par le programme.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

782 / 803

25 Base de donnes POSTGRESQL

25.8 Dialogue Chapitre 25 Base de donnes POSTGRESQL interactif avec PGSQL en mode CLI : psql

25.8 Dialogue interactif avec PGSQL en mode CLI : psql

La commande psql permet dinteragir avec PGSQL et de lui demander dexcuter des commandes SQL. Cela se prsente comme un shell spcialis en SQL. Syntaxe : psql base De nombreuses commandes sont ensuite disponibles. Exemple 1 : connexion et dconnexion
% psql template1 Welcome to psql 7.4.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit

template1=# \q

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

783 / 803

25 Base de donnes POSTGRESQL

25.8 Dialogue interactif avec PGSQL en mode CLI : psql

Exemple 2 : liste des bases


% psql template1 ... template1=# \l List of databases Name | Owner | Encoding -----------+----------+----------template0 | pgsql | SQL_ASCII template1 | pgsql | SQL_ASCII (2 rows)

template1=# select * from pg_database ; datname | datdba | encoding | datistemplate | datallowconn | datlastsysoid | datvacuumx -----------+--------+----------+---------------+--------------+---------------+----------template1 | 1 | 0 | t | t | 17140 | 4 template0 | 1 | 0 | t | f | 17140 | 4 (2 rows)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

784 / 803

25 Base de donnes POSTGRESQL

25.8 Dialogue interactif avec PGSQL en mode CLI : psql

Exemple 3 : liste des tables systmes


% psql template1 ... template1=# \dS List of relations Schema | Name | Type | Owner ------------+--------------------------+---------+------... pg_catalog | pg_database | table | pgsql ... pg_catalog | pg_user | view | pgsql ... (54 rows)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

785 / 803

25 Base de donnes POSTGRESQL

25.8 Dialogue interactif avec PGSQL en mode CLI : psql

Exemple 4 : liste des utilisateurs

% psql template1 ... template1=# select * from pg_user ; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfi ----------+----------+-------------+----------+-----------+----------+----------+--------pgsql | 1 | t | t | t | ******** | | apache | 1002 | f | f | f | ******** | | besancon | 1003 | t | t | t | ******** | | (3 rows)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

786 / 803

25 Base de donnes POSTGRESQL

25.9 Cration de bases PGSQL : commandes SQL Chapitre 25 Base de donnes POSTGRESQL

25.9 Cration de bases PGSQL : commandes SQL

% psql template1 Welcome to psql 7.4.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit

template1=# create database exemple ; CREATE DATABASE template1=# \l List of databases Name | Owner | Encoding -----------+----------+----------exemple | besancon | SQL_ASCII template0 | pgsql | SQL_ASCII template1 | pgsql | SQL_ASCII (3 rows)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

787 / 803

25 Base de donnes POSTGRESQL

25.10 Destruction de bases PGSQL : commandes SQL Chapitre 25 Base de donnes POSTGRESQL

25.10 Destruction de bases PGSQL : commandes SQL

% psql template1 Welcome to psql 7.4.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit

template1=# drop database exemple ; DROP DATABASE template1=# \l List of databases Name | Owner | Encoding -----------+----------+----------template0 | pgsql | SQL_ASCII template1 | pgsql | SQL_ASCII (2 rows)

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

788 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.11 Notion dutilisateurs PGSQL

25.11 Notion dutilisateurs PGSQL

Une requte SQL est mise au nom dun utilisateur ctif interne la base SQL. Un utilisateur SQL nest pas ncessairement un vrai utilisateur UNIX. La notion dutilisateurs SQL est utilise dans le contrle des requtes SQL :
GRANT privilge[,...] ON objet[,...] TO {PUBLIC | utilisateur} ;

o : les privilges sont parmi les mots clef SELECT , INSERT , UPDATE , DELETE , RULE , ALL un objet dsigne une table, une vue ou une squence
PUBLIC indiquera que tous les utilisateurs SQL peuvent obtenir les

privilges indiqus
utilisateur dsignera un utilisateur bien prcis qui obtient les

privilges indiqus
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 789 / 803

25 Base de donnes POSTGRESQL

25.11 Notion dutilisateurs PGSQL

Exemple
% psql base ... base=# \d List of relations Schema | Name | Type | Owner --------+---------+-------+---------public | exemple | table | besancon (1 row) t=# \z Access privileges for database "base" Schema | Table | Access privileges --------+---------+------------------public | exemple | (1 row) t=# grant all on exemple to public ; GRANT t=# \z Access privileges for database "base" Schema | Table | Access privileges --------+---------+-----------------------------------------------------public | exemple | {besancon=a*r*w*d*R*x*t*/besancon,=arwdRxt/besancon} (1 row) ...
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 790 / 803

25 Base de donnes POSTGRESQL

25.12 Gestion Chapitre 25 Base de donnes POSTGRESQL dutilisateurs PGSQL (1) : createuser

25.12 Gestion dutilisateurs PGSQL (1) : createuser

Pour crer un utilisateur SQL, employer la commande createuser et rpondre aux diverses questions poses.

Syntaxe : createuser [options] [utilisateur-SQL]


-a -d -A -D

Cration de nouveaux utilisateurs ou pas Cration de nouvelles databases ou pas

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

791 / 803

25 Base de donnes POSTGRESQL

25.12 Gestion dutilisateurs PGSQL (1) : createuser

Exemple 1 : cration toute interactive


# createuser Enter name of user to add: ars Shall the new user be allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n CREATE USER

Exemple 2 : cration non interactive


# createuser -D -A ars CREATE USER

Exemple 3 : cration non interactive et avec achage des instructions SQL internes
# createuser -D -A -e ars createuser -D -A -e ars SET autocommit TO on;CREATE USER "ars" NOCREATEDB NOCREATEUSER CREATE USER

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

792 / 803

25 Base de donnes POSTGRESQL

25.13 Gestion dutilisateurs PGSQL (2) : dropuser Chapitre 25 Base de donnes POSTGRESQL

25.13 Gestion dutilisateurs PGSQL (2) : dropuser

Pour supprimer un utilisateur SQL, employer la commande dropuser et rpondre aux diverses questions poses.

Syntaxe : dropuser [options] [utilisateur-SQL]

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

793 / 803

25 Base de donnes POSTGRESQL

25.13 Gestion dutilisateurs PGSQL (2) : dropuser

Exemple 1 : suppression toute interactive


# dropuser Enter name of user to drop: ars DROP USER

Exemple 2 : suppression non interactive


# dropuser ars DROP USER

Exemple 3 : suppression interactive avec garde fou et avec achage des instructions SQL internes
# dropuser -e -i ars User "ars" will be permanently removed. Are you sure? (y/n) y DROP USER ars; DROP USER

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

794 / 803

25 Base de donnes POSTGRESQL

25.14 Chapitre 25 Base de donnes POSTGRESQL Fichier de conguration : postgresql.conf

25.14 Fichier de conguration : postgresql.conf

Le chier data/postgresql.conf est cr aprs la phase du initdb . Il contiendra les paramtres de gestion mmoire pour PGSQL. Le paramtre tcpip_socket indiquera si PGSQL accepte les connexions rseau.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

795 / 803

25 Base de donnes POSTGRESQL

25.15 Chapitre 25 Base de donnes POSTGRESQL Fichier de conguration : pg_hba.conf

25.15 Fichier de conguration : pg_hba.conf

Le chier data/pg_hba.conf est cr aprs la phase du initdb . Ce chier sert rgler les contrles daccs. Syntaxe :
local host hostssl hostnossl host hostssl hostnossl DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE DATABASE USER USER USER USER USER USER USER METHOD [OPTION] IP-ADDRESS IP-MASK IP-ADDRESS IP-MASK IP-ADDRESS IP-MASK IP-ADDRESS/CIDR-MASK IP-ADDRESS/CIDR-MASK IP-ADDRESS/CIDR-MASK

METHOD METHOD METHOD METHOD METHOD METHOD

[OPTION] [OPTION] [OPTION] [OPTION] [OPTION] [OPTION]

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

796 / 803

25 Base de donnes POSTGRESQL

25.15 Fichier de conguration : pg_hba.conf

Syntaxe plus prcise :

The rst eld is the connection type : "local" is a Unix-domain socket, "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.

DATABASE can be "all", "sameuser", "samegroup", a database name (or a comma-separated list thereof), or a le name prexed with "@".

USER can be "all", an actual user name or a group name prexed with "+" or a list containing either.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

797 / 803

25 Base de donnes POSTGRESQL

25.15 Fichier de conguration : pg_hba.conf

IP-ADDRESS and IP-MASK specify the set of hosts the record matches. CIDR-MASK is an integer between 0 and 32 (IPv6) or 128(IPv6) inclusive, that species the number of signicant bits in the mask, so an IPv4 CIDR-MASK of 8 is equivalent to an IP-MASK of 255.0.0.0, and an IPv6 CIDR-MASK of 64 is equivalent to an IP-MASK of ffff:ffff:ffff:ffff::. METHOD can be "trust", "reject", "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam". Note that "password" uses clear-text passwords ; "md5" is preferred for encrypted passwords. OPTION is the ident map or the name of the PAM service.

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

798 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.16 Sauvegarde : pg_dump, pg_dumpall

25.16 Sauvegarde : pg_dump, pg_dumpall

PGSQL fournit un outil pour sauvegarder au format SQL sous forme de commandes SQL une ou plusieurs bases. Pour sauver une base, utiliser la commande pg_dump sous lidentit de lutilisateur pgsql . Syntaxe : pg_dump [options] base Pour sauver toutes les bases, utiliser la commande pg_dumpall sous lidentit de lutilisateur pgsql . Syntaxe : pg_dumpall [options] Attention : joindre la sauvegarde le chier pg_hba.conf qui contrle les accs et qui nest pas sauvegard par les 2 outil SQL pg_dump et pg_dumpall.
c T.Besanon (v12.0.364) Administration UNIX ARS 2009 2010 Partie 3 799 / 803

25 Base de donnes POSTGRESQL

25.16 Sauvegarde : pg_dump, pg_dumpall

Exemple 1 : sauvegarde dune seule base


% pg_dump base > /tmp/base.sql % ls -l /tmp/base.sql -rw-r--r-1 besancon adm % head /tmp/base.sql --- PostgreSQL database dump -SET client_encoding = SQL_ASCII; SET check_function_bodies = false; ...

15054229 Oct 23 12:12 /tmp/base.sql

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

800 / 803

25 Base de donnes POSTGRESQL

25.16 Sauvegarde : pg_dump, pg_dumpall

Exemple 2 : sauvegarde de toutes les bases


% pg_dumpall > /tmp/bases.sql % ls -l /tmp/bases.sql -rw-r--r-1 besancon adm 15064263 Oct 23 12:18 /tmp/bases.sql % head /tmp/base.sql --- PostgreSQL database cluster dump -\connect "template1" --- Users --

DELETE FROM pg_shadow WHERE usesysid <> (SELECT datdba FROM pg_database WHERE datname = t CREATE USER apache WITH SYSID 1002 NOCREATEDB NOCREATEUSER; CREATE USER besancon WITH SYSID 1003 CREATEDB CREATEUSER; ...

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

801 / 803

25 Base de donnes POSTGRESQL

Chapitre 25 Base de donnes POSTGRESQL

25.17 Rechargement dune sauvegarde

25.17 Rechargement dune sauvegarde

Sil sagit de recharger la sauvegarde dune base, faire sous lidentit de lutilisateur pgsql :
% dropdb base % psql < /tmp/base.sql

Sil sagit de recharger la sauvegarde de la totalit des bases, faire sous lidentit de lutilisateur pgsql :
% initdb -D /chemin/vers/pgsql/data/base % psql < /tmp/bases.sql

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

802 / 803

25 Base de donnes POSTGRESQL

25.18 Interface de gestion de PGSQL : phppgadmin Chapitre 25 Base de donnes POSTGRESQL

25.18 Interface de gestion de PGSQL : phppgadmin

A noter un interface WWW de conguration et dadministration : phppgadmin

Cf http://sourceforge.net/projects/phppgadmin/

c T.Besanon (v12.0.364)

Administration UNIX

ARS 2009 2010 Partie 3

803 / 803