• Aucun résultat trouvé

Administration système UNIX version 7.0

N/A
N/A
Protected

Academic year: 2022

Partager "Administration système UNIX version 7.0"

Copied!
229
0
0

Texte intégral

(1)

Administration système UNIX

version 7.0

Partie 3

2004 – 2005

Thierry Besançon – Philippe Weill

Formation Permanente

Université Pierre et Marie Curie - PARIS 6 Tour centrale 13eétage

4, place Jussieu 75252 Paris Cedex 05

Tél. : 01-44-27-58-49 ou 01-44-27-58-50 01-44-27-38-19 ou 01-44-2738-25

Fax : 01-44-27-27-15

e-mail :formation.permanente@admp6.jussieu.fr

(2)

Les animateurs de ce cours peuvent être joints aux adresses suivantes :

Thierry.Besancon@formation.jussieu.fr Philippe.Weill@formation.jussieu.fr

Ce cours est disponible au format PDF sur le web à l’URL :

http://www.formation.jussieu.fr/ars/2004-2005/UNIX/cours/

Si vous améliorez ce cours, merci de m’envoyez vos modifications !

:-)

Copyright (c) 1997-2005 by

Thierry.Besancon@formation.jussieu.fr

This material may be distributed only subject to the terms and conditions set forth in the Open Publication Li- cence, v1.0 or later (the latest version is available at

http://www.opencontent.org/openpub/

).

"...the number of UNIX installations has grown to 10, with more expected..."

- Dennis Ritchie and Ken Thompson, June 1972

(3)

Table des matières

Nde transparent

Chapitre 31 Gestion des comptes utilisateurs . . . . 1

§ 1 Le fichier/etc/passwd . . . . 3

§ 2 Format du fichier/etc/passwd,<pwd.h> . . . . 4

§ 3 Chiffrement des mots de passe :crypt() . . . . 9

§ 4 Cycle du mot de passe et commandepasswd . . . . 11

§ 5 Cycle du mot de passe et commandelogin . . . . 15

§ 6 Shadow passwords,/etc/shadow,<shadow.h> . . . . 17

§ 7 Le fichier/etc/group,<grp.h> . . . . 20

§ 8 Création d’un nouveau compte . . . . 22

§ 9 Compte root . . . . 26

§ 10 Comptes fictifs système . . . . 27

§ 11 Commandeid . . . . 29

§ 12 Commandegroups . . . . 30

§ 13 Commandesu . . . . 31

§ 14 Deviner des mots de passe . . . . 36

§ 15 (Windows : :net user) . . . . 37

§ 16 (Windows : :cusrmgr.exe) . . . . 39

§ 17 (Windows : :lusrmgr.msc) . . . . 51

§ 18 (Windows : :secpol.msc) . . . . 53

§ 19 Interdiction des logins . . . . 55

§ 20 (Windows : : Interdiction des logins) . . . . 56

§ 21 (Windows : : perte du mot de passe de l’administrateur) . . . . 57

Chapitre 32 NIS . . . . 58

§ 1 Architecture de NIS . . . . 59

§ 2 Données NIS : maps NIS, DBM,ypcat,ypmatch. . . . 61

§ 3 Client NIS,domainname,ypbind,ypwhich,ypset . . . . 68

§ 4 Slave server NIS,ypserv,ypxfr . . . . 74

§ 5 Master server NIS,ypxfrd,rpc.yppasswdd,yppasswd . . . . 76

§ 6 Netgroups . . . . 79

§ 7 Installation de NIS . . . . 83

Chapitre 33 NIS+ . . . . 84

Chapitre 34 LDAP . . . . 85

§ 1 Problématique . . . . 85

§ 2 Principe d’annuaire . . . . 86

§ 3 Annuaire LDAP . . . . 88

§ 4 Modèle de données de LDAP : DIT, suffixe . . . . 89

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

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

§ 7 Protocole LDAP / Bind . . . . 99

§ 8 Format de données LDIF . . . 100

§ 9 Implémentations . . . 103

