Beruflich Dokumente
Kultur Dokumente
Le fichier /etc/passwd
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
...
*/
/*
/*
/*
/*
/*
/*
/*
Username. */
Password. */
User ID. */
Group ID. */
Real name. */
Home directory. */
Shell program. */
champ 1 : login
Nom sous lequel un ordinateur connait un individu.
8 caractres en gnral. Pour plus, vrifier
Sur Linux, on peut avoir des noms plus longs que 8.
Conseils : pas de majuscules, viter les caractres accentus.
Les logiciels de crack de mots de passe ne dchiffrent pas les mots de passe : ils font des essais
base de dictionnaires.
champ 3 : UID
Identificateur numrique compris entre 0 et 32767 (short int a priori).
Sur Linux, cest un __uid_t, un unsigned int.
Cette valeur doit tre unique au sein des utilisateurs.
champ 4 : GID
Identificateur numrique compris entre 0 et 32767 (short int a priori).
Sur Linux, cest 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--rw-r--r--
1 besancon software
1 besancon software
champ 5 : gecos
Identit en clair de lutilisateur.
Les systmes BSD y ont stocks dautres informations comme le numro de tlphone, le numro
de bureau etc.
La commande chfn (change finger) permet de modifier ce champs.
champ 6 : homedir
Rpertoire par dfaut.
champ 7 : shell
Shell par dfaut.
Si le champ est vide, on prend /bin/sh par dfaut.
Le shell dterminera les fichiers de configuration installer chez lutilisateur.
La commande chsh (change shell) permet de choisir parmi les shells mentionns dans
/etc/shells.
Quelques conseils :
Il faut toujours trier les lignes de /etc/passwd selon lordre numrique des UID :
Ainsi crypt("QWERTY",
crypt() avec un nouveau salt tir au hasard et avec le nouveau mot de passe entr.
passwd
hashed
password
crypt()
serveur
randomseed
or "salt"
/etc/passwd
(/etc/shadow)
10
% 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 vrifier lidentit de la personne en demandant le mot de passe initial.
11
# passwd besancon
New password: XXXXXXXX
Re-enter new password: ZZZZZZZZ
passwd (SYSTEM): passwd successfully changed for besancon
Root na jamais besoin de connatre le mot de passe dun utilisateur pour en changer le mot de
passe.
Lorsquun utilisateur a perdu son mot de passe :
root ne peut pas dchiffrer la chaine chiffre dans /etc/passwd
root peut changer le mot de passe par passwd
groslourd
12
La commande
de passe :
% passwd besancon
Enter login password: XXXXXXXX
New password: XXXXXXXX
<-- on entre exprs le mme mot de passe
passwd(SYSTEM): Passwords must differ by at least 3 positions
New password: YYYYYYYY
<-- mlange 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
13
login.
Elle va devoir vrifier si les mots de passe entr et stock sont identiques, sachant que le mot de
passe est stock sous une forme hashe.
1. Lutilisateur entre
login et mot de passe
2. On recupre la
structure pwd de
lutilisateur
login
3. On extrait
le salt
4. crypt()
des donnes
entres
serveur
5. On extrait
le passwd
6. Comparaison
hash stock et
hash calcul
/etc/passwd
(ou /etc/shadow)
7a. comparaison OK :
connexion accepte
14
15
/etc/passwd pour les informations concernant UID, homedir, shell, peu en revanche laccdent
pour le mot de passe.
On supprime donc le mot de passe chiffr du fichier pour le stocker dans un fichier accs plus
restreints.
-rw-r--r--rw-------
Lancien mot de passe chiffr est remplac par exemple par un caractre comme * ou x :
besancon:x:4332:1000::/users/adm/besancon:/bin/bash
16
Plusieurs formats de fichiers shadow sont utiliss par les constructeurs qui ne se sont pas mis
daccord.
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:::
...
17
18
*/
/*
/*
/*
/*
Group name.
Password.
Group ID.
Member list.
*/
*/
*/
*/
19
champ 1 : group
Nom du groupe apparaissant par ls
-lg.
20
Selon le systme, elle est dj automatise sous la forme dune commande dadministration :
Systme
Program
AIX
smit
HP-UX
sam
Solaris
admintool
FreeBSD
adduser
etc.
21
Problme : comment crer 3000 comptes en une aprs-midi avec cette interface ?
Problme : comment personnaliser cette interface ?
Formation permanente ARS
22
23
Ltape dlicate dans une automatisation de cration de compte est bien sr lincorporation dune
nouvelle ligne dans la base de donnes.
24
Compte root
root na pas . dans son PATH (prcdence de la commande locale par rapport
la commande systme).
2. Lutilisateur
root a 022 pour umask (accessibilit indispensable de certains fichiers par les
utilisateurs normaux).
3. Eviter davoir
.foorc).
25
Comptes fictifs
26
Comptes fictifs
1 bin
1 root
1 bin
bin
bin
bin
40960 Aug
24576 Aug
24576 Aug
9
9
9
1994 stty*
1994 su*
1994 sum*
27
% id
uid=1000(besancon) gid=4(adm) groups=4(adm),0(root),3(sys),\
12(daemon),1000(sae3),1002(www)
La commande
% groups
adm root sys daemon sae3 www
28
Commande su
32.12 Commande su
La commande
su [-] utilisateur2
29
Commande su
30
Commande su
% su root
ce qui peut se simplifier encore en :
% su
31
Commande su
32
Commande su
33
34
NIS
Chapitre 33 : NIS
Cest un protocole rseau daccs des informations centralises sur un ou plusieurs serveurs
redondants.
35
NIS
Architecture de NIS
D
A
T
A
D
A
T
A
Mise a jour
push / pull
Esclave 1
D
A
T
A
Client 1
Client 2
D
A
T
A
Esclave 2
D
A
T
A
Client 3
D
A
T
A
D
A
T
A
Client 4
36
NIS
Architecture de NIS
Caractristiques :
Communications rseau via RPC (Remote Procedure Call)
Propagation des donnes (maps) du master server aux slave servers en mode pull ou en mode
push.
Propagation des maps compltes
Seul le master server peut modifier les donnes
Les slave servers diffusent les donnes sans pouvoir les modifier
37
NIS
Il ny a que le serveur NIS matre qui peut changer le contenu dune map.
Une map est au format DBM (cf man dbm) ; une map se compose de 3 fichiers :
le fichier source
le fichier de suffixe .pag
le fichier de suffixe .dir
38
NIS
La commande
% cat demo
clef1
banane
clef2
arbre
% makedbm demo demo
% ls -l demo test*
-rw-r--r-1 besancon adm
-rw------1 besancon adm
-rw------1 besancon adm
Dans le systme NIS, les maps sont stockes 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
-rw------1 root
other
-rw------1 root
other
-rw------1 root
other
4096
8192
4096
8192
Nov
Nov
Nov
Nov
23
23
23
23
07:26
07:26
07:26
07:26
passwd.byname.dir
passwd.byname.pag
passwd.byuid.dir
passwd.byuid.pag
39
NIS
Les maps sont construites automatiquement partir de tous les fichiers sources des maps :
passwd.byname
passwd.byuid
NIS
MASTER
/etc/hosts
makedbm
hosts.byname
hosts.byuid
/etc/passwd
Le fichier /var/yp/Makefile automatise toutes les crations de maps et leur propagation aux
slave servers (mode push).
40
NIS
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 dune map se rsume alors (par exemple suite une modification de
/etc/hosts) :
# vi /etc/hosts
# cd /var/yp
# make hosts
updated hosts
pushed hosts
41
NIS
La librairie DBM permet de crer des enregistrements de taille maximale 1024 octets :
% man dbm
SunOS/BSD Compatibility Library Functions
dbm(3B)
NAME
dbm, dbminit, dbmclose, fetch,
nextkey - data base subroutines
store,
delete,
firstkey,
...
The sum of the sizes of a key/content pair must not exceed
the internal block size (currently 1024 bytes). Moreover
all key/content pairs that hash together must fit on a single block.
store will return an error in the event that a
disk block fills with inseparable data.
42
NIS
map passwd
map group
map hosts
map netgroup
NIS
La commande
ypcat permet de consulter une map NIS depuis nimporte quel client.
Syntaxe : ypcat
La commande
43
map-NIS
ypmatch permet de consulter la valeur dune ou plusieurs clefs dans une certaine
44
NIS
Le binding ncessite :
de fournir un nom de domaine NIS, le domainname ;
une machine se dclare comme membre du groupe servi par les serveurs NIS
de prciser la mthode de localisation du serveur NIS : broadcast ou explicite
NIS
45
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
46
NIS
Ralisation du binding
Un client NIS fait tourner le dmon
2 mthodes possibles :
dcouverte par broadcast ; cest le mode par dfaut.
Sur Solaris, /usr/lib/netsvc/yp/ypbind
-broadcast
En pratique il y a une map ypservers qui contient les noms des serveurs.
Cf /var/yp/binding/nom-de-domaine-NIS/ypservers
# ypbind -ypsetme
# ypset nom-du-serveur-NIS-voulu
La commande
NIS
47
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
Par exemple :
159.169.0.0 255.255.0.0
129.187.135.0 255.255.255.0
48
NIS
Signification de cette ligne supplmentaire ( vrifier sur chaque systme car il existe des
diffrences) :
Tout champ renseign de cette ligne + remplace le mme champ de la map
inconditionnellement sauf pour UID et GID.
Pour UID et GID, les valeurs mentionnes sactiveront si ces champs sont absents de la map
(cest--dire quand la map est vrole ce qui indique un problme de fichier source vrol).
NIS
49
Exemple :
+:*LK*:65534:65534:::/usr/local/bin/tcsh
Signification :
le passwd chiffr des utilisateurs de la map passwd est *LK*
lUID sera 65534 si lentre de la map ne prcise pas dUID
le GID sera 65534 si lentre de la map ne prcise pas de GID
le shell de login est mis automatiquement /usr/local/bin/tcsh
50
NIS
Le dmon
ypserv est l pour rpondre aux requtes des client NIS qui se sont binds sur lui.
Le dmon
ypbind nest l que pour faire du slave server un client NIS aussi (mais ce nest pas
obligatoire).
Il nest pas garanti que le slave server soit client NIS de lui mme. Il peut se binder sur un autre
serveur NIS du mme domaine.
NIS
51
Un slave server peut tre down au moment o un master slave fait un push des maps.
Ces scripts rcuprent plus ou moins de maps suivant la frquence de leur lancement.
Exemple de lun de ces shell scripts, ypxfr_1perhour :
#! /bin/sh
# ypxfr_1perhour.sh - Do hourly NIS map check/updates
PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH
export PATH
ypxfr passwd.byname
ypxfr passwd.byuid
52
NIS
Le dmon
ypxfrd assure les transferts de maps demands par les slave servers (mode pull). (en
Le dmon
NIS
53
Avec NIS, un client NIS ne peut pas modifier le contenu dune 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 ralise en utilisant la commande yppasswd qui demande les mots de passe
lutilisateur puis appelle rpc.yppasswdd sur le master server qui simule la session interactive
compose des commandes :
# passwd
# cd /var/yp
# make passwd
54
NIS
55
NIS
Netgroups
33.6 Netgroups
Le systme NIS permet de dfinir des groupes dautorisation daccs : les netgroups. Ces groupes
sont diffuss via la map netgroup.
Un netgroup est un nom symbolique associ un ensemble de triplets (je nai jamais vu le troisime
champ avoir une quelconque utilit en pratique) :
nom-de-netgroup \
(machine, utilisateur, nom-de-domaine-NIS) \
(machine, utilisateur, nom-de-domaine-NIS) \
...
On dfinit en pratique des netgroups concernant des machines et des netgroups concernant des
utilisateurs. On autorisera ainsi ou pas des groupes dutilisateurs ou de machines accder
certaines ressources.
56
NIS
Netgroups
57
NIS
Netgroups
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
58
NIS
Netgroups
Exemple dutilisation dun netgroup de machines au niveau de lexportation de disques via NFS
(fichier /etc/exports, cf chapitre sur NFS) :
/usr/openwin
-access=nains
59
NIS
Installation de NIS
-m
Slave servers
Lancer ypinit
-s master-server
Client NIS
Spcifier le domainname
Formation permanente ARS
60
NIS+
Chapitre 34 : NIS+
61
LDAP
Chapitre 35 : LDAP
35.1 Problmatique
Cas de luniversit de Paris 4 :
base Microsoft Excel du personnel administratif
base Microsoft Access du personnel enseignant
base /etc/passwd des comptes email des utilisateurs
base mysql des 2 catgories de personnel
prochainement logiciel base dOracle
prochainement Microsoft Active Directory
Date XYZ : envoyer un email tous les personnels administratifs sachant que le service du
personnel ne fournira quune liste avec nom et prnom. Comment lingnieur systme fait-il ?
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 lingnieur
systme fait-il ?
Formation permanente ARS
62
LDAP
Principe dannuaire
63
LDAP
Principe dannuaire
64
LDAP
Annuaire LDAP
LDAP :
nom dun protocole
nom dune structure de donnes
nom dimplmentations de serveurs suivant le protocole
Confusion possible. . .
65
LDAP
dc=recherche
dc=finance
dc=marketing
dc=people
dc=people
dc=people
dc=groups
dc=groups
dc=groups
66
LDAP
dc=america
dc=europe
dc=asia
dc=people
dc=people
dc=people
dc=groups
dc=groups
dc=groups
67
LDAP
La racine de larbre est uniquement conceptuelle et nexiste pas rellement. Cest le suffixe qui sert
dterminer les adresses absolues des objets (comme / pour larborescence des fichiers Unix).
dc=company,dc=com
dc=recherche
dc=finance
SUFFIXE
dc=marketing
dc=people
dc=people
dc=people
dc=groups
dc=groups
dc=groups
LDAP
68
http://www.iit.edu/~gawojar/dap/ :
69
LDAP
RDN : ou=Recherche
DN : ou=Recherche,dc=company,dc=com
RDN : uid=besancon
DN : uid=besancon,ou=Recherche,dc=company,dc=com
LDAP
70
71
LDAP
ldap://serveur:389/DN
Par exemple dans communicator de netscape :
LDAP
72
73
LDAP
Une syntaxe est un modle de reprsentation des valeurs de lattribut. Par exemple boolen, entier,
binaire (pour une image, un son), etc.
Lattribut objectclass spcifie la liste des classes quinstancie un DSE. Chaque classe va
construire la structure du DSE en spcifiant une liste dattributs obligatoirement prsents (MUST
dans lobjectclass) et une liste dattributs facultatifs (MAY dans lobjectclass).
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 ) )
74
LDAP
Les objectclass de LDAP sinscrivent dans un hirarchie dont la racine est lobjectclass top.
Chaque classe hrite dune seule classe mre.
Chaque classe peut donner lieu plusieurs sous classes.
(Abstract)
top
(Structural)
person
(Structural)
organizationalPerson
(Auxiliary)
companyPerson
(Structural)
residentialPerson
75
LDAP
Un dialogue LDAP stablit aprs une phase douverture de session dite bind.
Le bind peut tre anonyme ou authentifi.
76
LDAP
LDIF nintervient pas dans le protocole LDAP (pas de mention dans les RFC par exemple).
LDIF nest compris que par les utilitaires qui le convertissent en protocole LDAP.
77
LDAP
attribut : valeur
si la valeur dun attribut contient des caractres non ASCII, il faut coder cette valeur en Base64
puis la coder en UTF-8 et crire au final attribut
:: valeur2
http://docs.univ-nancy2.fr/ldap/OutilsPERL/DecodLDIF.pl
http://docs.univ-nancy2.fr/ldap/OutilsPERL/EncodLDIF.pl
LDAP
78
Exemple dune DSE avec des caractres accentus non encore cods en LDIF :
dn: ou=Personnel,dc=paris4,dc=sorbonne,dc=fr
objectclass: top
objectclass: organizationalUnit
ou: Personnels de lUniversit de Paris-Sorbonne, Paris 4
businessCategory: academic research
telephoneNumber: +33 (0) 1 40 46 22 11
facsimileTelephoneNumber: +33 (0) 1 40 46 25 88
postOfficeBox: Universit de Paris-Sorbonne, Paris 4
postalCode: F-75230
postalAddress: 1 rue Victor Cousin
l: Paris, France
description: Universit de Paris-Sorbonne, Paris 4
79
LDAP
Implmentations
35.9 Implmentations
Il existe plusieurs implmentations de LDAP :
OpenLdap,
Iplanet Directory (anciennement Netscape Directory Server, rachet par SUN), incorpor de base
dans Solaris 8 et ultrieur
Novell Directory Services, version 4 ?
Les diffrentes implmentations respectent les normes du protocole. Par contre, elles diffrent au
niveau de tout ce qui nest pas norme. En particulier, les droits daccs aux donnes sont cods de
faon incompatible.
80
LDAP
OpenLDAP
35.10 OpenLDAP
Cf http://www.openldap.org/
Les versions 2.x.y dOpenLDAP sont compatibles avec les normes de LDAP v3.
Le logiciel se compose de :
du serveur LDAP slapd
slurpd
dutilitaires (slapadd ldapsearch, ldapadd, ldapdelete, ldapmodify,
ldappasswd, etc.)
du serveur de synchronisation
passe du rootDN
81
LDAP
OpenLDAP
1) demande de modification
slapd
2) rponse : referral
7)
slurpd
(Esclave)
client
6)
3) demande de modification
slapd
4) rponse (OK/not OK)
(Maitre)
5)
Journal des
modifications
82
LDAP
<pwd.h> :
objectclass ( 1.3.6.1.1.1.2.0 NAME posixAccount SUP top AUXILIARY
DESC Abstraction of an account with POSIX attributes
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )
Lobjectclass shadowAccount est lobjet qui implmente le principe des shadow passwds :
objectclass ( 1.3.6.1.1.1.2.1 NAME shadowAccount SUP top AUXILIARY
DESC Additional attributes for shadow passwords
MUST uid
MAY ( userPassword $ shadowLastChange $ shadowMin $
shadowMax $ shadowWarning $ shadowInactive $
shadowExpire $ shadowFlag $ description ) )
83
LDAP
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
84
36.1 Problmatique
Exemple :
il y a les fichiers systme (/etc/passwd, /etc/hosts, /etc/services, . . .)
il y a le DNS
il y a NIS
il y a NIS+
il y a LDAP
etc.
Comment choisir quels services rpondront aux requtes de recherche de nom ?
Une solution : prciser quels naming services seront utiliss et dans quel ordre au niveau du fichier
85
Syntaxe de /etc/nsswitch.conf
avec :
pour source lun des mots clef files, dns, ldap, nis, nisplus, xfn (liste vrifier selon
les systmes Unix offrant plus ou moins de ces services)
86
Syntaxe de /etc/nsswitch.conf
rponse
NOTFOUND=continue
UNAVAIL=continue
TRYAGAIN=forever]
87
Exemple de /etc/nsswitch.conf
88
A propos de LDAP
http://www.padl.com/download/nss_ldap.tgz
http://www.openldap.org/
89
37.1 Problmatique
Exemple :
Soit une machine dans une universit, hbergeant les comptes de 10 professeurs et de 1000
lves.
La machine est quipe dun modem.
Les professeurs sont autoriss se connecter la machine par modem, pas les lves.
La machine est cliente NIS.
Quand on se connecte par modem sur une machine, le systme lance la commande
login
90
Problmatique
La problmatique en gnral :
Comment changer une mthode dauthentification dans un programme (par exemple FTP) sans avoir
tout reprogrammer ?
Une solution dveloppe par SUN lorigine et reprise et encourage dans Linux :
Pluggable Authentification Module dit PAM
91
Principe de PAM
92
module_type
control_flag
module_path
options
Le service_name nomme le service concern par la ligne (other pour service joker)
Le module_type est lun des 4 mots clef : auth, account, session, password
Le control_flag est lun des 4 mots clef : requisite, required, optional,
sufficient
Le module_path est le chemin du module.
Les options dpendent du module.
93
/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_dial_auth.so.1
/usr/lib/security/pam_roles.so.1
/usr/lib/security/pam_projects.so.1
/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_unix.so.1
/usr/lib/security/pam_unix.so.1
94
95
Modules, /usr/lib/security
pam_sample.so.1
pam_smartcard.so
pam_smartcard.so.1
pam_unix.so
pam_unix.so.1
sparcv9
96
Modules, /usr/lib/security
97
retry=3 ou debug
option use_first_pass
Cette option indique dutiliser exclusivement le mot de passe entr pour le premier module de la
pile du service.
option try_first_pass
Cette option indique dutiliser dabord le mot de passe entr pour le premier module de la pile du
service et en cas dchec de ce mot de passe den demander un autre.
(Le support des options use_first_pass et try_first_pass est fortement conseill auprs des
dveloppeurs de modules PAM ; vrifier donc avec chaque module)
98
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 supplmentaire Dialup
Formation permanente ARS
Password:
99
Exemple 1
Si lon se trompe dans lun des mots de passe, toutes les demandes de mot de passe sont
ressayes :
% exec login
login: besancon
Password: ZZZZZZZZ <-- mauvais mot de passe
Dialup Password: YYYYYYYY <-- mot de passe OK
Login incorrect
login: besancon
Password: XXXXXXXX <-- mot de passe OK
Dialup Password: ZZZZZZZZ <-- mauvais mot de passe
Login incorrect
login: besancon
Password: XXXXXXXX <-- mot de passe OK
Dialup Password: YYYYYYYY <-- mot de passe OK
%% <-- connexion tablie, shell lanc
100
Exemple 2
37.8 Exemple 2
Pour autoriser lauthentification 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
101
A propos de LDAP
http://diamond.rug.ac.be/pam_LDAP/index.shtml
102
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/
103
/var/adm/utmp ou /etc/utmp.
Ce fichier contient des informations concernant les accs des utilisateurs et concernant les reboots
de la machine.
struct utmp {
char ut_user[8];
char ut_id[4];
char ut_line[12];
short ut_pid;
short ut_type;
struct exit_status ut_exit;
time_t ut_time;
/*
/*
/*
/*
/*
/*
/*
/*
};
Formation permanente ARS
104
Fichier utmp
105
Fichier utmpx
ut_host[257];
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
};
Le principe reste le mme sauf que le fichier stockant les donnes est /var/adm/utmpx.h
Formation permanente ARS
106
Fichier wtmp
/var/adm/wtmp ou /etc/wtmp.
/var/adm/wtmpx.h
107
Commande last
lcran :
besancon
besancon
besancon
besancon
besancon
reboot
besancon
besancon
...
ftp
ftp
ftp
console
console
system boot
pts/9
pts/9
localhost
localhost
localhost
Sun
Sun
Sun
Sat
Sat
Sat
Tue
Tue
Aug
Aug
Aug
Aug
Aug
Aug
Aug
Aug
25
25
25
24
24
24
20
20
12:13
12:04
12:03
11:24
01:12
01:10
14:52
14:51
- 12:15 (00:01)
- 12:05 (00:01)
- 12:04 (00:00)
still logged in
- 11:24 (10:12)
- down (3+10:17)
- 14:52 (00:00)
108
Pseudo terminaux
pour les connexions rseau, on utilise deux fichiers par connexion : un fichier matre 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
110
Pseudo terminaux
Nombre de terminaux
pty
256
pty1
pty2
pty3
pty4
111
Pseudo terminaux
init gre lensemble des lignes physiques sur lesquelles les utilisateurs se connectent.
La commande
0.0
0.0
TT
Aug 03 04
Aug 03 05
TIME COMMAND
0:00.04 /usr/sbin/getty /dev/tty04 c
0:00.04 /usr/sbin/getty /dev/tty05 c
getty configure les paramtres de la ligne (vitesse, parit, etc.) puis attend quun
utilisateur se manifeste.
112
Pseudo terminaux
Lorsquun utilisateur tape son nom de login, le getty en question donne la main au programme
login :
% ps -edf
USER
PID
[...]
root
362
root
363
[...]
0.0
0.0
TT
TIME COMMAND
Aug 03 04
Aug 03 05
login valide ou pas lutilisateur. Dans le cas favorable, une session shell est lance
(notez le caractre - en dbut du nom du shell) :
Le programme
% ps -edf
USER
[...]
root
besancon
[...]
PID
362
363
1
1
0.0
0.0
TT
Aug 03 04
Aug 03 05
TIME COMMAND
0:00.04 /usr/sbin/getty /dev/tty04 c
0:00.78 -bash (bash)
Lorsque le shell se termine, init dtecte la terminaison dun de ses fils. Il regnre alors un
nouveau processus getty.
Formation permanente ARS
113
Pseudo terminaux
Pc"
Pc"
Pc"
Pc"
cons25
cons25
cons25
std.9600"
std.9600"
on secure
on secure
on secure
network
network
114
Pseudo terminaux
/dev/tty01
/dev/tty02
console vt100
console vt100
/dev/tty0e
/dev/tty0f
console vt100
console vt100
115
Pseudo terminaux
Terminaux scuriss
Pourquoi ?
Parce quun login au nom de root est anonyme et interdit en consquence.
Comment contrler laccs ?
116
Pseudo terminaux
Terminaux scuriss
"/etc/getty Console-9600"
"/etc/getty Console-9600"
sun
sun
on secure
on
Pseudo terminaux
117
Terminaux scuriss
118
Pseudo terminaux
Terminaux scuriss
Pseudo terminaux
119
Terminaux scuriss
120
Terminaux X, XDM
En 2002, on constate :
cot lev dun terminal X ; parfois plus cher quun poste PC Windows multimdia
dsaffection des constructeurs (reste NCD)
manque de priphriques supports ; pas de floppy, pas de son, pas de USB. . .
121
Terminaux X, XDM
vangogh
login:
Password:
Login:
Password:
122
Terminaux X, XDM
Requtes XDMCP
123
Terminaux X, XDM
124
Terminaux X, XDM
/etc/X11/xdm
rpertoire /usr/X11R6/lib/X11/xdm
rpertoire /usr/openwin/lib/X11/xdm
rpertoire
Ce fichier dfinit les noms et les rpertoires 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
125
Terminaux X, XDM
* indique que toute machine est autorise faire une requte de type query
direct.
La seconde ligne indique quune slection de htes XDM sera affich qui fera une requte de
type indirect query et que la liste des htes XDM sera obtenue par broadcast.
126
Terminaux X, XDM
127
Terminaux X, XDM
128
Terminaux X, XDM
Application CHOOSER
Terminaux X, XDM
129
Application CHOOSER
130
Terminaux X, XDM
true
set up display :0 as the console.
/usr/X11R6/lib/X11/xdm/Xsetup_0
/usr/X11R6/lib/X11/xdm/GiveConsole
/usr/X11R6/lib/X11/xdm/TakeConsole
131
Terminaux X, XDM
132
Terminaux X, XDM
/usr/X11R6/etc/gdm/gdm.conf
Utilitaire de configuration : /usr/X11R6/bin/gdmconfig
Fichier de configuration
133
Terminaux X, XDM
Session X de lutilisateur
134
Terminaux X, XDM
Session X de lutilisateur
En gnral :
#!/bin/sh
appliX1 &
appliX2 &
...
appliXn &
appliX
Le dernier client X nest pas lanc en tche de fond. En gnral, le dernier client est un window
manager.
Cf ftp://ftp.lip6.fr/pub/doc/faqs/x-faq/speedups.gz
135
Terminaux X, XDM
Mode Failsafe
$HOME/.xsession-errors.
En cas derreur grave dans $HOME/.xsession empchant le dmarrage 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.
136
Terminaux lgers
41.1 Problmatique
Un vrai terminal X est maintenant trop cher.
Un vrai terminal X est maintenant trop limitatif : pas de multimdia
Solution : le client lger
137
Terminaux lgers
RDP
41.2 RDP
RDP Remote Desktop Protocol
Actuellement version 5.1
Dvelopp par Microsoft.
Caractristiques : 64000 channels possibles, redirection des ports parallles 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
Terminaux lgers
RDP
139
Terminaux lgers
RDP
A completer...
140
Terminaux lgers
ICA
41.3 ICA
ICA Independant Client Architecture
Actuellement version 6
Dvelopp par la socit CITRIX.
Dialogue avec le logiciel METAFRAME de Citrix
Load balancing
Accs modem optimis
Licences ICA ncessaires 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 nest pas le scenario que cherche pousser CITRIX
141
Terminaux lgers
ICA
A completer...
> > > > screendump client unix < < < <
> > > > screendump client web < < < <
142
Terminaux lgers
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 nimporte quel ordinateur Macintosh,
Windows, Unix depuis Internet (en loccurence depuis Macintosh, Windows, Unix, browser avec java).
Le logiciel se compose :
une partie de visualisation dite vncviewer
une partie serveur
Le logiciel est utilisable mme avec une liaison tlphonique avec un modem 38400 bauds (test).
ATTENTION dans le cas Windows : VNC nest pas une extension la Terminal Server. VNC est un
partage, une prise en main de lcran distant du PC.
Terminaux lgers
143
VNC
144
Terminaux lgers
VNC
on obtient bien le bureau distant directement manipulable depuis son propre bureau :
Terminaux lgers
145
VNC
146
Terminaux lgers
VNC
Terminaux lgers
147
VNC
148
Terminaux lgers
VNC
Terminaux lgers
149
VNC
150
Terminaux lgers
VNC
Terminaux lgers
151
VNC
A noter une ralisation matrielle et commerciale avec VNC : les terminaux AXEL AX3000 Model 65
(cf http://www.axel.com produit franais !)
152
Terminaux lgers
VNC
Prenons le cas du serveur VNC pour Windows. Il sagit dune application Windows qui sinstalle
classiquement :
Terminaux lgers
153
VNC
Elle ncessite un rglage, en loccurence mettre un mot de passe de faon contrler qu peut capter
distance le bureau :
154
Terminaux lgers
VNC
Une fois paramtre, une petite icne apparait dans le coin droite de Windows indiquant que le
service est fonctionnel :
Quand un vncviewer est connect au bureau Windows, la petite icne change de couleur et passe en
noir de faon prvenir lutilisateur quil est sur coute :
On peut encapsuler le protocole VNC dans un tunnel de chiffrement bien sr. Cf la documentation.
155
Terminaux lgers
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 hte, des machines virtuelles dans lesquelles peuvent tourner des
OS comme Windows, Linux, FreeBSD.
Il sagit donc de machine virtuelle et non pas de prise en main comme avec VNC.
156
Terminaux lgers
WMWARE
A completer...
> > > > screendump Philippe Weill < < < <
157
Terminaux lgers
SUNRAY
41.6 SUNRAY
Cest un poste de travail comme les autres :
Pas de disque dur
Pas dapplications locales
Pas dalimentation externe
Pas de configuration
Pas de systme dexploitation
Pas de barrette mmoire
Pas de ventilateur
Pas de paramtrage particulier
Il est 10 fois plus lger quun PC et 12 fois moins volumineux
Il peut mme sintgrer dans un cran cathodique 17 pouces ou un cran plat de 15 pouces...
158
Terminaux lgers
SUNRAY
Avantages :
Instantan, constant et simple
Gestion centralise
Jamais besoin de mise jour
Silencieux
16 millions de couleurs (24 bits)
Pas de setup
Donc, pas de d-setup
Pas de modifications de vos applications
AUCUN tranfert de fichier au boot
Mise en production la plus rapide du monde !
Terminaux lgers
159
SUNRAY
Caractristiques hardware :
CPU Sparc
1280 x 1024 @ 76 Hz
frame buffer 24 bits
10/100Mb Ethernet
Accs a Solaris , X11, Java , ICA
fonctionnalits multimdia
Lecteur de carte puce
E/S audio qualit CD
Entre vido NTSC/PAL
Support USB ( 4 ports ) mais limit en
pratique. . .
160
Terminaux lgers
SUNRAY
Architecture rseau :
Terminaux lgers
161
SUNRAY
Architecture logicielle :
162
Terminaux lgers
SUNRAY
Terminaux lgers
163
SUNRAY
164