· 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son...

218
Administration de systèmes UNIX Thierry Besançon Formation Permanente de l’Université de Paris 6 Formation ARS 2006 – 2007 Tôme 3 c T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 1 / 435 1 Gestion des comptes utilisateurs Chapitre 1 Gestion des comptes utilisateurs c T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 2 / 435

Transcript of  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son...

Page 1:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

Administration de systèmes UNIX

Thierry Besançon

Formation Permanente de l’Université de Paris 6

Formation ARS 2006 – 2007Tôme 3

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 1 / 435

1 Gestion des comptes utilisateurs

Chapitre 1

Gestion des comptes utilisateurs

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 2 / 435

Page 2:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.1 Introduction

Chapitre 1 • Gestion des comptes utilisateurs§1.1 • Introduction

� Humour :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 3 / 435

1 Gestion des comptes utilisateurs 1.1 Introduction

� Humour :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 4 / 435

Page 3:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.1 Introduction

Un compte utilisateur :définition de son identification pour le systèmedéfinition d’un environnement utilisateur

Opérations possibles :créationmodificationsdestruction

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 5 / 435

1 Gestion des comptes utilisateurs 1.2 Le fichier /etc/passwd

Chapitre 1 • Gestion des comptes utilisateurs§1.2 • Le fichier /etc/passwd

Le fichier « /etc/passwd » contient les informations sur lesutilisateurs.Sur tous les Unix !

Exemple :

root:U/oeCQo.cmnyc:0:1:Operator:/root:/bin/csh

nobody:*:65534:65534::/:

daemon:*:1:1::/:

sys:*:2:2::/:/bin/csh

bin:*:3:3::/bin:

besancon:vSHntkfqz8MEk:4332:1000::/users/adm/besancon:/bin/bash

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 6 / 435

Page 4:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

Chapitre 1 • Gestion des comptes utilisateurs§1.3 • Format du fichier /etc/passwd, <pwd.h>

Le format est composé de 7 champs séparés par le caractère « : » :

login : mot de passe : UID : GID : gecos : homedir : shell

Pour la définition exacte sur sa machine, se reporter à « <pwd.h> ».Par exemple sur Linux :

/* The passwd structure. */

struct passwd

{

char *pw_name; /* Username. */

char *pw_passwd; /* Password. */

__uid_t pw_uid; /* User ID. */

__gid_t pw_gid; /* Group ID. */

char *pw_gecos; /* Real name. */

char *pw_dir; /* Home directory. */

char *pw_shell; /* Shell program. */

};

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 7 / 435

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

champ 1 : loginNom sous lequel un ordinateur connait un individu.8 caractères en général. Pour plus, vérifierSur Linux, on peut avoir des noms plus longs que 8.Conseils : pas de majuscules, éviter les caractères accentués.Bref : lettres minuscules, chiffres et caractère « - »champ 2 : mot de passeMot de passe de l’utilisateur stocké sous forme chiffrée nondéchiffrable.Nécessité d’éduquer les utilisateurs pour choisir un bon mot de passe.Les logiciels de crack de mots de passe ne déchiffrent pas les mots depasse : ils font des essais à base de dictionnaires.« crack » : ftp://ftp.lip6.fr/pub/unix/security/crack5.0.tar.gz« john » : ftp://ftp.false.com/pub/security/john/john-1.6.tar.gz

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 8 / 435

Page 5:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

champ 3 : UIDIdentificateur numérique compris entre 0 et 32767 (short int a priori).Sur Linux, c’est un « __uid_t » (équivalent à un « unsigned int »)Cette valeur doit être unique au sein des utilisateurs.

champ 4 : GIDIdentificateur numérique compris entre 0 et 32767 (short int a priori).Sur Linux, c’est un « __gid_t » (équivalent à un « unsigned int »)Cette valeur doit être unique au sein des groupes.% ls -l

-rw-r--r-- 1 besancon software 5928 Sep 15 22:49 fichier1.txt

-rw-r--r-- 1 besancon software 940 Sep 15 22:27 fichier2.txt

% ls -ln

-rw-r--r-- 1 4332 1000 5544 Sep 15 22:47 fichier1.txt

-rw-r--r-- 1 4332 1000 940 Sep 15 22:27 fichier2.txt

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 9 / 435

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

champ 5 : gecosIdentité en clair de l’utilisateur.Les systèmes BSD y ont stocké d’autres informations comme lenuméro de téléphone, le numéro de bureau etc.La commande « chfn » (change finger) permet de modifier cechamps.

champ 6 : homedirRépertoire par défaut.

champ 7 : shellShell par défaut.Si le champ est vide, on prend « /bin/sh » par défaut.Le shell déterminera les fichiers de configuration à installer chezl’utilisateur.La commande « chsh » (change shell) permet de choisir parmi lesshells mentionnés dans « /etc/shells ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 10 / 435

Page 6:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

Quelques constatations :

les UIDs ne sont pas nécessairement consécutifs ; il peut y avoir destrous dans la numérotation

une ligne dans « /etc/passwd » n’implique pas que le homedirectoryexiste ; on peut avoir un utilisateur défini sans que son homedir existe

des fichiers peuvent appartenir à un UID qui n’est pas utilisé dans« /etc/passwd »

on peut avoir plusieurs utilisateurs définis ayant tous le même UID ;au niveau de la commande « ps », c’est le premier nom de login dufichier qui apparaitra.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 11 / 435

1 Gestion des comptes utilisateurs 1.3 Format du fichier /etc/passwd, <pwd.h>

Quelques conseils :

Il faut toujours trier les lignes de « /etc/passwd » selon l’ordrenumérique des UID :

# sort -t : +2n -3 /etc/passwd

Il ne faut jamais laisser de comptes sans mot de passe.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 12 / 435

Page 7:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.4 Chiffrement des mots de passe : crypt()

Chapitre 1 • Gestion des comptes utilisateurs§1.4 • Chiffrement des mots de passe : crypt()

Les mots de passe sont stockés sur une forme chiffrée,mathématiquement non réversible.

Algorithme de chiffrement : DES, standard fédéral de l’administrationaméricaine

Ce chiffrement non réversible est appelé hash (le mot de passe chiffré estdit hashed).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 13 / 435

1 Gestion des comptes utilisateurs 1.4 Chiffrement des mots de passe : crypt()

Le chiffrement DES est disponible sur Unix via la fonction C « crypt() » :

premier paramètre : la chaine à chiffrersecond paramètre : la graine (dite salt en anglais) composée de 2caractèresrésultat renvoyé : une chaine dont les 2 premiers caractèresreprennent le salt

Ainsi « crypt("QWERTY", "NU") » renvoie « NUMVcLVD/dM12 »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 14 / 435

Page 8:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.4 Chiffrement des mots de passe : crypt()

Exemple de programme C complet :

#include<stdio.h>

main(int argc, char *argv[])

{

printf("=> %s\n", crypt(getpass("Chaine a chiffrer :"), argv[1]));

}

Compiler sur LINUX par :

% gcc crypt.c -o crypt.exe -lcrypt

Une fois compilé, le programme montre :

% ./textCRYPT NUChaine a chiffrer : XXXXXXXX <-- QWERTY pour l’exemple

=> NUMVcLVD/dM12

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 15 / 435

1 Gestion des comptes utilisateurs 1.5 Cycle du mot de passe et commande passwd

Chapitre 1 • Gestion des comptes utilisateurs§1.5 • Cycle du mot de passe et commande passwd

La commande pour changer de mot de passe d’un utilisateur dans« /etc/passwd » est « passwd ».

Elle appelle « crypt() » avec un nouveau salt tiré au hasard et avec lenouveau mot de passe entré.

passwd crypt()

randomseedor "salt"

serveur/etc/passwd(/etc/shadow)

hashedpassword

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 16 / 435

Page 9:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.5 Cycle du mot de passe et commande passwd

� Comportement lorsqu’un utilisateur change un mot de passe

% passwd

passwd: Changing password for besancon

Enter login password: XXXXXXXX

New password: ZZZZZZZZ

Re-enter new password: ZZZZZZZZ

passwd (SYSTEM): passwd successfully changed for besancon

On tache de vérifier l’identité de la personne en demandant le mot depasse initial.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 17 / 435

1 Gestion des comptes utilisateurs 1.5 Cycle du mot de passe et commande passwd

� Comportement lorsque l’administrateur root change un mot de passe

# passwd besancon

New password: XXXXXXXX

Re-enter new password: XXXXXXXX

passwd (SYSTEM): passwd successfully changed for besancon

Root n’a jamais besoin de connaître le mot de passe d’un utilisateur pouren changer le mot de passe.

Lorsqu’un utilisateur a perdu son mot de passe :root ne peut pas déchiffrer la chaine chiffrée dans « /etc/passwd »root peut changer le mot de passe par « passwd groslourd »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 18 / 435

Page 10:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.5 Cycle du mot de passe et commande passwd

La commande « passwd » peut comporter plus ou moins de règles devérification de la sûreté du mot de passe :

% passwd besancon

Enter login password: XXXXXXXX

New password: XXXXXXXX <-- on entre exprès le même mot de passe

passwd(SYSTEM): Passwords must differ by at least 3 positions

New password: YYYYYYYY <-- mélange de lettres minuscules et majuscules

passwd(SYSTEM): The first 6 characters of the password

must contain at least two alphabetic characters and at least

one numeric or special character.

passwd(SYSTEM): Too many failures - try later.

Permission denied

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 19 / 435

1 Gestion des comptes utilisateurs 1.6 Cycle du mot de passe et commande login

Chapitre 1 • Gestion des comptes utilisateurs§1.6 • Cycle du mot de passe et commande login

La commande « login » est lancée par le système pour se connecter.Elle va devoir vérifier si les mots de passe entré et stocké sont identiques,sachant que le mot de passe est stocké sous une forme hashée.

Si le mot de passe hashé est « saeLydiaFuF5o », on réalisera donc aulogin la comparaison C :

strcmp("saeLydiaFuF5o", crypt("XXXXXXXX", "sa"))

avec « XXXXXXXX » le mot de passe en clair.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 20 / 435

Page 11:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.6 Cycle du mot de passe et commande login

login

serveur/etc/passwd(ou /etc/shadow)

1. L’utilisateur entrelogin et mot de passe

4. crypt()des donnéesentrées

2. On recupère lastructure pwd del’utilisateur

3. On extraitle salt

5. On extraitle passwd

6. Comparaisonhash stocké ethash calculé

7a. comparaison OK :connexion acceptée

7b. comparaison fausse :connexion refusée

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 21 / 435

1 Gestion des comptes utilisateurs 1.7 Shadow passwords, /etc/shadow, <shadow.h>

Chapitre 1 • Gestion des comptes utilisateurs§1.7 • Shadow passwords, /etc/shadow, <shadow.h>

L’idée part de la constatation que, si beaucoup de programmes accèdentau contenu de « /etc/passwd » pour les informations concernant UID,homedir, shell, peu en revanche l’accèdent pour le mot de passe.

On supprime donc le mot de passe chiffré du fichier« /etc/passwd » pour le stocker dans un fichier à accès plusrestreint.

L’ancien mot de passe chiffré est remplacé par exemple par uncaractère comme « * » ou « x » pour conserver la structure dufichier « /etc/passwd » initial de façon à être compatible avecd’anciennes applications.

Plusieurs formats de fichiers shadow sont utilisés par les constructeurs quine se sont pas mis d’accord.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 22 / 435

Page 12:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.7 Shadow passwords, /etc/shadow, <shadow.h>

� Exemple sur LINUX

-rw-r--r-- root wheel 10557 Sep 15 22:51 /etc/passwd

-rw------- root wheel 13318 Sep 15 22:50 /etc/shadow

# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

...

# cat /etc/shadow

root:fUQZjKzpwayTc:11237:0:99999:7:-1:-1:134540316

bin:*:11237:0:99999:7:::

daemon:*:11237:0:99999:7:::

adm:*:11237:0:99999:7:::

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 23 / 435

1 Gestion des comptes utilisateurs 1.7 Shadow passwords, /etc/shadow, <shadow.h>

� Exemple sur SOLARIS

-rw-r--r-- 1 root sys 1032 Jul 11 23:21 /etc/passwd

-rw------- 1 root sys 536 Jul 11 23:14 /etc/shadow

# cat /etc/passwd

root:x:0:1:Super-User:/:/sbin/sh

daemon:x:1:1::/:

bin:x:2:2::/usr/bin:

...

boumaiza:x:1001:1000:Lyazid Boumaiza:/net/serveur/home/ars/boumaiza:/bin/tcsh

corsini:x:1002:1000:Franck Corsini:/net/serveur/home/ars/corsini:/bin/tcsh

...

# cat /etc/shadow

root:y8fPbbq414TBU:6445::::::

daemon:NP:6445::::::

bin:NP:6445::::::

...

boumaiza:aalJCbuvX/xEM:11255::::::

corsini:5Ag56r/M.KD9A:10912::::::

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 24 / 435

Page 13:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.8 Le fichier /etc/group, <grp.h>

Chapitre 1 • Gestion des comptes utilisateurs§1.8 • Le fichier /etc/group, <grp.h>

Le format est composé de 4 champs séparés par le caractère « : » :

group : mot de passe : GID : membres

Pour la définition exacte sur sa machine, se reporter à « <grp.h> ».

Par exemple, sur une machine Linux :

/* The group structure. */

struct group

{

char *gr_name; /* Group name. */

char *gr_passwd; /* Password. */

__gid_t gr_gid; /* Group ID. */

char **gr_mem; /* Member list. */

};

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 25 / 435

1 Gestion des comptes utilisateurs 1.8 Le fichier /etc/group, <grp.h>

champ 1 : groupNom du groupe apparaissant par « ls -lg ».

champ 2 : mot de passeMot de passe du groupe.

champ 3 : GIDIdentificateur numérique compris entre 0 et 32767.Sur Linux, c’est un « __gid_t » (équivalent à un « unsigned int »)Cette valeur doit être unique au sein des groupes.

champ 4 : membresListe de noms de login séparés par des virgules.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 26 / 435

Page 14:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs1.9 Création d’un nouveau compte : useradd, adduser,

groupadd, addgroup

Chapitre 1 • Gestion des comptes utilisateurs§1.9 • Création d’un nouveau compte : useradd, adduser, groupadd, addgroup

Action mécanique automatisable.

Selon le système, elle est déjà automatisée sous la forme d’une commanded’administration :

Unix ProgrammeAIX smit

HP-UX sam

Solaris admintool

FreeBSD adduser

FreeBSD useradd

LINUX adduser et useradd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 27 / 435

1 Gestion des comptes utilisateurs1.9 Création d’un nouveau compte : useradd, adduser,

groupadd, addgroup

Exemple d’interface graphique de création de compte :

Problème : comment créer 3000 comptes en une après-midi avec cetteinterface ?Problème : comment personnaliser cette interface ?

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 28 / 435

Page 15:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs1.9 Création d’un nouveau compte : useradd, adduser,

groupadd, addgroup

Actions schématiques à accomplir lors de la création d’un compte :

1 choix de l’UID et du GID en fonction du service d’appartenance de lapersonne

2 choix du homedir (en fonction du service ?)

3 choix du nom de login selon la politique locale

4 choix du shell de login

5 incorporation de ces informations dans la base de données descomptes ( « /etc/passwd » ou NIS selon la politique du service) ;« * » comme mot de passe par défaut

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 29 / 435

1 Gestion des comptes utilisateurs1.9 Création d’un nouveau compte : useradd, adduser,

groupadd, addgroup

6 ajout de l’utilisateur dans « /etc/group »

7 création du homedir

8 copie des fichiers de configuration de l’environnement (« .profile »,« .cshrc », « .xsession » etc.)

9 attribuer le homedir créé à l’utilisateur par « chown » + « chgrp »

10 initialisation du mot de passe si l’utilisateur est présent

L’étape délicate dans une automatisation de création de compte est biensûr l’incorporation d’une nouvelle ligne dans la base de données (accèsconcurrents, ne pas perdre le contenu du fichier, . . .).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 30 / 435

Page 16:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.10 Compte root

Chapitre 1 • Gestion des comptes utilisateurs§1.10 • Compte root

« root » est le nom du login Unix de l’administrateur.

NE PAS ESSAYER DE LE CHANGER ! : codé profondément dans tousles programmes Unix

Le shell de « root » a traditionnellement pour prompt « # » (voir variabled’environnement « PS1 »).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 31 / 435

1 Gestion des comptes utilisateurs 1.10 Compte root

Déconseillé de travailler en permanence sous le nom de « root ».

Cf fond d’écran de « root » sous LINUX Mandrake :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 32 / 435

Page 17:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.10 Compte root

UID de « root » == 0.

Quelques règles :1 L’utilisateur « root » n’a pas « . » dans son « PATH » (précédence

de la commande locale par rapport à la commande système).

2 L’utilisateur « root » a 022 pour « umask » (accessibilitéindispensable de certains fichiers par les utilisateurs normaux).

3 Eviter d’avoir « / » comme homedir pour « root » (pollution de« / » par les fichiers de configuration en « .totorc »).

Sur LINUX/FREEBSD, le répertoire de root est « /root »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 33 / 435

1 Gestion des comptes utilisateurs 1.11 Comptes fictifs système

Chapitre 1 • Gestion des comptes utilisateurs§1.11 • Comptes fictifs système

Exemple de Linux :root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

lp:x:4:7:lp:/var/spool/lpd:

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:

news:x:9:13:news:/var/spool/news:

uucp:x:10:14:uucp:/var/spool/uucp:

operator:x:11:0:operator:/root:

games:x:12:100:games:/usr/games:

gopher:x:13:30:gopher:/usr/lib/gopher-data:

ftp:x:14:50:FTP User:/home/ftp:

nobody:x:99:99:Nobody:/:

xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 34 / 435

Page 18:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.11 Comptes fictifs système

Ces utilisateurs fictifs sont essentiellement des propriétaires de fichiers.

Par exemple « bin » est le propriétaire de la plupart des exécutables :

-rwxr-xr-x 1 bin bin 40960 Aug 9 1994 stty*-rws--x--x 1 root bin 24576 Aug 9 1994 su*-rwxr-xr-x 1 bin bin 24576 Aug 9 1994 sum*

A noter l’emploi du bit s sur la commande « su ».⇒ son exécution se fait au nom du propriétaire du fichier, ici « root ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 35 / 435

1 Gestion des comptes utilisateurs 1.12 Commande id

Chapitre 1 • Gestion des comptes utilisateurs§1.12 • Commande id

(en anglais identity)La commande « id » renvoie l’UID et les GID primaire et secondaires del’utilisateur.

% id

uid=1000(besancon) gid=4(adm) groups=4(adm),0(root),3(sys),

12(daemon)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 36 / 435

Page 19:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.13 Commande groups

Chapitre 1 • Gestion des comptes utilisateurs§1.13 • Commande groups

(en anglais groups)Syntaxe : « groups [user] »

La commande « groups » renvoie les GID d’appartenance de l’utilisateur.

% groups

adm root sys daemon www

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 37 / 435

1 Gestion des comptes utilisateurs 1.14 Commande su

Chapitre 1 • Gestion des comptes utilisateurs§1.14 • Commande su

(en anglais swap user)Syntaxe : « su [-] utilisateur2 »

La commande « su » permet de changer d’identité.

La commande réussira après la demande du mot de passe de l’utilisateurdestination.

Pour hériter complètement de l’identité, utiliser l’option « - » de lacommande « su ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 38 / 435

Page 20:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.14 Commande su

� Quand on se trompe sur le mot de passe

% id

uid=4332(besancon) gid=1000(software) groups=1000(software)

% su besancon

Password: XXXXXXXX

Sorry

� Quand on donne le bon mot de passe

% id

uid=4332(besancon) gid=1000(software) groups=1000(software)

% su asterix

Password: XXXXXXXX

% id

uid=8520(asterix) gid=8506(gaulois) groups=8506(gaulois)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 39 / 435

1 Gestion des comptes utilisateurs 1.14 Commande su

� Exemple de transmission de données parasites de la première identité àla seconde identité

% id

uid=4332(besancon) gid=1000(software) groups=1000(software)

% pwd

/users/adm/besancon

% su asterix

Password: XXXXXXXX

% id

uid=8520(asterix) gid=8506(gaulois) groups=8506(gaulois)

% pwd

/users/adm/besancon

% printenv

...

MAIL=/var/mail/besancon

...

Certaines variables d’environnement font encore référence à l’identité dedépart !

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 40 / 435

Page 21:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.14 Commande su

� Exemple de non transmission de données parasites de la premièreidentité à la seconde identité

% id

uid=4332(besancon) gid=1000(software) groups=1000(software)

% pwd

/users/adm/besancon

% su - asterix

Password: XXXXXXXX

% id

uid=8520(asterix) gid=8506(gaulois) groups=8506(gaulois)

% pwd

/users/stat/asterix

% printenv

...

MAIL=/var/mail/asterix

...

Les variables d’environnement font référence maintenant au secondutilisateur exclusivement.

Moralité : il faut toujours faire « su - utilisateur2 »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 41 / 435

1 Gestion des comptes utilisateurs 1.14 Commande su

� Pour devenir root

Pour devenir root, la commande est :

% su - root

ce qui peut se simplifier encore en :

% su -

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 42 / 435

Page 22:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.15 Commande su (2)

Chapitre 1 • Gestion des comptes utilisateurs§1.15 • Commande su (2)

Problèmatiques :lancer au boot une commande au nom d’un autre utilisateur (serveurweb, base de données, etc.)lancer via la crontab de root une commande au nom d’un autreutilisateur (serveur web, base de données, etc.)

Solution :

% su pierre -c commande

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 43 / 435

1 Gestion des comptes utilisateurs 1.16 Commande sudo

Chapitre 1 • Gestion des comptes utilisateurs§1.16 • Commande sudo

Problématiques :déléguer les priviléges de l’administrateur à des personnes mais pourquelques opérations seulementimpossible d’utiliser les bits setuid et setgid avec des shell scripts

Une solution : commande « sudo », http://www.sudo.wshttp://www.courtesan.com/sudo/

A completer...

Fourni de base sur MacOS X.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 44 / 435

Page 23:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.16 Commande sudo

� Principe

Un fichier de configuration indique qui a le droit de lancer quoi avec lesprivilèges de l’administrateur.

Exemple :

XXXXX

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 45 / 435

1 Gestion des comptes utilisateurs 1.16 Commande sudo

Pour permettre à l’utilisateur « apache » de lancer le script« update.sh », faire :

# chmod u+s update.sh

# chown root update.sh

% id

apache

% ./update.sh

-> id apache

A completer...Exemple :

XXXXX

% id

apache

% sudo

XXXXX

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 46 / 435

Page 24:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.16 Commande sudo

Sur MacOS X, pas de commande « su ».

Uniquement la commande « su » : Exemple :

# find / -name su -print

<-- rien

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 47 / 435

1 Gestion des comptes utilisateurs 1.17 Changer le propriétaire d’objets : chown

Chapitre 1 • Gestion des comptes utilisateurs§1.17 • Changer le propriétaire d’objets : chown

(en anglais change owner)Syntaxe : « chown [-Rh] utilisateur objets »

Commande réservée à l’administrateur car sinon plus aucuneprotection de la machine :

% ls -l

-rw-r--r-- 1 besancon adm 49 Nov 23 21:05 cerise

% chown root cerise

chown: cerise: Not owner

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 48 / 435

Page 25:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.17 Changer le propriétaire d’objets : chown

Très important :

% ls -l

-rw-r--r-- 1 besancon adm 49 Nov 23 20:54 cerise

lrwxrwxrwx 1 besancon adm 6 Nov 23 20:54 fruit -> cerise

% su -

Password: XXXXXXXX

# chown mysql fruit

# ls -l

total 4

-rw-r--r-- 1 mysql adm 49 Nov 23 20:54 cerise

lrwxrwxrwx 1 besancon adm 6 Nov 23 20:54 fruit -> cerise

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 49 / 435

1 Gestion des comptes utilisateurs 1.17 Changer le propriétaire d’objets : chown

Options utiles :option « -R » : changement récursif dans une arborescenceoption « -h » : si l’objet est un lien symbolique, alors l’option « -h »change le propriétaire du lien et non pas le propriétaire de l’objetpointé par le lien :

% ls -l

-rw-r--r-- 1 besancon adm 49 Nov 23 20:54 cerise

lrwxrwxrwx 1 besancon adm 6 Nov 23 20:54 fruit -> cerise