§ 10 OpenLDAP . . . 104

§ 11 ObjectClassposixAccount,shadowAccount . . . 106

§ 12 Un peu de bibliographie . . . 107

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

§ 1 Problématique . . . 108

§ 2 Syntaxe de/etc/nsswitch.conf . . . 109

§ 3 Exemple de/etc/nsswitch.conf . . . 111

§ 4 A propos de LDAP . . . 112

Chapitre 36 Pluggable Authentification Module, PAM . . . 113

§ 1 Problématique . . . 113

§ 2 Principe de PAM . . . 115

(4)

§ 3 Fichier de configuration/etc/pam.conf. . . 116

§ 4 Directives d’essai des modules . . . 118

§ 5 Modules,/usr/lib/security. . . 119

§ 6 Options des modules . . . 121

§ 7 Exemple 1 . . . 122

§ 8 Exemple 2 . . . 124

§ 9 A propos de LDAP . . . 125

§ 10 Un peu de bibliographie . . . 126

Chapitre 37 Connexion des utilisateurs . . . 127

§ 1 Fichierutmp:<utmp.h> . . . 127

§ 2 Fichierutmpx:<utmpx.h> . . . 129

§ 3 Fichierwtmp:<utmp.h> . . . 130

§ 4 Fichierwtmpx:<utmpx.h> . . . 131

§ 5 Commandelast . . . 132

Chapitre 38 Pseudo terminaux . . . 133

§ 1 Devices associés aux pseudo terminaux . . . 133

§ 2 Commandetty, device/dev/tty . . . 134

§ 3 Nombre de terminaux . . . 135

§ 4 Phase de connexion,init,getty . . . 136

§ 5 Liste BSD des terminaux physiques :/etc/ttys . . . 138

§ 6 Liste System-V des terminaux physiques :/etc/inittab . . . 139

§ 7 Terminaux sécurisés . . . 140

Chapitre 39 Terminaux X, XDM . . . 145

§ 1 introduction sur les terminaux X . . . 145

§ 2 XDM : X Display Management . . . 146

§ 3 Requêtes XDMCP . . . 147

§ 4 Gestion directe de serveurs X . . . 148

§ 5 Fichier de configurationxdm-config . . . 149

§ 6 Fichier de configurationXaccess. . . 150

§ 7 Fichier de configurationXservers . . . 151

§ 8 Fichier de configurationXresources . . . 152

§ 9 Application CHOOSER . . . 153

§ 10 Ressources X pour XDM . . . 155

§ 11 KDM : KDE Display Manager . . . 156

§ 12 GDM : Gnome Display Manager . . . 157

§ 13 Session X de l’utilisateur . . . 158

§ 14 Mode Failsafe . . . 160

Chapitre 40 Terminaux légers . . . 161

§ 1 Problématique . . . 161

§ 2 RDP . . . 162

§ 3 ICA . . . 165

§ 4 VNC . . . 169

§ 5 VMWARE . . . 176

§ 6 SUNRAY . . . 182

Chapitre 41 Protocole IP . . . 189

§ 1 Ethernet . . . 190

§ 2 Adresses IP . . . 193

§ 3 Adresse spéciale : adresse de loopback . . . 195

§ 4 Netmask . . . 196

§ 5 Adresse de broadcast . . . 197

§ 6 Configuration de l’adresse réseau Unix :ifconfig . . . 198

§ 7 (Windows : : netsh) . . . 200

§ 8 Annuaire basique :/etc/hosts . . . 201

§ 9 Routage :route . . . 202

(5)

§ 10 (Windows : : route) . . . 203

§ 11 Routage :netstat . . . 204

§ 12 (Windows : : netstat) . . . 205

§ 13 Tests de connectivité :ping. . . 206

§ 14 (Windows : : ping) . . . 207

§ 15 Tests de connectivité :traceroute . . . 208

§ 16 (Windows : : tracert) . . . 209

§ 17 Utilitairelibpcap . . . 210

§ 18 (Windows : : netcap) . . . 211

