chapitre 32 : authentification des comptes utilisateurs · 2004-08-12 · authentification des...

84
Authentification des comptes utilisateurs Chapitre 32 : Authentification des comptes utilisateurs Un compte utilisateur : – définition de son identification pour le système – définition d’un environnement utilisateur Opérations possibles : – création – modifications – destruction Formation permanente – ARS 1 Authentification des comptes utilisateurs Le fichier /etc/passwd § 32.1 Le fichier /etc/passwd Il contient les informations sur les identifications des utilisateurs. 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 ... Formation permanente – ARS 2

Upload: others

Post on 06-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs

Chapitre 32 : Authentification des comptes utilisateurs

Un compte utilisateur :

– définition de son identification pour le système

– définition d’un environnement utilisateur

Opérations possibles :

– création

– modifications

– destruction

Formation permanente – ARS 1

Authentification des comptes utilisateurs Le fichier /etc/passwd

§ 32.1 Le fichier /etc/passwd

Il contient les informations sur les identifications des utilisateurs.

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

...

Formation permanente – ARS 2

Page 2: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Format du fichier /etc/passwd, <pwd.h>

§ 32.2 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. */

};

Formation permanente – ARS 3

Authentification des comptes utilisateurs Format du fichier /etc/passwd, <pwd.h>

– champ 1 : login

Nom sous lequel un ordinateur connait un individu.

8 caractères en général. Pour plus, vérifier

Sur Linux, on peut avoir des noms plus longs que 8.

Conseils : pas de majuscules, éviter les caractères accentués.

– champ 2 : mot de passe

Mot de passe de l’utilisateur stocké sous forme chiffrée non dé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 de passe : 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

Formation permanente – ARS 4

Page 3: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Format du fichier /etc/passwd, <pwd.h>

– champ 3 : UID

Identificateur numérique compris entre 0 et 32767 (short int a priori).

Sur Linux, c’est un __uid_t, un unsigned int.

Cette valeur doit être unique au sein des utilisateurs.

– champ 4 : GID

Identificateur numérique compris entre 0 et 32767 (short int a priori).

Sur Linux, c’est un __gid_t, un unsigned int.

Cette valeur doit être unique au sein des groupes.% ls -ln

-rw-r--r-- 1 4332 1000 5544 Sep 15 22:47 cours.dvi

-rw-r--r-- 1 4332 1000 940 Sep 15 22:27 cours.tex

% ls -l

-rw-r--r-- 1 besancon software 5928 Sep 15 22:49 cours.dvi

-rw-r--r-- 1 besancon software 940 Sep 15 22:27 cours.tex

Formation permanente – ARS 5

Authentification des comptes utilisateurs Format du fichier /etc/passwd, <pwd.h>

– champ 5 : gecos

Identité en clair de l’utilisateur.

Les systèmes BSD y ont stockés d’autres informations comme le numéro de téléphone, le numéro

de bureau etc.

La commande chfn (change finger) permet de modifier ce champs.

– champ 6 : homedir

Répertoire par défaut.

– champ 7 : shell

Shell par défaut.

Si le champ est vide, on prend /bin/sh par défaut.

Le shell déterminera les fichiers de configuration à installer chez l’utilisateur.

La commande chsh (change shell) permet de choisir parmi les shells mentionnés dans

/etc/shells.

Formation permanente – ARS 6

Page 4: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Format du fichier /etc/passwd, <pwd.h>

Quelques conseils :

– Il faut toujours trier les lignes de /etc/passwd selon l’ordre numérique des UID :

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

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

Formation permanente – ARS 7

Authentification des comptes utilisateurs Chiffrement des mots de passe, crypt()

§ 32.3 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’administration américaine

Ce chiffrement non réversible est dit hashing (le mot de passe chiffré est dit hashed).

Disponible sur Unix via la fonction C crypt() :

– premier paramètre : la chaine à chiffrer

– second paramètre : la graine (dite salt en anglais) composée de 2 caractères

– résultat renvoyé : une chaine dont les 2 premiers caractères reprennent le salt

Ainsi crypt("QWERTY", "NU") renvoit NUMVcLVD/dM12

Formation permanente – ARS 8

Page 5: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs 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]));

}

Une fois compilé, le programme montre :

% ./textCRYPT NU

Chaine a chiffrer : XXXXXXXX <-- QWERTY pour l’exemple

=> NUMVcLVD/dM12

Formation permanente – ARS 9

Authentification des comptes utilisateurs Cycle du mot de passe et commande passwd

§ 32.4 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 le nouveau mot de passe entré.

passwd crypt()

randomseedor "salt"

serveur/etc/passwd(/etc/shadow)

hashedpassword

Formation permanente – ARS 10

Page 6: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs 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 de passe initial.

Formation permanente – ARS 11

Authentification des comptes utilisateurs 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: ZZZZZZZZ

passwd (SYSTEM): passwd successfully changed for besancon

Root n’a jamais besoin de connaître le mot de passe d’un utilisateur pour en 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

Formation permanente – ARS 12

Page 7: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Cycle du mot de passe et commande passwd

La commande passwd peut comporter plus ou moins de règles de vé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

Formation permanente – ARS 13

Authentification des comptes utilisateurs Cycle du mot de passe et commande login

§ 32.5 Cycle du mot de passe et commande login

La commande lancée par le système pour se connecter est la commande login.

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.

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

Formation permanente – ARS 14

Page 8: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Cycle du mot de passe et commande login

Si le mot de passe hashé est saeLydiaFuF5o, on réalisera donc au login la comparaison C :

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

avec XXXXXXXX le mot de passe en clair.

Formation permanente – ARS 15

Authentification des comptes utilisateurs Shadow Passwords, /etc/shadow, <shadow.h>

§ 32.6 Shadow Passwords, /etc/shadow, <shadow.h>

L’idée part de la constatation que, si beaucoup de programmes accèdent au 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 pour le stocker dans un fichier à accès plus

restreints.

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

-rw------- root wheel 13318 Sep 15 22:50 /etc/master.passwd

L’ancien mot de passe chiffré est remplacé par exemple par un caractère comme * ou x :

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

Formation permanente – ARS 16

Page 9: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Shadow Passwords, /etc/shadow, <shadow.h>

Plusieurs formats de fichiers shadow sont utilisés par les constructeurs qui ne se sont pas mis

d’accord.

� Linux

Fichiers /etc/passwd et /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:::

...

Formation permanente – ARS 17

Authentification des comptes utilisateurs Shadow Passwords, /etc/shadow, <shadow.h>

� Solaris Fichiers /etc/passwd et /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::::::

...

Formation permanente – ARS 18

Page 10: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Le fichier /etc/group, <grp.h>

§ 32.7 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. */

};

Formation permanente – ARS 19