% su -

Password: XXXXXXXX

# chown -h mysql fruit

# ls -l

total 4

-rw-r--r-- 1 besancon adm 49 Nov 23 20:54 cerise

lrwxrwxrwx 1 mysql adm 6 Nov 23 20:54 fruit -> cerise

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 50 / 435

Page 26:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.18 Changer le groupe propriétaire d’objets : chgrp

Chapitre 1 • Gestion des comptes utilisateurs§1.18 • Changer le groupe propriétaire d’objets : chgrp

(en anglais change group)Syntaxe : « chgrp [-Rh] utilisateur objets »

Fonctionnement identique à celui de « chown ».

A noter la possibilité de combiner un « chown » avec un « chgrp » :syntaxe 1 : « chgrp [-Rh] utilisateur:groupe objets »syntaxe 2 : « chgrp [-Rh] utilisateur.groupe objets »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 51 / 435

1 Gestion des comptes utilisateurs 1.19 Deviner des mots de passe

Chapitre 1 • Gestion des comptes utilisateurs§1.19 • Deviner des mots de passe

L’algorithme DES sert à hasher les mots de passe.

Si l’on a accès au contenu de « /etc/shadow » (ou « /etc/passwd » enmode non protégé), on peut utiliser certains outils pour vérifier lacomplexité des mots de passe en appliquant des dictionnaires et des règlesd’applications :

John the ripper, disponible à« http://www.openwall.com/john/ »Crack, disponible à« http://www.users.dircon.co.uk/~crypto/ »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 52 / 435

Page 27:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.20 (Windows : : net user)

Chapitre 1 • Gestion des comptes utilisateurs§1.20 • (Windows : : net user)

Commande de base pour détruire des comptes :« net user jean /del »

Commande de base pour créer des comptes :« net user jean mot-de-passe /add [options] »

Les options permettent de définir les caractéristiques du compte :

Option Signification Illustration/ACTIVE:{YES | NO} compte actif ou désactivé lettre F/COMMENT:"texte" champ « description » du compte lettre B/EXPIRES:{date | NEVER} expiration ou pas du compte lettre E/FULLNAME:"nom" champ « nom détaillé » du compte lettre A/PASSWORDCHG:{YES | NO} l’utilisateur peut-il changer son mot de passe ? lettre D/PASSWORDREQ:{YES | NO} un mot de passe doit-il être défini ?/TIMES:{horaires | ALL} horaire de fonctionnement du compte/USERCOMMENT:"texte" commentaire du compte

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 53 / 435

1 Gestion des comptes utilisateurs 1.20 (Windows : : net user)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 54 / 435

Page 28:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

Chapitre 1 • Gestion des comptes utilisateurs§1.21 • (Windows : : cusrmgr.exe)

(en anglais console user manager)

Dans le Resource Kit Windows 2000, on trouve la commande« cusrmgr.exe » qui permet de changer les attributs d’un compte.

Forme générale de la commande : « cusrmgr.exe -u jean option »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 55 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

net user jean sesame /add

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 56 / 435

Page 29:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

C:\Program Files\Resource Kit\cusrmgr.exe" -u jean -P "sesame"

Le réglage demandé ici est non visible dans la fenêtre. . .

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 57 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

-c "Service Informatique"

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 58 / 435

Page 30:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

-f "Jean DUPONT"

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 59 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

+s MustChangePassword

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 60 / 435

Page 31:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

L’option de changer le mot de passe se traduit ainsi au moment de laconnexion initiale :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 61 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

+s CanNotChangePassword

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 62 / 435

Page 32:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

+s PasswordNeverExpires

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 63 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

+s AccountDisabled

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 64 / 435

Page 33:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

L’option de compte expiré se traduit ainsi au moment de la connexion :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 65 / 435

1 Gestion des comptes utilisateurs 1.21 (Windows : : cusrmgr.exe)

c:\Program Files\Resource Kit\cusrmgr.exe" -u jean

+s AccountLockout

Non visible. . .

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 66 / 435

Page 34:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.22 (Windows : : lusrmgr.msc)

Chapitre 1 • Gestion des comptes utilisateurs§1.22 • (Windows : : lusrmgr.msc)

(en anglais local user manager)Gestion graphique des utilisateurs : commande de base « lusrmgr.msc »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 67 / 435

1 Gestion des comptes utilisateurs 1.22 (Windows : : lusrmgr.msc)

On peut bien sûr voir les propriétés d’un compte :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 68 / 435

Page 35:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.23 (Windows : : secpol.msc)

Chapitre 1 • Gestion des comptes utilisateurs§1.23 • (Windows : : secpol.msc)

Via l’outil de politique de sécurité « secpol.msc, on peut configurer lalongueur minimale des mots de passe :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 69 / 435

1 Gestion des comptes utilisateurs 1.23 (Windows : : secpol.msc)

Via l’outil de politique de sécurité « secpol.msc, on peut configurer lacomplexité des mots de passe :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 70 / 435

Page 36:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.24 Interdiction des logins

Chapitre 1 • Gestion des comptes utilisateurs§1.24 • Interdiction des logins

Sur FreeBSD :login shell « /sbin/nologin »fichier « /var/run/nologin » qui sera affiché par« /sbin/nologin »

Sur LINUX :fichier « /etc/nologin » qui sera affiché par « /sbin/login »

# cat /etc/nologin

Exemple pour ARS : Interdiction de se connecter.

% ssh redhat9.example.com

Exemple pour ARS : Interdiction de se connecter.

Connection to redhat9.example.com closed.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 71 / 435

1 Gestion des comptes utilisateurs 1.25 (Windows : : Interdiction des logins)

Chapitre 1 • Gestion des comptes utilisateurs§1.25 • (Windows : : Interdiction des logins)

Commande :

interdiction des logins : « change logon /disable »autorisation des logins : « change logon /enable »pour savoir : « change login /query »

Pas de possibilité d’afficher un message d’explications.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 72 / 435

Page 37:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

1 Gestion des comptes utilisateurs 1.26 (Windows : : perte du mot de passe de l’administrateur)

Chapitre 1 • Gestion des comptes utilisateurs§1.26 • (Windows : : perte du mot de passe de l’administrateur)

En cas de perte du mot de passe de l’administrateur sur un Windows 2000ou plus récent, solution : booter sur un CDROM LINUX avec un utilitairede modification de la SAM

Image ISO à graver disponible sur« http://home.eunet.no/~pnordah/ntpasswd/cd040818.zip »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 73 / 435

2 NIS

Chapitre 2

NIS

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 74 / 435

Page 38:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.1 Introduction

Chapitre 2 • NIS§2.1 • Introduction

NIS ≡ Network Information Service

Créé par SUN en 1985Anciennement Yellow Pages ⇒ certaines commandes ont un nom en« yp. . . »Version NIS+ vers 1992, radicalement différente (cf annexe)

C’est un protocole réseau d’accès à des informations centralisées sur un ouplusieurs serveurs redondants.

Utilisation la plus courante : partager la base des comptes Unix.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 75 / 435

2 NIS 2.2 Architecture de NIS

Chapitre 2 • NIS§2.2 • Architecture de NIS

Architecture construite en mode client / serveur :

Client 1 Client 2 Client 3 Client 4

DATA

DATA

DATA

DATA

DATA

DATA

DATA

DATA

Maitre

Esclave 1 Esclave 2

Mise a jour push / pull

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 76 / 435

Page 39:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.2 Architecture de NIS

Caractéristiques :

Communications réseau via RPC (Remote Procedure Call)Propagation des données (maps) du master server aux slave serversen mode pull ou en mode push.Propagation des maps complètesSeul le master server peut modifier les donnéesLes slave servers diffusent les données sans pouvoir les modifier

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 77 / 435

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

Chapitre 2 • NIS§2.3 • Données NIS : maps NIS, DBM, ypcat, ypmatch

Les données manipulées par NIS : mapsLes maps contiennent des couples (clef, valeur).

Il n’y a que le serveur NIS maître qui peut changer le contenu d’une map.

Une map est au format DBM (cf « man dbm ») ; une map se compose de3 fichiers :

le fichier sourcele fichier de suffixe « .pag »le fichier de suffixe « .dir »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 78 / 435

Page 40:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

La commande « makedbm » permet de convertir le fichier source en les 2fichiers constituant le DBM.

% cat demo

clef1 banane

clef2 arbre

% makedbm demo demo

% ls -l demo test*-rw-r--r-- 1 besancon adm 23 Aug 15 11:56 demo

-rw------- 1 besancon adm 0 Aug 15 11:57 demo.dir

-rw------- 1 besancon adm 1024 Aug 15 11:57 demo.pag

Dans le système NIS, les maps sont stockées sur le master server dans« /var/yp/nom-du-domaine-NIS » :

% cd /var/yp/nom-de-domaine-NIS

% ls -l passwd*-rw------- 1 root other 4096 Nov 23 07:26 passwd.byname.dir

-rw------- 1 root other 8192 Nov 23 07:26 passwd.byname.pag

-rw------- 1 root other 4096 Nov 23 07:26 passwd.byuid.dir

-rw------- 1 root other 8192 Nov 23 07:26 passwd.byuid.pag

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 79 / 435

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

Les maps sont construites automatiquement à partir de tous les fichierssources des maps :

/etc/hosts

/etc/passwd

makedbm

passwd.byname

passwd.byuid

hosts.byname

hosts.byuid

NISMASTER

Le fichier « /var/yp/Makefile » automatise toutes les créations demaps et leur propagation aux slave servers (mode push).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 80 / 435

Page 41:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.3 Données 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 81 / 435

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

La construction d’une map se résume alors à (par exemple suite à unemodification de /etc/hosts) :

# vi /etc/hosts

# cd /var/yp

# make hosts

updated hosts

pushed hosts

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 82 / 435

Page 42:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

La librairie DBM permet de créer des enregistrements de taille maximale1024 octets :

% man dbm

SunOS/BSD Compatibility Library Functions dbm(3B)

NAME

dbm, dbminit, dbmclose, fetch, store, delete, firstkey,

nextkey - data base subroutines

...

The sum of the sizes of a key/content pair must not exceed

the internal block size (currently 1024 bytes). Moreover

all key/content pairs that hash together must fit on a sin-

gle block. store will return an error in the event that a

disk block fills with inseparable data.

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 83 / 435

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

Quelques noms de maps :

passwd.byname, passwd.byuid, group.byname, group.bygid, publickey.byname,hosts.byaddr, hosts.byname, mail.byaddr, mail.aliases, services.byname,services.byservicename, rpc.bynumber, rpc.byname, protocols.bynumber,protocols.byname, networks.byaddr, networks.byname, netmasks.bymask,netmasks.byaddr, ethers.byname, ethers.byaddr, bootparams, auto.master,auto.home, auto.direct, auto.src

dont les plus utiles sont :

map « passwd »map « group »map « hosts »map « netgroup »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 84 / 435

Page 43:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.3 Données NIS : maps NIS, DBM, ypcat, ypmatch

La commande « ypcat » permet de consulter une map NIS depuisn’importe quel client.

Syntaxe : « ypcat map-NIS »

La commande « ypmatch » permet de consulter la valeur d’une ouplusieurs clefs dans une certaine map NIS depuis n’importe quel client.

Syntaxe : « ypmatch clef1 clef2... map-NIS »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 85 / 435

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

Chapitre 2 • NIS§2.4 • Client NIS, domainname, ypbind, ypwhich, ypset

Un client NIS doit se connecter à un serveur NIS. C’est l’action de binding.Le binding nécessite :

de fournir un nom de domaine NIS, le domainname ;une machine se déclare comme membre du groupe servi par lesserveurs NISde préciser la méthode de localisation du serveur NIS : broadcast ouexplicite

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 86 / 435

Page 44:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

� Nom de domaine

La commande activant le nom de domaine est domainname.

Pour consulter le nom de domaine :« domainname »

Pour configurer manuellement le nom de domaine :« domainname nom-du-domaine-NIS »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 87 / 435

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

Configuration du domainname automatique au démarrage :Sur Solaris : renseigner le fichier « /etc/defaultdomain »Sur Linux : renseigner le variable « NISDOMAIN » du fichier« /etc/sysconfig/network »NETWORKING=yes

FORWARD_IPV4=false

HOSTNAME=pcars6.formation.jussieu.fr

DOMAINNAME=formation.jussieu.fr

GATEWAY=134.157.253.126

GATEWAYDEV=eth0

NISDOMAIN=real.world

ATTENTION : sur LINUX, ne pas confondre avec la variable« DOMAINNAME » qui sert pour l’annuaire DNS, cf tome 4 du cours UNIXou cf le cours réseau.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 88 / 435

Page 45:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

� Réalisation du binding

Un client NIS fait tourner le démon « ypbind » qui se connecte à unserveur NIS que l’on trouve selon 2 méthodes possibles :

découverte par broadcast ; c’est le mode par défaut.Sur Solaris, « /usr/lib/netsvc/yp/ypbind -broadcast »En pratique il y a une map « ypservers » qui contient les noms desserveurs.Cf « /var/yp/binding/nom-de-domaine-NIS/ypservers »demande de connexion expliciteSur Solaris faire :# ypbind -ypsetme

# ypset nom-du-serveur-NIS-voulu

La commande « ypwhich » affiche le nom du serveur NIS utilisé.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 89 / 435

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

On peut controler un peu quels sont les clients qui se bindent aux servers.Pour cela, remplir sur les slave servers et sur le master server le fichier« /var/yp/securenets ». Il liste les machines autorisées, sous formeadresses et netmasks.

Par exemple :

159.169.0.0 255.255.0.0

129.187.135.0 255.255.255.0

Signification : seules les machines des réseaux « 159.169.0.0/16 » et« 129.187.135.0/24 » sont autorisées à se binder.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 90 / 435

Page 46:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

� Consultation des maps

Un client NIS doit indiquer quels maps il utilisera. La plus courante est lamap « passwd » dont on indique l’utilisation par l’ajout d’une ligne en finde fichier « /etc/passwd » :

+::65534:65534:::

Signification de cette ligne supplémentaire (à vérifier sur chaque systèmecar il existe des différences) :

Tout champ renseigné de cette ligne + remplace le même champde la map inconditionnellement sauf pour UID et GID.Pour UID et GID, les valeurs mentionnées s’activeront si ceschamps sont absents de la map (c’est-à-dire quand la map estvérolée ce qui indique un problème de fichier source vérolé).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 91 / 435

2 NIS 2.4 Client NIS, domainname, ypbind, ypwhich, ypset

Exemple :

+:*LK*:65534:65534:::/usr/local/bin/tcsh

Signification :le passwd chiffré des utilisateurs de la map passwd est « *LK* »l’UID sera 65534 si l’entrée de la map ne précise pas d’UIDle GID sera 65534 si l’entrée de la map ne précise pas de GIDle shell de login est mis automatiquement à« /usr/local/bin/tcsh »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 92 / 435

Page 47:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.5 Slave server NIS, ypserv, ypxfr

Chapitre 2 • NIS§2.5 • Slave server NIS, ypserv, ypxfr

Un serveur NIS esclave fait tourner plusieurs démons :

ypservypbind

Le démon « ypserv » est là pour répondre aux requêtes des client NIS quise sont bindés sur lui.

Le démon « ypbind » n’est là que pour faire du slave server un client NISaussi (mais ce n’est pas obligatoire).Il n’est pas garanti que le slave server soit client NIS de lui même. Il peutse binder sur un autre serveur NIS du même domaine.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 93 / 435

2 NIS 2.5 Slave server NIS, ypserv, ypxfr

Un slave server peut être down au moment où un master slave fait unpush des maps.⇒ besoin pour le slave server de se resynchroniser avec le master server ;pull des maps de la part du slave server

Cela se fait au moyen de shell scripts lancés périodiquement via la crontab :

30 * * * * /usr/lib/netsvc/yp/ypxfr_1perhour

31 1,13 * * * /usr/lib/netsvc/yp/ypxfr_2perday

32 1 * * * /usr/lib/netsvc/yp/ypxfr_1perday

Ces scripts récupérent plus ou moins de maps suivant la fréquence de leurlancement.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 94 / 435

Page 48:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.5 Slave server NIS, ypserv, ypxfr

Exemple de l’un de ces shell scripts, « ypxfr_1perhour » :

#! /bin/sh

# ypxfr_1perhour.sh - Do hourly NIS map check/updates

PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH

export PATH

ypxfr passwd.byname

ypxfr passwd.byuid

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 95 / 435

2 NIS 2.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Chapitre 2 • NIS§2.6 • Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Un serveur NIS maître fait tourner plusieurs démons :

ypservypbindypxfrdrpc.yppasswdd

Même rôle pour « ypserv » que pour un slave server.Même rôle pour « ypbind » que pour un slave server.

Le démon « ypxfrd » assure les transferts de maps demandés par les slaveservers (mode pull). (en Unix, on rencontre souvent le mot xfr pour transfert)

Le démon « rpc.yppasswdd » assure le changement des mots de passe.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 96 / 435

Page 49:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Avec NIS, un client NIS ne peut pas modifier le contenu d’une map.Pour changer un mot de passe, on va émuler le changement du mot depasse sur le master server dans son fichier source (« /etc/passwd ») puisla reconstruction de la map passwd et sa transmission en totalité aux slaveservers.

Ce processus se réalise en utilisant la commande « yppasswd » quidemande les mots de passe à l’utilisateur puis appelle « rpc.yppasswdd »sur le master server qui simule la session interactive composée descommandes :

# passwd

# cd /var/yp

# make passwd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 97 / 435

2 NIS 2.6 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

Sur un client NIS Linux :

% yppasswd

Changing NIS account information for besancon on cerise.unixiens.org.

Please enter old password: ********Changing NIS password for besancon on cerise.unixiens.org.

Please enter new password: ********Please retype new password: ********

The NIS password has been changed on cerise.unixiens.org.

Sur un master server NIS Solaris :

% yppasswd

Enter login(NIS) password: ********New password: ********Re-enter new password: ********NIS passwd/attributes changed on cerise.unixiens.org

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 98 / 435

Page 50:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.7 Netgroups

Chapitre 2 • NIS§2.7 • Netgroups

Le système NIS permet de définir des groupes d’autorisation d’accès : lesnetgroups. Ces groupes sont diffusés via la map netgroup.

Un netgroup est un nom symbolique associé à un ensemble de triplets (jen’ai jamais vu le troisième champ avoir une quelconque utilité enpratique) :

nom-de-netgroup \

(machine, utilisateur, nom-de-domaine-NIS) \

(machine, utilisateur, nom-de-domaine-NIS) \

...

On définit en pratique des netgroups concernant des machines et desnetgroups concernant des utilisateurs. On autorisera ainsi ou pas desgroupes d’utilisateurs ou de machines à accéder à certaines ressources.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 99 / 435

2 NIS 2.7 Netgroups

Exemple de netgroup de machines :

nains \

(atchoum.example.com,,mine-de-diamants) \

(dormeur.example.com,,mine-de-diamants) \

(joyeux.example.com,,mine-de-diamants) \

(grincheux.example.com,,mine-de-diamants) \

(prof.example.com,,mine-de-diamants) \

(timide.example.com,,mine-de-diamants) \

(simplet.example.com,,mine-de-diamants)

Exemple de netgroup d’utilisateurs :

etudiants \

(,jean,) \

(,pierre,) \

(,valerie,)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 100 / 435

Page 51:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.7 Netgroups

Exemple d’utilisation d’un netgroup d’utilisateurs au niveau de« /etc/passwd » :

field:PASSWORD HERE:0:1:Field Service:/usr/field:/bin/csh

operator:PASSWORD HERE:5:28:Operator:/opr:/opr/opser

sys:PASSWORD HERE:2:3:Mr Kernel:/usr/sys:

bin:PASSWORD HERE:3:4:Mr Binary:/bin:

pot:*:16:16:MenuPot:/users/staffs/pot:

-@etudiants:

+@net_administrateurs::0:0:::

+@net_utilisateurs::65534:65534:::/bin/noshell

Signification :On rejette les lignes de la map « passwd » dont le login est indiquédans le netgroup « etudiants »On accepte les lignes de la map « passwd » dont le login est indiquédans le netgroup « net_administrateurs »On accepte les lignes de la map « passwd » dont le login est indiquédans le netgroup « net_utilisateurs »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 101 / 435

2 NIS 2.7 Netgroups

Exemple d’utilisation d’un netgroup de machines au niveau de l’exportationde disques via NFS (fichier « /etc/exports, cf chapitre sur NFS) :

/usr/openwin -access=mine-de-diamants

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 102 / 435

Page 52:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

2 NIS 2.8 Installation de NIS

Chapitre 2 • NIS§2.8 • Installation de NIS

� Master server

Lancer « ypinit -m »

� Slave servers

Lancer « ypinit -s master-server »Ajouter dans la crontab les appels aux scripts « ypxfr_* »

� Client NIS

Spécifier le domainname

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 103 / 435

3 NIS+

Chapitre 3

NIS+

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 104 / 435

Page 53:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

3 NIS+ 3.1 Introduction / Conclusion

Chapitre 3 • NIS+§3.1 • Introduction / Conclusion

Cf annexe pour un document sur NIS+.

Nous n’évoquerons ici que les défauts de NIS ayant conduit à l’apparitionde son successeur, NIS+.

Le système NIS+ n’a pas connu de succès et il est maintenantofficiellement abandonné au profit de LDAP par son principal défenseur,SUN.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 105 / 435

3 NIS+ 3.1 Introduction / Conclusion

Principaux reproches à NIS :

pas d’authentification du client aux serveurs NIS ; connaitre ledomainname suffit à se binder

les maps sont transmises en totalité même en cas de faiblemodification de leurs contenus

inadaption du principe du domaine NIS dans le cas de structures WAN

mode broadcast

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 106 / 435

Page 54:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP

Chapitre 4

LDAP

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 107 / 435

4 LDAP 4.1 Problématique

Chapitre 4 • LDAP§4.1 • Problématique

Cas de l’université de Paris 4 :base Microsoft Excel du personnel administratifbase Microsoft Acces/s du personnel enseignantbase « /etc/passwd » des comptes email des utilisateursbase mysql des 2 catégories de personnelprochainement logiciel à base d’Oracleprochainement Microsoft Active Directory

Question 1 : envoyer un email à tous les personnels administratifs sachantque le service du personnel ne fournira qu’une liste avec nom et prénom.Comment l’ingénieur système fait-il ?Question 2 : envoyer un email à tous les personnels administratifs saufceux du site de Clignancourt, sachant que le service du personnel ne peutpas fournir de liste cette fois-ci. Comment l’ingénieur système fait-il ?

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 108 / 435

Page 55:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.2 Principe d’annuaire

Chapitre 4 • LDAP§4.2 • Principe d’annuaire

Un annuaire informatique est un service permettant d’accéder à desinformations, relatives à des personnes ou à diverses ressources de façonorganisée.

Objectif : maintenir de façon cohérente et contrôlée les archipels dedonnées et obtenir des données de référence.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 109 / 435

4 LDAP 4.2 Principe d’annuaire

Un annuaire n’est pas une base de données relationnelles.

Une base de données (SGBD) se caractérise par :

Le schéma des données est défini à 100% pour résoudre un certainproblème.Les applications connaissent explicitement le schéma des données.Les objets sont complexes et éclatés entre plusieurs tables liées pardes relations complexes.Un SGBD supporte les transactions.Un SGBD supporte un langage comme SQL qui permet des fonctionsd’interrogation et de mises à jour très complexes.Un SGBD centralise les données pour éviter les problèmes desynchronisation de données et de qualité des temps de réponse.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 110 / 435

Page 56:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.2 Principe d’annuaire

Un annuaire se caractérise par :

Les objets sont indépendants (pas de liens de dépendance entre eux).Les objets peuvent être distribué sur plusieurs annuaires pour assurerune meilleure disponibilité.Le schéma est standardisé pour pouvoir partager les données.Le schéma est extensible pour prendre en compte tous les besoinsmais cela est fait de façon compatible avec les standards.Les applications d’annuaire ignorent la structure interne des données.Un annuaire est principalement consulté en lecture et est optimisépour cela.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 111 / 435

4 LDAP 4.3 Annuaire LDAP

Chapitre 4 • LDAP§4.3 • Annuaire LDAP

LDAP ≡ Lightweight Directory Access ProtocolHéritier de l’annuaire ISO X500.Version 3 actuellement. RFC 2251 à 2256, RFC 2829 à 2830, RFC 2849.Il n’y a pas de standard de représentation des contrôles d’accès auxdonnées.