§ 19 Utilitairetcpdump . . . 212

§ 20 Utilitaireethereal . . . 213

§ 21 (Windows : : etherreal) . . . 215

§ 22 Utilitairelsof. . . 216

§ 23 Un peu de bibliographie . . . 218

Chapitre 42 Domain Name Server (DNS) . . . 219

§ 1 Principes du DNS . . . 219

§ 2 Zone DNS . . . 220

§ 3 Requête d’interrogation du DNS . . . 221

§ 4 Implémentation : BIND,named . . . 224

§ 5 F.root-servers.net. . . 228

§ 6 Utilitairerndc. . . 230

§ 7 Fichier/etc/resolv.conf. . . 231

§ 8 Utilitairenslookup . . . 232

§ 9 Utilitairedig . . . 233

§ 10 Record de type PTR . . . 241

§ 11 Fichier/etc/nsswitch.conf . . . 243

§ 12 Délégation d’une partie de classe C . . . 244

§ 13 Nom de machine,hostname. . . 247

§ 14 WHOIS . . . 248

§ 15 Espace de confiance . . . 249

§ 16 Un peu de documentation . . . 250

Chapitre 43 Partage de fichiers NFS . . . 251

§ 1 Principe de NFS . . . 252

§ 2 Lancement de NFS . . . 253

§ 3 Exportation NFS,/etc/exports,/etc/dfs/dfstab . . . 256

§ 4 Exportation root NFS . . . 258

§ 5 Règle de non transitivité NFS . . . 262

§ 6 Montage NFS manuel . . . 263

§ 7 Montage NFS automatique . . . 264

§ 8 Option de montage NFSsoft. . . 265

§ 9 Option de montage NFShard. . . 266

§ 10 Vérification des exportations :showmount . . . 267

§ 11 Vérification des exportations :rpcinfo . . . 268

§ 12 Messages d’erreur NFS . . . 269

§ 13 Automounter . . . 270

§ 14 Schéma récapitulatif . . . 271

Chapitre 44 Synchronisation manuelle de fichiers . . . 272

§ 1 Synchronisation de fichiers viardist . . . 273

§ 2 Synchronisation de fichiers viarsync . . . 280

Chapitre 45 Gestionnaire de services réseau :inetd . . . 284

§ 1 Principe . . . 285

§ 2 /etc/services. . . 288

§ 3 netstat -a,netstat -an. . . 290

§ 4 /etc/inetd.conf . . . 292

(6)

§ 5 Reconfiguration deinetd,SIGHUP . . . 295

§ 6 Filedescriptors et serveurs lancés par inetd . . . 296

Chapitre 46 TCP Wrappers . . . 298

§ 1 Rappel sur inetd . . . 299

§ 2 Principe des TCP Wrappers,tcpd . . . 300

§ 3 Modifications de/etc/inetd.conf . . . 306

§ 4 Contrôle d’accès,/etc/hosts.allow,/etc/hosts.deny . . . 308

§ 5 libwrap.a . . . 312

Chapitre 47 Gestionnaire de services réseau :xinetd . . . 313

§ 1 Fichier de configuration/etc/xinetd.conf . . . 314

§ 2 Réglages par défaut . . . 316

§ 3 Configuration d’un service . . . 317

§ 4 /etc/xinetd.conf: directivenice. . . 318

§ 5 /etc/xinetd.conf: directiveaccess_times . . . 319

§ 6 /etc/xinetd.conf: directivesbind,id . . . 320

§ 7 /etc/xinetd.conf: directiveredirect . . . 322

§ 8 /etc/xinetd.conf:tcpdet directiveNAMEINARGS . . . 323

§ 9 /etc/xinetd.conf: directivechroot . . . 324

§ 10 Reconfiguration, signaux . . . 325

Chapitre 48 Quelques services et protocoles réseau . . . 326

§ 1 Services réseau inutiles . . . 326

§ 2 Protocole TELNET,telnet,telnetd . . . 330

§ 3 Protocole RLOGIN,rlogin,rlogind . . . 332