Authentification des comptes utilisateurs Le fichier /etc/group, <grp.h>

– champ 1 : group

Nom du groupe apparaissant par ls -lg.

– champ 2 : mot de passe

Mot de passe du groupe.

– champ 3 : GID

Identificateur numérique compris entre 0 et 32767.

Sur Linux, c’est un __gid_t, un unsigned int.

Cette valeur doit être unique au sein des groupes.

– champ 4 : membres

Liste de noms de login séparés par des virgules.

Formation permanente – ARS 20

Page 11: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Création d’un nouveau compte

§ 32.8 Création d’un nouveau compte

Action mécanique automatisable.

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

Système Program

AIX smit

HP-UX sam

Solaris admintool

FreeBSD adduser

etc.

Formation permanente – ARS 21

Authentification des comptes utilisateurs Création d’un nouveau compte

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

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

Problème : comment personnaliser cette interface ?

Formation permanente – ARS 22

Page 12: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Création d’un nouveau compte

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 la personne

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 des comptes (/etc/passwd ou

NIS selon la politique du service) ; * comme mot de passe par défaut

Formation permanente – ARS 23

Authentification des comptes utilisateurs Création d’un nouveau compte

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 bien sûr l’incorporation d’une

nouvelle ligne dans la base de données.

Formation permanente – ARS 24

Page 13: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Compte root

§ 32.9 Compte root

Sa particularité vient de son UID == 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

�.foorc�).

Formation permanente – ARS 25

Authentification des comptes utilisateurs Comptes fictifs

§ 32.10 Comptes fictifs

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

...

Formation permanente – ARS 26

Page 14: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Comptes fictifs

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.

Formation permanente – ARS 27

Authentification des comptes utilisateurs Commandes id, groups

§ 32.11 Commandes id, groups

La commande id renvoit votre UID et vos GID, primaire et secondaires :

% id

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

12(daemon),1000(sae3),1002(www)

La commande groups renvoit vos GID d’appartenance :

% groups

adm root sys daemon sae3 www

Formation permanente – ARS 28

Page 15: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Commande su

§ 32.12 Commande su

La commande su permet de changer d’identité :

su [-] utilisateur2

Vérification par demande du mot de passe de l’utilisateur destination.

Pour hériter complètement de l’identité, utiliser l’option "-" de la commande "su".

Formation permanente – ARS 29

Authentification des comptes utilisateurs Commande su

� Quand on se trompe sur le mot de passe :

% id

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

% su besancon

Password:

Sorry

� Quand on donne le bon mot de passe :

% id

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

% su beurnez

Password:

% id

uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)

Formation permanente – ARS 30

Page 16: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Commande su

Pour devenir root, la commande est donc simplement :

% su root

ce qui peut se simplifier encore en :

% su

Formation permanente – ARS 31

Authentification des comptes utilisateurs Commande su

Pour hériter complètement de l’identité, utiliser l’option "-" de la 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 beurnez

% id

uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)

% pwd

/users/adm/besancon

% printenv

...

MAIL=/var/mail/besancon

...

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

Formation permanente – ARS 32

Page 17: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Authentification des comptes utilisateurs Commande su

� Exemple de non 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 - beurnez

% id

uid=8520(beurnez) gid=8506(lps-06) groups=8506(lps-06)

% pwd

/users/stat/beurnez

% printenv

...

MAIL=/var/mail/beurnez

...

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

Formation permanente – ARS 33

Authentification des comptes utilisateurs Deviner des mots de passe

§ 32.13 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 en mode non protégé), on

peut utiliser certains outils pour vérifier la complexité des mots de passe en appliquant des

dictionnaires et des règles d’applications :

– John the ripper, disponible à http://www.openwall.com/john/

– Crack, disponible à http://www.users.dircon.co.uk/~crypto/

Formation permanente – ARS 34

Page 18: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS

Chapitre 33 : NIS

NIS � Network Information Service

– Créé par SUN en 1985

– Anciennement Yellow Pages � certaines commandes ont un nom en "yp. . ."

– Version NIS+ vers 1992, radicalement différente (cf annexe)

C’est un protocole réseau d’accès à des informations centralisées sur un ou plusieurs serveurs

redondants.

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

Formation permanente – ARS 35

NIS Architecture de NIS

§ 33.1 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

Formation permanente – ARS 36

Page 19: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Architecture de NIS

Caractéristiques :

– Communications réseau via RPC (Remote Procedure Call)

– Propagation des données (maps) du master server aux slave servers en mode pull ou en mode

push.

– Propagation des maps complètes

– Seul le master server peut modifier les données

– Les slave servers diffusent les données sans pouvoir les modifier

Formation permanente – ARS 37

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

§ 33.2 Données NIS : maps NIS, DBM, ypcat, ypmatch

Les données manipulées par NIS : maps

Les maps contiennent des couples (clef, valeur).

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

Une map est au format DBM (cf man dbm) ; une map se compose de 3 fichiers :

– le fichier source

– le fichier de suffixe .pag

– le fichier de suffixe .dir

Formation permanente – ARS 38

Page 20: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

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

% cat demo

clef1 banane

clef2 arbre

% makedbm demo demo

% ls -l demo 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

Formation permanente – ARS 39

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

Les maps sont construites automatiquement à partir de tous les fichiers sources 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 de maps et leur propagation aux

slave servers (mode push).

Formation permanente – ARS 40

Page 21: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS 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

...

La construction d’une map se résume alors à (par exemple suite à une modification de

/etc/hosts) :

# vi /etc/hosts

# cd /var/yp

# make hosts

updated hosts

pushed hosts

Formation permanente – ARS 41

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

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

% man dbm

SunOS/BSD Compatibility Library Functions dbm(3B)

NAME

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

nextkey - data base subroutines

...

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

the internal block size (currently 1024 bytes). Moreover

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

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

disk block fills with inseparable data.

Formation permanente – ARS 42

Page 22: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS 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

Formation permanente – ARS 43

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

La commande ypcat permet de consulter une map NIS depuis n’importe quel client.

Syntaxe : ypcat map-NIS

La commande ypmatch permet de consulter la valeur d’une ou plusieurs clefs dans une certaine

map NIS depuis n’importe quel client.

Syntaxe : ypmap clef1 clef2... map-NIS

Formation permanente – ARS 44

Page 23: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Client NIS, domainname, ypbind, ypwhich, ypset

§ 33.3 Client NIS, domainname, ypbind, ypwhich, ypset

Un client NIS doit se connecter à un serveur NIS. C’est l’action de binding.

Le binding nécessite :

– de fournir un nom de domaine NIS, le domainname ;

une machine se déclare comme membre du groupe servi par les serveurs NIS

– de préciser la méthode de localisation du serveur NIS : broadcast ou explicite