LDAP :nom d’un protocolenom d’une structure de donnéesnom d’implémentations de serveurs suivant le protocole

Confusion possible. . .

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 112 / 435

Page 57:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.4 Modèle de données de LDAP : DIT, suffixe

Chapitre 4 • LDAP§4.4 • Modèle de données de LDAP : DIT, suffixe

Les entrées sont organisées sous forme d’arbre ou DIT (DirectoryInformation Tree).

L’une des difficultés de LDAP : construire l’organisation du DIT.

De quoi est-il le reflet ? :

DIT à caractère organisationnel ?DIT à caractère géographique ?

Pas de solution universelle.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 113 / 435

4 LDAP 4.4 Modèle de données de LDAP : DIT, suffixe

DIT à caractère organisationnel ?

dc=company,dc=com

dc=marketingdc=financedc=recherche

dc=people

dc=groups

dc=people

dc=groups

dc=people

dc=groups

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 114 / 435

Page 58:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.4 Modèle de données de LDAP : DIT, suffixe

DIT à caractère géographique ?

dc=company,dc=com

dc=people

dc=groups

dc=people

dc=groups

dc=people

dc=groups

dc=america dc=europe dc=asia

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 115 / 435

4 LDAP 4.4 Modèle de données de LDAP : DIT, suffixe

La racine de l’arbre est uniquement conceptuelle et n’existe pas réellement.C’est le suffixe qui sert à déterminer les adresses absolues des objets(comme « / » pour l’arborescence des fichiers Unix).

dc=company,dc=com

dc=marketingdc=financedc=recherche

dc=people

dc=groups

dc=people

dc=groups

dc=people

dc=groups

SUFFIXE

Le suffixe peut avoir plusieurs formes :forme 1 : « o=company.com »forme 2 : « o=company,c=com »forme 3 : « dc=company,dc=com »

On préférera la 3ième forme, ayant un certain rapport avec les noms dedomaine DNS.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 116 / 435

Page 59:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.4 Modèle de données de LDAP : DIT, suffixe

Exemple de DIT visualisé avec LdapBrowser disponible à l’URLhttp://www.iit.edu/~gawojar/dap/ :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 117 / 435

4 LDAP 4.5 Modèle de données de LDAP : entrée, attributs, DN, URL

Chapitre 4 • LDAP§4.5 • Modèle de données de LDAP : entrée, attributs, DN, URL

DSE ≡ Directory Service EntryLes entrées dans le DIT (DSE) sont des agrégats d’attributs monovaluésou multivalués qui permettent de stocker n’importe quel format dedonnées (prénom, numéro de téléphone, image, son, etc.)Les DSE sont stockées dans le DIT et arrangés selon leur identifiantunique, le DN (Distinguished Name). Un DN est la concaténation d’unRDN (Relative DN) et du DN des parents. Un DN s’apparente à une clefprimaire.

suffixe : dc=company,dc=com

RDN : ou=Recherche DN : ou=Recherche,dc=company,dc=com

RDN : uid=besancon DN : uid=besancon,ou=Recherche,dc=company,dc=com

(le RDN doit être un des attributs/valeurs du DSE)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 118 / 435

Page 60:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.5 Modèle de données de LDAP : entrée, attributs, DN, URL

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 119 / 435

4 LDAP 4.5 Modèle de données de LDAP : entrée, attributs, DN, URL

Il existe des URL LDAP (RC 2255) qui prennent la forme :ldap://serveur:389/DN

Par exemple dans communicator de netscape :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 120 / 435

Page 61:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP4.6 Modèle de données de LDAP : schéma, syntaxes, OID,

objectclass

Chapitre 4 • LDAP§4.6 • Modèle de données de LDAP : schéma, syntaxes, OID, objectclass

Le schéma du DIT regroupe les définitions relatives aux types d’objets quepeut contenir l’annuaire ou que l’on peut rechercher.Le schéma contiendra des objets instanciations de classes LDAP, lesdéfinitions de ces classes et de leurs attributs, les syntaxes de cesattributs.Tous ces éléments seront identifiés par des Object Identifiers 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 121 / 435

4 LDAP4.6 Modèle de données de LDAP : schéma, syntaxes, OID,

objectclass

Une syntaxe est un modèle de représentation des valeurs de l’attribut. Parexemple booléen, entier, binaire (pour une image, un son), etc.

L’attribut objectclass spécifie la liste des classes qu’instancie un DSE.Chaque classe va construire la structure du DSE en spécifiant une listed’attributs obligatoirement présents (« MUST » dans l’objectclass) et uneliste d’attributs facultatifs (« MAY » dans l’objectclass).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 122 / 435

Page 62:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP4.6 Modèle de données de LDAP : schéma, 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 ) )

⇒ l’attribut « uid » sera de type MUST.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 123 / 435

4 LDAP4.6 Modèle de données de LDAP : schéma, syntaxes, OID,

objectclass

Les objectclass de LDAP s’inscrivent dans un hiérarchie dont la racine estl’objectclass « top ».

Chaque classe hérite d’une seule classe mère.

Chaque classe peut donner lieu à plusieurs sous classes.

(Abstract)

top

(Structural)

person(Auxiliary)

companyPerson

(Structural)

residentialPerson

(Structural)

organizationalPerson

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 124 / 435

Page 63:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.7 Protocole LDAP / Bind

Chapitre 4 • LDAP§4.7 • Protocole LDAP / Bind

Au niveau réseau :LDAP : TCP port 389LDAP + SSL : TCP port 636( syntaxe LDAP au format ASN.1 ) + BER

Un dialogue LDAP s’établit après une phase d’ouverture de session ditebind.Le bind peut être anonyme ou authentifié.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 125 / 435

4 LDAP 4.8 Format de données LDIF

Chapitre 4 • LDAP§4.8 • Format de données LDIF

Problème : comment manipuler les objets LDAP en pratique ?

Réponse : en les manipulant au format LDAP Data Interexchange Format,dit LDIF

LDIF n’intervient pas dans le protocole LDAP (pas de mention dans lesRFC par exemple).

LDIF n’est compris que par les utilitaires qui le convertissent en protocoleLDAP.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 126 / 435

Page 64:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.8 Format de données LDIF

Attention aux caractères non ASCII :si la valeur d’un attribut est uniquement composé de caractèresASCII, on l’écrit « attribut : valeur »si la valeur d’un attribut contient des caractères non ASCII, il fautcoder cette valeur en UTF-8 puis la coder en BASE64 et écrire aufinal « attribut :: valeur2 »

Par exemple l’attribut « description » de valeurUniversité de Paris-Sorbonne, Paris 4

ne sera pas codé en LDIF sous la formedescription: Université de Paris-Sorbonne, Paris 4

mais sous la formedescription:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=!

Notez les différences !

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 127 / 435

4 LDAP 4.8 Format de données LDIF

2 utilitaires pratiques :http://docs.univ-nancy2.fr/ldap/OutilsPERL/DecodLDIF.pl

http://docs.univ-nancy2.fr/ldap/OutilsPERL/EncodLDIF.pl

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 128 / 435

Page 65:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.8 Format de données LDIF

Exemple d’une DSE avec des caractères accentués non encore codés enLDIF :

dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr

objectclass: top

objectclass: organizationalUnit

ou: Personnels de l’Université de Paris-Sorbonne, Paris 4

businessCategory: academic research

telephoneNumber: +33 (0) 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 129 / 435

4 LDAP 4.8 Format de données LDIF

Exemple d’une DSE au format LDIF :

dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr

objectclass: top

objectclass: organizationalUnit

ou:: UGVyc29ubmVscyBkZSBsJ1VuaXZlcnNpdMOpIGRlIFBhcmlzLVNvcmJvbm5lLCBQYXJpcyA0

businessCategory: academic research

telephoneNumber: +33 (0) 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 130 / 435

Page 66:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.9 Implémentations

Chapitre 4 • LDAP§4.9 • Implémentations

Il existe plusieurs implémentations de LDAP :OpenLdap, http://www.openldap.org, version 2.1.3 (au 21 août2002)SUN ONE (anciennement Netscape Directory Server, racheté parSUN devenu Sun Iplanet Directory puis SUN ONE) incorporé de basedans Solaris 8 et ultérieurNovell Directory Services, version 4 ?autes annuaires commerciaux. . .

Les différentes implémentations respectent les normes du protocole. Parcontre, elles différent au niveau de tout ce qui n’est pas norme. Enparticulier, les droits d’accès aux données sont codés de façonincompatible.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 131 / 435

4 LDAP 4.10 OpenLDAP

Chapitre 4 • LDAP§4.10 • OpenLDAP

Cf http://www.openldap.org/Les versions 2.x.y d’OpenLDAP sont compatibles avec les normes deLDAP v3.

Le logiciel se compose de :du serveur LDAP « slapd »du serveur de synchronisation « slurpd »d’utilitaires (« slapadd », « ldapsearch », « ldapadd »,« ldapdelete », « ldapmodify », « ldappasswd », etc.)librairies, include LDAPun fichier de configuration « slapd.conf » dans lequel on définit lesuffixe, le rootDN, le mot de passe du rootDN

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 132 / 435

Page 67:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.10 OpenLDAP

Le mécanisme de réplication de serveurs OpenLDAP est le suivant :

slurpd

1) demande de modification

2) réponse : referral

3) demande de modification

4) réponse (OK/not OK)

slapd

(Esclave)

slapd

(Maitre)

Journal desmodifications

client

5)

6)

7)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 133 / 435

4 LDAP 4.11 ObjectClass posixAccount, shadowAccount

Chapitre 4 • LDAP§4.11 • ObjectClass posixAccount, shadowAccount

Cf RFC2307Cf le schéma « nis.schema » dans OpenLDAP.L’objectclass « posixAccount » est l’objet qui implémente l’équivalent dela 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 ) )

L’objectclass « shadowAccount » est l’objet qui implémente le principedes 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 134 / 435

Page 68:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

4 LDAP 4.12 Un peu de bibliographie

Chapitre 4 • LDAP§4.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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 135 / 435

5 Sélection de naming services, /etc/nsswitch.conf

Chapitre 5

Sélection de naming services,/etc/nsswitch.conf

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 136 / 435

Page 69:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

5 Sélection de naming services, /etc/nsswitch.conf 5.1 Problématique

Chapitre 5 • Sélection de naming services, /etc/nsswitch.conf§5.1 • Problématique

Exemple :il y a les fichiers système (« /etc/passwd », « /etc/hosts »,« /etc/services », . . .)il y a le DNSil y a NISil y a NIS+il y a LDAPetc.

Comment choisir quels services répondront aux requêtes de recherche denom ?

Une solution : préciser quels naming services seront utilisés et dans quelordre au niveau du fichier « /etc/nsswitch.conf » (naming serviceswitch).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 137 / 435

5 Sélection de naming services, /etc/nsswitch.conf 5.2 Syntaxe de /etc/nsswitch.conf

Chapitre 5 • Sélection de naming services, /etc/nsswitch.conf§5.2 • Syntaxe de /etc/nsswitch.conf

Le fichier est au format suivant :

service: source [ status=action status=action... ] source...

avec :pour source l’un des mots clef « files », « dns », « ldap », « nis »,« nisplus », « xfn » (liste à vérifier selon les systèmes Unix offrantplus ou moins de ces services)pour status l’un des mots clef suivants :

« SUCCESS », entrée recherchée trouvée« NOTFOUND », entrée recherchée non trouvée« UNAVAIL », la source n’est pas configurée sur ce système ou bien elleest défaillante« TRYAGAIN », la source est occupée et ne peut pas répondreactuellement, peut-être plus tard

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 138 / 435

Page 70:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

5 Sélection de naming services, /etc/nsswitch.conf 5.2 Syntaxe de /etc/nsswitch.conf

pour action l’un des mots clefs :« return », retourner la valeur trouvée ou la non valeur« continue », essayer la source suivante« forever » (uniquement pour « TRYAGAIN »), persister sur cettesource jusqu’à avoir une réponse

Par défaut, on a pour chaque source :

[SUCCESS=return NOTFOUND=continue UNAVAIL=continue TRYAGAIN=forever]

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 139 / 435

5 Sélection de naming services, /etc/nsswitch.conf 5.3 Exemple de /etc/nsswitch.conf

Chapitre 5 • Sélection de naming services, /etc/nsswitch.conf§5.3 • Exemple de /etc/nsswitch.conf

(pris sur SOLARIS)

passwd: files ldapgroup: files ldaphosts: ldap [NOTFOUND=return] filesipnodes: filesnetworks: ldap [NOTFOUND=return] filesprotocols: ldap [NOTFOUND=return] filesrpc: ldap [NOTFOUND=return] filesethers: ldap [NOTFOUND=return] filesnetmasks: ldap [NOTFOUND=return] filesbootparams: ldap [NOTFOUND=return] filespublickey: ldap [NOTFOUND=return] filesnetgroup: ldapautomount: files ldapaliases: files ldap# for efficient getservbyname() avoid ldapservices: files ldapsendmailvars: files# role-based access controlauth_attr: files ldapexec_attr: files ldapprof_attr: files ldapuser_attr: files ldap# auditaudit_user: files ldapproject: files ldap

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 140 / 435

Page 71:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

5 Sélection de naming services, /etc/nsswitch.conf 5.4 A propos de LDAP

Chapitre 5 • Sélection de naming services, /etc/nsswitch.conf§5.4 • A propos de LDAP

Pour les systèmes n’incorporant pas LDAP en natif dans l’OS, se reporterà :

« http://www.padl.com/download/nss_ldap.tgz »« http://www.openldap.org/ »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 141 / 435

6 Pluggable Authentification Module, PAM

Chapitre 6

Pluggable Authentification Module, PAM

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 142 / 435

Page 72:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.1 Problématique

Chapitre 6 • Pluggable Authentification Module, PAM§6.1 • Problématique

Exemple :Soit une machine dans une université, hébergeant les comptes de 10professeurs et de 1000 élèves.La machine est équipée d’un modem.Les professeurs sont autorisés à se connecter à la machine parmodem, pas les élèves.La machine est cliente NIS.Quand on se connecte par modem sur une machine, le système lancela commande « login » lorsque la connexion s’établit.

Comment implémenter cela ?En modifiant le programme « login » pour l’adapter à ce cas trèsparticulier ? ? ?

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 143 / 435

6 Pluggable Authentification Module, PAM 6.1 Problématique

La problématique en général :Comment changer une méthode d’authentification dans un programme(par exemple FTP) sans avoir à tout reprogrammer ?

Solution développée par SUN à l’origine et reprise et encouragée dansLinux : Pluggable Authentification Module dit PAM

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 144 / 435

Page 73:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.2 Principe de PAM

Chapitre 6 • Pluggable Authentification Module, PAM§6.2 • Principe de PAM

L’authentication fait appel par l’intermédiaire de PAM à des modulesexternes de code d’authentification appropriée selon le service. On déportel’authentification en dehors du programme.

programme1 programme2

moduleA.somoduleB.somoduleC.so

moduleD.so

moduleB.somoduleC.so

moduleE.somoduleF.so

/etc/pam.conf

moduleA.so

moduleB.so

moduleC.so

moduleD.so moduleE.so

moduleF.so

programme1

pam_init()

pam_auth()

programme2

pam_init()

pam_auth()

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 145 / 435

6 Pluggable Authentification Module, PAM 6.2 Principe de PAM

4 catégories de modules PAM :

module d’authentification (authentication)fonctionnalités pour authentifier un utilisateur et définir ses créancesmodule de gestion de compte (account management)fonctionnalités pour déterminer si l’utilisateur dispose d’un comptevalide (car possibilité d’expiration de mot de passe dit passwordaging, de restrictions d’accès horaire)module de gestion de session (session management)fonctionnalités pour définir et terminer les sessions utilisateurmodule de gestion de mot de passe (password management)fonctionnalités pour changer un mot de passe utilisateur et certainescaractéristiques du compte

Pour une certaine application, on organise les modules nécessaires sousforme d’une pile et chaque module de la pile va être essayé pour constituerl’authentification demandée.Selon la configuration, un utilisateur pourra être amené à rentrer plusieursmots de passe.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 146 / 435

Page 74:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.3 Fichier de configuration /etc/pam.conf

Chapitre 6 • Pluggable Authentification Module, PAM§6.3 • Fichier de configuration /etc/pam.conf

« /etc/pam.conf » définit quels modules seront utilisés pour chaqueapplication.

Sur Linux, on trouve aussi le répertoire « /etc/pam.d » qui contient unfichier par application portant le nom de l’application. Ainsi« /etc/pam.d/login » pour le service « login ».

Une ligne de « /etc/pam.conf » contient 5 champs :

service_name module_type control_flag module_path options

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 147 / 435

6 Pluggable Authentification Module, PAM 6.3 Fichier de configuration /etc/pam.conf

service_name module_type control_flag module_path options

Le « service_name » nomme le service concerné par la ligne(« other » pour service joker)Le « module_type » est l’un des 4 mots clef : « auth »,« account », « session », « password »Le « control_flag » est l’un des 4 mots clef : « requisite »,« required », « optional », « sufficient »Le « module_path » est le chemin du module.Les options dépendent du module.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 148 / 435

Page 75:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.3 Fichier de configuration /etc/pam.conf

Par exemple, le service « login » fait appel aux modules suivants :

# Authentication management

login auth required /usr/lib/security/pam_unix.so.1

login auth required /usr/lib/security/pam_dial_auth.so.1

# Account management

login account requisite /usr/lib/security/pam_roles.so.1

login account required /usr/lib/security/pam_projects.so.1

login account required /usr/lib/security/pam_unix.so.1

# Session management

other session required /usr/lib/security/pam_unix.so.1

# Password management

other password required /usr/lib/security/pam_unix.so.1

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 149 / 435

6 Pluggable Authentification Module, PAM 6.4 Directives d’essai des modules

Chapitre 6 • Pluggable Authentification Module, PAM§6.4 • Directives d’essai des modules

Les directives possibles d’essai des modules sont :

directive « required »

directive « requisite »

directive « optional »

directive « sufficient »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 150 / 435

Page 76:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.4 Directives d’essai des modules

� directive « required »

La valeur de retour de ce module doit être « PAM_SUCCESS » pour sortirde la pile d’authentification avec succès ; « PAM_AUTH_ERR » ferarecommencer toute la pile :

Pile demodules PAM

REQUIRED

SUCCESS AUTH_ERR

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 151 / 435

6 Pluggable Authentification Module, PAM 6.4 Directives d’essai des modules

� directive « requisite »

Une valeur de retour « PAM_AUTH_ERR » fait sortir de la piled’authentification prématurément en échec :

Pile demodules PAM

REQUISITE

AUTH_ERRSUCCESS

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 152 / 435

Page 77:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.4 Directives d’essai des modules

� directive « optional »

Si ce module échoue, on sortira de la pile avec succès si un autre moduledans la pile réussit :

Pile demodules PAM

OPTIONAL

SUCCESS AUTH_ERR

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 153 / 435

6 Pluggable Authentification Module, PAM 6.4 Directives d’essai des modules

� directive « sufficient »

Une valeur de retour « PAM_SUCCESS » de ce module fait sortir de la piled’authentification prématurément avec succès ; les autres modules dans lapile ne sont pas pris en compte :

Pile demodules PAM

SUFFICIENT

SUCCESSAUTH_ERR

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 154 / 435

Page 78:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.5 Modules, /usr/lib/security

Chapitre 6 • Pluggable Authentification Module, PAM§6.5 • Modules, /usr/lib/security

Les modules sont conventionnellement stockés dans« /usr/lib/security/ »

Par exemple sur Solaris :

% ls /usr/lib/security

amiserv pam_ldap.so.1 pam_sample.so.1

pam_ami.so pam_projects.so pam_smartcard.so

pam_ami.so.1 pam_projects.so.1 pam_smartcard.so.1

pam_dial_auth.so pam_rhosts_auth.so pam_unix.so

pam_dial_auth.so.1 pam_rhosts_auth.so.1 pam_unix.so.1

pam_krb5.so pam_roles.so sparcv9

pam_krb5.so.1 pam_roles.so.1

pam_ldap.so pam_sample.so

Chaque module fournit l’implémentation d’un mécanisme spécifique.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 155 / 435

6 Pluggable Authentification Module, PAM 6.5 Modules, /usr/lib/security

« /usr/lib/security/pam_unix.so.1 » fournit un suportd’authentification, gestion de compte, session de mot de passe. Il utilise lesmots de passe Unix pour l’authenfication.

« /usr/lib/security/pam_dial_auth.so.1 » peut seulement êtreutilisé pour l’authentification. Il utilise des données stockées dans« /etc/dialups » et « /etc/d_passwd ». Principalement utilisé par« login ».

« /usr/lib/security/pam_rhosts_auth.so.1 » peut seulement êtreutilisé pour l’authentification. Il utilise les données stockées dans lesfichiers « .rhosts » et « /etc/hosts.equiv ». Principalement utilisépar « rlogin » et « rsh ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 156 / 435

Page 79:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.6 Options des modules

Chapitre 6 • Pluggable Authentification Module, PAM§6.6 • Options des modules

On peut passer certaines options aux modules

des options spécifiques à chaque module ; cf la documentation dechaque module ; par exemple « retry=3 » ou « debug »option « use_first_pass »Cette option indique d’utiliser exclusivement le mot de passe entrépour le premier module de la pile du service.option « try_first_pass »Cette option indique d’utiliser d’abord le mot de passe entré pour lepremier module de la pile du service et en cas d’échec de ce mot depasse d’en demander un autre.

(Le support des options « use_first_pass » et « try_first_pass » estfortement conseillé auprès des développeurs de modules PAM ; à vérifier doncavec chaque module)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 157 / 435

6 Pluggable Authentification Module, PAM 6.7 Exemple 1

Chapitre 6 • Pluggable Authentification Module, PAM§6.7 • Exemple 1

Extrait de « /etc/pam.conf » :

# Authentication management

login auth required /usr/lib/security/pam_unix.so.1

login auth required /usr/lib/security/pam_dial_auth.so.1

Fichier « /etc/dialups » :

/dev/pts/9

Fichier « /etc/d_passwd » :

/bin/bash:nuemRW70uy9M.:

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 158 / 435

Page 80:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.7 Exemple 1

Session interactive :

% tty

/dev/pts/9

% exec login

exec login

login: besancon

Password: XXXXXXXX <-- mot de passeDialup Password: YYYYYYYY <-- mot de passe%% <-- connexion établie, shell lancé

On voit bien la ligne supplémentaire « Dialup Password: »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 159 / 435

6 Pluggable Authentification Module, PAM 6.7 Exemple 1

Si l’on se trompe dans l’un des mots de passe, toutes les demandes de motde passe sont réessayées :

% exec login

login: besancon

Password: ZZZZZZZZ <-- mauvais mot de passeDialup Password: YYYYYYYY <-- mot de passe OKLogin incorrect

login: besancon

Password: XXXXXXXX <-- mot de passe OKDialup Password: ZZZZZZZZ <-- mauvais mot de passeLogin incorrect

login: besancon

Password: XXXXXXXX <-- mot de passe OKDialup 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 160 / 435

Page 81:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.8 Exemple 2

Chapitre 6 • Pluggable Authentification Module, PAM§6.8 • Exemple 2

Pour autoriser l’authentification par LDAP, on mettra dans« /etc/pam.conf » :

# Authentication management

login auth sufficient /usr/lib/security/pam_unix.so.1

login auth required /usr/lib/security/pam_ldap.so.1 use_first_pass

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 161 / 435

6 Pluggable Authentification Module, PAM 6.9 A propos de LDAP

Chapitre 6 • Pluggable Authentification Module, PAM§6.9 • A propos de LDAP

Pour les systèmes n’incorporant pas LDAP en natif dans l’OS, se reporterà :

« http://diamond.rug.ac.be/pam_LDAP/index.shtml »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 162 / 435

Page 82:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

6 Pluggable Authentification Module, PAM 6.10 Un peu de bibliographie

Chapitre 6 • Pluggable Authentification Module, PAM§6.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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 163 / 435

7 Connexion des utilisateurs

Chapitre 7

Connexion des utilisateurs

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 164 / 435

Page 83:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

7 Connexion des utilisateurs 7.1 Fichier utmp : <utmp.h>

Chapitre 7 • Connexion des utilisateurs§7.1 • Fichier utmp : <utmp.h>