§ 4 Protocole FTP,ftp,ftpd . . . 335

§ 5 Protocole TFTP,tftp,tftpd . . . 341

§ 6 Protocole RARP, obtention d’adresse IP . . . 344

§ 7 Protocole RARP,rarpd. . . 345

§ 8 Protocole BOOTP,bootpd . . . 346

§ 9 Protocole DHCP,dhcpd,dhcpd.conf,dhclient. . . 348

Chapitre 49 Courrier électronique . . . 360

§ 1 Composantes du système du courrier électronique . . . 360

§ 2 Mail Transfer Agent (MTA) . . . 363

§ 3 Sendmail . . . 365

§ 4 Postfix . . . 366

§ 5 Normes utilisées par sendmail et postfix . . . 368

§ 6 Adressespostmaster,abuse, SPAM . . . 369

§ 7 Adresses génériques, reverses . . . 374

§ 8 Protocoles de consultation : POP, IMAP . . . 375

Chapitre 50 Langages d’impression . . . 380

§ 1 Problématique . . . 380

§ 2 Postscript . . . 381

§ 3 Interpréteurs Postscript . . . 385

§ 4 Convertisseurs texte vers Postscript . . . 387

§ 5 PCL . . . 389

§ 6 PJL . . . 390

Chapitre 51 Protocole d’impression LP . . . 391

§ 1 Principe des systèmes d’impression . . . 391

§ 2 Principes de LP . . . 393

§ 3 Scripts d’impression . . . 399

§ 4 Ajout d’une imprimante . . . 401

§ 5 Suppression d’une imprimante . . . 405

§ 6 Gestion des classes . . . 406

Chapitre 52 Protocole d’impression LPD . . . 407

§ 1 Principes . . . 408

(7)

§ 2 Fichier/etc/printcap . . . 415

§ 3 Ajout d’une imprimante . . . 417

§ 4 Impression à distance . . . 418

Chapitre 53 Mécanisme d’impression LPD par la pratique . . . 420

Chapitre 54 Protocoles réseau Microsoft, SMB . . . 424

§ 1 SAMBA . . . 426

§ 2 Un peu de bibliographie . . . 430

(8)
(9)

Gestion des comptes utilisateurs

Chapitre 31 : Gestion des comptes utilisateurs

Formation permanente – ARS 7.0 1

Gestion 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

(10)

Gestion des comptes utilisateurs Le fichier/etc/passwd

§ 31.1 Le fichier /etc/passwd

Le fichier

/etc/passwd

contient les informations sur les utilisateurs.

Sur tous les Unix !

Exemple :

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

daemon:*:1:1::/:

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

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

Formation permanente – ARS 7.0 3

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

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

};

(11)

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

Bref : lettres minuscules, chiffres et caractère « - »

– 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 7.0 5

Gestion 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