Formation permanente – ARS 45

NIS 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

Configuration du domainname automatique au démarrage :

– Sur Solaris : renseigner le fichier /etc/defaultdomain

– Sur Linux : renseigner le fichier /etc/sysconfig/networkNETWORKING=yes

FORWARD_IPV4=false

HOSTNAME=pcars6.formation.jussieu.fr

DOMAINNAME=formation.jussieu.fr

GATEWAY=134.157.253.126

GATEWAYDEV=eth0

NISDOMAIN=real.world

Formation permanente – ARS 46

Page 24: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Client NIS, domainname, ypbind, ypwhich, ypset

� Réalisation du binding

Un client NIS fait tourner le démon ypbind qui se connecte à un serveur NIS que l’on trouve selon

2 méthodes possibles :

– découverte par broadcast ; c’est le mode par défaut.

Sur Solaris, /usr/lib/netsvc/yp/ypbind -broadcast

En pratique il y a une map ypservers qui contient les noms des serveurs.

Cf /var/yp/binding/nom-de-domaine-NIS/ypservers

– demande de connexion explicite

Sur Solaris faire :

# ypbind -ypsetme

# ypset nom-du-serveur-NIS-voulu

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

Formation permanente – ARS 47

NIS Client NIS, domainname, ypbind, ypwhich, ypset

On peut controler un peu quels sont les clients qui se bindent aux servers.

Pour cela, remplir sur les slave servers et sur le master server le fichier

/var/yp/securenets. Il liste les machines autorisées, sous forme adresses et netmasks.

Par exemple :

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.

Formation permanente – ARS 48

Page 25: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Client NIS, domainname, ypbind, ypwhich, ypset

� Consultation des maps

Un client NIS doit indiquer quels maps il utilisera. La plus courante est la map passwd dont on

indique l’utilisation par l’ajout d’une ligne en fin de fichier /etc/passwd :

+::65534:65534:::

Signification de cette ligne supplémentaire (à vérifier sur chaque système car il existe des

différences) :

Tout champ renseigné de cette ligne + remplace le même champ de la map

inconditionnellement sauf pour UID et GID.

Pour UID et GID, les valeurs mentionnées s’activeront si ces champs sont absents de la map

(c’est-à-dire quand la map est vérolée ce qui indique un problème de fichier source vérolé).

Formation permanente – ARS 49

NIS 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’UID

– le GID sera 65534 si l’entrée de la map ne précise pas de GID

– le shell de login est mis automatiquement à /usr/local/bin/tcsh

Formation permanente – ARS 50

Page 26: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Slave server NIS, ypserv, ypxfr

§ 33.4 Slave server NIS, ypserv, ypxfr

Un serveur NIS esclave fait tourner plusieurs démons :

– ypserv

– ypbind

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

Le démon ypbind n’est là que pour faire du slave server un client NIS aussi (mais ce n’est pas

obligatoire).

Il n’est pas garanti que le slave server soit client NIS de lui même. Il peut se binder sur un autre

serveur NIS du même domaine.

Formation permanente – ARS 51

NIS Slave server NIS, ypserv, ypxfr

Un slave server peut être down au moment où un master slave fait un push des maps.

� besoin pour le slave server de se resynchroniser avec le master server ;

pull des maps de la part du slave server

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

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

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

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

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

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

Formation permanente – ARS 52

Page 27: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

§ 33.5 Master server NIS, ypxfrd, rpc.yppasswdd, yppasswd

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

– ypserv

– ypbind

– ypxfrd

– rpc.yppasswdd

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

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

Le démon ypxfrd assure les transferts de maps demandés par les slave servers (mode pull). (en

Unix, on rencontre souvent le mot xfr pour transfert)

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

Formation permanente – ARS 53

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

Avec NIS, un client NIS ne peut pas modifier le contenu d’une map.

Pour changer un mot de passe, on va émuler le changement du mot de passe sur le master server

dans son fichier source (/etc/passwd) puis la reconstruction de la map passwd et sa

transmission en totalité aux slave servers.

Ce processus se réalise en utilisant la commande yppasswd qui demande les mots de passe à

l’utilisateur puis appelle rpc.yppasswdd sur le master server qui simule la session interactive

composée des commandes :

# passwd

# cd /var/yp

# make passwd

Formation permanente – ARS 54

Page 28: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

Sur un client NIS Linux :

% yppasswd

Changing NIS account information for besancon on serveur.

Please enter old password: ********

Changing NIS password for besancon on serveur.

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

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

The NIS password has been changed on serveur.

Sur un master server NIS Solaris :

% yppasswd

Enter login(NIS) password: ********

New password: ********

Re-enter new password: ********

NIS passwd/attributes changed on serveur

Formation permanente – ARS 55

NIS Netgroups

§ 33.6 Netgroups

Le système NIS permet de définir des groupes d’autorisation d’accès : les netgroups. Ces groupes

sont diffusés via la map netgroup.

Un netgroup est un nom symbolique associé à un ensemble de triplets (je n’ai jamais vu le troisième

champ avoir une quelconque utilité en pratique) :

nom-de-netgroup \

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

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

...

On définit en pratique des netgroups concernant des machines et des netgroups concernant des

utilisateurs. On autorisera ainsi ou pas des groupes d’utilisateurs ou de machines à accéder à

certaines ressources.

Formation permanente – ARS 56

Page 29: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Netgroups

Exemple de netgroup de machines :

nains \

(atchoum.phys.ens.fr,,physique) \

(dormeur.phys.ens.fr,,physique) \

(joyeux.phys.ens.fr,,physique) \

(grincheux.phys.ens.fr,,physique) \

(prof.phys.ens.fr,,physique) \

(timide.phys.ens.fr,,physique) \

(simplet.phys.ens.fr,,physique)

Exemple de netgroup d’utilisateurs :

etudiants \

(,jean,) \

(,pierre,) \

(,valerie,)

Formation permanente – ARS 57

NIS 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

Formation permanente – ARS 58

Page 30: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS Netgroups

Exemple d’utilisation d’un netgroup de machines au niveau de l’exportation de disques via NFS

(fichier /etc/exports, cf chapitre sur NFS) :

/usr/openwin -access=nains

Formation permanente – ARS 59

NIS Installation de NIS

§ 33.7 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

Formation permanente – ARS 60

Page 31: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

NIS+

Chapitre 34 : NIS+

Cf annexe pour un document sur NIS+.

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

Le système NIS+ n’a pas connu de succès et il est maintenant officiellement abandonné au profit de

LDAP par son principal défenseur, SUN.

Principaux reproches à NIS :

– pas d’authentification du client aux serveurs NIS ; connaitre le domainname suffit à se binder

– les maps sont transmises en totalité même en cas de faible modification de leurs contenus

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