Traditionnellement « /var/adm/utmp ».Ce fichier contient des informations concernant les accès des utilisateurs etconcernant les reboots de la machine.

struct utmp {

char ut_user[8]; /* User login name */

char ut_id[4]; /* /etc/inittab id(usually line #) */

char ut_line[12]; /* device name (console, lnxx) */

short ut_pid; /* short for compat. - process id */

short ut_type; /* type of entry */

struct exit_status ut_exit; /* The exit status of a process */

/* marked as DEAD_PROCESS. */

time_t ut_time; /* time entry was made */

};

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 165 / 435

7 Connexion des utilisateurs 7.1 Fichier utmp : <utmp.h>

Ce fichier ne grossit pas vraiment :

un enregistrement est écrit à la connexion d’un utilisateur etmentionne le couple (utilisateur, terminal)l’enregistrement est marqué de type « USER_PROCESS »lorsque la connexion se termine, l’enregistrement est marqué« DEAD_PROCESS »à la prochaine connexion du même utilisateur sur le même terminal,on réutilisera cet enregistrement.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 166 / 435

Page 84:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

7 Connexion des utilisateurs 7.2 Fichier utmpx : <utmpx.h>

Chapitre 7 • Connexion des utilisateurs§7.2 • Fichier utmpx : <utmpx.h>

(en anglais utmp extended)C’est une extension de la structure « utmp » :

struct utmpx {

char ut_user[32]; /* user login name */

char ut_id[4]; /* inittab id */

char ut_line[32]; /* device name (console, lnxx) */

pid_t ut_pid; /* process id */

short ut_type; /* type of entry */

struct ut_exit_status ut_exit; /* process termination/exit status */

struct timeval ut_tv; /* time entry was made */

int ut_session; /* session ID, used for windowing */

int __pad[5]; /* reserved for future use */

short ut_syslen; /* significant length of ut_host */

/* including terminating null */

char ut_host[257]; /* remote host name */

};

Le principe reste le même sauf que le fichier stockant les données est« /var/adm/utmpx »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 167 / 435

7 Connexion des utilisateurs 7.3 Fichier wtmp : <utmp.h>

Chapitre 7 • Connexion des utilisateurs§7.3 • Fichier wtmp : <utmp.h>

Traditionnellement « /var/adm/wtmp ».

Ce fichier contient les historiques des connexions des utilisateurs et del’accounting.

Ce fichier grossit au cours du temps car on y accumule les enregistrements« utmp » en fin de fichier.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 168 / 435

Page 85:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

7 Connexion des utilisateurs 7.4 Fichier wtmpx : <utmpx.h>

Chapitre 7 • Connexion des utilisateurs§7.4 • Fichier wtmpx : <utmpx.h>

(en anglais wtmp extended)

Le principe reste le même que celui pour « wtmp » sauf que le fichierstockant les données est « /var/adm/wtmpx »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 169 / 435

7 Connexion des utilisateurs 7.5 Commande last

Chapitre 7 • Connexion des utilisateurs§7.5 • Commande last

Syntaxe : « last [options] [utilisateur] [terminal] »

La commande « last » consulte le fichier « /var/adm/wtmpx » et afficheles enregistrements à l’écran :

besancon ftp localhost Sun Aug 25 12:13 - 12:15 (00:01)

besancon ftp localhost Sun Aug 25 12:04 - 12:05 (00:01)

besancon ftp localhost Sun Aug 25 12:03 - 12:04 (00:00)

besancon console Sat Aug 24 11:24 still logged in

besancon console Sat Aug 24 01:12 - 11:24 (10:12)

reboot system boot Sat Aug 24 01:10

besancon pts/9 Tue Aug 20 14:52 - down (3+10:17)

besancon pts/9 Tue Aug 20 14:51 - 14:52 (00:00)

...

wtmp begins Wed Feb 20 20:58

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 170 / 435

Page 86:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux

Chapitre 8

Pseudo terminaux

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 171 / 435

8 Pseudo terminaux 8.1 Devices associés aux pseudo terminaux

Chapitre 8 • Pseudo terminaux§8.1 • Devices associés aux pseudo terminaux

Pseudos terminaux (virtuels ou physiques) pour : terminal type vt100,xterm, etc.Les fichiers associés aux pseudo terminaux se trouvent dans « /dev ».Par exemple :

« /dev/tty01 » pour le terminal série« /dev/console » pour l’écran principal de la machinepour les connexions réseau, on utilise deux fichiers par connexion : unfichier maître et un fichier esclave.Le master pseudo terminal a pour nom « /dev/pty[p-s]NN » surBSD, « /dev/ptc/NN » sur System-V.Le slave pseudo terminal a pour nom « /dev/tty[p-s]NN » surBSD, « /dev/pts/NN » sur System-V.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 172 / 435

Page 87:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.2 Commande tty, device /dev/tty

Chapitre 8 • Pseudo terminaux§8.2 • Commande tty, device /dev/tty

Pour connaître le nom du terminal courant, utiliser la commande tty :

% tty

/dev/pts/1

Un fichier spécial, /dev/tty :

% tty

/dev/pts/1

% echo oui > /dev/tty

oui

Les entrées / sorties de « /dev/tty » sont associées à votre terminal.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 173 / 435

8 Pseudo terminaux 8.3 Nombre de terminaux

Chapitre 8 • Pseudo terminaux§8.3 • Nombre de terminaux

Attention : Il doit y avoir un nombre suffisant de terminaux pour accueillirles utilisateurs. Dans le cas contraire :

% rlogin serveur.example.com

rlogind: All network ports in use.

Connection closed.

Comment corriger le problème ?La correction du problème se fait à deux niveaux :

1 vérifier le nombre de terminaux configurés dans le noyau :pseudo-device pty 256 #Pseudo ttys - can go as high as 256

2 augmenter le nombre de fichiers terminaux dans « /dev » :# cd /dev

# ./MAKEDEV pty1

# ./MAKEDEV pty2

# ./MAKEDEV pty3

# ./MAKEDEV pty4

etc.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 174 / 435

Page 88:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.4 Phase de connexion, init, getty

Chapitre 8 • Pseudo terminaux§8.4 • Phase de connexion, init, getty

« init » gére l’ensemble des lignes physiques sur lesquelles les utilisateursse connectent.

Au démarrage d’« init », après consultation de « /etc/inittab » ou de« /etc/ttys », il y a lancement d’un processus « getty » par lignephysique attachée à l’unité centrale.

% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND

[...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c

root 363 1 0.0 Aug 03 05 0:00.04 /usr/sbin/getty /dev/tty05 c

[...]

La commande « getty » configure les paramètres de la ligne (vitesse,parité, etc.) puis attend qu’un utilisateur se manifeste.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 175 / 435

8 Pseudo terminaux 8.4 Phase de connexion, init, getty

Lorsqu’un utilisateur tape son nom de login, le « getty » en questiondonne la main au programme « login » :% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND

[...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c

root 363 1 0.0 Aug 03 05 0:00.09 login besancon

[...]

Le programme « login » valide ou pas l’utilisateur. Dans le cas favorable,une session shell est lancée (notez le caractère « - » en début du nom dushell) :% ps -edf

USER PID PPID %CPU STARTED TT TIME COMMAND

[...]

root 362 1 0.0 Aug 03 04 0:00.04 /usr/sbin/getty /dev/tty04 c

besancon 363 1 0.0 Aug 03 05 0:00.78 -bash (bash)

[...]

Lorsque le shell se termine, « init » détecte la terminaison d’un de sesfils. Il regénére alors un nouveau processus « getty ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 176 / 435

Page 89:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.5 Liste BSD des terminaux physiques : /etc/ttys

Chapitre 8 • Pseudo terminaux§8.5 • Liste BSD des terminaux physiques : /etc/ttys

Les lignes à surveiller par « init » sont précisées via le fichier« /etc/ttys » :

console none unknown off secure

ttyv0 "/usr/libexec/getty Pc" cons25 on secure

# Virtual terminals

ttyv1 "/usr/libexec/getty Pc" cons25 on secure

ttyv2 "/usr/libexec/getty Pc" cons25 on secure

ttyv3 "/usr/libexec/getty Pc" cons25 on secure

# Serial terminals

ttyd0 "/usr/libexec/getty std.9600" unknown off secure

ttyd1 "/usr/libexec/getty std.9600" unknown off secure

# Pseudo terminals

ttyp0 none network

ttyp1 none network

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 177 / 435

8 Pseudo terminaux 8.6 Liste System-V des terminaux physiques : /etc/inittab

Chapitre 8 • Pseudo terminaux§8.6 • Liste System-V des terminaux physiques : /etc/inittab

Les lignes à surveiller par « init » sont précisées via le fichier/etc/inittab :

lat01:3:respawn:/usr/sbin/getty /dev/tty01 console vt100

lat02:3:respawn:/usr/sbin/getty /dev/tty02 console vt100

...

lat0e:3:respawn:/usr/sbin/getty /dev/tty0e console vt100

lat0f:3:respawn:/usr/sbin/getty /dev/tty0f console vt100

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 178 / 435

Page 90:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.7 Terminaux sécurisés

Chapitre 8 • Pseudo terminaux§8.7 • Terminaux sécurisés

Root est-il autorisé à se connecter sur tout terminal ?

% rlogin linux.example.com -l root

Password:

Not on system console

Connection closed.

Pourquoi ?Parce qu’un login au nom de root est anonyme et interdit en conséquence.Comment contrôler l’accès ?

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 179 / 435

8 Pseudo terminaux 8.7 Terminaux sécurisés

� Contrôle d’accès sur BSD

Au niveau de /etc/ttys ou /etc/ttytab :

...

The super-user root may only log in on those terminals

marked as "secure" in the /etc/ttytab file. Otherwise, the

super-user must log in as an ordinary user and become

super-user using su(1v). For example, if the file con-

tained:

console "/etc/getty Console-9600" sun on secure

tty00 "/etc/getty Console-9600" sun on

...

the super-user could only log in directly on the console.

See ttytab(5) for a discussion of secure and other getty(8)

options used in /etc/ttytab.

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 180 / 435

Page 91:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.7 Terminaux sécurisés

� Contrôle d’accès sur DIGITAL Unix

Au niveau de /etc/securettys :

#

# Note: Each entry in this file represents a device (secure device)

# from which root login is permitted. For, pseudo ttys (ptys) a

# single keyword entry "ptys" means all ptys are to be treated as being

# secure. Note that the entry is "ptys" and not prefixed by /dev

# as is customary for the other physical devices. The absence of

# this key word implies that root login will not be permitted from

# all ptys. X displays are indicated with the display name.

#

# <device name>

/dev/console

local:0

:0

ptys

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 181 / 435

8 Pseudo terminaux 8.7 Terminaux sécurisés

� Contrôle d’accès sur Linux

Au niveau de /etc/securetty :

## /etc/securetty is used by login(1); the file contains tty

## lines (without leading /dev/) on which root is allowed to

## login.

tty1

tty2

tty3

tty4

tty5

tty6

tty7

tty8

ttyp0

ttyp1

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 182 / 435

Page 92:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

8 Pseudo terminaux 8.7 Terminaux sécurisés

� Contrôle d’accès sur Solaris

Au niveau de /etc/default/login :

...

# If CONSOLE is set, root can only login on that device.

# Comment this line out to allow remote login by root.

#

CONSOLE=/dev/console

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 183 / 435

9 Terminaux X, XDM

Chapitre 9

Terminaux X, XDM

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 184 / 435

Page 93:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.1 introduction sur les terminaux X

Chapitre 9 • Terminaux X, XDM§9.1 • introduction sur les terminaux X

Un terminal X est un poste de travail graphique :offrant le système graphique Xsans système d’exploitation complexe à gérer et à maintenirsimple à configurer

Après 2000, on constate :coût élevé d’un terminal X ; parfois plus cher qu’un poste PCWindows multimédiadésaffection des constructeurs (reste NCD)manque de périphériques supportés ; pas de floppy, pas de son, pas deUSB. . .

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 185 / 435

9 Terminaux X, XDM 9.2 XDM : X Display Management

Chapitre 9 • Terminaux X, XDM§9.2 • XDM : X Display Management

On parlera de serveur XDM pour une machine qui fait tourner l’application« xdm » qui implémente XDM.XDM est l’analogue graphique de la demande de login/password du modetexte. Visuellement, cela se traduit par une mire d’accueil.

login:

Password:

vangogh

Login:

Password:

XDM offre des possibilités :de fournir des mires d’accueil pour des terminaux X via des requêtesselon le protocole XDMCP (X Display Management Control Protocol)de gérer des serveurs X distants

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 186 / 435

Page 94:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.3 Requêtes XDMCP

Chapitre 9 • Terminaux X, XDM§9.3 • Requêtes XDMCP

3 formes de réquêtes :Forme 1 : direct queryLe serveur X contacte un serveur XDM nomément.

Forme 2 : broadcast queryUne requête est envoyée sur le réseau en mode broadcast et une mired’accueil est offerte par le premier serveur XDM qui peut répondre.

Forme 3 : indirect queryLe serveur X contacte une machine et lui demande la liste desserveurs XDM qu’elle connait. Le serveur X se voit proposer de choisirun hôte XDM parmi cette liste.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 187 / 435

9 Terminaux X, XDM 9.4 Gestion directe de serveurs X

Chapitre 9 • Terminaux X, XDM§9.4 • Gestion directe de serveurs X

XDM envoie de lui même des mires d’accueil à une liste de serveurs X.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 188 / 435

Page 95:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.5 Fichier de configuration xdm-config

Chapitre 9 • Terminaux X, XDM§9.5 • Fichier de configuration xdm-config

Traditionnellement dans l’un de ces répertoires :répertoire « /etc/X11/xdm »répertoire « /usr/X11R6/lib/X11/xdm »répertoire « /usr/openwin/lib/X11/xdm »

Ce fichier définit les noms et les répertoires des autres fichiers deconfiguration de « xdm » ainsi que quelques options de configuration :Par exemple :

DisplayManager.errorLogFile: /var/log/xdm-errors

DisplayManager.pidFile: /var/run/xdm-pid

DisplayManager.keyFile: /usr/X11R6/lib/X11/xdm/xdm-keys

DisplayManager.servers: /usr/X11R6/lib/X11/xdm/Xservers

DisplayManager.accessFile: /usr/X11R6/lib/X11/xdm/Xaccess

...

! SECURITY: do not listen for XDMCP or Chooser requests

! Comment out this line if you want to manage X terminals with xdm

DisplayManager.requestPort: 0

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 189 / 435

9 Terminaux X, XDM 9.6 Fichier de configuration Xaccess

Chapitre 9 • Terminaux X, XDM§9.6 • Fichier de configuration Xaccess

Ce fichier contient une liste de machines autorisées à se connecter à XDM.Par exemple :

## Direct queries

*## Indirect queries

* CHOOSER BROADCAST

La ligne avec l’étoile « * » indique que toute machine est autorisée àfaire une requête de type query direct.La seconde ligne indique qu’une sélection de hôtes XDM sera affichéà qui fera une requête de type indirect query et que la liste des hôtesXDM sera obtenue par broadcast.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 190 / 435

Page 96:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.7 Fichier de configuration Xservers

Chapitre 9 • Terminaux X, XDM§9.7 • Fichier de configuration Xservers

Ce fichier contient la liste des serveurs X gérés directement par XDM.

Par exemple :

# Console de la machine

:0 local /usr/X11R6/bin/X

# Autres terminaux

riri:0 foreign

fifi:0 foreign

loulou:0 foreign

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 191 / 435

9 Terminaux X, XDM 9.8 Fichier de configuration Xresources

Chapitre 9 • Terminaux X, XDM§9.8 • Fichier de configuration Xresources

Ce fichier contient les ressources pour personnaliser l’apparence de la mired’accueil.xlogin*greeting: Welcome to CLIENTHOST

xlogin*namePrompt: \040\040\040\040\040\040\040Login:

xlogin*fail: Login incorrect

#if WIDTH > 800

xlogin*greetFont: -adobe-helvetica-bold-o-normal--24-240-75-75-p-138-iso8859-1

xlogin*font: -adobe-helvetica-medium-r-normal--18-180-75-75-p-103-iso8859-1

xlogin*promptFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1

xlogin*failFont: -adobe-helvetica-bold-r-normal--18-180-75-75-p-103-iso8859-1

#else

xlogin*greetFont: -adobe-helvetica-bold-o-normal--17-120-100-100-p-92-iso8859-1

xlogin*font: -adobe-helvetica-medium-r-normal--12-120-75-75-p-69-iso8859-1

xlogin*promptFont: -adobe-helvetica-bold-r-normal--12-120-75-75-p-69-iso8859-1

xlogin*failFont: -adobe-helvetica-bold-o-normal--14-140-75-75-p-82-iso8859-1

#endif

#ifdef COLOR

xlogin*borderWidth: 1

xlogin*shdColor: grey30

...c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 192 / 435

Page 97:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.9 Application CHOOSER

Chapitre 9 • Terminaux X, XDM§9.9 • Application CHOOSER

Le sélecteur de hôtes XDM s’appelle le chooser.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 193 / 435

9 Terminaux X, XDM 9.9 Application CHOOSER

La liste des hôtes peut être obtenue par :

broadcastSyntaxe au niveau du fichier « Xaccess » :* CHOOSER BROADCAST

liste expliciteSyntaxe au niveau du fichier « Xaccess » :%hostlist cerise poire pomme

* CHOOSER %hostlist

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 194 / 435

Page 98:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.10 Ressources X pour XDM

Chapitre 9 • Terminaux X, XDM§9.10 • Ressources X pour XDM

Il y a diverses ressources de personnalisation de « xdm » :apparence de la mireapparence du choosermais aussi personnalisation de la configuration de XDM selon leserveur X géré :

display local « :0.0 » désigné par le mot clef « _0 »autre display « host:0.0 » désigné par le mot clef « host_0 »

Extrait d’un fichier « xdm-config » :

...

DisplayManager._0.authorize: true

! The following three resources set up display :0 as the console.

DisplayManager._0.setup: /usr/X11R6/lib/X11/xdm/Xsetup_0

DisplayManager._0.startup: /usr/X11R6/lib/X11/xdm/GiveConsole

DisplayManager._0.reset: /usr/X11R6/lib/X11/xdm/TakeConsole

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 195 / 435

9 Terminaux X, XDM 9.11 KDM : KDE Display Manager

Chapitre 9 • Terminaux X, XDM§9.11 • KDM : KDE Display Manager

Fichier de configuration : « /usr/local/share/config/kdm/kdmrc »Utilitaire de configuration : « /usr/local/bin/kdm_config »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 196 / 435

Page 99:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.12 GDM : Gnome Display Manager

Chapitre 9 • Terminaux X, XDM§9.12 • GDM : Gnome Display Manager

Fichier de configuration « /usr/X11R6/etc/gdm/gdm.conf »Utilitaire de configuration : « /usr/X11R6/bin/gdmconfig »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 197 / 435

9 Terminaux X, XDM 9.13 Session X de l’utilisateur

Chapitre 9 • Terminaux X, XDM§9.13 • Session X de l’utilisateur

xdm crée un shell sur le serveur de calcul qui configure l’environnementgraphique de l’utilisateur via le fichier « $HOME/.xsession ».

⇒ la durée de vie de la session sous X est celle du script« $HOME/.xsession »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 198 / 435

Page 100:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

9 Terminaux X, XDM 9.13 Session X de l’utilisateur

En général :

#!/bin/sh

appliX1 &

appliX2 &

...

appliXn &

appliX

Le dernier client X n’est pas lancé en tâche de fond. En général, le dernierclient est un window manager.

Cf ftp://ftp.lip6.fr/pub/doc/faqs/x-faq/speedups.gz

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 199 / 435

9 Terminaux X, XDM 9.14 Mode Failsafe

Chapitre 9 • Terminaux X, XDM§9.14 • Mode Failsafe

S’il y a des erreurs, les messages de celles-ci sont écrits dans le fichier« $HOME/.xsession-errors ».En cas d’erreur grave dans « $HOME/.xsession » empêchant ledémarrage de la session X, utiliser le mode FailSafe :

1 entrer le nom de login2 valider par la tocuhe Retour3 entrer le mot de passe4 valider par la touche F1 et non pas par la touche Retour

Il apparait alors un simple xterm sans window manager.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 200 / 435

Page 101:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers

Chapitre 10

Terminaux légers

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 201 / 435

10 Terminaux légers 10.1 Problématique

Chapitre 10 • Terminaux légers§10.1 • Problématique

Un «vrai» terminal X est maintenant trop cher.Un «vrai» terminal X est maintenant trop limitatif : pas de multimédiaSolution : le client léger

Appelation un peu abusive. Ni un PC. Ni un terminal X :succédané d’architecture de PC x86faible consommation électrique ⇒ pas de ventilateur ⇒ silencieuxmémoire flash (pas de disque dur local)système d’exploitation de type LINUX minimaliste ou Windows CE ⇒support des périphériques récents (USB, wake-on-lan, . . .)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 202 / 435

Page 102:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.2 RDP

Chapitre 10 • Terminaux légers§10.2 • RDP

RDP ≡ Remote Desktop ProtocolActuellement version 5.1Développé par Microsoft.

Caractéristiques : 64000 channels possibles, redirection des ports parallèleset du port IDE, clipboard manager, virtual channel

Se reporter à :http://www.microsoft.com/windows2000/techinfo/howitworks/terminal/rdpfandp.asp

http://www.microsoft.com/windowsxp/remotedesktop/faq.asp

http://www.microsoft.com/windowsxp/pro/using/howto/gomobile/remotedesktop/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 203 / 435

10 Terminaux légers 10.2 RDP

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 204 / 435

Page 103:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.2 RDP

A noter le client RDP Linux RDESKTOP, http://www.rdesktop.org/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 205 / 435

10 Terminaux légers 10.3 ICA

Chapitre 10 • Terminaux légers§10.3 • ICA

ICA ≡ Independant Client ArchitectureActuellement version 6Développé par la société CITRIX.Dialogue avec le logiciel METAFRAME de CitrixLoad balancingAccès modem optimiséLicences ICA nécessaires par client ou par posteSe reporter à : http://www.citrix.com/

Mon avis :cela fonctionne bien quand cela fonctionneil existe des clients ICA pour Unix mais ce n’est pas le scenario quecherche à pousser CITRIX⇒ support logiciel minable pour la clientèle Unix

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 206 / 435

Page 104:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.3 ICA

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 207 / 435

10 Terminaux légers 10.3 ICA

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 208 / 435

Page 105:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.3 ICA

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 209 / 435

10 Terminaux légers 10.4 VNC

Chapitre 10 • Terminaux légers§10.4 • VNC

http://www.uk.research.att.com/vnc/

VNC ≡ Virtual Network ComputingVNC est un logiciel permettant de viusaliser le bureau de n’importe quelordinateur Macintosh, Windows, Unix depuis Internet (en l’occurencedepuis Macintosh, Windows, Unix, browser avec java).Le logiciel se compose :

une partie de visualisation dite vncviewerune partie serveur

Le logiciel est utilisable même avec une liaison téléphonique avec unmodem à 38400 bauds (testé).ATTENTION dans le cas Windows : VNC n’est pas une extension à laTerminal Server. VNC est un partage, une prise en main de l’écrandistant du PC.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 210 / 435

Page 106:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.4 VNC

Prenons le cas d’un vncviewer Unix qui se connectera à un vncserverWindows.La connexion s’établit après demande du serveur à contacter :

et la demande du mot de passe permettant de piloter le bureau distant duserveur :

et après quelques lignes de texte de renseignements sur le serveur VNC :% vncviewerVNC server supports protocol version 3.3 (viewer 3.3)VNC authentication succeededDesktop name "w2k"Connected to VNC server, using protocol version 3.3VNC server default format:32 bits per pixel.Least significant byte first in each pixel.True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0Using default colormap which is TrueColor. Pixel format:32 bits per pixel.Most significant byte first in each pixel.True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 211 / 435

10 Terminaux légers 10.4 VNC

On obtient bien le bureau distant directement manipulable depuis sonpropre bureau :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 212 / 435

Page 107:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.4 VNC

A noter une réalisation matérielle et commerciale avec VNC : les terminauxAXEL AX3000 Model 65 (cf http://www.axel.com – produit français !)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 213 / 435

10 Terminaux légers 10.5 SUNRAY

Chapitre 10 • Terminaux légers§10.5 • SUNRAY

C’est un poste de travail «comme les autres» :Pas de disque durPas d’applications localesPas d’alimentation externePas de configurationPas de système d’exploitationPas de barrette mémoirePas de ventilateurPas de paramétrage particulierIl est 10 fois plus léger qu’un PC et 12 fois moins volumineuxIl peut même s’intégrer dans un écran cathodique 17 pouces ou unécran plat de 15 pouces...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 214 / 435

Page 108:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.5 SUNRAY

Avantages :Instantané, constant et simpleGestion centraliséeJamais besoin de mise à jourSilencieux16 millions de couleurs (24 bits)Pas de setupDonc, pas de dé-setupPas de modifications de vos applicationsAUCUN tranfert de fichier au bootMise en production la plus rapide du monde !

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 215 / 435

10 Terminaux légers 10.5 SUNRAY

Caractéristiques hardware :CPU Sparc1280 x 1024 @ 76 Hzframe buffer 24 bits10/100Mb EthernetAccès a Solaris , X11, Java ,ICAfonctionnalités multimédiaLecteur de carte à puceE/S audio qualité CDEntrée vidéo NTSC/PALSupport USB ( 4 ports ) maislimité en pratique. . .

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 216 / 435

Page 109:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.5 SUNRAY

Architecture réseau :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 217 / 435

10 Terminaux légers 10.5 SUNRAY

Architecture logicielle :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 218 / 435

Page 110:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

10 Terminaux légers 10.5 SUNRAY

Architecture logicielle (2) :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 219 / 435

10 Terminaux légers 10.5 SUNRAY

Cohabitation avec Windows possible :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 220 / 435

Page 111:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP

Chapitre 11

Protocole IP

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 221 / 435

11 Protocole IP 11.1 Introduction

Chapitre 11 • Protocole IP§11.1 • Introduction

Complément du cours réseau de Sylvie Dupuy, Christian Hascoet,Sébastien Vautherot.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 222 / 435

Page 112:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.2 Ethernet

Chapitre 11 • Protocole IP§11.2 • Ethernet

Le principe d’Ethernet : Carrier Sence Multiple Access / Collision Detect(CSMA/CD)

2 cas de figure :1 Emission dans le cas du câble libre2 Collision lorsque deux stations émettent simultanément

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 223 / 435

11 Protocole IP 11.2 Ethernet

� Emission dans le cas du câble libre

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 224 / 435

Page 113:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.2 Ethernet

� Collision lorsque deux stations émettent simultanément

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 225 / 435

11 Protocole IP 11.2 Ethernet

Tendances actuelles :Ethernet Gigabitcablage cuivre, fibre optiqueSwitches

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 226 / 435

Page 114:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.2 Ethernet

Format d’une adresse Ethernet : 6 octets écrits sous la forme hexadécimale« xx:yy:zz:rr:ss:tt » avec :

partie « xx:yy:zz » : elle identifie un constructeurpartie « rr:ss:tt » : elle identifie un appareil chez le constructeur

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

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

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 227 / 435

11 Protocole IP 11.3 Adresses IP

Chapitre 11 • Protocole IP§11.3 • Adresses IP

Quelques caractéristiques :protocole IP version 4adresse IP sur 4 octets « a.b.c.d »a, b, c, d sont compris entre 0 et 255 et écrits en base 10 pour éviterdes erreurs% man 3 inet

...

All numbers supplied as ‘‘parts’’ in a ‘.’ notation may be decimal, oc-

tal, or hexadecimal, as specified in the C language (i.e., a leading 0x

or 0X implies hexadecimal; otherwise, a leading 0 implies octal; other-

wise, the number is interpreted as decimal).

...

des organismes attribuent des lots d’adresses aux sociétés (pour laFrance « http://www.afnic.asso.fr »)notion de classes d’adresses mais devient obsolète

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 228 / 435

Page 115:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.3 Adresses IP

Classe Format des adresses

A

7 bits 24 bits

0 netid hostid

0.0.0.0 à 127.255.255.255

B

16 bits14 bits

1 0 netid hostid

128.0.0.0 à 191.255.255.255

C

21 bits 8 bits

01 1 netid hostid

192.0.0.0 à 223.255.255.255

D

28 bits

0111 multicast groupid

224.0.0.0 à 239.255.255.255

E

27 bits

01 1 1 1 (reserved for future use)

240.0.0.0 à 247.255.255.255

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 229 / 435

11 Protocole IP 11.4 Adresse spéciale : adresse de loopback

Chapitre 11 • Protocole IP§11.4 • Adresse spéciale : adresse de loopback

Interface virtuelle de loopback d’adresse IP « 127.0.0.1 »

Permet de faire des connexions réseau avec soi-même.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 230 / 435

Page 116:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.5 Netmask

Chapitre 11 • Protocole IP§11.5 • Netmask

Le problème : comment la station A construit-elle les paquets Ethernetpour dialoguer avec la machine B, où que soit la station B ?

La difficulté : si B n’est pas sur le même réseau que A, il faut construire unpaquet avec pour adresse Ethernet de destination l’adresse Ethernet durouteur et non pas avec l’adresse Ethernet de B.

La solution : A et B sont sur le même réseau physique si IP(A) et IP(B)partagent une même propriété. En l’occurence si

IP(A) & netmask(A) = IP(B) & netmask(A)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 231 / 435

11 Protocole IP 11.6 Adresse de broadcast

Chapitre 11 • Protocole IP§11.6 • Adresse de broadcast

Chaque machine IP écoute un paquet IP avec l’adresse de broadcast pouradresse de destination et répond peut-être suivant le type du paquet.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 232 / 435

Page 117:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.7 Configuration de l’adresse réseau Unix : ifconfig

Chapitre 11 • Protocole IP§11.7 • Configuration de l’adresse réseau Unix : ifconfig

(en anglais interface configuration)

La commande « ifconfig » sert à régler les paramètres des cartes réseau :

# 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 233 / 435

11 Protocole IP 11.7 Configuration de l’adresse réseau Unix : ifconfig

Sur une machine Linux, les cartes réseau ont pour noms « eth0 »,« eth1 », « eth2 », etc.

Sur une machine Linux, la paramètrage réseau de la carte « eth0 » setrouve au niveau du fichier« /etc/sysconfig/network-scripts/ifcfg-eth0 » (ainsi de suitepour 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

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 234 / 435

Page 118:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.7 Configuration de l’adresse réseau Unix : ifconfig

Sur une machine SOLARIS, les cartes réseau ont des noms dépendant dutype de carte. Par exemple « le0 », « eri0 », « qfe0 » + « qfe1 » +« qfe2 » + « qfe3 » (carte quad port 10/100), etc.

Sur une machine SOLARIS, la paramètrage réseau de la carte XYZ setrouve au niveau du fichier /etc/hostname.XYZ :

-rw-r--r-- 1 root root 19 Dec 4 01:35 /etc/hostname.eri0

qui contient le hostname associé à la carte : hostname → adresse réseauvia « /etc/host »

Broadcast, netmask déduits

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 235 / 435

11 Protocole IP 11.8 Configuration d’adresses réseau virtuelles

Chapitre 11 • Protocole IP§11.8 • Configuration d’adresses réseau virtuelles

Sur une machine Linux, si la carte réseau s’appelle par exemple « eth0 »,alors les adresses virtuelles utiliseront les interfaces réseau virtuelles denoms « eth0:0 », « eth0:1 », « eth0:2 », etc.Sur une machine Linux, la paramètrage réseau de l’adresse virtuelle« eth0:0 » se trouve au niveau du fichier« /etc/sysconfig/network-scripts/ifcfg-eth0:0 » (ainsi de suitepour les autres interfaces) :

DEVICE=eth0:0BOOTPROTO=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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 236 / 435

Page 119:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.8 Configuration d’adresses réseau virtuelles

Sur une machine SOLARIS, si la carte réseau s’appelle par exemple« eri0 », alors les adresses virtuelles utiliseront les interfaces réseauvirtuelles de noms « eri0:1 », « eri0:2 », « eri0:3 », etc.

Sur une machine SOLARIS, la paramètrage réseau d’une interfacevirtuelle « eri0:1 » se trouvera donc au niveau du fichier« /etc/hostname.eri0:1 » :

-rw-r--r-- 1 root root 19 Dec 4 01:35 /etc/hostname.eri0:1

qui contient le hostname associé à l’interface virtuelle :hostname → adresse réseau via « /etc/host »

Broadcast, netmask déduits

Manuellement « ifconfig eri0 addif 192.168.0.1/prefix up »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 237 / 435

11 Protocole IP 11.9 (Windows : : netsh.exe)

Chapitre 11 • Protocole IP§11.9 • (Windows : : netsh.exe)

La commande « netsh » permet de configurer en mode ligne decommande beaucoup d’aspects réseau.

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 238 / 435

Page 120:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.10 Annuaire basique : /etc/hosts

Chapitre 11 • Protocole IP§11.10 • Annuaire basique : /etc/hosts

Le fichier « /etc/hosts » liste des couples (adresse IP, FQDN).

Par convention, le nom principal d’une machine est un FQDN (FullyQualified Domain Name) :

« solaris » n’est pas un FQDN car le nom n’est pas qualifié« example.com » est un nom de domaine.« solaris.example.com » est un FQDN

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 239 / 435

11 Protocole IP 11.11 Routage : route

Chapitre 11 • Protocole IP§11.11 • Routage : route

La commande « route » sert à configurer le routage.Sur Linux :

# route add default gw 134.157.253.126

Sur Solaris :

# route add default 134.157.253.126

Sur une machine linux, se reporter au fichier« /etc/sysconfig/network » :

NETWORKING=yes

FORWARD_IPV4=false

HOSTNAME=pcars5.formation.jussieu.fr

DOMAINNAME=formation.jussieu.fr

NISDOMAIN=real.world

GATEWAY=134.157.253.126

GATEWAYDEV=eth0

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 240 / 435

Page 121:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.12 (Windows : : route.exe)

Chapitre 11 • Protocole IP§11.12 • (Windows : : route.exe)

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 241 / 435

11 Protocole IP 11.13 Routage : netstat

Chapitre 11 • Protocole IP§11.13 • Routage : netstat

La commande « netstat -r » renvoie la table de routage d’une machineUnix :

% netstat -rn

Routing Table:

Destination Gateway Flags Ref Use Interface

-------------------- -------------------- ----- ----- ------ ---------

255.255.255.255 134.157.253.1 UGH 0 0

134.157.253.0 134.157.253.1 U 3 227555 le0

224.0.0.0 134.157.253.1 U 3 0 le0

default 134.157.253.126 UG 0 230176

127.0.0.1 127.0.0.1 UH 0 28650 lo0

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 242 / 435

Page 122:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.14 (Windows : : netstat.exe)

Chapitre 11 • Protocole IP§11.14 • (Windows : : netstat.exe)

Même 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 Scheduler Miniport

0x6 ...00 0d 56 ad cc be ...... Broadcom 440x 10/100 Integrated Controller - Packet Scheduler Miniport

===========================================================================

===========================================================================

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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 243 / 435

11 Protocole IP 11.14 (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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 244 / 435

Page 123:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.15 Liste des ports réseau actifs : netstat

Chapitre 11 • Protocole IP§11.15 • Liste des ports réseau actifs : netstat

La commande « netstat -a » (option « -n » pour ne pas résoudre lesadresses via le DNS) renvoie la liste des connexions réseau établies ou enattente d’établissement de connexion :% netstat -an

vmware# netstat -an

Active Internet connections (including servers)

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp4 0 48 192.168.1.10.22 192.168.1.1.33580 ESTABLISHED

tcp4 0 0 *.587 *.* LISTEN

tcp4 0 0 *.25 *.* LISTEN

tcp4 0 0 192.168.1.20.25 *.* LISTEN

tcp4 0 0 192.168.1.30.465 *.* LISTEN

tcp4 0 0 192.168.1.10.22 *.* LISTEN

tcp4 0 0 192.168.1.82.80 *.* LISTEN

tcp4 0 0 192.168.1.80.80 *.* LISTEN

tcp4 0 0 192.168.1.81.80 *.* LISTEN

tcp4 0 0 192.168.1.22.143 *.* LISTEN

tcp4 0 0 192.168.1.32.993 *.* LISTEN

tcp4 0 0 192.168.1.80.21 *.* LISTEN

tcp4 0 0 192.168.1.80.22 *.* LISTEN

tcp6 0 0 *.658 *.* LISTEN

...c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 245 / 435

11 Protocole IP 11.15 Liste des ports réseau actifs : netstat

udp4 0 0 192.168.1.10.52403 192.168.1.1.53

udp6 0 0 *.687 *.*udp6 0 0 *.689 *.*udp4 0 0 *.690 *.*udp4 0 0 *.980 *.*udp6 0 0 *.911 *.*udp6 0 0 *.2049 *.*...

Active UNIX domain sockets

Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr

c23cec08 stream 0 0 c27c2880 0 0 0 /tmp/ssh-dxftMovfYc/agent.688

c23cdd20 stream 0 0 c25e9110 0 0 0 /local/prog/clamav/var/run/milter.sock

c23cddac stream 0 0 c25e9440 0 0 0 /local/prog/clamav/var/run/clamd.sock

c23cdc08 stream 0 0 0 c23cdaf0 0 0

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 246 / 435

Page 124:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.16 (Windows : : netstat.exe)

Chapitre 11 • Protocole IP§11.16 • (Windows : : netstat.exe)

Même 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 Local Address Foreign Address State

TCP 0.0.0.0:25 0.0.0.0:0 LISTENING

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING

TCP 0.0.0.0:135 0.0.0.0:0 LISTENING

TCP 0.0.0.0:443 0.0.0.0:0 LISTENING

TCP 0.0.0.0:445 0.0.0.0:0 LISTENING

TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING

TCP 127.0.0.1:1027 0.0.0.0:0 LISTENING

TCP 192.168.1.1:139 0.0.0.0:0 LISTENING

TCP 192.168.2.1:139 0.0.0.0:0 LISTENING

TCP 192.168.8.1:139 0.0.0.0:0 LISTENING

UDP 0.0.0.0:445 *:*UDP 0.0.0.0:500 *:*

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 247 / 435

11 Protocole IP 11.17 Tests de connectivité : ping

Chapitre 11 • Protocole IP§11.17 • Tests de connectivité : ping

La commande « ping » teste si une machine répond au niveau réseau.% ping localhost

localhost is alive

On peut parfois pinger l’adresse de broadcast :

% /usr/sbin/ping -s 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 248 / 435

Page 125:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.18 (Windows : : ping.exe)

Chapitre 11 • Protocole IP§11.18 • (Windows : : ping.exe)

Même principe sur Unix :

C:\Documents and Settings\ars>ping 127.0.0.1

Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Reply from 127.0.0.1: bytes=32 time<1ms 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 249 / 435

11 Protocole IP 11.19 Tests de connectivité : traceroute

Chapitre 11 • Protocole IP§11.19 • Tests de connectivité : traceroute

La commande « traceroute » permet de tester si une machine estjoignable. Elle renvoie les intermédiaires réseau qui route notreacheminement 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 d’intermédiaires n’est pas proportionnel à l’éloignementgéographique de la machine destination.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 250 / 435

Page 126:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.20 (Windows : : tracert.exe)

Chapitre 11 • Protocole IP§11.20 • (Windows : : tracert.exe)

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 251 / 435

11 Protocole IP 11.21 Utilitaire libpcap

Chapitre 11 • Protocole IP§11.21 • Utilitaire libpcap

(en anglais library packet capture)

Cf « http://www.tcpdump.org/ »

C’est une bibliothèque de programmation C spécialisée dans la capture depaquets réseau.

Elle repose sur un driver réseau présent dans le noyau, le packet filter BPF.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 252 / 435

Page 127:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.22 (Windows : : netcap.exe)

Chapitre 11 • Protocole IP§11.22 • (Windows : : netcap.exe)

Dans le CDROM Windows XP, installer« SUPPORT\TOOLS\support.cab » :netcap

C:\> netcap.exe /N:4

A completer...netmon ?

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 253 / 435

11 Protocole IP 11.23 Utilitaire tcpdump

Chapitre 11 • Protocole IP§11.23 • Utilitaire tcpdump

Cf http://www.tcpdump.org/Version 3.7.1 (au 27 août 2002)C’est le logiciel de référence en ce qui concerne l’analyse des trames IPcirculant sur un réseau. Il est bâti au dessus de la libpcap qui fait tout letravail en fait. C’est juste de l’enrobage au dessus de libpcap.En cas de problème réseau, on utilisera ce logiciel si l’origine du problèmen’est pas évidente.Exemple :

# tcpdump -s 1500 host www.example.com

# tcpdump -s 1500 arp

# tcpdump -s 1500 icmp

# tcpdump -s 1500 dst sgbd.example.com port 5432

# tcpdump -s 1500 -w fichier

# tcpdump -s 1500 -r fichier

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 254 / 435

Page 128:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.24 Utilitaire ethereal

Chapitre 11 • Protocole IP§11.24 • Utilitaire ethereal

http://www.ethereal.com

C’est un logiciel graphique d’analyse des trames IP circulant sur un réseau.

On l’utilise conjointement à tcpdump :1 on demande à « tcpdump » d’enregistrer les trames :

« tcpdump -s 1500 -w enregistrement »2 on demande à « etherreal » de relire a posteriori ce fichier

d’enregistrement :« ethereal enregistrement »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 255 / 435

11 Protocole IP 11.24 Utilitaire ethereal

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 256 / 435

Page 129:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.25 (Windows : : etherreal.exe)

Chapitre 11 • Protocole IP§11.25 • (Windows : : etherreal.exe)

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 257 / 435

11 Protocole IP 11.26 Utilitaire lsof

Chapitre 11 • Protocole IP§11.26 • Utilitaire lsof

(en anglais List of open files)ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/

« lsof » permet de connaître les filedescriptors ouverts sur une machineUnix. Cela comprend les connexions réseau.

Par exemple, pour voir quels processus utilisent la partition « /var/run » :

% lsof /var/run

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

lpd 410 daemon 6u VREG 0,1 4 2193737 /var/run (swap)

dhcpd 12548 root 6w VREG 0,1 469 1571881 /var/run (swap)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 258 / 435

Page 130:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.26 Utilitaire lsof

Par exemple pour voir qui utilise une certaine connexion TCP :

% lsof -i tcp:32771

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

inetd 320 root 18u IPv4 0x3000200f350 0t0 TCP *:32771 (LISTEN)

Par exemple pour voir qui utilise une certaine connexion UDP :

% lsof -i [email protected]:3853

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

ss_logd 232 root 3u IPv4 0x30001d961c0 0t0 UDP localhost:3853 (Idle)

(format « [protocol][@hostname|hostaddr][:service|port] »)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 259 / 435

11 Protocole IP 11.27 Logiciels de dessin de réseaux

Chapitre 11 • Protocole IP§11.27 • Logiciels de dessin de réseaux

Plusieurs logiciels disponibles mais incompatibles :

VISIO, disponible dans Microsoft Office sous Windows :http://www.microsoft.com/

DIA, disponible sur Unix ou Windows :http://www.gnome.org/projects/dia/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 260 / 435

Page 131:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

11 Protocole IP 11.27 Logiciels de dessin de réseaux

Bibliothèque de symboles CISCO dans DIA :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 261 / 435

11 Protocole IP 11.28 Un peu de bibliographie

Chapitre 11 • Protocole IP§11.28 • Un peu de bibliographie

TCP/IP Illustrated volume 1, par Richard Stevens, Addison WesleyTCP/IP Illustrated volume 2, par Richard Stevens, Addison WesleyTCP/IP Illustrated volume 3, par Richard Stevens, Addison Wesleyhttp://www.naoa.edu/~rstevens/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 262 / 435

Page 132:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS)

Chapitre 12

Domain Name Server (DNS)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 263 / 435

12 Domain Name Server (DNS) 12.1 Principes du DNS

Chapitre 12 • Domain Name Server (DNS)§12.1 • Principes du DNS

Impossibilité pratique de maintenir à jour les fichiers « /etc/hosts ».⇒ remplacement par un mécanisme d’annuaire réparti dont chacun gèresa entrée propre : le Domain Name Server

Particularités de la base de données du DNS :répartiepetiteavec une faible fréquence de changements des donnéeshiérarchiséeaccès en consultation uniquement ; pas de requête de modification

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 264 / 435

Page 133:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.2 Zone DNS

Chapitre 12 • Domain Name Server (DNS)§12.2 • Zone DNS

zone DNS : reflet de l’aspect réparti et hiérarchisé du DNS

partie contigüe de l’arbreune zone parente délègue une zone fille à un ou plusieurs serveursd’informations (nameservers) sur la zone fille

.

com net fr

lycos jussieu

formation aero www

216-pc01 216-pc02

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 265 / 435

12 Domain Name Server (DNS) 12.3 Requête d’interrogation du DNS

Chapitre 12 • Domain Name Server (DNS)§12.3 • Requête d’interrogation du DNS

Le DNS est bâti selon un modèle client – serveur

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

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 266 / 435

Page 134:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.3 Requête d’interrogation du DNS

Le DNS utilise des root nameservers :

Pour assurer un service fiable, une zone est servie par un nameserverprimaire et plusieurs nameservers secondaires de secours qui sesynchronisent entre eux.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 267 / 435

12 Domain Name Server (DNS) 12.3 Requête d’interrogation du DNS

Principe de mémorisation des informations passées recueillies pouraccélérer les réponses aux requêtes.

L’information a une date de péremption (TTL = Time To Live).

Le serveur qui mémorise un record DNS n’a pas autorité dessus.

Chaque enregistrement de la base de données a :une classe ; la plus courante : IN (Internet)un type : A, PTR, NS, SOA, MX, CNAME, . . .

et est donc de la forme :(classe, type, clé, valeur, TTL)

Une requête ressemble alors à :

(classe, type, clé, ?, ?)

(classe, *, clé, ?, ?)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 268 / 435

Page 135:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.4 Implémentation : BIND, named

Chapitre 12 • Domain Name Server (DNS)§12.4 • Implémentation : BIND, named

URL : http://www.isc.org/products/BIND/Versions 8.3.3 et 9.2.1 (vérifier la disponibilité de versions plus récentes)Démon « named »

Fichier de configuration « /etc/named.conf » (en général).Directory « /etc/namedb » stockant les fichiers de zone (en général).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 269 / 435

12 Domain Name Server (DNS) 12.4 Implémentation : 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 270 / 435

Page 136:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.4 Implémentation : 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. IN A

;; ANSWER SECTION:

dmi.ens.fr. 172800 IN A 129.199.96.11

;; AUTHORITY SECTION:

ens.fr. 172800 IN NS oseille.ens.fr.

ens.fr. 172800 IN NS dmi.ens.fr.

ens.fr. 172800 IN NS ext.lri.fr.

ens.fr. 172800 IN NS ns2.nic.fr.

ens.fr. 172800 IN NS clipper.ens.fr.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 271 / 435

12 Domain Name Server (DNS) 12.4 Implémentation : BIND, named

;; ADDITIONAL SECTION:

ext.lri.fr. 290218 IN A 129.175.15.4

ns2.nic.fr. 285943 IN A 192.93.0.4

clipper.ens.fr. 172800 IN A 129.199.129.1

oseille.ens.fr. 172800 IN A 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. CH TXT

;; ANSWER SECTION:

version.bind. 0 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 272 / 435

Page 137:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.5 F.root-servers.net (vieille version)

Chapitre 12 • Domain Name Server (DNS)§12.5 • F.root-servers.net (vieille version)

OBSOLÈTE mais laissé pour se faire une idée

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 273 / 435

12 Domain Name Server (DNS) 12.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 DNSservers 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 272million DNS queries per day, making it one of the busiest DNS servers inthe world. In fact, it is often the busiest root nameserver on the Internet.

F is a virtual server made up of multiple (currently two) HP AlphaServers,donated to us by HP’s Western Research Laboratory(http://www.research.digital.com/wrl/). Each server is a HPES40 AlphaServer with 4 500mhz CPUs and 8Gig of RAM, and runs ISCBIND 8.3.2 as its DNS server.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 274 / 435

Page 138:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.5 F.root-servers.net (vieille version)

The servers are hosted at PAIX.net, Inc. (http://www.paix.net/) inPalo Alto, California and are connected to the Internet via fdx FastEthernet 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 275 / 435

12 Domain Name Server (DNS) 12.6 F.root-servers.net (à jour)

Chapitre 12 • Domain Name Server (DNS)§12.6 • F.root-servers.net (à jour)

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

2 nœuds globaux, plus de trente nœuds locaux répartis dans divers pays.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 276 / 435

Page 139:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.7 Utilitaire rndc

Chapitre 12 • Domain Name Server (DNS)§12.7 • Utilitaire rndc

Syntaxe : rndc [options] cmd

Il contrôle le fonctionnement de « named » à distance via TCP(« rndc.conf » contient des clefs d’accès).

« status » status de NAMED« dumpdb » dumpe la base et le cache dans

« /var/tmp/named_dump.db »« reload » recharge les zones primaires et se-

condaires« stats » dumpe les statistiques dans

« /var/tmp/named.stats »« trace/notrace » gestion du niveau de trace dans

« /var/tmp/named.run »« start » démarre NAMED« stop » arrête NAMED en sauvant les

mises à jour en cours« halt » arrête NAMED froidement« restart » arrête et redémarre NAMED

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 277 / 435

12 Domain Name Server (DNS) 12.8 Fichier /etc/resolv.conf

Chapitre 12 • Domain Name Server (DNS)§12.8 • Fichier /etc/resolv.conf

Consultation des nameservers indiqués via le fichier« /etc/resolv.conf »

Exemple de fichier « /etc/resolv.conf » :

domain formation.jussieu.fr

search formation.jussieu.fr jussieu.fr

nameserver 134.157.253.1

nameserver 134.157.0.129

Attention :Au plus 3 lignes « nameserver ».Tous les Unix ne comprennent pas la directive « search ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 278 / 435

Page 140:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.9 Utilitaire nslookup

Chapitre 12 • Domain Name Server (DNS)§12.9 • Utilitaire nslookup

Syntaxe : nslookup [options] à-résoudre

% /usr/sbin/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 qu’elle a déjà été résolue dansun passé récent.

Cet utilitaire tombe en désuétude.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 279 / 435

12 Domain Name Server (DNS) 12.10 Utilitaire dig

Chapitre 12 • Domain Name Server (DNS)§12.10 • Utilitaire dig

C’est le remplaçant de « nslookup ». Il est très low level.Syntaxe : dig [options] à-résoudre

Quelques flags utilisés :flag « QR » : Queryflag « AA » : AuthoritativeAnswerflag « TC » : TCPflag « RD » : Recursion Desiredflag « RA » : RecursionAvailableflag « AD » : Authentic Data(DNSSEC)

flag « CD » : Checking Disabled(DNSSEC)

1 1 1 1 1 10 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 280 / 435

Page 141:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.10 Utilitaire dig

� Exemple 1 : récursivité 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. 172800 IN NS DNS.CS.WISC.EDU.

fr. 172800 IN NS NS1.NIC.fr.

fr. 172800 IN NS NS3.NIC.fr.

fr. 172800 IN NS DNS.INRIA.fr.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 281 / 435

12 Domain Name Server (DNS) 12.10 Utilitaire 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. 345600 IN NS shiva.jussieu.fr.

jussieu.fr. 345600 IN NS cendrillon.lptl.jussieu.fr.

jussieu.fr. 345600 IN NS soleil.uvsq.fr.

;; Received 166 bytes 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 mécanisme de consultations des différents nameservers.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 282 / 435

Page 142:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.10 Utilitaire 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 283 / 435

12 Domain Name Server (DNS) 12.10 Utilitaire 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 284 / 435

Page 143:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.10 Utilitaire dig

� Exemple 3 : réponse en cas d’erreur

% 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 86400

;; 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 285 / 435

12 Domain Name Server (DNS) 12.10 Utilitaire dig

� Exemple 4 : précision du type du recordPremière 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 286 / 435

Page 144:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.10 Utilitaire dig

Deuxième 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. hostmaster.easynet.fr. (

2001020101 ; serial

1H ; refresh

30M ; retry

4W ; expiry

2H ) ; 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 287 / 435

12 Domain Name Server (DNS) 12.11 Record de type PTR

Chapitre 12 • Domain Name Server (DNS)§12.11 • Record de type PTR

On peut aussi interroger un nameserver pour résoudre 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

Authoritative answers can be found from:

79.252.193.in-addr.arpa nameserver = ns1.fth.net

79.252.193.in-addr.arpa nameserver = ns2.fth.net

ns1.fth.net internet address = 193.252.251.253

ns2.fth.net internet address = 193.252.69.217

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 288 / 435

Page 145:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.11 Record de type PTR

.

arpa

in−addr

134

157

253

1

fr

jussieu

formation

sunars1

sunars1.formation.jussieu.fr

134.157.253.1

Assurerla coherence

Une faute courante : oublier de mettre à jour l’entrée relative à l’adresseIP de la machine.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 289 / 435

12 Domain Name Server (DNS) 12.12 Fichier /etc/nsswitch.conf

Chapitre 12 • Domain Name Server (DNS)§12.12 • Fichier /etc/nsswitch.conf

Certains systèmes Unix permettent de spécifier quelles méthodes derésolution utiliser (DNS, « /etc/hosts », NIS) ainsi que l’ordred’enchaînement des méthodes.Sur Linux et Solaris, cf « /etc/nsswitch.conf » :

...

hosts: files nisplus nis dns

...

ou

...

hosts: xfn nisplus dns [NOTFOUND=return] files

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 290 / 435

Page 146:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.13 Délégation d’une partie de classe C

Chapitre 12 • Domain Name Server (DNS)§12.13 • Délégation d’une partie de classe C

� RFC 2317

http://www.lip6.fr/pub/rfc/rfc/rfc2317.txt.gz

Avis : Mécanisme astucieux mais un peu compliqué à mettre en œuvre enpratique.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 291 / 435

12 Domain Name Server (DNS) 12.13 Délégation d’une partie de classe C

� WebDNS

Logiciel WebDNS : http://www-crc.u-strasbg.fr/webdns/Principe : générer les données via une vraie base de données avec toutesles possibilités fines associées (par exemple une personne peut avoir ledroit SQL de modifier un et un seul record DNS dans la base SQL)Logiciel non réservé aux sous classes C. En utilisation sur le campus deJussieu par exemple.

Avis : Approche très tendance pour résoudre un problème de fond dans leprincipe du DNS lors de vrais déployements.Avis 2 : Nouvel exemple de couplage à une base de données.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 292 / 435

Page 147:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.13 Délégation d’une partie de classe C

DNS

PostgreSQL

HTTP/HTTPS

PostgreSQL

Serveur DNS (client PostgreSQL)

Serveur Web (client PostgreSQL)

Serveur de données (PostgreSQL)

Internet

Base

données

named.boot

defichiers

dezones

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 293 / 435

12 Domain Name Server (DNS) 12.14 Nom de machine, hostname

Chapitre 12 • Domain Name Server (DNS)§12.14 • Nom de machine, hostname

Caractères autorisés : cf RFC 952 et RFC 1123En résumé :

lettres majusculeslettres minusculeschiffrescaractère « - »

http://www.lip6.fr/pub/rfc/rfc/rfc952.txt.gz

http://www.lip6.fr/pub/rfc/rfc/rfc1123.txt.gz

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 294 / 435

Page 148:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.15 WHOIS

Chapitre 12 • Domain Name Server (DNS)§12.15 • WHOIS

WHOIS ≡ base de données des informations relatives à l’attribution desplages d’adresses IP et des noms de domaines.Exemple d’un protocole Internet loupé car les implémentations ne sont pascompatibles entre elles. RFC 954, port TCP 43Protocole exploitable par la commande « whois ».Syntaxe : « whois [ -h server-whois ] adresse-ou-domaine »

Quelques serveurs WHOIS (cf annexe pour une liste plus longue) :rs.internic.net

whois.nic.fr ou via un interface WWW :http://www.afnic.asso.fr/cgi-bin/whois

whois.ripe.net

Exemple : cf annexe

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 295 / 435

12 Domain Name Server (DNS) 12.16 Espace de confiance

Chapitre 12 • Domain Name Server (DNS)§12.16 • Espace de confiance

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 296 / 435

Page 149:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

12 Domain Name Server (DNS) 12.17 Un peu de documentation

Chapitre 12 • Domain Name Server (DNS)§12.17 • Un peu de documentation

cours réseau ARSCf 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, 4thEdition April 2001, O’Reilly & Associates, Inc. 622 pages, $44.95

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 297 / 435

13 Partage de fichiers NFS

Chapitre 13

Partage de fichiers NFS

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 298 / 435

Page 150:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.1 Introduction

Chapitre 13 • Partage de fichiers NFS§13.1 • Introduction

NFS ≡ Network File System ≡ c’est l’accès de façon transparente pourl’utilisateur à des fichiers résidants sur des machines distantes.

Actuellement, NFS version 2 la plus répandue.

NFS version 3 existe et est disponible mais il existe des incompatibilitésd’implémentations entre constructeurs.

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

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 299 / 435

13 Partage de fichiers NFS 13.2 Principe de NFS

Chapitre 13 • Partage de fichiers NFS§13.2 • Principe de NFS

System calls

VNODE / VFS

NFS File system

RPC / XDR

Server routinesClient routines

Serveur

RPC / XDR

Client

System calls

VNODE / VFS

NFS File system

RPC / XDRRPC / XDR

Reseau

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 300 / 435

Page 151:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.3 Lancement de NFS

Chapitre 13 • Partage de fichiers NFS§13.3 • Lancement de NFS

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

Client NFSUn client ne fait tourner que des démons biod (nfsiod si l’Unix estde la famille System V), rpc.lockd et rpc.statd.

Serveur NFSUn serveur NFS fait tourner les démons portmap (ou rpcbind sil’Unix est de la famille System V), mountd (ou rpc.mountd), nfsd,rpc.statd et rpc.lockd.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 301 / 435

13 Partage de fichiers NFS 13.3 Lancement de NFS

DIGITAL UNIXOn règle l’aspect NFS par la commande « nfssetup » qui modifiealors le fichier « /etc/rc.config » :...

NFS_CONFIGURED="1"

export NFS_CONFIGURED

NFSSERVING="1"

export NFSSERVING

NONROOTMOUNTS="1"

export NONROOTMOUNTS

NUM_TCPD="8"

export NUM_TCPD

NUM_UDPD="8"

export NUM_UDPD

NUM_NFSIOD="7"

export NUM_NFSIOD

NFSLOCKING="1"

export NFSLOCKING

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 302 / 435

Page 152:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.3 Lancement de NFS

LinuxAu niveau de « /etc/sysconfig/network », on indique via lavariable « NETWORKING » si l’on veut les services réseau (dont NFS).Le script de démarrage « /etc/rc.d/rc3.d/S15nfsfs » suivant lavaleur de NETWORKING lance ou pas un client NFS.Le script de démarrage « /etc/rc.d/rc3.d/S60nfs » suivant lavaleur de NETWORKING et suivant l’existence de« /etc/exports » lance ou pas un serveur NFS.

SolarisLa lecture de « /etc/init.d/nfs.client » renseigne sur la façonde démarrer un client NFS.La lecture de « /etc/init.d/nfs.server » apprend que lamachine démarre un serveur NFS s’il existe le fichier d’exportation« /etc/dfs/dfstab ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 303 / 435

13 Partage de fichiers NFS 13.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab

Chapitre 13 • Partage de fichiers NFS§13.4 • Exportation NFS, /etc/exports, /etc/dfs/dfstab

Le partage de disques repose sur l’exportation par une machined’arborescences.L’exportation peut être en read-only ou en read-write.L’exportation se fait au niveau du fichier /etc/exports en général.Suivant l’Unix, la syntaxe n’est pas la même :

DIGITAL UNIX : fichier « /etc/exports » :/var/spool/mail -access=client-nfs.example.com

Linux : fichier « /etc/exports » :/home client-nfs.example.com(rw)

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

Solaris : fichier « /etc/dfs/dfstab » :# pathname resource fstype specific_options description

/export/home - nfs rw=.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 304 / 435

Page 153:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.4 Exportation NFS, /etc/exports, /etc/dfs/dfstab

Comment faire prendre connaissance de modifications dans le fichier« /etc/exports » (ou équivalent) ?

Méthode 1 : on ne fait rien ; le fichier « /etc/exports » est consultélors de toute demande de montage de disque.Par exemple DIGITAL UNIX.Méthode 2 : on envoie un signal au programme « mountd » gérant lesmontages :# kill -HUP ‘cat /var/run/mountd.pid‘

Par exemple Linux, FreeBSD.Méthode 3 : une commande spécialisée existe : share, shareall(unshare, unshareall) sur Solaris# unshareall

# showmount -e

no exported file systems for serveur-nfs.example.com

# shareall

# showmount -e

export list for serveur-nfs.example.com:

/infosystems client-nfs.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 305 / 435

13 Partage de fichiers NFS 13.5 Exportation root NFS

Chapitre 13 • Partage de fichiers NFS§13.5 • Exportation root NFS

Le problème principal est celui de l’équivalence root par NFS : quels droitspossède le root d’une machine cliente NFS sur les fichiers exportés par unserveur NFS ?

Un fichier de droits « rw------- » sur le serveur NFS (où le root peut lelire) peut-il être lu par root sur un client NFS ?

La réponse est fonction du contexte mais cela se paramètre au niveau de« /etc/exports ». Une requête émanant de root sera sauf précisioncontraire convertie au nom de l’utilisateur « nobody » :

% grep nobody /etc/passwd

nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin

(attention : parfois c’est l’utilisateur « nfsnobody » mais le principe restele même)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 306 / 435

Page 154:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.5 Exportation root NFS

Exemple de la conversion de l’UID lors de la requête (la partition montéeest exportée sans droit root NFS) :

# mount -t nfs serveur-nfs.example.com:/adm/backup/arch /mnt

# id

uid=0(root) gid=0(wheel) groups=0(wheel),1(daemon),2(kmem)

# cd /mnt

# df .

Filesystem 1024-blocks Used Available Capacity Mounted on

serveur-nfs.example.com:/adm/backup/arch

1572045 1377401 37440 97% /mnt

# touch test.txt

# ls -l

total 0

-rw------- 1 root daemon 75 Feb 3 15:01 motd

-rw-r--r-- 1 nobody nogroup 0 Feb 3 14:59 test.txt

# cat motd

cat: motd: Permission denied

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 307 / 435

13 Partage de fichiers NFS 13.5 Exportation root NFS

� Exportation avec root NFS

Mêmes fichiers que précédemment :exemple sur DIGITAL UNIX :/var/spool/mail -root=client.example.com,access=client.example.com

exemple sur Linux :/var/spool/mail client.example.com(rw,no_root_squash)

exemple sur Solaris :/export/home - nfs rw=.example.com,root=client.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 308 / 435

Page 155:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.5 Exportation root NFS

� Exportation sans root NFS

Mêmes fichiers que précédemment :

exemple sur DIGITAL UNIX :/var/spool/mail -access=client.example.com

exemple sur Solaris :...

/opt - nfs rw=client.example.com

/usr/local - nfs rw=.example.com

/var/mail - nfs rw=.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 309 / 435

13 Partage de fichiers NFS 13.6 Règle de non transitivité NFS

Chapitre 13 • Partage de fichiers NFS§13.6 • Règle de non transitivité NFS

Il n’y a pas de transitivité NFS.

Si A exporte « /partition » à BSi B monte « /partition » en « /partition2 » et exporte« /partition2 » à Calors C n’a pas accès au contenu du « /partition » initial !

Sinon il n’y aurait aucune sécurité, aucun contrôle possible d’exportation.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 310 / 435

Page 156:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.7 Montage NFS manuel

Chapitre 13 • Partage de fichiers NFS§13.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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 311 / 435

13 Partage de fichiers NFS 13.8 Montage NFS automatique

Chapitre 13 • Partage de fichiers NFS§13.8 • Montage NFS automatique

Les montages automatiques se règlent au niveau de /etc/fstab (ouéquivalent) :

...

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

...

La syntaxe est celle montrée ci dessus sur tous les systèmes Unix utilisantun fichier « /etc/fstab ».Une fois le fichier « /etc/fstab » configuré, on peut faire les chosessuivantes :

1 Monter une partition distante bien précise :# mount /users

2 Monter toutes les partitions distantes :# mount -t nfs -v -a

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 312 / 435

Page 157:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.9 Option de montage NFS soft

Chapitre 13 • Partage de fichiers NFS§13.9 • Option de montage NFS soft

Option de montage « soft » : si pour une raison ou pour une autre, lesopérations RPC implantant la requête NFS viennent à échouer, cetterequête NFS échoue elle aussi.

On peut apparenter cette situation à celle d’un disque local tombant enpanne.

Une manifestation de ce problème est qu’il peut apparaître des blocsremplis de caractères NULL dans des fichiers nouvellement écrits à traversNFS sur une partition qui aura montré des problèmes.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 313 / 435

13 Partage de fichiers NFS 13.10 Option de montage NFS hard

Chapitre 13 • Partage de fichiers NFS§13.10 • Option de montage NFS hard

Option de montage « hard » : si pour une raison ou pour une autre, lesopérations RPC implantant la requête NFS viennent à échouer, cetterequête NFS est soumise à nouveau et cela jusqu’à ce qu’elle aboutisse.

On peut apparenter cette situation à celle d’un disque local très lent.

Pour éviter que dans le cas hard, la requête NFS ne soit transmise advitam eternam, on peut faire le montage en mode hard,intr ce quiautorise son interruption au clavier ou via des envois de signaux.

En pratique, on utilisera toujours les montages hard,intr pour lesmontages des partitions auxquelles on accède en lecture/écriture.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 314 / 435

Page 158:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.11 Vérification des exportations : showmount

Chapitre 13 • Partage de fichiers NFS§13.11 • Vérification des exportations : showmount

En cas de problème dans le montage NFS d’une partition on peut vérifierd’abord si l’exportation indispensable est déjà assurée.

La commande à utiliser est « showmount -e » :

% /usr/sbin/showmount -e serveur-nfs.example.com

Export list for serveur-nfs.example.com:

/export/home .example.com

/opt client-nfs.example.com

/usr/local .example.com

/var/mail .example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 315 / 435

13 Partage de fichiers NFS 13.12 Vérification des exportations : rpcinfo

Chapitre 13 • Partage de fichiers NFS§13.12 • Vérification des exportations : rpcinfo

On peut aussi vérifier à distance si le serveur NFS fait tourner le démonmountd via la commande « rpcinfo ».

% /usr/sbin/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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 316 / 435

Page 159:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.13 Messages d’erreur NFS

Chapitre 13 • Partage de fichiers NFS§13.13 • Messages d’erreur NFS

Un message d’erreur classique prend la forme :

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

system full

Parfois c’est hermétique comme message :

NFS write error 60 on host nfs-client.example.com fh 716 1 a0000

cdbe 66b10eac a0000 1d00 5fdbece5

Pour le décoder, se reporter à « <sys/errno.h> ».Ici on déduit :

#define ETIMEDOUT 60 /* Connection timed out */

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 317 / 435

13 Partage de fichiers NFS 13.14 Automounter

Chapitre 13 • Partage de fichiers NFS§13.14 • Automounter

Les montages rencontrés jusqu’à présent sont permanents.

Un automounter rend les montages temporaires : un montage ne dureguère que le temps nécessaire ; quand il est nécessaire, on monte lapartition distante que l’on démonte quand on n’en a plus besoin.

Il existe 3 automounters :

« automount » fourni par les constructeurs (et d’origine SUN)« amd » ; version logiciel libre dont le développement stagneftp://ftp.cs.columbia.edu/pub/amd

« am-utils », bâti sur la base de « amd »http://www.cs.columbia.edu/~ezk/am-utils/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 318 / 435

Page 160:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

13 Partage de fichiers NFS 13.15 Machines diskless

Chapitre 13 • Partage de fichiers NFS§13.15 • Machines diskless

Une machine diskless est une machine Unix sans disque dur local.

Principe :1 La machine Unix est mise sous tension.2 La machine Unix envoie sur le réseau son adresse ethernet (MAC

address). Par exemple via PXE sur des cartes réseau récentes.3 La machine récupére son adresse IP et on lui indique où télécharger un

noyau et comment. Par exemple renseignements renvoyés par DHCP.4 La machine télécharge le noyau. Par exemple par TFTP.5 Le noyau monte par NFS la partition de « / ».6 Le programme « init » prend la main et réalise les opérations de

montage des partitions indiquées dans « /etc/fstab ». Ici lespartitions seront donc montées par NFS.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 319 / 435

13 Partage de fichiers NFS 13.16 Schéma récapitulatif

Chapitre 13 • Partage de fichiers NFS§13.16 • Schéma récapitulatif

Serveur NFSClient NFS

/partition

# cat /etc/exports

/partition −access=client

# exportfs −av

# mount −t nfs serveur:/partition /mnt

# df

Filesystem 1024−blocks Used Available Capacity Mounted onserveur:/partition 299118 114431 154776 43% /mnt

/mnt

INTERNET

% showmount −e serveur

/partition client

RESEAU

read() / write()

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 320 / 435

Page 161:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers

Chapitre 14

Synchronisation de fichiers

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 321 / 435

14 Synchronisation de fichiers 14.1 Introduction

Chapitre 14 • Synchronisation de fichiers§14.1 • Introduction

Contexte : deux ou plusieurs machines qui ne peuvent pas partager defichiers par NFS.Exemples :

un ordinateur portable et une machine de bureaudeux ordinateurs reliés par une liaison intermittente comme uneliaison téléphonique PPPetc.

La synchronisation manuelle est pénible à faire.

Plusieurs logiciels automatisent la synchronisation. Reste à les lancer aubon moment (cf CRON) et à paramétrer ce que l’on doit synchroniser.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 322 / 435

Page 162:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

Chapitre 14 • Synchronisation de fichiers§14.2 • Commande rdist

RDIST est un programme de distribution de fichiers sur des machinesdistantes, sur la base des dates de modification des fichiers source ou desfichiers distants.

De plus en plus livrée en standard avec les différents Unix mais lui préférerquand même la version disponible à l’URLhttp://www.magnicomp.com/rdist/ (anciennement :ftp://ftp.usc.edu/pub/rdist/)

Actuellement version 6.1.5

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 323 / 435

14 Synchronisation de fichiers 14.2 Commande rdist

La commande « rdist » utilise un fichier de configuration appelé pardéfaut « distfile » ou « Distfile »

Si le fichier ne s’appelle pas « distfile » ou « Distfile », il faututiliser l’option « -f » :

% rdist -f mon-distfile-a-moi

remote.example.com: updating host remote.example.com

...

De nombreuses options sont disponibles. Cf la documentation.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 324 / 435

Page 163:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

� Exemple 1

Objectif : mettre à jour du fichier « /tmp/fichier.txt » d’une machinedistante nommée « remote.example.com » à partir du fichier local« /tmp/fichier.txt » :

Solution : fichier « Distfile » contenant :

/tmp/fichier.txt -> remote.example.com

install ;

Utilisation et résultats :

% rdist

remote.example.com: updating host remote.example.com

remote.example.com: /tmp/fichier.txt: installing

remote.example.com: updating of remote.example.com finished

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 325 / 435

14 Synchronisation de fichiers 14.2 Commande rdist

La mise à jour ci dessus est inconditionnelle. Elle ne fait pas decomparaison de date. Pour activer la vérification des dates demodification, il faut utiliser l’option « -y ».

% rdist -y

remote.example.com: updating host remote.example.com

remote.example.com: updating of remote.example.com finished

Notez les différence avec les résultats précédents.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 326 / 435

Page 164:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

� Exemple 2 : macros

Objectif : mettre à jour les fichiers « /var/tmp/fichier.txt » et« /var/tmp/fichier2.txt » des machines distantes nommées« remote.example.com », « remote2.example.com » et« remote3.example.com » à partir des fichiers locaux originaux« /tmp/fichier.txt » et « /tmp/fichier2.txt ».

Soit le fichier « Distfile » contenant les lignes suivantes :

FILES = ( /tmp/fichier.txt /tmp/fichier2.txt )

HOSTS = ( remote.example.com remote2.example.com

remote3.example.com )

${FILES} -> ${HOSTS}

install /var/tmp ;

notify besancon ;

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 327 / 435

14 Synchronisation de fichiers 14.2 Commande rdist

On constate :on utilise des macros : « FILES », « HOSTS »on met à jour des fichiers distants de paths différents des originauxon envoie un mail une fois la mise à jour faite

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 328 / 435

Page 165:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

Possibilité de ne mettre à jour qu’une machine du lot via l’option « -m » :

% rdist -m remote.example.comremote.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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 329 / 435

14 Synchronisation de fichiers 14.2 Commande 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: updatingremote.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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 330 / 435

Page 166:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

� Exemple 3 : directive special

Soit le fichier « Distfile » contenant les lignes suivantes :

/tmp/fichier.txt -> remote.example.com

install ;

special "uname -a" ;

Son exécution donne :

% rdist

remote.example.com: updating host remote.example.com

remote.example.com: /tmp/fichier.txt: installing

remote.example.com: special "uname -a"remote.example.com: FreeBSD remote.example.com 4.6.1-RC2remote.example.com: updating of remote.example.com finished

On constate qu’une fois la mise à jour des fichiers réalisée, la commandespécifiée par « special » est exécutée sur la machine distante.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 331 / 435

14 Synchronisation de fichiers 14.2 Commande rdist

� exemple 4 : essai à blanc

L’option « -n » essaye à blanc le scenario de mise à jour mais ne réalisepas la mise à jour en pratique.

Avec le fichier « Distfile » de l’exemple 1, on voit ainsi :

% rdist -n

updating host remote.example.com

install -onochkgroup,nochkowner,younger /tmp/fichier.txt

/tmp/fichier.txt

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 332 / 435

Page 167:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.2 Commande rdist

� Exemple 5 : transport via SSH

On peut utiliser SSH comme protocole de transport avec la machinedistante au lieu de RSH.

Avec le fichier « Distfile » de l’exemple 1, on voit ainsi :

% rdist -P /usr/local/bin/ssh

remote.example.com: updating host remote.example.com

Enter passphrase for key ’/users/sri/besancon/.ssh/id_dsa’: XXXXXXXXXXremote.example.com: /tmp/fichier.txt: installing

remote.example.com: updating of remote.example.com finished

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 333 / 435

14 Synchronisation de fichiers 14.3 Synchronisation de fichiers via rsync

Chapitre 14 • Synchronisation de fichiers§14.3 • Synchronisation de fichiers via rsync

(en anglais Remote Synchronisation)

RSYNC est un protocole plus efficace que RDIST. Par exemple, on netransfère que les différences entre fichiers et non pas la totalité du fichier.

Pas encore installé en standard. Se reporter àhttp://rsync.samba.org/rsync/

Actuellement version 2.5.5 (vérifier la disponibilité de versions plusrécentes)

A completer...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 334 / 435

Page 168:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.3 Synchronisation de fichiers via rsync

On utilise la commande de ces diverses façons :

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

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

rsync [OPTION]... SRC [SRC]... DEST

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

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

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

Il y a un mode de fonctionnement où un démon « rsyncd » est installé etrépond à des requêtes authentifiées ou non.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 335 / 435

14 Synchronisation de fichiers 14.3 Synchronisation de fichiers via rsync

� Exemple

Soit l’arborescence « /tmp/exemple » à synchroniser :

% ls -lR /tmp/exemple

/tmp/exemple/:

total 64

-rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier1*-rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier2*-rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier3*drwxr-xr-x 2 besancon adm 182 Aug 26 17:54 repertoire1/

/tmp/exemple/repertoire1:

total 16

-rwxr-xr-x 1 besancon adm 211 Aug 26 17:53 fichier4*

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 336 / 435

Page 169:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

14 Synchronisation de fichiers 14.3 Synchronisation de fichiers via rsync

La synchronisation avec une autre machine appelée« remote.example.com » par la commande suivante :

% rsync \

--stats \

--rsh=/usr/local/bin/ssh \

--rsync-path=/usr/local/bin/rsync \

--archive \

--compress \

--verbose \

--cvs-exclude \

\

/tmp/exemple \

[email protected]:/tmp

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 337 / 435

14 Synchronisation de fichiers 14.3 Synchronisation de fichiers via rsync

La commande précédente affiche :

building file list ... done

exemple/

exemple/fichier1

exemple/fichier2

exemple/fichier3

exemple/repertoire1/

exemple/repertoire1/fichier4

Number of files: 6Number of files transferred: 4Total 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 338 / 435

Page 170:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd

Chapitre 15

Gestionnaire de services réseau : inetd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 339 / 435

15 Gestionnaire de services réseau : inetd 15.1 Introduction

Chapitre 15 • Gestionnaire de services réseau : inetd§15.1 • Introduction

Une machine Unix offre de nombreux services accessibles par le réseau.

Souvent les services réseau contactés durent peu de temps :

inutile de les faire tourner en permanence (consommation deressources)on va les activer uniquement suite à une requête

C’est « inetd » qui écoute les requêtes pour certains services réseau etlancent ces services.

Plus particulièrement, inetd assure :

l’attente de connexions réseau sur certains portsle lancement des services contactésle comportement adapté au lancement de ces services

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 340 / 435

Page 171:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.2 Principe

Chapitre 15 • Gestionnaire de services réseau : inetd§15.2 • Principe

Etape 1

réseau

client inetd

host2.example.comhost1.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 341 / 435

15 Gestionnaire de services réseau : inetd 15.2 Principe

Etape 2

réseau

client

host2.example.comhost1.example.com

exec()

serveurinetd

fork()

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 342 / 435

Page 172:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.2 Principe

Etape 3

réseau

client

host2.example.comhost1.example.com

serveurinetd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 343 / 435

15 Gestionnaire de services réseau : inetd 15.3 /etc/services

Chapitre 15 • Gestionnaire de services réseau : inetd§15.3 • /etc/services

Pas spécifiquement lié à « inetd ».

Il mentionne les triplets (numéro de port, protocole, nom du service). Ilsert à convertir un port numérique en un nom symbolique plus parlant. Enaucune façon il n’indique les ports utilisés sur la machine.

On peut obtenir un triplet officiellement pour un programme à soi auprèsde l’IANA « http://www.iana.org/assignments/port-numbers »

En pratique il y a 3 catégories de triplets :Les Well Known Ports sont ceux de 0 à 1023Les Registered Ports sont ceux de 1024 à 49151Les Dynamic and/or Private Ports sont ceux de 49152 à 65535

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 344 / 435

Page 173:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.3 /etc/services

Par exemple :

...

chargen 19/tcp ttytst source #Character Generator

chargen 19/udp ttytst source #Character Generator

ftp-data 20/tcp #File Transfer [Default Data]

ftp-data 20/udp #File Transfer [Default Data]

ftp 21/tcp #File Transfer [Control]

ftp 21/udp #File Transfer [Control]

ssh 22/tcp #Secure Shell Login

ssh 22/udp #Secure Shell Login

telnet 23/tcp

telnet 23/udp

smtp 25/tcp mail #Simple Mail Transfer

smtp 25/udp mail #Simple Mail Transfer

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 345 / 435

15 Gestionnaire de services réseau : inetd 15.4 netstat -a, netstat -an

Chapitre 15 • Gestionnaire de services réseau : inetd§15.4 • netstat -a, netstat -an

Pas spécifiquement lié à « inetd ».

La commande « netstat -a » affiche la liste des ports ouverts sur lamachine. Les noms affichés proviennent de « /etc/services » :

% netstat -a

Active Internet connections (including servers)

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp4 0 0 *.ssh *.* LISTEN

tcp46 0 0 *.ssh *.* LISTEN

udp4 0 0 *.syslog *.*udp6 0 0 *.syslog *.*udp4 0 0 *.bootpc *.*Active UNIX domain sockets

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 346 / 435

Page 174:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.4 netstat -a, netstat -an

La commande « netstat -an » affiche les ports sous forme numérique :

% netstat -an

Active Internet connections (including servers)

Proto Recv-Q Send-Q Local Address Foreign Address (state)

tcp4 0 0 *.22 *.* LISTEN

tcp46 0 0 *.22 *.* LISTEN

udp4 0 0 *.514 *.*udp6 0 0 *.514 *.*udp4 0 0 *.68 *.*Active UNIX domain sockets

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 347 / 435

15 Gestionnaire de services réseau : inetd 15.5 /etc/inetd.conf

Chapitre 15 • Gestionnaire de services réseau : inetd§15.5 • /etc/inetd.conf

Spécifique à « inetd ».

Son format est le suivant :

# Syntax for socket-based Internet services:

# service_name socket_type proto flags user server_pathname args

Par exemple :

...

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

...

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 348 / 435

Page 175:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.5 /etc/inetd.conf

La signification des champs est la suivante :champ 1 : « service_name »C’est le nom symbolique d’un service (cf « /etc/services »).champ 2 : « socket_type »C’est le type du socket réseau. C’est essentiellement « stream »,« dgram ».champ 3 : « proto »C’est le protocole réseau utilisé : « tcp », « udp »champ 4 : « flags »Cela indique si l’on peut répondre à une requête du même type alorsque la première n’est pas terminée. On peut avoir : « wait »,« nowait »champ 5 : « user »Nom de l’utilisateur sous lequel le programme tournera.champ 6 : « server_pathname »C’est le chemin absolu du programme à exécuter.champ 7 : « args »Ce sont les paramètres à donner lors du « execv() ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 349 / 435

15 Gestionnaire de services réseau : inetd 15.5 /etc/inetd.conf

Par exemple :

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l

donnera

execv("/usr/sbin/in.ftpd", "in.ftpd", "-l", 0);

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 350 / 435

Page 176:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.6 Reconfiguration de inetd, SIGHUP

Chapitre 15 • Gestionnaire de services réseau : inetd§15.6 • Reconfiguration de inetd, SIGHUP

Inetd est lancé par les scripts de démarrage.

Si l’on modifie le fichier « /etc/inetd.conf », la modification est priseen 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 351 / 435

15 Gestionnaire de services réseau : inetd 15.7 Filedescriptors et serveurs lancés par inetd

Chapitre 15 • Gestionnaire de services réseau : inetd§15.7 • Filedescriptors et serveurs lancés par inetd

Un démon lancé par « inetd » est quelque chose de simple au niveau desfiledescriptors :

il récupère les données envoyées par le client en lisant sur stdinil envoie des données au client en écrivant sur stdout

Exemple de client écrit en sh :

#!/bin/sh

read line

echo $line > /tmp/data

read line

echo $line >> /tmp/data

wc -l /tmp/data

id

exit 0

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 352 / 435

Page 177:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

15 Gestionnaire de services réseau : inetd 15.7 Filedescriptors et serveurs lancés par inetd

Au niveau de « /etc/services », on met :

demo 33333/tcp

Au niveau de « /etc/inetd.conf », on met :

demo stream tcp nowait root /tmp/serveur.sh serveur.sh

Une session interactive donne :

% telnet localhost demo

Trying 127.0.0.1...

Connected to localhost.

Escape character is ’^]’.

ligne 1

ligne 2

2 /tmp/data

uid=0(root) gid=0(wheel) groups=0(wheel), 2(kmem), 3(sys), 4(tty)

Connection closed by foreign host.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 353 / 435

16 TCP Wrappers

Chapitre 16

TCP Wrappers

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 354 / 435

Page 178:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.1 Introduction

Chapitre 16 • TCP Wrappers§16.1 • Introduction

Inetd fonctionne très bien en pratique.

Il a un seul gros défaut : il ne gère aucun aspect de sécurité.

On aimerait au moins :pouvoir filtrer l’accès à certains servicesavoir des traces d’activation de certains services

Un remède : l’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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 355 / 435

16 TCP Wrappers 16.2 Rappel sur inetd

Chapitre 16 • TCP Wrappers§16.2 • Rappel sur inetd

Rappel du fonctionnement de « inetd » :

réseau

client inetd

host2.example.comhost1.example.com

réseau

client

host2.example.comhost1.example.com

exec()

serveurinetd

fork()

réseau

client

host2.example.comhost1.example.com

serveurinetd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 356 / 435

Page 179:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

Chapitre 16 • TCP Wrappers§16.3 • Principe des TCP Wrappers, tcpd

L’idée de TCP Wrappers : on va s’intercaler dans la chaîne.

réseau

client inetd

host2.example.comhost1.example.com

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 357 / 435

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

réseau

client

host2.example.comhost1.example.com

fork()exec()

inetd tcpd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 358 / 435

Page 180:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

réseau

client

host2.example.comhost1.example.com

inetd tcpd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 359 / 435

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

réseau

client

host2.example.comhost1.example.com

inetd tcpd serveur

fork()exec()

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 360 / 435

Page 181:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

réseau

client

host2.example.comhost1.example.com

inetd tcpd serveur

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 361 / 435

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

réseau

client

host2.example.comhost1.example.com

inetd serveur

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 362 / 435

Page 182:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.3 Principe des TCP Wrappers, tcpd

La librairie des TCP Wrappers est maintenant intégrée à beaucoupde produits (même sous WINDOWS...).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 363 / 435

16 TCP Wrappers 16.4 Modifications de /etc/inetd.conf

Chapitre 16 • TCP Wrappers§16.4 • Modifications de /etc/inetd.conf

S’intercaler dans la chaîne de inetd, nécessite de modifier le fichier« /etc/inetd.conf »

Par exemple on passe de :

ftp stream tcp nowait root /usr/etc/in.ftpd in.ftpd -l

telnet stream tcp nowait root /usr/etc/in.telnetd in.telnetd

shell stream tcp nowait root /usr/etc/in.rshd in.rshd

login stream tcp nowait root /usr/etc/in.rlogind in.rlogind

à

ftp stream tcp nowait root /chemin/vers/tcpd in.ftpd -l

telnet stream tcp nowait root /chemin/vers/tcpd in.telnetd

shell stream tcp nowait root /chemin/vers/tcpd in.rshd

login stream tcp nowait root /chemin/vers/tcpd in.rlogind

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 364 / 435

Page 183:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.4 Modifications de /etc/inetd.conf

Rappel sur l’interprétation d’une ligne de « inetd.conf » :

Par exemple :

ftp stream tcp nowait root /chemin/vers/tcpd in.ftpd -l

donnera

execv("/chemin/vers/tcpd", "in.ftpd", "-l", 0);

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 365 / 435

16 TCP Wrappers 16.5 Contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny

Chapitre 16 • TCP Wrappers§16.5 • Contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny

Le principe du contrôle d’accès :

1 On vérifie d’abord si la requête est autorisée par le contenu de« /etc/hosts.allow ».Si oui, OK.Si non, on passe à l’étape 2.

2 On vérifie si la requête est interdite par le contenu de« /etc/hosts.deny ».Si oui, la requête est rejetée.Si non, on passe à l’étape 3.

3 On accepte la requête.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 366 / 435

Page 184:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.5 Contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny

Au niveau des fichiers « hosts.allow » et « hosts.deny », on peutappliquer des règles de filtrage par démon servi.

Voici un exemple de politique de connexion :

au niveau du fichier « /etc/hosts.allow » :in.telnetd: .fr, 193.95.32.

in.rlogind: .fr, 193.95.32.

in.rshd: .fr

au niveau du fichier « /etc/hosts.deny » :in.telnetd: ALL

in.rlogind: ALL

in.rshd: ALL

En français intelligible, ces fichiers indiquent que les connexions telnet,rlogin, rsh ne sont autorisées que depuis des machines du domaine français« .fr » et depuis un domaine de Tunisie (réseau d’adresse 193.95.32.).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 367 / 435

16 TCP Wrappers 16.5 Contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny

ATTENTION :

quand on interdit une machine, il faut l’interdire via son nom FQDN et viason adresse IP (pour le cas où un nameserver serait injoignable on peutainsi bloquer quand même la machine).

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 368 / 435

Page 185:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

16 TCP Wrappers 16.5 Contrôle d’accès, /etc/hosts.allow, /etc/hosts.deny

ATTENTION :

Ce n’est par parce que l’on active tcpd que l’on arésolu tous les problèmes de sécurité et que l’on esttranquille !

Il ne faut pas oublier que plein d’autres services ne passent paspar l’intermédiaire de inetd.confIl faut surveiller les traces de fonctionnement renvoyées partcpd.Il faut renseigner les fichiers hosts.allow et /etc/hosts.deny.Il faut des démons sans trou de sécurité.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 369 / 435

16 TCP Wrappers 16.6 libwrap.a

Chapitre 16 • TCP Wrappers§16.6 • libwrap.a

Les TCP WRAPPERS offrent aussi leur librairie de programmation :« libwrap.a » et « tcpd.h »

Généralement installée en « /usr/local/lib/libwrap.a » et« /usr/local/include/tcpd.h »

La librairie apporte la fonction C « host_access() »

On linkera avec cette librairie quand c’est nécessaire.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 370 / 435

Page 186:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd

Chapitre 17

Gestionnaire de services réseau (2) :xinetd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 371 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.1 Introduction

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.1 • Introduction

(en anglais extended inetd)Cf http://www.xinetd.org/

Numérotation des versions un peu compliquée. . .

C’est une réécriture complète de « inetd » en incorporant plusieursaspects manquants dans inetd :

contrôle d’accès à la tcpdaccès horaires aux démonstraces syslog des connexions (échouées, abouties)limitation du nombre d’instances de chaque démonbinding sur certaines adresses réseau

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 372 / 435

Page 187:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.2 Fichier de configuration /etc/xinetd.conf

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.2 • Fichier de configuration /etc/xinetd.conf

« xinetd » utilise le fichier « /etc/xinetd.conf », incompatible avec« /etc/inetd.conf ».Format du fichier :

defaults

{

attribut operateur valeur(s)

...

}

service toto

{

attribut operateur valeur(s)

...

}

Les opérateurs sont « = », « += » et « -= ».Cf la documentation pour la liste complète des attributs.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 373 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.2 Fichier de configuration /etc/xinetd.conf

A noter avec certaines versions de « xinetd » la possibilité d’avoir unrépertoire « /etc/xinetd.d » dans lequel on trouve un fichier parservice, portant le nom du service et contenant le réglage du service.

Par exemple « /etc/xinetd.d/ftpd »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 374 / 435

Page 188:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.3 Réglages par défaut

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.3 • Réglages par défaut

Par exemple :

defaults

{

instances = 15

log_type = FILE /var/log/servicelog

log_on_success = HOST PID USERID DURATION EXIT

log_on_failure = HOST USERID RECORD

only_from =

disabled = shell login exec comsat telnet ftp tftp finger

disabled = time daytime chargen servers services xadmin

}

Ici la ligne « only_from = » interdit par défaut toutes les machines à seconnecter aux services. On autorisera ce qui est nécessaire au niveau dubloc de configuration de chaque service.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 375 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.4 Configuration d’un service

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.4 • Configuration d’un service

Exemple pour le service « ftp » (cf « /etc/services ») :

service ftp

{

socket-type = stream

wait = no

user = root

server = /usr/sbin/in.ftpd

server_args = -l

instances = 4

access_times = 7:00-12:30 13:30-21:00

nice = 10

only_from = 192.168.1.0/24

}

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 376 / 435

Page 189:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.5 /etc/xinetd.conf : directive nice

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.5 • /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 = 10only_from = 192.168.1.0/24

}

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 377 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.6 /etc/xinetd.conf : directive access_times

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.6 • /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:00nice = 10

only_from = 192.168.1.0/24

}

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 378 / 435

Page 190:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.7 /etc/xinetd.conf : directives bind, id

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.7 • /etc/xinetd.conf : directives bind, id

Soit une machine avec 2 interfaces réseau d’adresses « 192.168.1.1 » et« 192.168.2.1 » :

service ftp

{

id = ftp-publicbind = 192.168.1.1socket-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-privatebind = 192.168.2.1socket-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

}

La directive « id » servira au niveau de SYSLOG à différencier les tracesde l’un ou l’autre de FTPD.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 379 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.8 /etc/xinetd.conf : directive redirect

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.8 • /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 démon« telnetd » de « 192.168.1.23 ».

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 380 / 435

Page 191:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.9 /etc/xinetd.conf : tcpd et directive NAMEINARGS

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.9 • /etc/xinetd.conf : tcpd et directive NAMEINARGS

Par exemple :

service ftp

{

flags = NAMEINARGS REUSE

socket-type = stream

wait = no

user = root

server = /usr/sbin/tcpdserver_args = /usr/sbin/in.ftpd -linstances = 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 381 / 435

17 Gestionnaire de services réseau (2) : xinetd 17.10 /etc/xinetd.conf : directive chroot

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.10 • /etc/xinetd.conf : directive chroot

Par exemple :

service ftp

{

socket-type = stream

wait = no

user = root

server = /usr/sbin/chrootserver_args = /quelquepart/blockhaus/ftp /usr/sbin/in.ftpd -linstances = 4

access_times = 7:00-12:30 13:30-21:00

nice = 10

only_from = 192.168.1.0/24

}

On est ainsi compartimenté à l’arborescence de« /quelquepart/blockhaus/ftp » dont on ne peut pas sortir. Intérêtpour la sécurité de la machine.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 382 / 435

Page 192:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

17 Gestionnaire de services réseau (2) : xinetd 17.11 Reconfiguration, signaux

Chapitre 17 • Gestionnaire de services réseau (2) : xinetd§17.11 • Reconfiguration, signaux

Sont supportés les signaux :

signal « SIGUSR1 » : sur sa réception, « xinetd » se reconfiguresignal « SIGUSR2 » : sur sa réception, « xinetd » se reconfigure entuant les démons inutilessignal « SIGTERM » : sur sa réception, « xinetd » se sabordesignal « SIGHUP » : sur sa réception, « xinetd » écrit le fichier« /var/run/xinetd.dump »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 383 / 435

18 Quelques services et protocoles réseau

Chapitre 18

Quelques services et protocoles réseau

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 384 / 435

Page 193:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.1 Services réseau inutiles

Chapitre 18 • Quelques services et protocoles réseau§18.1 • Services réseau inutiles

Deux règles :

1 Tout ce qui n’est pas autorisé est interdit.2 Retirer tous les services réseau non nécessaires.

Il est indispensable de connaître la finalité de la machine pour savoir quelsservices réseau sont nécessaires.

Tout autre service doit être desactivé.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 385 / 435

18 Quelques services et protocoles réseau 18.1 Services réseau inutiles

Le danger actuel : Linux et Windows NT(cf séance OSSIR de décembre 1998,« http://www.ossir.org/ftp/supports/98/cnrs/index.htm »« http://www.ossir.org/ftp/supports/98/cnrs/sld0009.htm »)

Pourquoi ?activation par défaut de pleins de services réseau non nécessaires% ps -ax | grep "inutile"

277 ? S 0:00 /usr/sbin/snmpd -f

380 ? S 0:00 httpd

403 ? S 0:00 (smbd)

412 ? S 0:57 nmbd -D

11549 ? S 0:17 smbd -D

16778 ? S 0:03 smbd -D

244 ? S 0:00 /usr/sbin/atd

18642 ? S 0:00 (httpd)

18643 ? S 0:00 (httpd)

utilisateur incompétent qui ne connaît pas les services et qui pensequ’il aura peut être besoin un jour de ces services.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 386 / 435

Page 194:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.1 Services réseau inutiles

Autre danger : le déni de service (Denial of Service, DoS) ; attaque trèsen vogue actuellement.

L’idée : on ne pénétre pas une machine mais on fait en sorte qu’elle nepuisse plus satisfaire une de ses fonctions de service.

Pour des informations complémentaires, on pourra se reporter (en autrecar les références sur le sujet sont nombreuses) à« http://www.ns2.co.uk/archive/FIST/papers/NSS-risk-pt1.txt »donné en annexe de ce chapitre.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 387 / 435

18 Quelques services et protocoles réseau 18.1 Services réseau inutiles

Par exemple, en pratique, desactiver tous les services de type internaldans « /etc/inetd.conf » :

#

# "Small servers" -- used to be standard on, but we’re more conservative

# about things due to Internet security concerns. Only turn on what you

# need.

#

#daytime stream tcp nowait root internal

#daytime dgram udp wait root internal

#time stream tcp nowait root internal

#time dgram udp wait root internal

#echo stream tcp nowait root internal

#echo dgram udp wait root internal

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

#chargen stream tcp nowait root internal

#chargen dgram udp wait root internal

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 388 / 435

Page 195:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.2 Protocole TELNET, telnet, telnetd

Chapitre 18 • Quelques services et protocoles réseau§18.2 • Protocole TELNET, telnet, telnetd

Une connexion via telnet nécessite que le service telnet soit activé auniveau de « inetd.conf » :

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd

Par telnet, il y a toujours demande d’un nom de login et d’un mot depasse.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 389 / 435

18 Quelques services et protocoles réseau 18.2 Protocole TELNET, telnet, telnetd

Quelques problèmes :Attention aux connexions root via le réseau.Il faut interdire les connexions root via le réseau parce qu’elles sontanonymes.⇒ Vérifier « /etc/ttys » (ou équivalent « /etc/securettys ». . .)et minimaliser le nombre de terminaux sécurisés.Il n’y a pas de traces des connexions locales.Au mieux, tcpd informera d’où vient la connexion mais pas del’identité prise sur la machine locale.Remède : utiliser le package logiciel logdaemon URL« ftp://ftp.porcupine.org/pub/security/logdaemon-5.8.tar.gz »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 390 / 435

Page 196:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.3 Protocole RLOGIN, rlogin, rlogind

Chapitre 18 • Quelques services et protocoles réseau§18.3 • Protocole RLOGIN, rlogin, rlogind

Une connexion via rlogin nécessite que le service login soit activé au niveaude inetd.conf :

login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind

Par rlogin, le mécanisme de demande de mot de passe est le suivant :Si la machine d’où l’on vient est mentionnée dans« /etc/hosts.equiv » et si l’on a la même identité au départ qu’àl’arrivée, alors pas de demande de mot de passe.Pour root, cette étape ne s’applique pas.Si son identité et la machine d’où l’on vient, sont mentionnées dans lefichier « .rhosts » de l’utilisateur d’arrivée alors pas de demande demot de passe.Sinon demande d’un mot de passe.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 391 / 435

18 Quelques services et protocoles réseau 18.3 Protocole RLOGIN, rlogin, rlogind

Les problèmes :Attention au contenu de « /etc/hosts.equiv ».SunOS 4.x.y fournissait un fichier contenant « + + ».Attention aux connexions root via le réseau.Il faut interdire les connexions root via le réseau parce qu’elles sontanonymes.⇒

Vérifier « /etc/ttys » (ou équivalent « /etc/securettys » . . .) etminimaliser le nombre de terminaux sécurisés.Vérifier « ~root/.rhosts ». C’est une cible privilégiée des pirates quiessayent d’y écrire « + + ».

Il n’y a pas de traces des connexions locales.Au mieux, tcpd informe d’où vient la connexion mais pas de l’identitéprise sur la machine locale.Remède : utiliser le package logiciel logdaemon URL« ftp://ftp.porcupine.org/pub/security/logdaemon-5.8.tar.gz »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 392 / 435

Page 197:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

FTP : File Transfer ProtocolUne connexion via ftp nécessite que le service ftp soit activé au niveau deinetd.conf :

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -l

Au niveau de « /etc/services », on voit 2 ports assignés au protocoleFTP :

ftp-data 20/tcp

ftp 21/tcp

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 393 / 435

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

Le protocole FTP est «complexe» car c’est un dialogue bidirectionnel :

Un client FTP se connecte sur leport 21 (« ftp » de« /etc/services ») du serveurFTP et ce port 21 sert à envoyerdes commandes au serveur FTP.

Si les commandes nécessitent quedes données soient reçues(commandes « dir », « get » parexemple) ou transmises (« put »par exemple) au serveur, le clientenvoie une commande « PORT »au serveur indiquant un port surlequel le serveur va créer uneconnexion depuis le port 20(« ftp-data » de« /etc/services »).

La connexion FTP-DATA est close

dès que toutes les données sonttransférées.

client serveur

connexion

port 21

PORT 33085

port 21

port 21

DIR

port 33085

port 20data

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 394 / 435

Page 198:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

Exemple :% ftp -v -d localhost

Connected to localhost.

220 cerise FTP server (SunOS 5.8) ready.

Name (localhost:besancon): besancon

---> USER besancon331 Password required for besancon.

Password:

---> PASS XXXXXXXXX230 User besancon logged in.

ftp> lcd /tmp

Local directory now /tmp

ftp> cd /etc

---> CWD /etc250 CWD command successful.

ftp> get motd

---> PORT 127,0,0,1,129,61200 PORT command successful.

---> RETR motd150 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

---> QUIT221 Goodbye.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 395 / 435

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

Soit une machine A « 192.168.0.1 » qui sera un client FTP.Soit une machine B « 192.168.1.1 » qui sera un serveur FTP.

routeur

host B

host A

access−list 100

client FTP

serveur FTP

Tout le trafic vers host B est filtré par l’access-list 100 du cisco.L’ACL cisco pour autoriser le FTP du client vers le serveur est :

access-list 100 permit tcp host 192.168.0.1 eq ftp-data \

host 192.168.1.1 gt 1023 established

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 396 / 435

Page 199:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

Au niveau contrôle d’accès, les implémentations de base proposent :le fichier « /etc/ftpusers » contient les noms des utilisateurs nonautorisés à utiliser ftp. « root » doit être exclus comme d’habitude.le fichier « /etc/shells » contient les shells des utilisateursautorisés à utiliser ftp.

Moralité : pour interdire un utilisateur à utiliser FTP :indiquer le login de la personne au niveau de « /etc/ftpusers »faire en sorte que le shell de la personne ne soit pas dans« /etc/shells »

Pour configurer un FTP anonyme, se reporter aux deux FAQ :« ftp://ftp.lip6.fr/pub/doc/faqs/ftp-list/faq.gz »« ftp://ftp.lip6.fr/pub/doc/faqs/computer-security/anonymous-ftp-faq.gz »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 397 / 435

18 Quelques services et protocoles réseau 18.4 Protocole FTP, ftp, ftpd

Outre les versions fournies par les constructeurs, il y a plusieurs démons dudomaine public plus performants :

« http://www.wu-ftpd.org/ »« ftp://ftp.wu-ftpd.org/ »« ftp://ftp.academ.com/pub/wu-ftpd/wu-ftpd-2.4.2.tar.Z »

« http://www.proftpd.org/ »« ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8.tar.gz »Il y a de nombreuses fonctionnalités :

traces de fonctionnement nombreusespossibilité de contrôler les accèscompression à la volée des fichiers récupérés par les gens

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 398 / 435

Page 200:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.5 Protocole TFTP, tftp, tftpd

Chapitre 18 • Quelques services et protocoles réseau§18.5 • Protocole TFTP, tftp, tftpd

TFTP : Trivial File Transfer Protocol

Une connexion via tftp nécessite que le service tftp soit activé au niveau deinetd.conf :

tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot

TFTP, c’est en gros FTP sans pouvoir lister les directories distants et nenécessitant pas de mot de passe pour récupérer ou déposer des fichiers !En fait, celui qui utilise TFTP sait ce qu’il veut récupérer et n’a pas besoinde lister le directory. Par exemple, récupération d’un fichier deconfiguration pour :

terminal Ximprimante HP réseau

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 399 / 435

18 Quelques services et protocoles réseau 18.5 Protocole TFTP, tftp, tftpd

On récupére les fichiers dans la sous arborescence /tftpboot.

Le danger : un démon tftpd mal configuré permet de récupérer tout fichierhors de « /tftpboot ». Le fichier « /etc/passwd » par exemple.

⇒ vérifier les options de lancement.Traditionnellement utiliser l’option « -s » au niveau de« /etc/inetd.conf » :

tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 400 / 435

Page 201:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.5 Protocole TFTP, tftp, tftpd

A noter : il est parfois utile de faire le lien symbolique suivant :

# cd /tftpboot

# ln -s . tftpboot

car des requêtes portent parfois sur des noms du type« /tftpboot/fichier ».

% cd /tftpboot

% ls -l

drwxr-xr-x 2 root wheel 1536 Jan 4 15:02 cisco/

drwxr-sr-x 7 root wheel 512 Nov 10 1997 hds/

drwxr-sr-x 2 root wheel 512 Sep 5 1996 hp/

drwxr-sr-x 4 root wheel 512 Dec 5 1995 ncd/

drwxr-sr-x 2 root wheel 512 Mar 19 1997 plaintree/

drwxr-xr-x 2 root wheel 512 Aug 1 1997 sun/

lrwxrwxrwx 1 root wheel 1 May 8 1998 tftpboot -> .drwxr-sr-x 3 root wheel 512 Feb 9 1994 usr/

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 401 / 435

18 Quelques services et protocoles réseau 18.6 Protocole RARP, obtention d’adresse IP

Chapitre 18 • Quelques services et protocoles réseau§18.6 • Protocole RARP, obtention d’adresse IP

Il existe des machines spécialisées sans système avec une interface réseau :station Unix sans disque (dite diskless)terminal X, clients légersimprimante réseaucaméra WWW

Le problème consiste à leur donner une adresse IP.La solution : le protocole RARP, Reverse Address Resolution Protocol :

la station diffuse son adresse physique sur le câble réseauun serveur reçoit la requête et explore une base de donnéesle serveur renvoie l’adresse IP à la stationla station peut alors utiliser le protocole IP

En pratique, il y a 3 solutions pour implémenter ce protocole : RARP,BOOTP, DHCP.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 402 / 435

Page 202:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.7 Protocole RARP : rarpd

Chapitre 18 • Quelques services et protocoles réseau§18.7 • Protocole RARP : rarpd

Démon « rarpd »

Il utilise le fichier « /etc/ethers » :

08:00:20:03:2f:15 valerian.lpt.ens.fr

08:00:20:04:03:b4 bill.lpt.ens.fr

08:00:20:02:fc:d2 chang.lpt.ens.fr

Obsolète

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 403 / 435

18 Quelques services et protocoles réseau 18.8 Protocole BOOTP : bootpd

Chapitre 18 • Quelques services et protocoles réseau§18.8 • Protocole BOOTP : bootpd

Le protocole BOOTP est plus complet que RARPD.Il permet en plus de spécifier des paramètres de boot.

Démon « bootpd »

Le démon « bootpd » se lance :soit en mode autonome :% ps -ax | grep bootp

314 ?? Is 0:00.01 /usr/libexec/bootpd

soit via « inetd » :bootps dgram udp wait root /usr/libexec/bootpd bootpd

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 404 / 435

Page 203:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.8 Protocole BOOTP : bootpd

Il faut renseigner le fichier « /etc/bootptab » (fichier par défaut maisc’est configurable à volonté) :

fermion.lpt.ens.fr:\

:tc=.default:\

:ht=ethernet:\

:ha=0x008096023370:\

:ip=129.199.122.72:\

:hd=/hds/netOS/image:\

:bf=X.hds:

Obsolète

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 405 / 435

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Chapitre 18 • Quelques services et protocoles réseau§18.9 • Protocole DHCP, dhcpd, dhcpd.conf, dhclient

DHCP : Dynamic Host Configuration Protocol

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 d’écoute du serveur)Port TCP 68 (port de réponse du serveur)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 406 / 435

Page 204:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

On distingue :

le serveur DHCP : à l’écoute surses interfaces réseau, il distribuepar son autorité des adresses IPrésidant dans des plages

le DHCP relay agent : il sait routerles paquets IP du protocole DHCPentre un client et un serveur

le client DHCP : il utilise leprotocole DHCP pour découvrirson adresse IP et d’autresparamètres réseau ou autresparamètres (dits DHCP options ;par exemple le serveur NTP)

DHCP agent

DHCP

DHCP

CLIENT

SERVER

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 407 / 435

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

� Protocole DHCP

Principe :1 Une machine démarre dans l’état « INIT »2 Elle cherche un serveur DHCP en envoyant un paquet

« DHCPDISCOVER ».3 Un ou plusieurs serveurs DHCP répondent par un paquet

« DHCPOFFER » contenant une adresse IP et des options DHCP.4 Le client sélectionne un serveur DHCP parmi ceux qui ont répondu.

Par exemple, le premier.5 Le client broadcaste un paquet « DHCPREQUEST » spécifiant l’adresse

IP retenue.6 Le serveur retenu répond au client en lui envoyant un paquet

« DHCPACK ».7 Après, le client posséde l’adresse IP pour un laps de temps appelé

lease.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 408 / 435

Page 205:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Lorsqu’une machine qui a obtenu une adresse IP via DHCP reboote, ellene recommence pas exactement les étapes ci-dessus. Elle commence dansl’état « INIT-REBOOT ». Elle envoie un paquet « DHCPREQUEST »reprenant l’adresse précédemment acquise. En cas de disponibilité del’adresse, le serveur répond par « DHCPACK ». En cas de non disponibilité(par exemple, le portable a changé de réseau), un serveur DHCP répondpar « DHCPNACK ». A ce moment-là, la machine reprend à l’étape 1 deci-dessus.

Mécanisme de détection de duplicate IP address :le serveur DHCP envoie un paquet « ICMP Echo » ; en cas deréponse, le serveur propose une autre adressele client DHCP envoie un paquet « ARP » ; en cas de réponse, le clientenvoie un paquet « DHCPDECLINE » ; le serveur proposera alors unenouvelle adresse

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 409 / 435

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

� Faiblesses du protocole DHCP

Denial of Service possible ; « DHCPDISCOVER » puis « DHCPNAK »jusqu’à épuisement des numéros libres sur le serveur DHCP parexemplesingle point of failure ; pas de mécanisme de serveur DHCP de secourspas d’authentification du client au serveur et vice-versainadéquation de l’adresse MAC comme Client Identifier ; par exempleun portable et un dock, une carte PCMCIA réseau

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 410 / 435

Page 206:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole 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, l’authentification DHCPPeut répondre à des requêtes BOOTP.

Fichier de configuration : en général « /etc/dhcp.conf »

En cas de modification au fichier de configuration, il faut arrêter le démon« dhcpd » et le relancer (par exemple « /etc/rc.d/dhcp restart »).Pas de « SIGHUP » pour le reconfigurer on the fly.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 411 / 435

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Exemple de « /etc/dhcpd.conf » :

ddns-update-style none;

always-reply-rfc1048 on;

option domain-name-servers 192.168.1.1;

option domain-name "jardiniers.org";

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.1.255;

option log-servers 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 08:00:07:24:46:59;

fixed-address 192.168.1.2;

}

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 412 / 435

Page 207:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Le serveur écrit les leases sur disque : « /var/run/dhcpd.leases » ;ancienne base « dhcpd.leases~ »

Exemple de « /var/run/dhcpd.leases » :

# All times in this file are in UTC (GMT), not your local timezone. This is

# not a bug, so please don’t ask about it. There is no portable way to

# store leases in the local timezone, so please don’t request this as a

# feature. If this is inconvenient or confusing to you, we sincerely

# apologize. Seriously, though - don’t ask.

# The format of this file is documented in the dhcpd.leases(5) manual page.

# This lease file was written by isc-dhcp-V3.0.1rc6

lease 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 413 / 435

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Sur Red Hat Linux, on peut dire à la machine de configurer son adresseréseau 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 414 / 435

Page 208:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole DHCP, dhcpd, dhcpd.conf, dhclient

Possibilité d’avoir une configuration du comportement DHCP du client aumoyen du fichier « /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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 415 / 435

18 Quelques services et protocoles réseau 18.9 Protocole 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 416 / 435

Page 209:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

18 Quelques services et protocoles réseau 18.9 Protocole 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 417 / 435

18 Quelques services et protocoles réseau 18.9 Protocole 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.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 418 / 435

Page 210:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique

Chapitre 19

Courrier électronique

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 419 / 435

19 Courrier électronique 19.1 Composantes du système du courrier électronique

Chapitre 19 • Courrier électronique§19.1 • Composantes du système du courrier électronique

C’est un système complexe dont la complexité croît sans cesse.

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

De nombreuses implémentations sont disponibles (X400, SMTP, MicrosoftExchange, etc.).

Le système est modulaire, son bon fonctionnement reposant sur desdescriptions publiquement disponibles des détails des différents protocoles.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 420 / 435

Page 211:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.1 Composantes du système du courrier électronique

Réseau

MTA

MDA

MUA

Boîteaux lettres

Courriers à destinationd’un utilisateur localDestinataire du

courrier non local

Transmission au facteur local

Distribution personnalisée

Emission d’un courrier

Consultation des courriers

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 421 / 435

19 Courrier électronique 19.1 Composantes du système du courrier électronique

Terminologie :

MUA (Mail User Agent — agent utilisateur)Il sert à la composition des messages qu’il envoie à l’agent de routage.MTA (Mail Transfer Agent — agent de routage)En fonction de l’adresse de destination, il passe le message à uncertain agent de transport.MDA (Mail Delivery Agent — agent de transport)Il reçoit un message, une destination et se charge de l’acheminement.Il est spécialisé dans un type d’acheminement.(synonyme mailer)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 422 / 435

Page 212:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.2 Mail Transfer Agent (MTA)

Chapitre 19 • Courrier électronique§19.2 • Mail Transfer Agent (MTA)

Rôle : sur réception d’un courrier, détermine le meilleur moyend’acheminer ce courrier à destination (quel protocole utiliser) et passe cecourrier à ce moyen.

Analogie : un centre de tri postal

centre de tri

centre de tri

La poste

jean

Plusieurs MTA existent : Sendmail, Postfix

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 423 / 435

19 Courrier électronique 19.3 Sendmail

Chapitre 19 • Courrier électronique§19.3 • Sendmail

Sendmail :Conçu en 1982, par Eric Allman (<[email protected]>)LE routeur de courrier pour les systèmes UNIX les plus répandusSouple, puissantSait s’adapter aux nouveaux standards (aspects multimedia)AbsconsCf « http://www.sendmail.org/ » pour le site officiel(récupération du logiciel, documentation de référence)Cf le kit jussieu pour configurer sendmailDocumentation très pédagogique« ftp://ftp.jussieu.fr/jussieu/sendmail/kit/kit-5.3.3.tar.Z »« ftp://ftp.jussieu.fr/jussieu/sendmail/kit/doc-kit-5.3.3.ps.Z »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 424 / 435

Page 213:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.4 Postfix

Chapitre 19 • Courrier électronique§19.4 • Postfix

« http://www.postfix.org »Futur successeur de sendmail certainement dans quelques années.Une réflexion sur sendmail a conduit à écrire postfix sous une forme nonmonolithique. Plusieurs démons vont s’occuper chacun d’une tâche bienprécise et n’utilisent pour cela que le minimum de privilèges systèmelimitant le risque de piratage :

local "sendmail" maildrop

Internet

RBL

pickup

smtpd

access

cleanup

rewrite

canonical virtual

incoming active

deferred

qmgr

resolve

transport

relocated

smtp

pipe

local

aliases .forward

mailbox

Internet

UUCP, etc.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 425 / 435

19 Courrier électronique 19.4 Postfix

Le fichier de configuration est une succession d’affectation de valeurs à desvariables.

Approche radicalement différente de celle de sendmail plus proche d’uneprogrammation de la configuration.Approche de postfix identique à celle du kit jussieu pour sendmail (ou viceversa).

Possibilité de modifier on the fly le comportement de postfix.Par exemple à l’établissement d’une connexion PPP ou lors de sa cloture,on peut depuis le script PPP dire à postfix d’échanger les mailsmaintenant avec l’extérieur.

Avec sendmail, il faudrait arrêter sendmail, mettre en place une nouvelleconfiguration « sendmail.cf », relancer sendmail, ensemble demanœuvres lourdes.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 426 / 435

Page 214:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.5 Normes utilisées par sendmail et postfix

Chapitre 19 • Courrier électronique§19.5 • Normes utilisées par sendmail et postfix

Sous forme de RFC :

RFC 822, description du format des messagesRFC 821, description du protocole SMTP (Simple Mail TransferProtocol)RFC 974, description de l’interaction d’un MTA avec le DNSRFC 1035,RFC 1123,

Attention : documents techniques hermétiques à la lecture compliquéeCf « ftp://ftp.lip6.fr/pub/rfc/rfc/ »

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 427 / 435

19 Courrier électronique 19.6 Adresses postmaster, abuse, SPAM

Chapitre 19 • Courrier électronique§19.6 • Adresses postmaster, abuse, SPAM

Les problèmes de mail sont à adresser à « postmaster ».Les MTA font l’hypothèse que cette adresse existe.Cette adresse doit être lue par un humain.

Dans le même style, l’adresse « abuse » pour les problèmes de SPAM.

UCE ≡Unsolicited Commercial Email ≡SPAM

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 428 / 435

Page 215:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.6 Adresses postmaster, abuse, SPAM

� Humour :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 429 / 435

19 Courrier électronique 19.6 Adresses postmaster, abuse, SPAM

Il existe plusieurs initiatives de recensement des sites spammeurs. Leursbases de données permettent de boycotter ces sites spammeurs.Par exemple RBL ≡ Real-time Blackhome List« http://mail-abuse.org/ »

Le problème :si votre site a servi à des spammeurs, vous pouvez être blacklistéempêcher le relayage sur son site⇒ gestion difficile des utilisateurs nomades (lecture des mails àdistance facilement contrôlable mais contrôler le post avec les outilsde base n’est guère possible)

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 430 / 435

Page 216:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.7 Protocoles de consultation : POP, IMAP

Chapitre 19 • Courrier électronique§19.7 • Protocoles de consultation : POP, IMAP

POP ≡ Post Office Protocol ; RFC ? ? ?IMAP ≡ ? ? ? ; RFC 2060 (protocole IMAP4rev1), RFC 2086 (ACL,extension de IMAP4), RFC 2087 (quota, extension de IMAP4)

2 approches très différentes (cf figure page suivante) :

un client POP transfère les messages du serveur POP vers le poste del’utilisateurle serveur POP se débarasse au fur et à mesure des consultations desmessages⇒ perte total des mails en cas de crash du poste clientun serveur IMAP stocke les messages et ne les transfère jamais ens’en débarassant de lui même au client⇒ quel que soit le poste de consultation, on retrouve ses mails⇒ aucune perte des mails en cas de crash du poste client⇒ adapté aux utilisateurs nomades

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 431 / 435

19 Courrier électronique 19.7 Protocoles de consultation : POP, IMAP

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 432 / 435

Page 217:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.7 Protocoles de consultation : POP, IMAP

De nombreuses implémentations pas forcément très réputées au niveausécurité :

version qpopper :ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper3.1.2.tar.gz

version courier imap :http://www.courier-mta.org/

version cyrus imap :

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 433 / 435

19 Courrier électronique 19.7 Protocoles de consultation : POP, IMAP

Comparatif de session POP et IMAP : (extrait dehttp://cri.univ-lyon2.fr/doc/ImapMaisCEstTresSimple.html)$ telnet mailhost 110 | $ telnet mailhost 143

+OK POP3 server ready | * OK IMAP4 server ready

USER pdupont | . LOGIN pdupont XXXXXXXX

+OK Name is a valid mailbox | . OK User logged in

PASS XXXXXXXX |

+OK Maildrop locked and ready |

| . SELECT INBOX

| * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)

| * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]

| * 3 EXISTS

| * 3 RECENT

| * OK [UNSEEN 1]

| * OK [UIDVALIDITY 901006906]

| . OK [READ-WRITE] Completed

|

LIST | . UID FETCH 1:* RFC822.SIZE

+OK scan listing follows | * 1 FETCH (UID 1425 RFC822.SIZE 169)

1 169 | * 2 FETCH (UID 1426 RFC822.SIZE 811)

2 811 | * 3 FETCH (UID 1427 RFC822.SIZE 813)

3 813 | . OK Completed

. |

|

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 434 / 435

Page 218:  · 1 Gestion des comptes utilisateurs 1.1 Introduction Un compte utilisateur : dé nition de son identi cation pour le système dé nition d'un environnement utilisateur Opérations

19 Courrier électronique 19.7 Protocoles de consultation : POP, IMAP

(suite)|

RETR 1 | . UID FETCH 1425 BODY[]

+OK Message follows | * 1 FETCH (FLAGS (\Recent \Seen) UID 1425 BODY[] {169}

Return-Path: <[email protected]> | Return-Path: <[email protected]>

From: [email protected] | From: [email protected]

To: [email protected] | To: [email protected]

Subject: essai chien chapeau | Subject: essai chien chapeau

|

essai chien chapeau | essai chien chapeau

. | )

| . OK Completed

|

DELE 1 | . UID STORE 1425 +FLAGS (\Deleted)

+OK message deleted | * 1 FETCH (FLAGS (\Recent \Deleted \Seen) UID 1425)

| . OK Completed

| . EXPUNGE

| * 1 EXPUNGE

| * 2 EXISTS

| * 2 RECENT

| . OK Completed

QUIT | . LOGOUT

+OK | * BYE LOGOUT received

Connection closed by foreign host. | . OK Completed

| Connection closed by foreign host.

c©T.Besançon (version 9.0) Administration Unix ARS 2006–2007 Tôme 3 435 / 435