(équivalent à 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

(équivalent à un unsigned int) Cette valeur doit être unique au sein des groupes.

% ls -l

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

% ls -ln

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

(12)

Gestion 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é 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 7.0 7

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

(13)

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

§ 31.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")

renvoie

NUMVcLVD/dM12

Formation permanente – ARS 7.0 9

Gestion 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

(14)

Gestion des comptes utilisateurs Cycle du mot de passe et commandepasswd

§ 31.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()

randomseed or "salt"

serveur

/etc/passwd (/etc/shadow) hashed

password

Formation permanente – ARS 7.0 11

Gestion des comptes utilisateurs Cycle du mot de passe et commandepasswd

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.

(15)

Gestion des comptes utilisateurs Cycle du mot de passe et commandepasswd

Comportement lorsque l’administrateur

root

change un mot de passe

# passwd besancon

New password: XXXXXXXX

Re-enter new password: XXXXXXXX

passwd (SYSTEM): passwd successfully changed for besancon

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

Gestion des comptes utilisateurs Cycle du mot de passe et commandepasswd 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

(16)

Gestion des comptes utilisateurs Cycle du mot de passe et commandelogin

§ 31.5 Cycle du mot de passe et commande login

La commande

login

est lancée par le système pour se connecter.

Elle va devoir vérifier si les mots de passe entré et stocké sont identiques, sachant que le mot de passe est stocké sous une forme hashée.

Si le mot de passe hashé est

saeLydiaFuF5o

, on réalisera donc au login la comparaison C :

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

avec

XXXXXXXX

le mot de passe en clair.

Formation permanente – ARS 7.0 15

Gestion des comptes utilisateurs Cycle du mot de passe et commandelogin

login

serveur

/etc/passwd (ou /etc/shadow) 1. L’utilisateur entre

login et mot de passe

4. crypt() des données entrées

2. On recupère la structure pwd de l’utilisateur

3. On extrait le salt

5. On extrait le passwd

6. Comparaison hash stocké et hash calculé

7a. comparaison OK : connexion acceptée

7b. comparaison fausse : connexion refusée

(17)

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

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

/etc/passwd

pour le stocker dans un fichier à accès plus restreint.

L’ancien mot de passe chiffré est remplacé par exemple par un caractère comme «

*

» ou

«

x

» pour conserver la structure du fichier

/etc/passwd

initial de façon à être compatible avec d’anciennes applications.

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

Formation permanente – ARS 7.0 17

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

Exemple sur LINUX

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

# cat /etc/passwd

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

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

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

...

# cat /etc/shadow

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

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

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

...

(18)

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

Exemple sur SOLARIS

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

# cat /etc/passwd

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

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

...

boumaiza:x:1001:1000:Lyazid Boumaiza:/net/serveur/home/ars/boumaiza:/bin/tcsh corsini:x:1002:1000:Franck Corsini:/net/serveur/home/ars/corsini:/bin/tcsh ...

# cat /etc/shadow

root:y8fPbbq414TBU:6445::::::

daemon:NP:6445::::::

bin:NP:6445::::::

...

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

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

...

Formation permanente – ARS 7.0 19

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

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

};

(19)

Gestion 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

(équivalent à 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 7.0 21

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

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

Unix Programme

AIX

smit

HP-UX

sam

Solaris

admintool

FreeBSD

adduser

FreeBSD

useradd

LINUX

adduser

et

useradd

(20)

Gestion 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 7.0 23

Gestion 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

(21)

Gestion 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 7.0 25

Gestion des comptes utilisateurs Compte root

§ 31.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).

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

/root

(22)

Gestion des comptes utilisateurs Comptes fictifs système

§ 31.10 Comptes fictifs système

Exemple de Linux :

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

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

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

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

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

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt

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

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

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

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

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

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

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

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

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

Formation permanente – ARS 7.0 27

Gestion des comptes utilisateurs Comptes fictifs système

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

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

-rwxr-xr-x 1 bin bin 40960 Aug 9 1994 stty*

-rws--x--x 1 root bin 24576 Aug 9 1994 su*

-rwxr-xr-x 1 bin bin 24576 Aug 9 1994 sum*

A noter l’emploi du bit s sur la commande

su

.son exécution se fait au nom du propriétaire du fichier, ici root.

(23)

Gestion des comptes utilisateurs Commandeid

§ 31.11 Commande id

(en anglais identity )

La commande

id

renvoie l’UID et les GID primaire et secondaires de l’utilisateur.

% id

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

Formation permanente – ARS 7.0 29

Gestion des comptes utilisateurs Commandegroups

§ 31.12 Commande groups

(en anglais groups)

Syntaxe :

groups [user]

La commande

groups

renvoie les GID d’appartenance de l’utilisateur.

% groups

adm root sys daemon sae3 www

(24)

Gestion des comptes utilisateurs Commandesu

§ 31.13 Commande su

(en anglais swap user )

Syntaxe :

su [-] utilisateur2

La commande

su

permet de changer d’identité.

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

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

Formation permanente – ARS 7.0 31

Gestion des comptes utilisateurs Commandesu

Quand on se trompe sur le mot de passe

% id

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