– mode broadcast

Formation permanente – ARS 61

Page 32: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP

Chapitre 35 : LDAP

§ 35.1 Problématique

Cas de l’université de Paris 4 :

– base Microsoft Excel du personnel administratif

– base Microsoft Access du personnel enseignant

– base /etc/passwd des comptes email des utilisateurs

– base mysql des 2 catégories de personnel

– prochainement logiciel à base d’Oracle

– prochainement Microsoft Active Directory

Date XYZ : envoyer un email à tous les personnels administratifs sachant que le service du

personnel ne fournira qu’une liste avec nom et prénom. Comment l’ingénieur système fait-il ?

Date XYZ2 : envoyer un email à tous les personnels administratifs sauf ceux du site de Clignancourt,

sachant que le service du personnel ne peut pas fournir de liste cette fois-ci. Comment l’ingénieur

système fait-il ?

Formation permanente – ARS 62

LDAP Principe d’annuaire

§ 35.2 Principe d’annuaire

Un annuaire informatique est un service permettant d’accéder à des informations, relatives à des

personnes ou à diverses ressources de façon organisée.

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

de référence.

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

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

– Le schéma des données est défini à 100% pour résoudre un certain problème.

– Les applications connaissent explicitement le schéma des données.

– Les objets sont complexes et éclatés entre plusieurs tables liées par des relations complexes.

– Un SGBD supporte les transactions.

– Un SGBD supporte un langage comme SQL qui permet des fonctions d’interrogation et de mises à

jour très complexes.

– Un SGBD centralise les données pour éviter les problèmes de synchronisation de données et de

qualité des temps de réponse.

Formation permanente – ARS 63

Page 33: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Principe d’annuaire

Un annuaire se caractérise par :

– Les objets sont indépendants (pas de liens de dépendance entre eux).

– Les objets peuvent être distribué sur plusieurs annuaires pour assurer une meilleure disponibilité.

– Le schéma est standardisé pour pouvoir partager les données.

– Le schéma est extensible pour prendre en compte tous les besoins mais cela est fait de façon

compatible avec les standards.

– Les applications d’annuaire ignorent la structure interne des données.

– Un annuaire est principalement consulté en lecture et est optimisé pour cela.

Formation permanente – ARS 64

LDAP Annuaire LDAP

§ 35.3 Annuaire LDAP

LDAP � Lightweight Directory Access Protocol

Héritier de l’annuaire ISO X500.

Version 3 actuellement. RFC 2251 à 2256, RFC 2829 à 2830, RFC 2849.

Il n’y a pas de standard de représentation des contrôles d’accès aux données.

LDAP :

– nom d’un protocole

– nom d’une structure de données

– nom d’implémentations de serveurs suivant le protocole

Confusion possible. . .

Formation permanente – ARS 65

Page 34: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

§ 35.4 Modèle de données de LDAP : DIT, suffixe

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

L’une des difficultés de LDAP : construire l’organisation du DIT. De quoi est-il le reflet ?

DIT à caractère organisationnel ?

dc=company,dc=com

dc=marketingdc=financedc=recherche

dc=people

dc=groups

dc=people

dc=groups

dc=people

dc=groups

Formation permanente – ARS 66

LDAP 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

Pas de solution universelle.

Formation permanente – ARS 67

Page 35: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP 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=fr

– forme 3 : dc=company,dc=com

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

Formation permanente – ARS 68

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

Exemple de DIT visualisé avec LdapBrowser disponible à l’URL

http://www.iit.edu/~gawojar/dap/ :

Formation permanente – ARS 69

Page 36: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

§ 35.5 Modèle de données de LDAP : entrée, attributs, DN, URL

DSE � Directory Service Entry

Les entrées dans le DIT (DSE) sont des agrégats d’attributs monovalués ou multivalués qui

permettent de stocker n’importe quel format de données (prénom, numéro de téléphone, image, son,

etc.)

Les DSE sont stockées dans le DIT et arrangés selon leur identifiant unique, le DN (Distinguished

Name). Un DN est la concaténation d’un RDN (Relative DN) et du DN des parents. Un DN

s’apparente à une clef primaire.

suffixe : dc=company,dc=com

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

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

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

Formation permanente – ARS 70

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

Formation permanente – ARS 71

Page 37: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP 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 :

Formation permanente – ARS 72

LDAP Modèle de données de LDAP : schéma, syntaxes, OID, objectclass

§ 35.6 Modèle de données de LDAP : schéma, syntaxes, OID, objectclass

Le schéma du DIT regroupe les définitions relatives aux types d’objets que peut contenir l’annuaire

ou que l’on peut rechercher.

Le schéma contiendra des objets instanciations de classes LDAP, les définitions de ces classes et

de leurs attributs, les syntaxes de ces attributs.

Tous ces éléments seront identifiés par des Object Identifiers dits OID.

attributetype ( 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)

Formation permanente – ARS 73

Page 38: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Modèle de données de LDAP : schéma, syntaxes, OID, objectclass

Une syntaxe est un modèle de représentation des valeurs de l’attribut. Par exemple booléen, entier,

binaire (pour une image, un son), etc.

L’attribut objectclass spécifie la liste des classes qu’instancie un DSE. Chaque classe va

construire la structure du DSE en spécifiant une liste d’attributs obligatoirement présents (MUST

dans l’objectclass) et une liste d’attributs facultatifs (MAY dans l’objectclass).

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.

Formation permanente – ARS 74

LDAP Modèle de données de LDAP : schéma, syntaxes, OID, objectclass

Les objectclass de LDAP s’inscrivent dans un hiérarchie dont la racine est l’objectclass top.

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

Chaque classe peut donner lieu à plusieurs sous classes.

(Abstract)

top

(Structural)

person(Auxiliary)

companyPerson

(Structural)

residentialPerson

(Structural)

organizationalPerson

Formation permanente – ARS 75

Page 39: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Protocole LDAP / Bind

§ 35.7 Protocole LDAP / Bind

Au niveau réseau :

– LDAP : TCP port 389

– LDAP + SSL : TCP port 636

– ( syntaxe LDAP au format ASN.1 ) + BER

Un dialogue LDAP s’établit après une phase d’ouverture de session dite bind.

Le bind peut être anonyme ou authentifié.

Formation permanente – ARS 76

LDAP Format de données LDIF

§ 35.8 Format de données LDIF

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

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

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

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

Formation permanente – ARS 77

Page 40: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Format de données LDIF

Attention aux caractères non ASCII :

– si la valeur d’un attribut est uniquement composé de caractères ASCII, on l’écrit

attribut : valeur

– si la valeur d’un attribut contient des caractères non ASCII, il faut coder cette valeur en Base64

puis la coder en UTF-8 et écrire au final attribut :: valeur2

Par exemple l’attribut description de valeur

Université de Paris-Sorbonne, Paris 4

ne sera pas codé en LDIF sous la forme

description: Université de Paris-Sorbonne, Paris 4

mais sous la forme

description:: VW5pdmVyc2l0w6kgZGUgUGFyaXMtU29yYm9ubmUsIFBhcmlzIDQ=!

Notez les différences !

2 utilitaires pratiques :

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

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

Formation permanente – ARS 78

LDAP Format de données LDIF

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

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

objectclass: top

objectclass: organizationalUnit

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

businessCategory: academic research

telephoneNumber: +33 (0) 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

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=Formation permanente – ARS 79

Page 41: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Implémentations

§ 35.9 Implémentations

Il existe plusieurs implémentations de LDAP :

– OpenLdap, http://ww.openldap.org, version 2.1.3 (au 21 août 2002)

– Iplanet Directory (anciennement Netscape Directory Server, racheté par SUN), incorporé de base

dans Solaris 8 et ultérieur

– Novell Directory Services, version 4 ?

Les différentes implémentations respectent les normes du protocole. Par contre, elles différent au

niveau de tout ce qui n’est pas norme. En particulier, les droits d’accès aux données sont codés de

façon incompatible.

Formation permanente – ARS 80

LDAP OpenLDAP

§ 35.10 OpenLDAP

Cf http://www.openldap.org/

Les versions 2.x.y d’OpenLDAP sont compatibles avec les normes de LDAP v3.

Le logiciel se compose de :

– du serveur LDAP slapd

– du serveur de synchronisation slurpd

– d’utilitaires (slapadd ldapsearch, ldapadd, ldapdelete, ldapmodify,

ldappasswd, etc.)

– librairies, include LDAP

– un fichier de configuration slapd.conf dans lequel on définit le suffixe, le rootDN, le mot de

passe du rootDN

Formation permanente – ARS 81

Page 42: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP 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)

Formation permanente – ARS 82

LDAP ObjectClass posixAccount, shadowAccount

§ 35.11 ObjectClass posixAccount, shadowAccount

Cf RFC2307

Cf le schéma nis.schema dans OpenLDAP.

L’objectclass posixAccount est l’objet qui implémente l’équivalent de la structure C de

<pwd.h> :