% su besancon Password: XXXXXXXX Sorry

Quand on donne le bon mot de passe

% id

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

% su beurnez Password: XXXXXXXX

% id

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

(25)

Gestion des comptes utilisateurs Commandesu

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

% id

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

% pwd

/users/adm/besancon

% su asterix Password: XXXXXXXX

% id

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

% pwd

/users/adm/besancon

% printenv ...

MAIL=/var/mail/besancon ...

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

Formation permanente – ARS 7.0 33

Gestion des comptes utilisateurs Commandesu

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 - asterix Password: XXXXXXXX

% id

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

% pwd

/users/stat/asterix

% printenv ...

MAIL=/var/mail/asterix ...

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

Moralité : il faut toujours faire «

su - utilisateur2

»

(26)

Gestion des comptes utilisateurs Commandesu

Pour devenir root

Pour devenir root, la commande est :

% su - root

ce qui peut se simplifier encore en :

% su -

Formation permanente – ARS 7.0 35

Gestion des comptes utilisateurs Deviner des mots de passe

§ 31.14 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/

(27)

Gestion des comptes utilisateurs (Windows : :net user)

§ 31.15 (Windows : : net user )

Commande de base pour détruire des comptes :

net user jean /del

Commande de base pour créer des comptes :

net user jean mot-de-passe /add [options]

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

Option Signification illustration

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

/TIMES:{horaires | ALL} horaire de fonctionnement du compte /USERCOMMENT:"texte" commentaire du compte

Formation permanente – ARS 7.0 37

Gestion des comptes utilisateurs (Windows : :net user)

(28)

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

§ 31.16 (Windows : : cusrmgr.exe )

(en anglais console user manager )

Dans le Resource Kit Windows 2000, on trouve la commande

cusrmgr.exe

qui permet de changer les attributs d’un compte.

Forme générale de la commande :

cusrmgr.exe -u jean option

Formation permanente – ARS 7.0 39

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

net user jean sesame /add

(29)

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

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

Non visible. . .

Formation permanente – ARS 7.0 41

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

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

(30)

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

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

Formation permanente – ARS 7.0 43

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

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

(31)

Gestion des comptes utilisateurs (Windows : :cusrmgr.exe) L’option de changer le mot de passe donne au moment de la connexion initiale :

Formation permanente – ARS 7.0 45

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

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

(32)

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

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

Formation permanente – ARS 7.0 47

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

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

(33)

Gestion des comptes utilisateurs (Windows : :cusrmgr.exe) L’option de compte expiré donne au moment de la connexion :

Formation permanente – ARS 7.0 49

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

"c:\Program Files\Resource Kit\cusrmgr.exe" -u jean +s AccountLockout Non visible. . .

(34)

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

§ 31.17 (Windows : : lusrmgr.msc )

(en anglais local user manager )

Gestion graphique des utilisateurs : commande de base

lusrmgr.msc

Formation permanente – ARS 7.0 51

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

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

(35)

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

§ 31.18 (Windows : : secpol.msc )

Via l’outil de politique de sécurité

secpol.msc

, on peut configurer la longueur minimale des mots de passe :

Formation permanente – ARS 7.0 53

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

Via l’outil de politique de sécurité

secpol.msc

, on peut configurer la complexité des mots de passe :

(36)

Gestion des comptes utilisateurs Interdiction des logins

§ 31.19 Interdiction des logins

Sur FreeBSD :

– login shell

/sbin/nologin

– fichier

/var/run/nologin

qui sera affiché par

/sbin/nologin

Sur LINUX :

– fichier

/etc/nologin

qui sera affiché par

/sbin/login

# cat /etc/nologin

Exemple pour ARS : Interdiction de se connecter.

% ssh redhat9.example.com

Exemple pour ARS : Interdiction de se connecter.

Connection to redhat9.example.com closed.

Formation permanente – ARS 7.0 55

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

§ 31.20 (Windows : : Interdiction des logins)

Commande :

– interdiction des logins :

change logon /disable

– autorisation des logins :