objectclass ( 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 principe des shadow passwds :

objectclass ( 1.3.6.1.1.1.2.1 NAME ’shadowAccount’ SUP top AUXILIARY

DESC ’Additional attributes for shadow passwords’

MUST uid

MAY ( userPassword $ shadowLastChange $ shadowMin $

shadowMax $ shadowWarning $ shadowInactive $

shadowExpire $ shadowFlag $ description ) )

Formation permanente – ARS 83

Page 43: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

LDAP Un peu de bibliographie

§ 35.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

Formation permanente – ARS 84

Page 44: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

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

§ 36.1 Problématique

Exemple :

– il y a les fichiers système (/etc/passwd, /etc/hosts, /etc/services, . . .)

– il y a le DNS

– il y a NIS

– il y a NIS+

– il y a LDAP

– etc.

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

Une solution : préciser quels naming services seront utilisés et dans quel ordre au niveau du fichier

/etc/nsswitch.conf (naming service switch).

Formation permanente – ARS 85

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

§ 36.2 Syntaxe de /etc/nsswitch.conf

Le fichier est au format suivant :

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

avec :

– pour source l’un des mots clef files, dns, ldap, nis, nisplus, xfn (liste à vérifier selon

les systèmes Unix offrant plus ou moins de ces services)

– pour status l’un des mots clef suivants :

– SUCCESS, entrée recherchée trouvée

– NOTFOUND, entrée recherchée non trouvée

– UNAVAIL, la source n’est pas configurée sur ce système ou bien elle est défaillante

– TRYAGAIN, la source est occupée et ne peut pas répondre actuellement, peut-être plus tard

Formation permanente – ARS 86

Page 45: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

– pour action l’un des mots clefs :

– return, retourner la valeur trouvée ou la non valeur

– continue, essayer la source suivante

– forever (uniquement pour TRYAGAIN), persister sur cette source jusqu’à avoir une

réponse

Par défaut, on a pour chaque source :

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

Formation permanente – ARS 87

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

§ 36.3 Exemple de /etc/nsswitch.conf

(pris sur SOLARIS)

passwd: files ldap

group: files ldap

hosts: ldap [NOTFOUND=return] files

ipnodes: files

networks: ldap [NOTFOUND=return] files

protocols: ldap [NOTFOUND=return] files

rpc: ldap [NOTFOUND=return] files

ethers: ldap [NOTFOUND=return] files

netmasks: ldap [NOTFOUND=return] files

bootparams: ldap [NOTFOUND=return] files

publickey: ldap [NOTFOUND=return] files

netgroup: ldap

automount: files ldap

aliases: files ldap

# for efficient getservbyname() avoid ldap

services: files ldap

sendmailvars: files

# role-based access control

auth_attr: files ldap

exec_attr: files ldap

prof_attr: files ldap

user_attr: files ldap

# audit

audit_user: files ldap

project: files ldap

Formation permanente – ARS 88

Page 46: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

§ 36.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/

Formation permanente – ARS 89

Page 47: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM

Chapitre 37 : Pluggable Authentification Module, PAM

§ 37.1 Problématique

Exemple :

– Soit une machine dans une université, hébergeant les comptes de 10 professeurs et de 1000

élèves.

– La machine est équipée d’un modem.

– Les professeurs sont autorisés à se connecter à la machine par modem, pas les élèves.

– La machine est cliente NIS.

– Quand on se connecte par modem sur une machine, le système lance la commande login

lorsque la connexion s’établit.

Comment implémenter cela ?

En modifiant le programme login pour l’adapter à ce cas très particulier ? ? ?

Formation permanente – ARS 90

Pluggable Authentification Module, PAM 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 ?

Une solution développée par SUN à l’origine et reprise et encouragée dans Linux :

Pluggable Authentification Module dit PAM

Formation permanente – ARS 91

Page 48: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM Principe de PAM

§ 37.2 Principe de PAM

L’authentication fait appel par l’intermédiaire de PAM à des modules externes de code

d’authentification appropriée selon le service. On déporte l’authentification en dehors du programme.

4 catégories de modules PAM :

– module d’authentification (authentication)

fonctionnalités pour authentifier un utilisateur et définir ses créances

– module de gestion de compte (account management)

fonctionnalités pour déterminer si l’utilisateur dispose d’un compte valide (car possibilité

d’expiration de mot de passe dit password aging, de restrictions d’accès horaire)

– module de gestion de session (session management)

fonctionnalités pour définir et terminer les sessions utilisateur

– module de gestion de mot de passe (password management)

fonctionnalités pour changer un mot de passe utilisateur et certaines caractéristiques du compte

Pour une certaine application, on organise les modules nécessaires sous forme d’une pile et chaque

module de la pile va être essayé pour constituer l’authentification demandée.

Selon la configuration, un utilisateur pourra être amené à rentrer plusieurs mots de passe.

Formation permanente – ARS 92

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

§ 37.3 Fichier de configuration /etc/pam.conf

/etc/pam.conf définit quels modules seront utilisés pour chaque application.

(Sur Linux, on trouve aussi le répertoire /etc/pam.d qui contient un fichier par application portant le nom de

l’application. Ainsi /etc/pam.d/login pour le service login.)

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

service_name module_type control_flag module_path options

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

Formation permanente – ARS 93

Page 49: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM 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

Formation permanente – ARS 94

Pluggable Authentification Module, PAM Directives d’essai des modules

§ 37.4 Directives d’essai des modules

Les directives possibles d’essai des modules sont :

– directive required

la valeur de retour de ce module doit être PAM_SUCCESS pour sortir de la pile d’authentification

avec succès ; PAM_AUTH_ERR fera recommencer toute la pile

– directive requisite

une valeur de retour PAM_AUTH_ERR fait sortir de la pile d’authentification prématurément en

échec

– directive optional

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

– directive sufficient

une valeur de retour PAM_SUCCESS de ce module fait sortir de la pile d’authentification

prématurément avec succès ; les autres modules dans la pile ne sont pas pris en compte

Formation permanente – ARS 95

Page 50: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

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

§ 37.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.

Formation permanente – ARS 96

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

/usr/lib/security/pam_unix.so.1 fournit un suport d’authentification, gestion de

compte, session de mot de passe. Il utilise les mots de passe Unix pour l’authenfication.

/usr/lib/security/pam_dial_auth.so.1 peut seulement être utilisé pour

l’authentification. Il utilise des données stockées dans /etc/dialups et /etc/d_passwd.

Principalement utilisé par login.

/usr/lib/security/pam_rhosts_auth.so.1 peut seulement être utilisé pour

l’authentification. Il utilise les données stockées dans les fichiers .rhosts et

/etc/hosts.equiv. Principalement utilisé par rlogin et rsh.

Formation permanente – ARS 97

Page 51: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM Options des modules

§ 37.6 Options des modules

On peut passer certaines options aux modules

– des options spécifiques à chaque module ; cf la documentation de chaque module ; par exemple

retry=3 ou debug

– option use_first_pass

Cette option indique d’utiliser exclusivement le mot de passe entré pour le premier module de la

pile du service.

– option try_first_pass

Cette option indique d’utiliser d’abord le mot de passe entré pour le premier module de la pile du

service et en cas d’échec de ce mot de passe d’en demander un autre.

(Le support des options use_first_pass et try_first_pass est fortement conseillé auprès des

développeurs de modules PAM ; à vérifier donc avec chaque module)

Formation permanente – ARS 98

Pluggable Authentification Module, PAM Exemple 1

§ 37.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.:

Session interactive :

% tty

/dev/pts/9

% exec login

exec login

login: besancon

Password: XXXXXXXX <-- mot de passe

Dialup Password: YYYYYYYY <-- mot de passe

%% <-- connexion établie, shell lancé

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

Formation permanente – ARS 99

Page 52: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM Exemple 1

Si l’on se trompe dans l’un des mots de passe, toutes les demandes de mot de passe sont

réessayées :

% exec login

login: besancon

Password: ZZZZZZZZ <-- mauvais mot de passe

Dialup Password: YYYYYYYY <-- mot de passe OK

Login incorrect

login: besancon

Password: XXXXXXXX <-- mot de passe OK

Dialup Password: ZZZZZZZZ <-- mauvais mot de passe

Login incorrect

login: besancon

Password: XXXXXXXX <-- mot de passe OK

Dialup Password: YYYYYYYY <-- mot de passe OK

%% <-- connexion établie, shell lancé

Au niveau SYSLOG, ça laisse quelques traces :

Aug 20 14:51:14 cerise login: [ID 427203 auth.debug] pam_authenticate: error Authentication failed

...

Aug 20 14:51:34 cerise login: [ID 427203 auth.debug] pam_authenticate: error Authentication failed

Formation permanente – ARS 100

Pluggable Authentification Module, PAM Exemple 2

§ 37.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

Formation permanente – ARS 101

Page 53: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pluggable Authentification Module, PAM A propos de LDAP

§ 37.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

Formation permanente – ARS 102

Pluggable Authentification Module, PAM Un peu de bibliographie

§ 37.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/

Formation permanente – ARS 103

Page 54: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Connexion des utilisateurs

Chapitre 38 : Connexion des utilisateurs

§ 38.1 Fichier utmp

Cf <utmp.h>

Traditionnellement /var/adm/utmp ou /etc/utmp.

Ce fichier contient des informations concernant les accès des utilisateurs et concernant 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 */

};

Formation permanente – ARS 104

Connexion des utilisateurs Fichier utmp

Ce fichier ne grossit pas vraiment :

– un enregistrement est écrit à la connexion d’un utilisateur et mentionne 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.

Formation permanente – ARS 105

Page 55: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Connexion des utilisateurs Fichier utmpx

§ 38.2 Fichier utmpx

Cf <utmpx.h>

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

Formation permanente – ARS 106

Connexion des utilisateurs Fichier wtmp

§ 38.3 Fichier wtmp

Cf <utmp.h>

Traditionnellement /var/adm/wtmp ou /etc/wtmp.

Ce fichier contient les historiques des connexions des utilisateurs et de l’accounting.

Ce fichier grossit au cours du temps car on y accumule les enregistrements utmp en fin de fichier.

§ 38.4 Fichier wtmpx

Cf <utmpx.h>

Le principe reste le même que celui pour wtmp sauf que le fichier stockant les données est

/var/adm/wtmpx.h

Formation permanente – ARS 107

Page 56: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Connexion des utilisateurs Commande last

§ 38.5 Commande last

Syntaxe : last [options] [utilisateur] [terminal]

La commande last consulte le fichier /var/adm/wtmpx et affiche les 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

Formation permanente – ARS 108

Page 57: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux

Chapitre 39 : Pseudo terminaux

§ 39.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 machine

– pour les connexions réseau, on utilise deux fichiers par connexion : un fichier maître et un fichier

esclave.

Le master pseudo terminal a pour nom /dev/pty[p-s]NN sur BSD, /dev/ptc/NN sur

System-V.

Le slave pseudo terminal a pour nom /dev/tty[p-s]NN sur BSD, /dev/pts/NN sur

System-V.

Formation permanente – ARS 109

Pseudo terminaux Commande tty, device /dev/tty

§ 39.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.

Formation permanente – ARS 110

Page 58: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux Nombre de terminaux

§ 39.3 Nombre de terminaux

Attention : Il doit y avoir un nombre suffisant de terminaux pour accueillir les utilisateurs. Dans le cascontraire :

% rlogin serveur.prism.uvsq.fr

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.

Formation permanente – ARS 111

Pseudo terminaux Phase de connexion, init, getty

§ 39.4 Phase de connexion, init, getty

init gére l’ensemble des lignes physiques sur lesquelles les utilisateurs se 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 ligne physique 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.

Formation permanente – ARS 112

Page 59: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux Phase de connexion, init, getty

Lorsqu’un utilisateur tape son nom de login, le getty en question donne 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 du shell) :

% 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 ses fils. Il regénére alors un

nouveau processus getty.

Formation permanente – ARS 113

Pseudo terminaux Liste BSD des terminaux physiques : /etc/ttys

§ 39.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

Formation permanente – ARS 114

Page 60: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux Liste System-V des terminaux physiques : /etc/inittab

§ 39.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

Formation permanente – ARS 115

Pseudo terminaux Terminaux sécurisés

§ 39.7 Terminaux sécurisés

Root est-il autorisé à se connecter sur tout terminal ?

% rlogin ars01.formation.jussieu.fr -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 ?

Formation permanente – ARS 116

Page 61: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux 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.

...

Formation permanente – ARS 117

Pseudo terminaux 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

Formation permanente – ARS 118

Page 62: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Pseudo terminaux 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

Formation permanente – ARS 119

Pseudo terminaux 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

...

Formation permanente – ARS 120

Page 63: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM

Chapitre 40 : Terminaux X, XDM

§ 40.1 introduction sur les terminaux X

Un terminal X est un poste de travail graphique :

– offrant le système graphique X

– sans système d’exploitation complexe à gérer et à maintenir

– simple à configurer

En 2002, on constate :

– coût élevé d’un terminal X ; parfois plus cher qu’un poste PC Windows multimédia

– désaffection des constructeurs (reste NCD)

– manque de périphériques supportés ; pas de floppy, pas de son, pas de USB. . .

Formation permanente – ARS 121

Terminaux X, XDM XDM : X Display Management

§ 40.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 mode texte. 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êtes selon le protocole XDMCP (X

Display Management Control Protocol)

– de gérer des serveurs X distants

Formation permanente – ARS 122

Page 64: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM Requêtes XDMCP

§ 40.3 Requêtes XDMCP

3 formes de réquêtes :

– Forme 1 : direct query

Le serveur X contacte un serveur XDM nomément.

– Forme 2 : broadcast query

Une requête est envoyée sur le réseau en mode broadcast et une mire d’accueil est offerte par le

premier serveur XDM qui peut répondre.

– Forme 3 : indirect query

Le serveur X contacte une machine et lui demande la liste des serveurs XDM qu’elle connait. Le

serveur X se voit proposer de choisir un hôte XDM parmi cette liste.

Formation permanente – ARS 123

Terminaux X, XDM Gestion directe de serveurs X

§ 40.4 Gestion directe de serveurs X

XDM envoit de lui même des mires d’accueil à une liste de serveurs X.

Formation permanente – ARS 124

Page 65: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM Fichier de configuration xdm-config

§ 40.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 de configuration 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

Formation permanente – ARS 125

Terminaux X, XDM Fichier de configuration Xaccess

§ 40.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ôtes XDM sera obtenue par broadcast.

Formation permanente – ARS 126

Page 66: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM Fichier de configuration Xservers

§ 40.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

Formation permanente – ARS 127

Terminaux X, XDM Fichier de configuration Xresources

§ 40.8 Fichier de configuration Xresources

Ce fichier contient les ressources pour personnaliser l’apparence de la mire d’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

...

Formation permanente – ARS 128

Page 67: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM Application CHOOSER

§ 40.9 Application CHOOSER

Le sélecteur de hôtes XDM s’appelle le chooser.

Formation permanente – ARS 129

Terminaux X, XDM 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

Formation permanente – ARS 130

Page 68: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM Ressources X pour XDM

§ 40.10 Ressources X pour XDM

Il y a diverses ressources de personnalisation de xdm :

– apparence de la mire

– apparence du chooser

– mais aussi personnalisation de la configuration de XDM selon le serveur X géré :

– display local «|verb ! :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

...

Formation permanente – ARS 131

Terminaux X, XDM KDM : KDE Display Manager

§ 40.11 KDM : KDE Display Manager

Fichier de configuration : /usr/local/share/config/kdm/kdmrc

Utilitaire de configuration : /usr/local/bin/kdm_config

Formation permanente – ARS 132

Page 69: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM GDM : Gnome Display Manager

§ 40.12 GDM : Gnome Display Manager

Fichier de configuration /usr/X11R6/etc/gdm/gdm.conf

Utilitaire de configuration : /usr/X11R6/bin/gdmconfig

Formation permanente – ARS 133

Terminaux X, XDM Session X de l’utilisateur

§ 40.13 Session X de l’utilisateur

xdm crée un shell sur le serveur de calcul qui configure l’environnement graphique de l’utilisateur via

le fichier "$HOME/.xsession".

� la durée de vie de la session sous X est celle du script $HOME/.xsession

Formation permanente – ARS 134

Page 70: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux X, XDM 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 dernier client est un window

manager.

Cf ftp://ftp.lip6.fr/pub/doc/faqs/x-faq/speedups.gz

Formation permanente – ARS 135

Terminaux X, XDM Mode Failsafe

§ 40.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 le démarrage de la session X,

utiliser le mode FailSafe :

1. entrer le nom de login

2. valider par la tocuhe Retour

3. entrer le mot de passe

4. valider par la touche F1 et non pas par la touche Retour

Il apparait alors un simple xterm sans window manager.

Formation permanente – ARS 136

Page 71: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers

Chapitre 41 : Terminaux légers

§ 41.1 Problématique

Un «vrai» terminal X est maintenant trop cher.

Un «vrai» terminal X est maintenant trop limitatif : pas de multimédia

Solution : le client léger

Appelation un peu abusive. Ni un PC. Ni un terminal X :

– succédané d’architecture de PC x86

– faible consommation électrique � pas de ventilateur � silencieux

– mé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, . . .)

Formation permanente – ARS 137

Terminaux légers RDP

§ 41.2 RDP

RDP � Remote Desktop Protocol

Actuellement version 5.1

Développé par Microsoft.

Caractéristiques : 64000 channels possibles, redirection des ports parallèles et du port IDE, cliboad

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/

Formation permanente – ARS 138

Page 72: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers RDP