change logon /enable

– pour savoir :

change login /query

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

(37)

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

§ 31.21 (Windows : : perte du mot de passe de l’administrateur)

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

Image ISO disponible sur

http://home.eunet.no/~pnordah/ntpasswd/cd040818.zip

Télécharger, graver.

Formation permanente – ARS 7.0 57

(38)

NIS

Chapitre 32 : NIS

NISNetwork Information Service – Créé par SUN en 1985

– Anciennement Yellow Pagescertaines 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 7.0 58

NIS Architecture de NIS

§ 32.1 Architecture de NIS

Architecture construite en mode client / serveur :

Client 1 Client 2 Client 3 Client 4 D

A T A

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A

D A T A Maitre

Esclave 1 Esclave 2

Mise a jour push / pull

(39)

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 7.0 60

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

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

(40)

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 7.0 62

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

NIS MASTER

Le fichier

/var/yp/Makefile

automatise toutes les créations de maps et leur propagation aux slave servers (mode push).

(41)

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 7.0 64

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.

(42)

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 7.0 66

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 :

ypmatch clef1 clef2... map-NIS

(43)

NIS Client NIS,domainname,ypbind,ypwhich,ypset

§ 32.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 7.0 68

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 variable

NISDOMAIN

du fichier

/etc/sysconfig/network

NETWORKING=yes FORWARD_IPV4=false

HOSTNAME=pcars6.formation.jussieu.fr DOMAINNAME=formation.jussieu.fr GATEWAY=134.157.253.126

GATEWAYDEV=eth0 NISDOMAIN=real.world

ATTENTION : sur LINUX, ne pas confondre avec la variable

DOMAINNAME

qui sert pour l’annuaire DNS, cf tome 4 du cours UNIX ou cf le cours réseau.

(44)

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 7.0 70

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.

(45)

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 7.0 72

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

(46)

NIS Slave server NIS,ypserv,ypxfr

§ 32.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 7.0 74

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

(47)

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

§ 32.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 7.0 76

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

(48)

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

Sur un client NIS Linux :

% yppasswd

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

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

Changing NIS password for besancon on cerise.unixiens.org.

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

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

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

Sur un master server NIS Solaris :

% yppasswd

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

New password: ********

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

NIS passwd/attributes changed on cerise.unixiens.org

Formation permanente – ARS 7.0 78

NIS Netgroups

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

(49)

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 7.0 80

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

(50)

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 7.0 82

NIS Installation de NIS

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

(51)

NIS+

Chapitre 33 : 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 7.0 84

Références

Documents relatifs

Donc, dans tous les paquets que le client DHCP envoie qui contiennent l’option Sélection de sous-réseau, le champ giaddr dans l’en-tête BOOTP DOIT être réglé à une adresse

Les agents de répertoire énumérés dans cette option DOIVENT être configurés avec un sous-ensemble non vide de la liste de portées avec laquelle est configuré l’agent qui

Ce document définit une option du DHCP [1] qui contient une liste de pointeurs vers des serveurs d’authentification d’utilisateurs qui fournissent des services

Par exemple, si le serveur DHCP et le client DHCP sont connectés sur le même sous réseau (c’est-à- dire, si le champ 'giaddr' dans le message du client est à zéro) le serveur

Ce n'est pas une bonne pratique d'un point de vue sécurité car cela veut dire que les machines de l'entreprise peut communiquer directement entre elles.. Si l'une d'elle est

● Le serveur DHCP ne répondra à la demande du client que s'il dispose d'une plage d'adresse disponible pour le sous-réseau en question. •DHCP OFFER: par défaut, le paquet

Dans cette procédure, vous allez employer l'utilitaire ipconfig pour tenter de renouveler le bail cédé à l'ordinateur client et pour déterminer les effets de l'indisponibilité

• Une fois que le serveur DHCP reçoit la demande DHCPDISCOVER, il alloue une adresse IP, la marque comme pris, et puis diffuse un message DHCPOFFER au client demandeur (Step 3)..