Formation permanente – ARS 139

Terminaux légers RDP

A noter le client RDP Linux RDESKTOP, http://www.rdesktop.org/

A completer...

Formation permanente – ARS 140

Page 73: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers ICA

§ 41.3 ICA

ICA � Independant Client Architecture

Actuellement version 6

Développé par la société CITRIX.

Dialogue avec le logiciel METAFRAME de Citrix

Load balancing

Accès modem optimisé

Licences ICA nécessaires par client ou par poste

Se reporter à : http://www.citrix.com/

Mon avis :

– cela fonctionne bien quand cela fonctionne

– il existe des clients ICA pour Unix mais ce n’est pas le scenario que cherche à pousser CITRIX

� support logiciel minable pour la clientèle Unix

Formation permanente – ARS 141

Terminaux légers ICA

A completer...

> > > > screendump client unix < < < <> > > > screendump client web < < < <

Formation permanente – ARS 142

Page 74: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

§ 41.4 VNC

http://www.uk.research.att.com/vnc/

VNC � Virtual Network Computing

VNC est un logiciel permettant de viusaliser le bureau de n’importe quel ordinateur Macintosh,

Windows, Unix depuis Internet (en l’occurence depuis Macintosh, Windows, Unix, browser avec java).

Le logiciel se compose :

– une partie de visualisation dite vncviewer

– une partie serveur

Le logiciel est utilisable même avec une liaison téléphonique avec un modem à 38400 bauds (testé).

ATTENTION dans le cas Windows : VNC n’est pas une extension à la Terminal Server. VNC est un

partage, une prise en main de l’écran distant du PC.

Formation permanente – ARS 143

Terminaux légers VNC

Prenons le cas d’un vncviewer Unix qui se connectera à un vncserver Windows.

La connexion s’établit après demande du serveur à contacter :

et la demande du mot de passe permettant de piloter le bureau distant du serveur :

et après quelques lignes de texte de renseignements sur le serveur VNC :% vncviewer

VNC server supports protocol version 3.3 (viewer 3.3)

VNC authentication succeeded

Desktop name "w2k"

Connected to VNC server, using protocol version 3.3

VNC 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 0

Using 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

Formation permanente – ARS 144

Page 75: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

on obtient bien le bureau distant directement manipulable depuis son propre bureau :

Formation permanente – ARS 145

Terminaux légers VNC

Exemple de bureau Unix visualisé dans Internet Explorer de Windows :

Formation permanente – ARS 146

Page 76: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

Exemple de bureau Unix visualisé dans vncviewer pour Windows :

Formation permanente – ARS 147

Terminaux légers VNC

Exemple de bureau Unix visualisé dans Internet Explorer de Macintosh :

Formation permanente – ARS 148

Page 77: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

Exemple de bureau Windows visualisé dans Internet Explorer de Macintosh :

Formation permanente – ARS 149

Terminaux légers VNC

Exemple de bureau Windows visualisé dans Netscape d’Unix :

Formation permanente – ARS 150

Page 78: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

Exemple de bureau Windows visualisé dans vncviewer d’Unix :

Formation permanente – ARS 151

Terminaux légers VNC

A noter une réalisation matérielle et commerciale avec VNC : les terminaux AXEL AX3000 Model 65

(cf http://www.axel.com – produit français !)

Formation permanente – ARS 152

Page 79: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

Prenons le cas du serveur VNC pour Windows. Il s’agit d’une application Windows qui s’installe

classiquement :

Formation permanente – ARS 153

Terminaux légers VNC

Elle nécessite un réglage, en l’occurence mettre un mot de passe de façon à contrôler qu peut capter

à distance le bureau :

Formation permanente – ARS 154

Page 80: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers VNC

Une fois paramétrée, une petite icône apparait dans le coin à droite de Windows indiquant que le

service est fonctionnel :

Quand un vncviewer est connecté au bureau Windows, la petite icône change de couleur et passe en

noir de façon à prévenir l’utilisateur qu’il est «sur écoute» :

On peut encapsuler le protocole VNC dans un tunnel de chiffrement bien sûr. Cf la documentation.

Formation permanente – ARS 155

Terminaux légers WMWARE

§ 41.5 WMWARE

http://www.vmware.com/

Version 3.1.1

VMWARE ne tourne que sur plateforme à base de processeur Intel ou compatible.

Ce logiciel offre sur la machine hôte, des machines virtuelles dans lesquelles peuvent tourner des

OS comme Windows, Linux, FreeBSD.

Il s’agit donc de machine virtuelle et non pas de prise en main comme avec VNC.

Formation permanente – ARS 156

Page 81: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers WMWARE

A completer...

> > > > screendump Philippe Weill < < < <

Formation permanente – ARS 157

Terminaux légers SUNRAY

§ 41.6 SUNRAY

C’est un poste de travail «comme les autres» :

– Pas de disque dur

– Pas d’applications locales

– Pas d’alimentation externe

– Pas de configuration

– Pas de système d’exploitation

– Pas de barrette mémoire

– Pas de ventilateur

– Pas de paramétrage particulier

– Il est 10 fois plus léger qu’un PC et 12 fois moins volumineux

– Il peut même s’intégrer dans un écran cathodique 17 pouces ou un écran plat de 15 pouces...

Formation permanente – ARS 158

Page 82: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers SUNRAY

Avantages :

– Instantané, constant et simple

– Gestion centralisée

– Jamais besoin de mise à jour

– Silencieux

– 16 millions de couleurs (24 bits)

– Pas de setup

– Donc, pas de dé-setup

– Pas de modifications de vos applications

– AUCUN tranfert de fichier au boot

– Mise en production la plus rapide du monde !

Formation permanente – ARS 159

Terminaux légers SUNRAY

Caractéristiques hardware :

– CPU Sparc

– 1280 x 1024 @ 76 Hz

– frame buffer 24 bits

– 10/100Mb Ethernet

– Accès a Solaris , X11, Java , ICA

– fonctionnalités multimédia

– Lecteur de carte à puce

– E/S audio qualité CD

– Entrée vidéo NTSC/PAL

– Support USB ( 4 ports ) mais limité en

pratique. . .

Formation permanente – ARS 160

Page 83: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers SUNRAY

Architecture réseau :

Formation permanente – ARS 161

Terminaux légers SUNRAY

Architecture logicielle :

Formation permanente – ARS 162

Page 84: Chapitre 32 : Authentification des comptes utilisateurs · 2004-08-12 · Authentification des comptes utilisateurs Format du fichier/etc/passwd,  – champ 3 : UID

Terminaux légers SUNRAY

Architecture logicielle (2) :

Formation permanente – ARS 163

Terminaux légers SUNRAY

Cohabitation avec Windows possible :

Formation permanente – ARS 164