Vous êtes sur la page 1sur 225

Guide de l'administrateur système

HP-UX : Gestion de la sécurité


HP-UX 11i version 3

Référence HP : 5992-3417
Date de publication : Mars 2008
Édition : 4
© Copyright 2008 Hewlett-Packard Development Company L.P
Avis
Les informations contenues dans le présent document sont susceptibles d’être modifiées sans préavis.

Hewlett-Packard n’assure aucune garantie en ce qui concerne le présent document, y compris, et sans limitation, les garanties
implicites de commercialisation et d’adaptation à une utilisation particulière. Hewlett-Packard ne peut être tenu pour responsable
des informations erronées contenues dans le présent manuel ou des dommages directs, indirects, spéciaux, incidents ou consécutifs
en relation avec la fourniture, les performances ou l’utilisation de ce matériel.

Garantie Vous pouvez obtenir un exemplaire des conditions de garantie spécifiques applicables au produit et aux pièces de
rechange Hewlett-Packard que vous utilisez auprès de votre bureau local chargé de la vente et des services.

Licence du gouvernement américain Logiciel propriétaire. Licence HP valide requise pour la détention, l’utilisation ou la copie.
En accord avec les articles FAR 12.211 et 12.212, les logiciels informatiques, la documentation des logiciels et les informations
techniques commerciales sont concédés au gouvernement américain sous licence commerciale standard du fournisseur.

Déclarations de marques UNIX® est une marque déposée aux États-Unis et dans d’autres pays, sous licence exclusive de l’Open
Group. VERITAS® est une marque déposée de Symantec Corporation.

Sources d'informations Ce produit inclut des logiciels développés par l'Apache Software Foundation. Cette documentation est
basée sur des informations fournies par l'Apache Software Foundation ( http://www.apache.org ).

Ce produit inclut des logiciels développés par l'OpenSSL Project pour une utilisation dans la Boîte à outils OpenSSL
(http://www.openssl.org).
Table des matières
À propos de ce document.........................................................................................................11
I Protection des systèmes..............................................................................................17

1 Installation sécurisée de l'environnement d'exploitation HP-UX................................................19


1.1 Considérations de sécurité relatives à l'installation.........................................................19
1.2 Prévention des violations de sécurité durant le processus d'amorçage..............................20
1.3 Activation de la sécurité d'ouverture de session pour root...............................................21
1.4 Utilisation de l'authentification d'amorçage pour prévenir tout accès non autorisé.............21
1.5 Définition des options de sécurité lors de l'installation....................................................22
1.6 Installation des correctifs de sécurité............................................................................22
1.7 Conseils de sécurité postinstallation pour la sauvegarde et la récupération.......................23

2 Administration de la sécurité système et utilisateur.................................................................25


2.1 Gestion de l'accès utilisateur......................................................................................25
2.1.1 Contrôle des comptes d'utilisateurs.......................................................................25
2.1.2 Contrôle des comptes invités...............................................................................26
2.1.3 Création de comptes d'utilisateurs d'applications..................................................27
2.1.4 Gestion des comptes de groupes.........................................................................27
2.2 Authentification des utilisateurs durant la connexion......................................................28
2.2.1 Explication du processus de connexion................................................................28
2.2.2 Vérification des fichiers de suivi de connexions (btmp et wtmp)...............................29
2.2.2.1 Exemples d'utilisation de la commande last..................................................30
2.2.3 Vérification de l'utilisateur connecté....................................................................30
2.3 Authentification des utilisateurs avec PAM....................................................................31
2.3.1 Présentation.....................................................................................................31
2.3.2 Bibliothèques PAM...........................................................................................32
2.3.3 Configuration à l'échelle du système avec /etc/pam.conf......................................34
2.3.4 Exemple de fichier /etc/pam.conf......................................................................35
2.3.5 Le fichier de configuration utilisateur /etc/pam_user.conf......................................36
2.3.6 Exemples : Fonctionnement de PAM pour la connexion.........................................36
2.4 Gestion des mots de passe........................................................................................38
2.4.1 Responsabilités de l'administrateur système..........................................................38
2.4.2 Responsabilités de l'utilisateur............................................................................39
2.4.3 Caractéristiques d’un bon mot de passe..............................................................39
2.4.4 Modification du fichier de mots de passe /etc/passwd.........................................40
2.4.4.1 Exemples d’utilisation de la commande passwd............................................40
2.4.4.2 Format du fichier /etc/passwd...................................................................41
2.4.5 Fichier de mot de passe fantôme /etc/shadow....................................................41

Table des matières 3


2.4.6 Élimination des comptes fictifs et protection des sous-systèmes clés dans
/etc/passwd............................................................................................................43
2.4.7 Connexion sécurisée avec le Secure Shell HP-UX..................................................44
2.4.8 Sécurisation des mots de passe stockés dans NIS.................................................44
2.4.9 Sécurisation des mots de passe stockés sur le serveur d'annuaire LDAP...................45
2.5 Définition des attributs de sécurité système...................................................................45
2.5.1 Configuration des attributs à l'échelle du système..................................................46
2.5.2 Configuration des attributs par utilisateur.............................................................47
2.5.2.1 Exemples de définition d'attributs spécifiques aux utilisateurs à l'aide de
userdbset............................................................................................................48
2.5.2.2 INACTIVITY_MAXDAYS et le fichier de mot de passe fantôme........................48
2.5.3 Dépannage de la base de données utilisateur......................................................48
2.6 Gestion des programmes setuid et setgid.....................................................................49
2.6.1 Risques éventuels liés à l’utilisation des programmes setuid et setgid........................50
2.6.2 Mode de définition des ID.................................................................................50
2.6.3 Recommandations concernant la limitation du pouvoir de setuid.............................51
2.7 Prévention des attaques de débordement de tampon de pile..........................................52
2.8 Protection des terminaux et des stations de travail sans personnel...................................53
2.8.1 Contrôle de l'accès avec /etc/inittab et les niveaux d'exécution.............................53
2.8.2 Protection des fichiers de périphériques de terminaux............................................54
2.8.3 Configuration du verrouillage d'écran.................................................................54
2.8.3.1 Configuration de la variable TMOUT..........................................................54
2.8.3.2 Configuration du gestionnaire de verrou CDE..............................................55
2.9 Protection contre l'accès au système par des périphériques distants.................................55
2.9.1 Contrôle de l'accès avec /etc/dialups et /etc/d_passwd.......................................56
2.10 Sécurisation des bannières de connexion...................................................................57
2.11 Protection du compte root.........................................................................................58
2.11.1 Contrôle de l'accès au compte root.....................................................................58
2.11.2 Utilisation du Restricted SMH Builder pour un accès superutilisateur limité...............59
2.11.3 Examen de l'accès superutilisateur.....................................................................59

3 HP-UX Bastille..................................................................................................................61
3.1 Fonctionnalités et avantages.......................................................................................61
3.2 Installation d'HP-UX Bastille.......................................................................................62
3.3 Utilisation d'HP-UX Bastille.........................................................................................62
3.3.1 Utilisation d'HP-UX Bastille de manière interactive.................................................63
3.3.2 Utilisation d'HP-UX Bastille de manière non interactive...........................................64
3.3.3 Configuration d'un système................................................................................65
3.4 Utilisation d'HP-UX Bastille pour annuler des modifications............................................67
3.5 Emplacement de fichiers............................................................................................68
3.6 Conseils et dépannage.............................................................................................69
3.7 Suppression d'HP-UX Bastille......................................................................................70

4 Table des matières


4 Extensions de sécurité du mode standard............................................................................71
4.1 Présentation.............................................................................................................71
4.2 Attributs de sécurité et la base de données utilisateur....................................................72
4.2.1 Attributs de sécurité système...............................................................................72
4.2.2 Configuration des attributs à l'échelle du système.................................................73
4.2.3 Composants de la base de données utilisateur.....................................................73
4.2.3.1 Fichiers de configuration............................................................................73
4.2.3.2 Commandes............................................................................................74
4.2.3.3 Attributs..................................................................................................74
4.2.3.4 Pages de manuel.....................................................................................75
4.2.4 Configuration des attributs dans la base de données utilisateur..............................75
4.2.5 Dépannage de la base de données utilisateur.....................................................76

5 Administration de la sécurité de l'accès à distance...............................................................77


5.1 Présentation des services Internet et des services d'accès distant......................................77
5.1.1 Sécurisation du protocole FTP..............................................................................78
5.1.2 Sécurisation de l'accès FTP anonyme...................................................................79
5.1.3 Refus de l’accès avec /etc/ftpd/ftpusers..............................................................80
5.1.4 Autres solutions de sécurité contre l'emprunt d'identité............................................80
5.2 Le démon inetd........................................................................................................81
5.2.1 Sécurisation d'inetd...........................................................................................82
5.2.1.1 Refus ou autorisation de l'accès à l'aide de /var/adm/inetd.sec.....................82
5.3 Protection contre l'emprunt d'identité avec des wrappers TCP.........................................83
5.3.1 Fonctionnalités supplémentaires des wrappers TCP................................................84
5.3.2 Les wrappers TCP ne fonctionnent pas avec les services RPC..................................84
5.4 Secure Internet Services.............................................................................................84
5.5 Contrôle d'un domaine administratif...........................................................................85
5.5.1 Vérification des paramètres d'autorisations sur les fichiers de contrôle réseau...........86
5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH)..........................................87
5.6.1 Principales fonctionnalités de sécurité de HP-UX Secure Shell..................................87
5.6.2 Composants logiciels de HP-UX Secure Shell........................................................88
5.6.3 Exécution de HP-UX Secure Shell........................................................................89
5.6.3.1 Exécution du client ssh...............................................................................89
5.6.3.2 Exécution du client sftp.............................................................................90
5.6.3.3 Exécution du client scp..............................................................................90
5.6.4 Séparation des privilèges HP-UX Secure Shell.......................................................90
5.6.5 Authentification HP-UX Secure Shell....................................................................91
5.6.5.1 GSS-API..................................................................................................92
5.6.5.2 Authentification par clé publique................................................................92
5.6.5.3 Authentification par clé publique et basée sur l'hôte.....................................93
5.6.5.4 Authentification par mot de passe..............................................................93
5.6.6 Protocoles de communication.............................................................................93
5.6.7 HP-UX Secure Shell et le système HP-UX...............................................................94

Table des matières 5


5.6.8 Technologies associées.....................................................................................95
5.6.9 Exigences relatives à Strong Random Number Generator......................................95
5.6.10 Prise en charge des wrappers TCP.....................................................................95
5.6.11 Prison de répertoires chroot..............................................................................95
II Protection des données..............................................................................................97

6 Sécurité du système de fichiers...........................................................................................99


6.1 Contrôle de l’accès aux fichiers..................................................................................99
6.1.1 Définition des autorisations d’accès aux fichiers...................................................101
6.1.2 Définition de la propriété de fichier...................................................................101
6.1.3 Protection des répertoires.................................................................................101
6.1.4 Protection des fichiers liés aux comptes d'utilisateurs............................................102
6.1.5 Repérage et correction des altérations de fichiers avec fsck...................................103
6.2 Définition des listes de contrôle d’accès....................................................................104
6.3 Utilisation de listes ACL HFS....................................................................................104
6.3.1 Listes ACL HFS et commandes et appels HP-UX...................................................106
6.4 Utilisation de listes ACL JFS......................................................................................108
6.4.1 Définition d’une liste ACL JFS...........................................................................108
6.4.2 Génération d’une liste ACL JFS par le système...................................................109
6.4.3 Liste ACL JFS minimale....................................................................................109
6.4.4 Entrées supplémentaires utilisateur et groupe de liste ACL....................................110
6.4.5 Entrées de groupe et de classe de liste ACL JFS..................................................110
6.4.6 Utilisation des commandes setacl et getacl........................................................110
6.4.7 Effets de chmod sur les entrées class.................................................................111
6.4.8 Exemple de modification d'une liste ACL JFS minimale........................................111
6.4.9 Listes ACL JFS par défaut.................................................................................113
6.4.10 Modification de liste ACL JFS avec la commande setacl.....................................114
6.4.10.1 Utilisation des options de modification et de suppression............................114
6.4.10.2 Utilisation de l'option -f..........................................................................114
6.4.10.3 Autorisations effectives et commande setacl -n...........................................115
6.5 Comparaison des listes ACL JFS et HFS.....................................................................116
6.5.1 Commande JFS et HFS et mappage de fonctions.................................................116
6.6 Listes ACL et NFS...................................................................................................117
6.7 Considérations de sécurité relatives aux fichiers spéciaux de périphériques /dev............117
6.8 Protection des partitions de disques et des volumes logiques........................................118
6.9 Recommandations de sécurité concernant le montage et le démontage des systèmes de
fichiers........................................................................................................................119
6.10 Contrôle de la sécurité des fichiers sur un réseau.......................................................120
6.10.1 Vérification des paramètres d'autorisations sur les fichiers de contrôle réseau........120
6.10.2 Fichiers montés dans un environnement NFS.....................................................121
6.10.2.1 Vulnérabilité des serveurs.......................................................................121
6.10.2.2 Vulnérabilité des clients..........................................................................122
6.10.2.3 Comment préserver les fichiers montés en mode NFS.................................122

6 Table des matières


7 Compartiments..............................................................................................................123
7.1 Présentation............................................................................................................123
7.1.1 Architecture des compartiments..........................................................................124
7.1.2 Configuration de compartiment par défaut..........................................................125
7.2 Planification de la structure de compartiments.............................................................125
7.3 Activation des compartiments...................................................................................127
7.4 Modification de la configuration de compartiment......................................................128
7.4.1 Modification de règles de compartiment............................................................128
7.4.2 Modification de noms de compartiments...........................................................129
7.5 Composants de compartiment..................................................................................129
7.5.1 Fichiers de configuration de compartiment..........................................................129
7.5.2 Commandes de compartiment..........................................................................129
7.5.3 Pages de manuel de compartiment....................................................................130
7.6 Règles et syntaxe de compartiment...........................................................................131
7.6.1 Définition de compartiment..............................................................................131
7.6.2 Règles de système de fichiers...........................................................................132
7.6.3 Règles IPC.....................................................................................................133
7.6.4 Règles réseau................................................................................................135
7.6.5 Règles diverses...............................................................................................137
7.6.6 Exemple de fichier de règles............................................................................138
7.7 Configuration des applications dans des compartiments..............................................138
7.8 Résolution des problèmes liés aux compartiments........................................................139
7.9 Utilisation du mode découverte pour générer une configuration de compartiment
initiale........................................................................................................................140
7.10 Compartiments dans les clusters HP Serviceguard......................................................140

8 Privilèges à granularité élevée..........................................................................................143


8.1 Présentation...........................................................................................................143
8.2 Composants de privilèges à granularité élevée...........................................................143
8.2.1 Commandes..................................................................................................144
8.2.2 Pages de manuel...........................................................................................144
8.3 Privilèges disponibles..............................................................................................144
8.4 Configuration des applications avec les privilèges à granularité élevée.........................147
8.4.1 Modèle de privilège.......................................................................................148
8.4.2 Privilèges composés.......................................................................................149
8.5 Implications de sécurité des privilèges à granularité élevée..........................................150
8.5.1 Escalade des privilèges...................................................................................150
8.6 Privilèges à granularité élevée dans les clusters HP Serviceguard..................................150
8.7 Résolution des problèmes liés aux privilèges à granularité élevée.................................150
III Protection de l'identité............................................................................................153

9 Contrôle d'accès basé sur les rôles HP-UX.........................................................................155


9.1 Présentation...........................................................................................................155

Table des matières 7


9.2 Principes de base du contrôle d'accès.......................................................................156
9.2.1 Simplification du contrôle d'accès avec des rôles................................................157
9.3 Composants du contrôle d'accès basé sur les rôles HP-UX............................................158
9.3.1 Access Control Policy Switch.............................................................................159
9.3.2 Fichiers de configuration HP-UX RBAC...............................................................160
9.3.3 Commandes HP-UX RBAC................................................................................160
9.3.4 Pages de manuel HP-UX RBAC.........................................................................161
9.3.5 Architecture du contrôle d'accès basé sur les rôles HP-UX....................................161
9.3.6 Exemple d'utilisation et de fonctionnement du contrôle d'accès basé sur les rôles
HP-UX...................................................................................................................162
9.4 Planification du déploiement HP-UX RBAC..................................................................164
9.4.1 Planification des rôles......................................................................................164
9.4.2 Planification des autorisations pour les rôles.......................................................164
9.4.3 Planification des mappages de commandes.......................................................165
9.4.4 Limitations et restrictions du contrôle d'accès basé sur les rôles HP-UX...................166
9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX..........................................167
9.5.1 Configuration des rôles....................................................................................168
9.5.1.1 Création des rôles....................................................................................168
9.5.1.2 Affectation de rôles aux utilisateurs............................................................169
9.5.1.3 Affectation de rôles aux groupes...............................................................169
9.5.2 Configuration des autorisations........................................................................170
9.5.3 Configuration d'autorisations et de privilèges de commandes supplémentaires........171
9.5.4 Configuration du contrôle d'accès basé sur les rôles HP-UX avec des privilèges à
granularité élevée...................................................................................................173
9.5.5 Configuration du contrôle d'accès basé sur les rôles HP-UX avec des
compartiments........................................................................................................175
9.6 Utilisation du contrôle d'accès basé sur les rôles HP-UX...............................................176
9.6.1 Utilisation de la commande privrun pour exécuter des applications avec des
privilèges...............................................................................................................176
9.6.1.1 Contrôle d'accès basé sur les rôles HP-UX dans les clusters Serviceguard........178
9.6.2 Utilisation de la commande privedit pour modifier des fichiers dont l'accès est
contrôlé.................................................................................................................179
9.6.3 Personnalisation de privrun et privedit avec l'ACPS.............................................180
9.7 Dépannage du contrôle d'accès basé sur les rôles HP-UX............................................180
9.7.1 L'outil de syntaxe de base de données rbacdbchk...............................................181
9.7.2 privrun -v Information.......................................................................................181

10 Administration de l'audit................................................................................................183
10.1 Composants d'audit..............................................................................................184
10.1.1 Commandes..................................................................................................184
10.1.2 Fichiers de configuration d'audit......................................................................184
10.1.3 Pages de manuel d'audit................................................................................185
10.2 Audit du système..................................................................................................185

8 Table des matières


10.2.1 Planification de l'implémentation de l'audit.......................................................185
10.2.2 Activation de l'audit......................................................................................186
10.2.3 Désactivation de l'audit.................................................................................187
10.2.4 Contrôle des fichiers d'audit..........................................................................187
10.2.5 Audit et performances...................................................................................188
10.2.6 Recommandations pour l’administration du système d’audit...............................188
10.3 Audit des utilisateurs.............................................................................................188
10.4 Audit des événements...........................................................................................189
10.5 Traces d'audit......................................................................................................191
10.5.1 Configuration des traces d'audit.....................................................................192
10.5.2 Contrôle et gestion des traces d'audit..............................................................192
10.6 Affichage des fichiers journaux d’audit....................................................................194
10.6.1 Exemples d'utilisation de la commande audisp.................................................195
10.7 Auto-audit...........................................................................................................195
10.8 Audit HP-UX RBAC................................................................................................196
10.8.1 Audit basé sur des critères de contrôle d'accès basé sur les rôles HP-UX et fichier
/etc/rbac/aud_filter...............................................................................................197
10.8.2 Procédure d'audit des critères HP-UX RBAC......................................................198

A Systèmes protégés...............................................................................................................199
A.1 Configuration d'un système protégé...............................................................................199
A.2 Audit d’un système protégé..........................................................................................201
A.3 Gestion des mots de passes protégés et de l'accès au système..........................................201
A.3.1 Fichiers de mots de passe.....................................................................................202
A.3.1.1 Fichier /etc/passwd......................................................................................202
A.3.1.2 Base de données /tcb/files/auth/.................................................................203
A.3.2 Sélection et génération de mots de passe...............................................................204
A.3.3 Délai d’expiration des mots de passe.....................................................................205
A.3.4 Historique et réutilisation des mots de passe...........................................................205
A.3.5 Contrôle d’accès basé sur l’heure.........................................................................206
A.3.6 Contrôle d'accès basé sur les périphériques...........................................................206
A.3.7 Manipulation des bases de données d’un système protégé.......................................206
A.4 Recommandations pour la sauvegarde et la récupération protégées..................................207

B Autres produits de sécurité....................................................................................................209


B.1 HP-UX HIDS.................................................................................................................209
B.2 Correctifs de sécurité....................................................................................................209
B.3 HP-UX IPFilter..............................................................................................................210
B.4 HP-UX Secure Shell......................................................................................................210

Glossaire..............................................................................................................................211

Table des matières 9


Index....................................................................................................................................219

10 Table des matières


À propos de ce document
Historique d’impression
L’édition en vigueur correspond à la date d’impression de ce document et à son numéro
de référence. La date d’impression est modifiée lorsque paraît une nouvelle édition.
Nous vous recommandons de vous abonner au service de support du produit approprié,
afin de recevoir les nouvelles éditions. Pour obtenir plus de détails, contactez votre
représentant commercial HP.
Les différentes versions de ce document se trouvent aux emplacements suivants :
http://docs.hp.com
Mars 2008 Référence 5992–3417
• Le document a été divisé en trois parties : Protection des
systèmes, Protection des données et Protection de l'identité.
• Ajout d'un chapitre afin de documenter les extensions de
sécurité du mode standard HP-UX (voir le Chapitre 4).
• Remplacement de l'outil Security Patch Check par Software
Assistant.
• Ajout d'une illustration montrant l'interface utilisateur d'HP-UX
Bastille (voir la Section 3.3).
• Ajout du fichier journal de configuration d'HP-UX Bastille
assessment-log.config (voir la Section 3.5).
• Diverses modifications ont été apportées.
Octobre 2007 Référence 5992-2919
• Ajout d'un chapitre décrivant HP-UX Bastille.
Août 2007 Référence 5992-1933 (anglais uniquement)
• Suppression de Process Resource Manager (PRM) de la liste de
produits qui ne prennent pas en charge les mots de passe
fantômes (voir la Section 2.4.5).
• Correction de search en nsearch dans
liste_autorisations (voir Section 7.6.2).
Février 2007 Référence 5991-6506
Première édition

Historique d’impression 11
REMARQUE : Les volumes du Guide de l'administrateur système HP-UX peuvent être
mis à jour indépendamment. Par conséquent, les dernières versions des volumes de la
collection peuvent parfois différer les unes des autres. Les dernières versions de chaque
volume sont disponibles sur le site Web à l'adresse suivante :
http://docs.hp.com

Utilisateurs potentiels
Le Guide de l'administrateur système HP-UX est destiné aux administrateurs de systèmes
HP-UX de tous niveaux d'expertise responsables de la gestion des systèmes HP-UX à
compter de HP-UX 11 version 3.
Bien que de nombreuses rubriques de cette collection soient applicables aux versions
antérieures, un grand nombre de modifications ont été apportées dans
HP-UX 11i version 3 ; par conséquent, pour obtenir des informations sur les versions
antérieures, reportez-vous au document Gestion des systèmes et des groupes de travail
- Guide pour les administrateurs système HP-UX.

À propos de cette collection de documents


Le Guide de l'administrateur système HP-UX documente les principales tâches (et concepts
associés) nécessaires pour administrer les systèmes HP-UX 11i version 3. Il est composé
des volumes suivants :
Présentation Fournit une vue de haut niveau de HP-UX 11i, de
ses composants et de leur relation.
Gestion de la configuration Décrit une grande partie des tâches que vous
devez effectuer pour configurer et personnaliser
les paramètres système et le comportement des
sous-systèmes.
Gestion des volumes logiques Décrit comment configurer des volumes physiques,
des groupes de volumes et des volumes logiques
à l'aide de HP Logical Volume Manager (LVM).
Gestion de la sécurité Décrit les fonctionnalités de sécurité des données
et du système HP-UX 11i.
Tâches de gestion systématiques Décrit une grande partie des tâches courantes à
effectuer pour garantir le bon fonctionnement de
votre système.
Le Guide de l'administrateur système HP-UX : Gestion de la sécurité est divisé en trois
parties : Protection des systèmes, Protection des données et Protection de l'identité. Ces
parties contiennent les rubriques suivantes :
Chapitre 1 Décrit les aspects relatifs à la sécurité liés aux processus d'amorçage
et d'installation.

12 À propos de ce document
Chapitre 2 Décrit comment administrer la sécurité du système et des utilisateurs
une fois le système d'exploitation installé.
Chapitre 3 Décrit comment renforcer et verrouiller un système à l'aide d'HP-UX
Bastille en vue d'améliorer la sécurité du système d'exploitation HP-UX.
Chapitre 4 Décrit les fonctionnalités et composants des extensions de sécurité du
mode standard HP-UX.
Chapitre 5 Décrit comment sécuriser l'accès distant à votre système.
Chapitre 6 Décrit comment contrôler et protéger les systèmes de fichiers.
Chapitre 7 Décrit les compartiments et la manière dont ils isolent les composants
d'un système.
Chapitre 8 Décrit les privilèges à granularité élevée et comment diviser les
pouvoirs des superutilisateurs en un ensemble de privilèges.
Chapitre 9 Décrit les fonctionnalités et composants du contrôle d'accès basé sur
les rôles HP-UX.
Chapitre 10 Décrit l'administration du système d'audit.
Annexe A Décrit les systèmes protégés.
Annexe B Décrit d'autres produits de sécurité.

Noms et identificateurs des versions de HP-UX 11i


HP-UX 11i constitue un système d'exploitation à disponibilité, gestion et sécurité élevées.
HP-UX 11i prend en charge les environnements informatiques techniques, d'entreprise
et à mission critique, et il est disponible pour les systèmes HP 9000 et les serveurs
HP Integrity.
Chaque version de HP-UX 11i est associée à un nom et un identificateur de version. La
commande uname avec l'option -r renvoie l'identificateur de version. Consultez le
tableau suivant pour une liste des versions disponibles pour HP-UX 11i :

Identificateur de version Nom de version Architecture processeur supportée

B.11.11 HP-UX 11i version 1 HP 9000

B.11.23 HP-UX 11i version 2 Intel™ Itanium™

B.11.23 HP-UX 11i version 2, HP 9000


Septembre 2004 Itanium

B.11.31 HP-UX 11i version 3 HP 9000


Itanium

Pour plus d’informations sur les systèmes et les architectures processeurs pris en charge
pour différentes versions de HP-UX 11i, voir les notes de mise à jour système HP UX 11i

Noms et identificateurs des versions de HP-UX 11i 13


spécifiques à votre version (par exemple, les Notes de mise à jour pour HP UX 11i
version 3).

Emplacement des informations sur HP-UX


Le tableau suivant recense les emplacements où vous pourrez trouver les informations
générales relatives à l'administration système de HP-UX. En revanche, il ne donne pas
d’informations sur les produits spécifiques.

Si vous désirez Reportez-vous à À l'emplacement

savoir : Notes de mise à jour de • Support HP Instant Information


• Ce qui a changé dans les HP-UX 11i spécifiques à votre (anglais uniquement)
versions de HP-UX version de HP-UX. Par exemple,
vous pourriez vous reporter aux • http://docs.hp.com
• Le contenu des environnements Notes de mise à jour pour • Répertoire /usr/share/doc/
d'exploitation HP-UX 11i version 3. (anglais uniquement)
• Les exigences de micrologiciel Le répertoire /usr/share/doc
et les systèmes pris en charge ne contient que les notes de mise
pour une version spécifique à jour d’origine relatives à votre
version de HP-UX. Pour obtenir les
notes de mise à jour révisées,
reportez-vous à votre support
HP Instant Information le plus récent
ou au site Web
http://docs.hp.com .

Installer ou mettre à jour HP-UX • Informations importantes à lire • Kit de support (fourni avec
avant l’installation ou la mise l’environnement d'exploitation)
à jour de HP-UX • http://docs.hp.com
• Guide d’installation et de mise
à jour de HP-UX 11i
(Remarque : voir les documents
spécifiques à votre version de
HP-UX.)

Administrer un système HP-UX Pour les versions à compter de • Support HP Instant Information
HP-UX 11i version 3 : (anglais uniquement)
• Guide de l'administrateur • http://docs.hp.com
système HP-UX (collection de
plusieurs volumes) • Planning Superdome
Configurations (document de
autres sources d'informations pour référence)
l'administration système :
• nPartition Admnistrator's Guide
• Planning Superdome
Configurations (document de
référence)

14 À propos de ce document
Informations connexes
Vous trouverez des informations supplémentaires sur la sécurité et HP-UX à l'adresse
http://docs.hp.com. Les documents suivants sont notamment disponibles :
• HP-UX AAA Server Administrator's Guide
• HP-UX Host Intrusion Detection System Administrator's Guide
• HP-UX IPFilter Administrator's Guide
• HP-UX IPSec Administrator's Guide
• HP-UX Secure Shell Release Notes

Conventions
Ce document utilise les conventions typographiques suivantes.
reboot(1M) Une page de manuel HP-UX. reboot est le nom et 1M est la section de
la Référence HP-UX. Sur le Web et sur le support Instant Information,
il peut s’agir d’un lien vers la page de manuel proprement dite. Sur la
ligne de commande de HP-UX, saisissez « man reboot » ou « man
1M reboot » pour afficher cette page. Pour plus d’informations, voir
man(1).
Titre d’ouvrage Le titre d’un manuel. Sur le Web et sur le support Instant Information,
il peut s’agir d’un lien vers le manuel proprement dit.
Touche de Nom d’une touche du clavier. Retour et Entrée désignent la même
clavier touche.
Mise en Texte mis en exergue.
évidence
Mise en Texte mis en exergue de manière très évidente.
évidence
Terme L’introduction d’un mot ou d’une phrase important.
Affichage Texte affiché par l’ordinateur.
ordinateur
Informations Commandes et texte que vous saisissez.
saisies par
l’utilisateur
Commande Un nom de commande ou une phrase de commande qualifiée.
Variable Le nom d’une variable susceptible d’être remplacée dans une commande
ou une fonction ou une information figurant dans un écran représentant
plusieurs valeurs possibles.
[] Les contenus sont optionnels dans les descriptions de formats et de
commandes.

Informations connexes 15
{} Les contenus sont obligatoires dans les descriptions de formats et de
commandes. Si les contenus apparaissent sous la forme d’une liste
comportant des séparateurs |, vous devez choisir un des éléments.
... L’élément précédent peut être répété à un nombre arbitraire de reprises.
| Sépare les éléments d’une liste de choix.

16 À propos de ce document
Partie I Protection des systèmes
L'un des facteurs critiques de la sécurité d'entreprise est la minimisation des vulnérabilités et le
renforcement des systèmes. HP-UX 11i offre un ensemble de fonctionnalités de sécurité destinées
à corriger des vulnérabilités connues et inconnues en exécutant uniquement les services
nécessaires, minimisant ainsi les points d'attaque potentiels.
Cette section traite des outils HP-UX suivants qui protègent un système contre les attaques et
détectent et réagissent face aux menaces :
• Installation sécurisée de l'environnement d'exploitation HP-UX (Chapitre 1)
• Administration de la sécurité système et utilisateur (Chapitre 2)
• HP-UX Bastille (Chapitre 3)
• Extensions de sécurité du mode standard (Chapitre 4)
• Administration de la sécurité de l'accès à distance (Chapitre 5)

17
18
1 Installation sécurisée de l'environnement d'exploitation
HP-UX
Ce chapitre décrit les considérations de sécurité relatives aux processus d'amorçage et
d'installation, y compris les aspects suivants :
• Considérations de sécurité relatives à l'installation (Section 1.1)
• Prévention des violations de sécurité durant le processus d'amorçage (Section 1.2)
• Activation de la sécurité d'ouverture de session pour root (Section 1.3)
• Utilisation de l'authentification d'amorçage pour prévenir tout accès non autorisé
(Section 1.4)
• Définition des options de sécurité lors de l'installation (Section 1.5)
• Installation des correctifs de sécurité (Section 1.6)
• Conseils de sécurité postinstallation pour la sauvegarde et la récupération
(Section 1.7)

1.1 Considérations de sécurité relatives à l'installation


Avant d'installer ou de mettre à jour un nouveau système d'exploitation ou un nouveau
logiciel, il convient d'étudier les considérations de sécurité. Faites en sorte d'intégrer les
mesures de sécurité suivantes à votre préparation à l'installation :
• Examinez le contenu de votre kit de support. Consultez les Notes de mise à jour et
autres informations connexes à l'adresse http://docs.hp.com.
• Identifiez les logiciels nécessaires et ceux qui ne le sont pas. N'installez pas de
logiciel inutile. Consultez les autres chapitres de ce document pour vous aider à
identifier les logiciels de sécurité nécessaires.
• Déconnectez votre système du réseau, en particulier du réseau public, jusqu'à ce
que vos modifications de sécurité soient terminées. Considérez, le cas échéant, le
niveau de sécurité que vous souhaitez déployer. Pour plus d’informations, voir la
Section 1.5.
• Assurez-vous que la console système est protégée physiquement et que votre console
LAN est soit déconnectée, soit utilisée uniquement par le biais d'un réseau sur lequel
les protocoles de texte clair tels que telnet sont autorisés/protégés. Cet aspect
est extrêmement important. La restriction de l'accès à la console système aide à
empêcher toute personne non autorisée de modifier les attributs de sécurité de votre
système.
• Installez les correctifs les plus récents, en particulier les correctifs de sécurité. Pour
plus d’informations, voir la Section 1.6.

1.1 Considérations de sécurité relatives à l'installation 19


• Mettez en place un système de sauvegarde et de récupération. Pour plus
d’informations, voir la Section 1.7.

1.2 Prévention des violations de sécurité durant le processus d'amorçage


Des violations de sécurité peuvent se produire durant la séquence d'amorçage. Le
processus d'amorçage peut être interrompu, permettant ainsi à un utilisateur non autorisé
d'accéder au système. Si certains fichiers système sont modifiés de manière incorrecte
ou malveillante avant le réamorçage, le système peut rencontrer des problèmes durant
et après le réamorçage. Vous devez par conséquent effectuer les tâches de prévention
suivantes :
• Assurez-vous que le système et la console système sont sécurisés physiquement et
que seuls les utilisateurs autorisés y ont accès.
• Activez la fonctionnalité d'authentification d'amorçage de façon à autoriser
uniquement les utilisateurs spécifiés à amorcer le système en mode mono-utilisateur.
Voir la Section 1.4.
• Assurez-vous que les fichiers système sont protégés contre l'écriture ; certains devront
peut-être être protégés contre la lecture.
Voici un récapitulatif de la séquence d'amorçage qui a lieu lorsque vous allumez ou
réinitialisez l'ordinateur. Voir le Guide de l'administrateur système HP-UX : Tâches de
gestion systématiques pour plus d'informations sur la séquence d'amorçage.
1. Durant l'amorçage, un délai de 10 secondes vous permet d'outrepasser la séquence
d'amorçage automatique. À ce stade, un intrus peut interrompre la séquence
d'amorçage et accéder au système.
Vous pouvez obtenir un accès racine lorsque vous interrompez la séquence
d'amorçage en appuyant sur une touche quelconque. L'ISL vous invite à spécifier
une commande. L'entrée de la commande suivante fait basculer le système en mode
mono-utilisateur :
ISL> hpux -is
Si vous n'utilisez pas l'authentification d'amorçage, un utilisateur peut alors ouvrir
une session en tant que root sans mot de passe.
L'authentification d'amorçage autorise uniquement les utilisateurs spécifiés à se
connecter en tant que root.
2. Si la séquence d'amorçage n'est pas interrompue, le processus d'initialisation se
poursuit.
3. HP-UX effectue sa phase d’initialisation et se met en fonctionnement, prêt pour
l'ouverture de session. À ce stade, une autre violation de sécurité peut se produire
si un intrus a déjà obtenu un accès racine.

20 Installation sécurisée de l'environnement d'exploitation HP-UX


Si un intrus interrompt le processus d'amorçage, il obtient un accès racine au système
et en devient théoriquement le propriétaire. Cette propriété lui permet d'apporter des
modifications au système par le biais de nombreux mécanismes.

1.3 Activation de la sécurité d'ouverture de session pour root


De nombreux protocoles réseau tels que rlogind et telnetd ne chiffrent pas les
communications réseau, ce qui facilite la détection des mots de passe administratifs.
Essayez de limiter l'utilisation de ces protocoles non sécurisés.
Pour prévenir toute ouverture de session administrative par le biais d'un de ces protocoles,
vous pouvez utiliser le fichier /etc/security pour autoriser la connexion au compte
root uniquement par le biais de la console système. Par exemple, pour restreindre les
connexions root à la console uniquement, créez le fichier /etc/security avec une
seule ligne spécifiant la console. Pour plus d'informations, voir login(1).

1.4 Utilisation de l'authentification d'amorçage pour prévenir tout accès


non autorisé
La fonctionnalité d'authentification d'amorçage protège l'amorçage en mode
mono-utilisateur avec l'authentification de mot de passe. Elle permet de configurer un
système de sorte que seuls les utilisateurs autorisés peuvent amorcer l'ordinateur en mode
mono-utilisateur. Cette fonctionnalité doit être activée avant que vous ne réamorciez le
système.
L'authentification d'amorçage est configurée par deux attributs du fichier /etc/default/
security :
• BOOT_AUTH active ou désactive l'authentification d'amorçage. Spécifiez
BOOT_AUTH=1 pour activer l'authentification d'amorçage. Par défaut,
l'authentification est désactivée (BOOT_AUTH=0).
• BOOT_USERS définit qui peut se connecter en tant que root lorsque la fonctionnalité
d'authentification d'amorçage est activée. Les noms répertoriés dans BOOT_USERS
sont séparés par des virgules. Par exemple :
BOOT_USERS=root,mary,jack,amy,jane
BOOT_USERS=root est la valeur par défaut.
Le fichier de configuration /etc/default/security est expliqué en détail au
Chapitre 2 et dans security(4).

1.3 Activation de la sécurité d'ouverture de session pour root 21


1.5 Définition des options de sécurité lors de l'installation
Les options de sécurité à l'installation vous permettent de configurer un moteur de
verrouillage de sécurité HP-UX Bastille, qui peut inclure un pare-feu HP-UX IPFilter. Une
fois l'installation du système terminée, elle aura l'un des niveaux de sécurité préconfigurés.
Durant l'installation, vous pouvez choisir parmi quatre niveaux de sécurité préconfigurés :
Sec00Tools Installer l'infrastructure de sécurité, mais sans activer les fonctionnalités
de sécurité optionnelles. Il s'agit du niveau par défaut.
Sec10Host Installer un système de verrouillage basé sur l'hôte, sans configuration
de pare-feu HP-UX IPFilter. Avec ce niveau de sécurité, la plupart des
services réseau sont désactivés. Ces services peuvent être rétablis en
exécutant la commande bastille(1M).
Sec20MngDMZ Installer un système de verrouillage géré qui bloque la plupart du
trafic entrant avec un pare-feu HP-UX IPFilter.
Sec30DMZ Installer un système de verrouillage complet DMZ, qui est un
verrouillage réseau IPFilter basé sur l'hôte. HP-UX IPFilter bloque
presque toutes les connexions entrantes.
Pour plus d'informations sur HP-UX Bastille, voir le Chapitre 3. Pour plus d'informations
sur HP-UX IPFilter, voir le document HP-UX IPFilter Administrator's Guide à l'adresse :
http://docs.hp.com/en/internet.html#IPFilter

1.6 Installation des correctifs de sécurité


Juste après l'installation, appliquez les correctifs requis et recommandés à l'aide d'HP-UX
Software Assistant (SWA).
SWA est un outil de ligne de commande qui consolide et simplifie la gestion des correctifs
et des bulletins de sécurité sur les systèmes HP-UX. L'outil SWA remplace Security Patch
Check (SPC) et constitue l'utilitaire recommandé par HP pour garantir la mise à jour et
la cohérence avec les bulletins de sécurité publiés par HP relatifs aux logiciels HP-UX.

REMARQUE : L'utilisation de l'outil Software Assistant peut aider à améliorer la sécurité


du système, mais cela ne la garantit pas.
Pour plus d'informations sur SWA, reportez-vous aux ressources suivantes :
• Le site Web d'HP-UX Software Assistant à l'adresse suivante :
https://www.hp.com/go/swa
• swa(1M)
• Le document HP-UX Software Assistant System Administration Guide disponible à
l'adresse suivante :
http://docs.hp.com

22 Installation sécurisée de l'environnement d'exploitation HP-UX


1.7 Conseils de sécurité postinstallation pour la sauvegarde et la
récupération
Une fois le système opérationnel, vous devez continuer d'assurer sa sécurité. Veillez à
conserver des fichiers de sauvegarde et de récupération système. Voici quelques
recommandations :
• Pour sauvegarder et récupérer des fichiers de manière sélective, n’utilisez que les
fonctions fbackup et frecover. Seules fbackup et frecover ont accès aux
listes de contrôle d'accès. Sur les systèmes qui ne possèdent pas de listes de contrôle
d'accès, utilisez l’option -A de ces commandes pour sauvegarder et récupérer des
fichiers. Voir les pages de manuel fbackup(1M) et frecover(1M).
• Si vous prévoyez de récupérer les fichiers sur un autre système, vérifiez que le nom
d’utilisateur et le nom de groupe sur les deux systèmes sont identiques.
• Souvenez-vous que le support de sauvegarde contient des données confidentielles.
Seuls les utilisateurs qui en ont un besoin véritable doivent avoir accès au support.
• Étiquetez les bandes de sauvegarde et stockez-les soigneusement. Entreposez-les à
l’extérieur de votre entreprise pour améliorer la sécurité. Conservez les archives
pendant six mois au minimum, puis recyclez les supports.
• Effectuez des sauvegardes incrémentielles quotidiennes et des sauvegardes complètes
hebdomadaires.
Établissez votre planning de sauvegarde en fonction du flot de données de votre
organisation. Si, par exemple, les mises à jour de votre principale base de données
ont lieu le vendredi, il est peut-être plus sûr de prévoir la sauvegarde hebdomadaire
le vendredi soir.
• Si tous les fichiers doivent être sauvegardés en fonction d’un planning, demandez
à tous les utilisateurs de fermer leur session avant de commencer la sauvegarde.
Toutefois, la commande fbackup vous prévient si un fichier est modifié pendant
que vous le sauvegardez.
• Pour identifier d’éventuels problèmes au cours de la sauvegarde, examinez le fichier
journal des dernières sauvegardes. Définissez des autorisations restrictives sur le
fichier journal de sauvegarde.
• Sachez que la commande frecover vous permet d'écraser un fichier. Toutefois,
le fichier conserve les autorisations et les listes de contrôle d’accès définies au
moment de sa sauvegarde.
• Testez votre processus de récupération à l’avance pour vous assurer de pouvoir
restaurer intégralement les données en cas d’urgence.
• Lorsque vous restaurez un fichier à partir d’une autre machine, l’utilisateur et le
groupe de ce fichier n’existent peut-être pas sur le nouveau système. Vous devrez
alors exécuter la commande chown pour définir un ID utilisateur et un ID de groupe
sur le nouveau système. Un fichier restauré à partir d’un nouveau système qui ne
1.7 Conseils de sécurité postinstallation pour la sauvegarde et la récupération 23
possède pas le groupe correspondant adopte l’appartenance de groupe de la
personne qui exécute la commande frecover. Si les noms du propriétaire et du
groupe ont des significations différentes sur des systèmes différents, la récupération
peut donner des résultats imprévisibles.
• Une panne de courant ne devrait normalement pas provoquer de perte de fichiers ;
toutefois, si cet incident est signalé, recherchez le fichier dans le répertoire
/lost+found avant de le restaurer à partir d'une bande de sauvegarde.
• Pour vérifier le contenu de la bande, utilisez l’option -I de la commande frecover
pour afficher l’index des fichiers sur la bande. Les autorisations existantes d'un
système de fichiers sont laissées intactes par la sauvegarde. La commande frecover
vous empêche de lire le fichier si les autorisations sur le fichier l'interdise.
• Ne récupérez jamais les fichiers critiques comme /etc/passwd ou ceux de /tcb/
files. Restaurez ces fichiers dans un répertoire intermédiaire (n’utilisez pas /tmp)
et accordez à ce répertoire les autorisations drwx------ afin que personne d’autre
que vous ne puisse l’utiliser. Comparez les fichiers récupérés à ceux que vous devez
remplacer. Effectuez les modifications nécessaires.
• Veillez à activer les fonctions d’audit. Les fonctions d’audit ne sont pas
automatiquement activées lorsque vous récupérez le système.

24 Installation sécurisée de l'environnement d'exploitation HP-UX


2 Administration de la sécurité système et utilisateur
Ce chapitre traite de la sécurité utilisateur de base une fois le système d'exploitation
installé. Il est axé sur les connexions, les mots de passe et autres interactions de l'utilisateur
avec le système. Il aborde les sujets suivants :
• Gestion de l'accès utilisateur (Section 2.1)
• Authentification utilisateur durant la connexion (Section 2.2)
• Authentification des utilisateurs avec PAM (Section 2.3)
• Gestion des mots de passe (Section 2.4)
• Définition des attributs de sécurité système (Section 2.5)
• Gestion des programmes setuid et setgid (Section 2.6)
• Prévention des attaques de débordement de tampon de pile (Section 2.7)
• Protection des terminaux et des stations de travail sans personnel (Section 2.8)
• Protection contre l'accès au système par des périphériques distants (Section 2.9)
• Sécurisation des bannières de connexion (Section 2.10)
• Protection du compte root (Section 2.11)

2.1 Gestion de l'accès utilisateur


Les utilisateurs autorisés accèdent au système en donnant un nom d'utilisateur valide
(nom de connexion) et un mot de passe. Chaque utilisateur est défini par une entrée
dans le fichier /etc/passwd. Utilisez HP System Management Homepage (HP SMH)
pour ajouter, supprimer, désactiver, réactiver ou modifier un compte d'utilisateur.
Pour plus d’informations sur les mots de passe, voir les pages de manuel passwd(4),
passwd(1) et voir la Section 2.4 dans ce document.

2.1.1 Contrôle des comptes d'utilisateurs


Voici quelques recommandations concernant le contrôle des comptes d'utilisateurs :
• Examinez régulièrement la sortie des commandes last, lastb et who pour vérifier
si elles mentionnent des connexions inhabituelles.
• Vérifiez que tous les utilisateurs ayant un compte ont un réel besoin professionnel
d'y accéder.
• Assurez-vous que plusieurs utilisateurs ne partagent pas le même compte d'utilisateur.
• Vérifiez qu'aucun ID utilisateur (UID) n'est partagé par plusieurs comptes d'utilisateurs.
• Assurez-vous que tous les comptes ont des mots de passe sécurisés qui changent
régulièrement.
2.1 Gestion de l'accès utilisateur 25
• Vérifiez que tous les répertoires personnels des utilisateurs ont les autorisations
appropriées. La plupart des répertoires personnels ont un accès en lecture mais
aucun accès en écriture pour les autres utilisateurs. Pour une protection accrue,
définissez les autorisations de lecture, d'écriture et d'exécution pour le propriétaire
du répertoire uniquement.
• Assurez-vous que tous les utilisateurs comprennent bien les stratégies de sécurité.
Placez un fichier de stratégie de sécurité d'entreprise dans chaque répertoire
personnel.
• Examinez le fichier /etc/passwd ou autre base de données utilisateur appropriée
pour vérifier s'il ou elle contient des comptes inutilisés, en particulier pour des
utilisateurs qui ont quitté l'entreprise.
• Examinez les comptes root pour voir qui a un accès racine.
• Considérez l'implémentation du contrôle d'accès basé sur les rôles HP-UX afin de
minimiser les risques associés au fait que plusieurs utilisateurs ont accès au compte
root. Pour plus d'informations, voir le Chapitre 9.
• Examinez les comptes invités afin de déterminer leur fréquence d'utilisation.

2.1.2 Contrôle des comptes invités


Pour bénéficier du plus haut niveau de sécurité, n'autorisez pas les comptes invités ou
ouverts. Si vous avez des comptes invités, effectuez les actions suivantes :
• Modifiez fréquemment le mot de passe invité. Vous pouvez spécifier le mot de passe.
• Utilisez un shell restreint (rsh) pour limiter l'accès au système. Pour plus
d'informations sur la commande rsh, voir sh(1) et sh-posix(1).
• Les comptes invités sont souvent oubliés. Appliquez l'une des méthodes suivantes
pour désactiver le compte invité lorsqu'il n'est pas utilisé :
— Utilisez des attributs de sécurité par utilisateur afin de désactiver automatiquement
le compte après un certain nombre de jours d'inactivité. Pour plus d'informations,
voir security(4) et la Section 2.5.2.2.
— Utilisez la commande suivante pour verrouiller le compte invité :
# passwd -l guest

— Utilisez la commande suivante pour supprimer le compte invité :


# userdel guest

• Planifiez un travail at afin de verrouiller automatiquement les comptes temporaires :


# at now +14 days passwd -l tempacct

• Examinez régulièrement les fichiers /var/adm/wtmp et /var/adm/sulog pour


voir s'ils contiennent des comptes inutilisés.
26 Administration de la sécurité système et utilisateur
Pour plus d'informations, voir sh(1) et su(1).

2.1.3 Création de comptes d'utilisateurs d'applications


Si des utilisateurs utilisent uniquement HP-UX pour démarrer une application, ils ne
requièrent aucun accès à un shell. Ces utilisateurs ne devraient utiliser que l'application,
par exemple un système de gestion de base de données, et ne devraient pas avoir besoin
d'accéder aux fonctionnalités HP-UX.
Pour restreindre l'accès à HP-UX, modifiez le fichier /etc/passwd de sorte que seule
une commande spécifique soit exécutée après que l'utilisateur s'est connecté. Le fichier
/etc/passwd contient des informations essentielles nécessaires durant la connexion :
• Nom d'utilisateur
• Mot de passe chiffré
• ID utilisateur
• ID de groupe
• Champ de commentaire
• Répertoire personnel
• Programme de connexion
En général, le programme de connexion est un shell, tel que /bin/sh, mais cela n'est
pas obligatoire. Vous pouvez créer un compte captif (compte qui connecte un utilisateur
directement à une application) en identifiant l'application comme shell de connexion.
Voici un exemple qui permet de limiter un utilisateur à l'exécution de la commande date
uniquement. L'entrée dans /etc/passwd est la suivante :
nom_utilisateur:rc70x.4,sx2:20:1:run only date command:/home/date:/usr/bin/date
À l'invite de connexion un utilisateur entre nom_utilisateur et le mot de passe
approprié. La commande date est exécutée, puis l'utilisateur est déconnecté
immédiatement.
login: nom_utilisateur
Password: xxxxxx
Tue Nov 14 18:38:38 PDT 2006

2.1.4 Gestion des comptes de groupes


Lorsqu'un groupe doit partager ou accéder à des fichiers de projet, effectuez les étapes
suivantes afin de garantir la sécurité :
1. Vérifiez que chaque membre a une entrée dans le fichier /etc/passwd.
2. Créez une entrée pour le groupe dans le fichier /etc/group.
3. Créez un répertoire partagé pour le groupe.
drwxrwx-- root project /home/projects
2.1 Gestion de l'accès utilisateur 27
4. Définissez le umask dans le fichier ~/.profile de chaque membre du groupe.
Dans l'exemple suivant, seuls les utilisateurs du groupe peuvent lire, écrire et exécuter
des fichiers :
umask u=rwx,g=rwx, o=

2.2 Authentification des utilisateurs durant la connexion


Pour accéder à un système et à ses ressources, les utilisateurs doivent ouvrir une session.
En contrôlant l'accès au système, vous pouvez essayer d'empêcher les utilisateurs non
autorisés d'accéder au système. Si des utilisateurs non autorisés parviennent malgré tout
à accéder au système, vous pouvez les empêcher d'exécuter des programmes qui
consomment des ressources et d'accéder aux données système. Cette section décrit ce
qui se produit durant le processus login du moment où vous tapez votre nom d'utilisateur
jusqu'au moment où vous recevez une invite de shell.

2.2.1 Explication du processus de connexion


Les étapes suivantes décrivent le processus de connexion. Ces informations démontrent
l'importance de la création de noms d'utilisateurs uniques et de la maintenance d'une
stratégie de sécurité des mots de passe. Pour plus d’informations, voir login(1)..
1. Une fois le système installé, le gestionnaire de session affiche un écran de connexion.
L'environnement CDE (Common Desktop Environment) affiche un écran de connexion
CDE s'il est installé.
2. Le programme init crée un processus getty, qui vous invite à fournir un nom
d'utilisateur. Vous entrez votre nom d'utilisateur. Le programme getty passe le
nom d'utilisateur au programme login.
3. Le programme login recherche le nom d'utilisateur dans le fichier /etc/passwd.
• Si le nom d'utilisateur existe, login passe à l'étape 4.
• Si le nom d'utilisateur n'existe pas, login effectue les vérifications suivantes :
— Invite de mot de passe (Password: ).
— Si un mot de passe non valide est entré, le système affiche le message
d'erreur Invalid login.
— Mise à jour du fichier /var/adm/btmp, s'il existe. Le fichier
/var/adm/btmp assure le suivi des tentatives de connexion non valides.
Pour plus d’informations, voir la Section 2.2.2.
— Après trois tentatives de connexion non valides consécutives, le programme
s'arrête.
4. Le processus login vérifie le fichier /etc/passwd.
• Si le champ de mot de passe est défini, login affiche une invite de mot de
passe et passe à l'étape 5.

28 Administration de la sécurité système et utilisateur


• Si le champ de mot de passe n'est pas défini, l'utilisateur n'a pas besoin de
spécifier de mot de passe et login passe à l'étape 6.
5. Le processus login compare le mot de passe au mot de passe chiffré répertorié
dans /etc/passwd.
• Si les mots de passe sont identiques, login passe à l'étape 6.
• Si les mots de passe sont différents, login affiche un message Invalid
login. Le processus login autorise trois tentatives de connexion consécutives.
Après la troisième tentatives de connexion non valide, login se ferme.
6. Le processus login met à jour le fichier /var/adm/wtmp, qui assure le suivi des
connexions valides. Pour plus d’informations, voir la Section 2.2.2.
Après une connexion réussie, les ID utilisateur et de groupe, la liste d'accès de
groupe et le répertoire de travail sont initialisés.
7. Le processus login exécute ensuite la commande répertoriée dans le champ de
commande du fichier /etc/passwd. En général, le champ de commande est le
nom de chemin d'accès d'un shell, tel que /bin/ksh, /bin/csh ou /bin/sh.
Si le champ de commande est vide, la valeur par défaut est /bin/sh.
Il n'est pas obligatoire que le champ de commande soit un shell. Pour un exemple
d'exécution d'une autre commande, voir la Section 2.1.3.
8. Une fois l'initialisation de shell terminée, le système affiche une invite et attend
l'entrée utilisateur.
Vous pouvez faire en sorte que le processus login effectue une authentification utilisateur
plus approfondie à l'aide de modules d'authentification enfichables (PAM, Pluggable
Authentication Modules). Pour plus d'informations, voir pam.conf(4) et la Section 2.3.

2.2.2 Vérification des fichiers de suivi de connexions (btmp et wtmp)


Les fichiers suivants conservent un journal des connexions :
• Le fichier /var/adm/btmp assure le suivi des échecs de connexion.
• Le fichier /var/adm/wtmp assure le suivi des connexions réussies.
Utilisez la commande lastb pour lire le fichier /var/adm/btmp afin de savoir si des
utilisateurs non autorisés ont tenté de se connecter.
Utilisez la commande last pour lire le fichier /var/adm/wtmp.
Les commandes last et lastb affichent les informations utilisateur les plus récentes,
par ordre décroissant.
Les fichiers wtmp et btmp tendent à croître de manière illimitée ; il convient donc de les
examiner régulièrement. Supprimez périodiquement les informations qui ne sont plus
utiles, afin de limiter la taille des fichiers. Les fichiers wtmp et btmp ne sont pas créés
par les programmes qui les maintiennent. Si ces fichiers sont supprimés, le suivi des
connexions est désactivé.
2.2 Authentification des utilisateurs durant la connexion 29
L'une des erreurs les plus fréquentes des utilisateurs consiste à entrer le mot de passe (ou
une partie du mot de passe) à l'invite de connexion. Cet échec de connexion est enregistré
dans le fichier btmps et expose le mot de passe complet ou partiel. Pour cette raison,
la protection de fichier sur btmps doit être définie de sorte que seuls les administrateurs
puissent le lire.
# chmod 400 /var/adm/btmps
Si la stratégie de sécurité exige que les sessions antérieures d'un utilisateur ne puissent
pas être visualisées par un autre utilisateur, vous devrez peut-être également modifier la
protection du fichier /var/adm/wtmp.
Pour plus d'informations, voir last(1), utmp(4) et wtmp(4).
La base de données utmp est une base de données de comptabilité d'utilisateurs gérée
et synchronisée en fonction de /var/adm/utmp par la commande utmpd. Les
programmes d'applications peuvent accéder à la base de données utmps. Voir les
pages de manuel utmpd(1M) et utmps(4).

2.2.2.1 Exemples d'utilisation de la commande last


Cette section contient des exemples d'utilisation de la commande last. La commande
suivante répertorie toutes les sessions racines et toutes les sessions sur le terminal de
console :
# last root console | more
root pts/1 Mon Mar 12 16:22 - 18:04 (01:41)
abcdeux console Mon Mar 12 10:13 - 10:19 (00:06)
root pts/2 Fri Mar 9 13:51 - 15:12 (01:21)
abcdeux console Thu Mar 8 12:21 - 12:22 (00:00)
root pts/ta Wed Mar 7 15:38 - 18:13 (02:34)
La commande suivante répertorie les heures où des réamorçages ont eu lieu :
# last reboot
reboot system boot Sun Mar 28 18:06 still logged in
reboot system boot Sun Mar 28 17:48 - 18:06 (00:17)
reboot system boot Sun Mar 28 17:40 - 17:48 (00:08)
reboot system boot Thu Feb 19 18:25 - 17:40 (37+23:15)
reboot system boot Mon Feb 16 13:56 - 18:25 (3+04:28)

2.2.3 Vérification de l'utilisateur connecté


La commande who examine le fichier /etc/utmp afin d'obtenir les informations de
connexion de l'utilisateur actuel. En outre, la commande who peut répertorier les
connexions, les déconnexions, les réamorçages, les modifications de l'horloge système
et les processus créés par le processus init.
Utilisez la commande who -u pour contrôler qui est actuellement connecté. Par exemple :
# who -u
aperson console Aug 5 11:28 old 5796 system.home.company.com
aperson pts/0 Aug 17 18:11 0:03 24944 system
aperson pts/1 Aug 5 11:28 1:14 5840 system
30 Administration de la sécurité système et utilisateur
Pour plus d’informations, voir who(1).

2.3 Authentification des utilisateurs avec PAM


Les modules PAM (Pluggable Authentication Modules) constituent un cadre de norme
industrielle qui procure des services d'authentification, de gestion de comptes, de gestion
de sessions et de gestion de mots de passe. Cette section fournit un aperçu des modules
PAM et décrit les fichiers de configuration PAM : /etc/pam.conf et /etc/
pam_user.conf.
Pour plus d'informations, voir pam(3), pam_*(5), pam.conf(4), pam_user.conf(4) et
security(4).

2.3.1 Présentation
Les modules PAM permettent de choisir n'importe quel service d'authentification disponible
sur le système. Le cadre PAM vous permet également de connecter de nouveaux modules
de service d'authentification et de les rendre disponibles sans modifier vos applications.
Chaque fois qu'un utilisateur se connecte localement ou à distance (par exemple avec
login ou rlogin), il doit être vérifié ou authentifié en tant qu'utilisateur valide du
système. À mesure que les méthodes d'authentification évoluent et s'améliorent, les
services de connexion doivent également évoluer. Afin d'éviter d'avoir à modifier
constamment les services de connexion simplement pour réviser le code d'authentification,
les modules PAM ont été développés de sorte que différentes méthodes d'authentification
puissent être utilisées sans modifier le code de connexion.
En conséquence, l’authentification de connexion, la vérification de compte et la
modification des mots de passe utilisent l'interface PAM.
Les programmes qui demandent une authentification de l’utilisateur transmettent leurs
demandes au module PAM, qui détermine la méthode de vérification appropriée et
renvoie la réponse adéquate. Les programmes n’ont aucune nécessité de connaître la
méthode d’authentification utilisée. Pour une présentation, voir la Figure 2-1.

2.3 Authentification des utilisateurs avec PAM 31


Figure 2-1 Modules d'authentification HP-UX sous PAM
Services d'authentification

login su passwd telnet

Demande de
validation

Utilisez le fichier de configuration


PAM, /etc/pam.conf, pour indiquer
Bibliothèque PAM
le module d'authentification
à utiliser.

UNIX DCE Kerberos LDAP NTLM

libpam_unix.1 libpam_krb5.1 libpam_ntlm.1

libpam_dce.1 libpam_ldap.1

Les méthodes d'authentification sont spécifiées à l'échelle du système et à l'échelle de


l'utilisateur à l'aide des fichiers système PAM suivants :
/etc/pam.conf Fichier de contrôle à l'échelle du système. Définit les
modules de service qui doivent être associés aux services.
Il s'agit des valeurs système par défaut.
/etc/pam_user.conf Fichier de contrôle d’un utilisateur individuel. Définit les
options qui doivent être utilisées par les modules de service
sur des utilisateurs spécifiques. Il s'agit d'un fichier
optionnel.
Pour plus d'informations, voir pam(3), pam.conf(4), pam_updbe(5), pam_user.conf(4).

2.3.2 Bibliothèques PAM


Les modules de service PAM sont implémentés par des bibliothèques partagées. Les
modules PAM permettent à plusieurs technologies d'authentification de coexister dans
HP-UX. Le fichier de configuration /etc/pam.conf détermine le module d'authentification
à utiliser. Les bibliothèques PAM sont les suivantes :

32 Administration de la sécurité système et utilisateur


• PAM_DCE
Les modules PAM_DCE autorisent l'intégration de DCE dans les services d'entrée
système (tels que login, telnet, rlogin, ftp). Ils procurent la fonctionnalité
nécessaire aux modules d'authentification, de gestion de comptes et de gestion de
mots de passe. Ces modules sont pris en charge par le biais de la bibliothèque
PAM_DCE, /usr/lib/security/pam_dce.sl. Pour plus d’informations, voir
pam_dce(5).
• PAM_HPSEC
Les modules PAM_HPSEC gèrent les extensions spécifiques à HP-UX pour
l'authentification, la gestion des comptes, la gestion des mots de passe et la gestion
des sessions. L'utilisation de /usr/lib/security/$ISA/libpam_hpsec.so.1
est obligatoire pour les services tels que login, dtlogin, ftp, su, remsh, rexec
et ssh. Ces services doivent placer libpam_hpsec.so.1 sur le dessus de la pile
au-dessus d'un ou plusieurs modules non-optionnels. Le module pam_hpsec applique
également plusieurs attributs définis dans /etc/default/security. Pour plus
d’informations, voir les pages de manuel pam_hpsec(5) et security(4).
• PAM_KRB5
Kerberos est le protocole d'authentification réseau qui permet de sécuriser les
communications sur des réseaux sans transmettre les mots de passe en texte clair.
Les mots de passe sont authentifiés par le Centre de distribution de clés (KDC, Key
Distribution Center), qui publie ensuite un ticket d'accord de ticket (TGT, Ticket
Granting Ticket). La bibliothèque partagée Kerberos PAM est /usr/lib/
security/libpam_krb5.1. Pour plus d’informations, voir pam_krb5(5).

• PAM_LDAP
Le protocole LDAP (Lightweight Directory Access Protocol) est une norme qui permet
de centraliser des informations de gestion d'utilisateurs, de groupes et de réseaux
par le biais de services d'annuaire. L'authentification a lieu sur le serveur d'annuaire
LDAP. Pour plus d'informations, consultez la documentation LDAP-UX à l'adresse
http://docs.hp.com/hpux/11iv2/index.html.
• PAM_NTLM
Le module PAM NT LAN Manager permet aux utilisateurs HP-UX d'être authentifiés
sur des serveurs Windows durant la connexion au système. PAM NTLM utilise des
serveurs NT pour authentifier les utilisateurs qui se connectent à un système HP-UX.
Pour plus d'informations, consultez le document HP CIFS Client Administrator's Guide
à l'adresse http://docs.hp.com/hpux/11iv2/index.html.

2.3 Authentification des utilisateurs avec PAM 33


• PAM_UNIX
Les modules PAM_UNIX fournissent la fonctionnalité pour les quatre modules PAM :
authentification, gestion de comptes, gestion de sessions et gestion de mots de
passe. Les modules sont pris en charge par le biais de la bibliothèque PAM UNIX,
/usr/lib/security/libpam_unix.1. Pour plus d’informations, voir
pam_unix(5).
• PAM_UPDBE
Le module de service de définition de stratégie utilisateur pour PAM, /usr/lib/
security/libpam_updbe.1, lit les options définies dans le fichier de
configuration utilisateur, /etc/pam_user.conf, et stocke les informations dans
le descripteur PAM pour une utilisation ultérieure par les modules de services. Pour
plus d’informations, voir pam_updbe(5).

2.3.3 Configuration à l'échelle du système avec /etc/pam.conf


Le fichier de configuration PAM, /etc/pam.conf, définit les mécanismes de sécurité
qui servent à authentifier les utilisateurs. Ses valeurs par défaut autorisent un
fonctionnement normal sur des systèmes HP-UX standard et protégés. Elles permettent
également la prise en charge des fonctions de contrôle des utilisateurs individuels et des
fonctions de connexion DCE intégrée.

REMARQUE : Pour DCE, utilisez l'utilitaire auth.adm pour créer le fichier de


configuration souhaité. Ce fichier est fonctionnellement équivalent à l'ancien fichier de
connexion intégrée HP auth.conf. Pour plus d’informations, voir auth.adm(1m).
Pour que les utilisateurs puissent se connecter ou modifier leurs mots de passe, les
bibliothèques PAM libpam et libpam_unix et le fichier de configuration /etc/
pam.conf doivent être présents sur le système.
L’authentification HP-UX dépend du fichier /etc/pam.conf. Le propriétaire de ce fichier
doit être root et disposer des autorisations d’accès au fichier suivantes :
-r--r--r-- 1 root sys 1050 Nov 8 10:16 /etc/pam.conf
Si ce fichier est endommagé ou absent du système, root peut ouvrir une session sur la
console en mode mono-utilisateur pour régler le problème.
Les noms des services protégés sont répertoriés dans le fichier de contrôle système, /etc/
pam.conf, en quatre catégories de test (type_de_module) : authentification, compte,
session et mot de passe.
Pour plus d'informations, voir les pages de manuel pam(3), pam.conf(4) et
pam_user.conf(4).

34 Administration de la sécurité système et utilisateur


2.3.4 Exemple de fichier /etc/pam.conf
Voici un exemple d'extrait de fichier /etc/pam.conf. Les lignes commençant par le
signe dièse (#) sont des lignes de commentaires. Les sections dans /etc/pam.conf
sont gestion d'authentification, gestion de comptes, gestion de sessions et gestion de
mots de passe.
#
# PAM configuration
#
# Notes:
#
# If the path to a library is not absolute, it is assumed to be
# relative to the directory /usr/lib/security/$ISA/
#
# For PA applications, /usr/lib/security/$ISA/libpam_unix.so.1 is a
# symbolic link that points to the corresponding PA (32 or 64-bit) PAM
# backend library.
#
# The $ISA (i.e. Instruction Set Architecture) token will be replaced
# by the PAM engine with an appropriate directory string.
# See pam.conf(4).
#
# Also note that the use of pam_hpsec(5) is mandatory for some of
# the services. See pam_hpsec(5).
#
# Authentication management
#
login auth required libpam_hpsec.so.1
login auth required libpam_hpsec.so.1
su auth required libpam.hpsec.so.1 bypass_setaud
su auth required libpam_unix.so.1
dtlogin auth required libpam_hpsec.so.1
dtlogin auth required libpam_unix.so.1
dtaction auth required libpam_hpsec.so.1
dtaction auth required libpam_unix.so.1
ftp auth required libpam_hpsec.so.1
ftp auth required libpam_unix.so.1
rcomds auth required libpam_hpsec.so.1
rcomds auth required libpam_unix.so.1
sshd auth required libpam_hpsec.so.1
sshd auth required libpam_unix.so.1
OTHER auth required libpam_unix.so.1
#
# Account management
#
login account required libpam_hpsec.so.1
login account required libpam_unix.so.1
su account required libpam_hpsec.so.1
su account required libpam_unix.so.1

2.3 Authentification des utilisateurs avec PAM 35


2.3.5 Le fichier de configuration utilisateur /etc/pam_user.conf
Le fichier de configuration PAM, /etc/pam_user.conf, configure PAM utilisateur par
utilisateur. Ce fichier est facultatif. Il n’est nécessaire que si les applications PAM doivent
se comporter différemment suivant les utilisateurs.
Vous pouvez affecter différentes options à chaque utilisateur en les répertoriant dans
/etc/pam_user.conf. Pour chaque nom_de_connexion dans ce fichier, les
options qui y sont répertoriées remplacent les options spécifiées pour
type_de_module et chemin_de_module dans /etc/pam.conf.
Les entrées de /etc/pam_user.conf utilisent la syntaxe suivante :
nom_de_connexion type_de_module chemin_de_module options
où :
nom_de_connexion Nom de connexion de l'utilisateur.
type_de_module Le type_de_module spécifié dans /etc/pam.conf.
chemin_de_module Le chemin_de_module associé au type_de_module dans
/etc/pam.conf.
options Zéro, une ou plusieurs options reconnues par le module.
Par défaut, le fichier /etc/pam_user.conf contient des commentaires :
#
# This file defines PAM configuration for a user. The configuration
# here overrides pam.conf.
#
# The format for each entry is:
# user_name module_type module_path options
#
# For example:
#
# user_a auth /usr/lib/security/libpam_unix.1 debug
# user_a auth /usr/lib/security/libpam_dce.1 try_first_pass
# user_a password /usr/lib/security/libpam_unix.1 debug
#
# user_b auth /usr/lib/security/libpam_unix.1 debug use_psd
# user_b password /usr/lib/security/libpam_unix.1 debug use_psd
#
# See the pam_user.conf(4) manual page for more information
#

2.3.6 Exemples : Fonctionnement de PAM pour la connexion


Les exemples suivants décrivent le processus auth pour login, selon la manière dont
le fichier /etc/pam.conf est configuré :
• Si /etc/pam.conf contient une seule entrée login auth standard, comme
ci-dessous, alors login se poursuit normalement :
login auth required /usr/lib/security/libpam_unix.1

36 Administration de la sécurité système et utilisateur


• S'il existe plusieurs entrées login auth à l'échelle du système, comme ci-dessous,
elles sont traitées dans l'ordre :
login auth required /usr/lib/security/libpam_unix.1
login auth required /usr/lib/security/libpam_dce.1
Ici, le processus login standard HP-UX est exécuté. Ensuite, le processus
d’authentification DCE est lancé. La connexion est réussie si les deux processus
aboutissent. Les deux processus sont exécutés, même si l’un d’entre eux échoue.
• Si vous souhaitez employer des méthodes d’authentification différentes suivant les
utilisateurs, insérez l’entrée spéciale libpam_udpbe en en-tête des modules
d’authentification dans /etc/pam.conf (les lignes sont numérotées pour faciliter
le repérage) :
#/etc/pam.conf
#1
login auth required /usr/lib/security/libpam_udpbe.1
#2
login auth required /usr/lib/security/libpam_unix.1
#3
login auth required /usr/lib/security/libpam_dce.1
Ensuite, placez des entrées pour chacun des utilisateurs concernés dans /etc/
pam_user.conf :
#/etc/pam_user.conf
#4
allan auth /usr/lib/security/libpam_unix.1 debug
#5
allan auth /usr/lib/security/libpam_dce.1 try_first_pass
#6
isabel auth /usr/lib/security/libpam_unix.1 debug use_psd
Lorsque allan ouvre une session, la ligne1 de /etc/pam.conf force PAM à lire
/etc/pam_user.conf. Étant donné que les chemins de module des lignes 4 et
5 de /etc/pam_user.conf correspondent à ceux des lignes 2 et 3 de /etc/
pam.conf, PAM remplace provisoirement les champs options vides des lignes
2 et 3 dans /etc/pam.conf par debug et try_first_pass, respectivement.
Ensuite, les modules désignés par les lignes 2 et 3 sont exécutés avec leurs nouvelles
options.
Lorsque isabel ouvre une session, la ligne 1 dans /etc/pam.conf force PAM
à lire /etc/pam_user.conf et à remplacer provisoirement le champ options
de la ligne 2 dans /etc/pam.conf par debug use_psd. La ligne 3 demeure
inchangée. Ensuite, les modules désignés par les lignes 2 et 3 sont exécutés avec
leurs nouvelles options.
Lorsque george ouvre une session, la ligne 1 de /etc/pam.conf force PAM à
lire /etc/pam_user.conf. Comme il n’existe aucune entrée pour george, les
lignes 2 et 3 de /etc/pam_user.conf demeurent inchangées. Les modules
désignés par les lignes 2 et 3 sont exécutés sans changement.
2.3 Authentification des utilisateurs avec PAM 37
2.4 Gestion des mots de passe
Le mot de passe est le symbole d’identification individuel le plus important. Le système
l’utilise pour s’assurer de l’identité d’un utilisateur et lui permettre l’accès au système. Les
mots de passe pouvant être divulgués lorsqu’ils sont utilisés, stockés ou connus, ils doivent
rester secrets en toutes circonstances. Les sections suivantes traitent des mots de passe
de manière plus approfondie.

2.4.1 Responsabilités de l'administrateur système


L'administrateur système, ainsi que tous les utilisateurs du système, partagent la charge
de protéger les mots de passe. Les administrateurs système effectuent les tâches de
sécurité suivantes :
• S’assurer que tous les utilisateurs disposent de mots de passe.
• Assurer le renouvellement des autorisations d’accès correctes sur tous les systèmes
de fichiers, y compris les fichiers de mots de passe standard et fichiers de groupes,
/etc/passwd et /etc/group .
• Supprimer ou annuler les mots de passe et les ID utilisateur des utilisateurs qui n’ont
plus l’autorisation d’accéder au système.
• Vérifier que tous les mots de passe d'applications sont chiffrés.
• Vérifiez que les autorisations sur /var/adm/btmp et /var/adm/wtmp sont définies
correctement.
• Implémenter des mots de passe à utilisation ponctuelle pour l'accès invité.
• Informer les utilisateurs de leurs responsabilités quant à la sécurité des mots de
passe.
• Utiliser le vieillissement de mot de passe pour forcer les utilisateurs à modifier
régulièrement leurs mots de passe.
• Empêcher toute réutilisation des mots de passe récents.
• Configurer les attributs de sécurité à l'échelle du système dans le fichier /etc/
default/security. Pour plus d'informations, voir la Section 2.5 et security(4).
• Convertir le système de façon à utiliser des mots de passe fantômes. Pour plus
d'informations, voir la Section 2.4.5 et les pages de manuel shadow(4) et
pwconv(1M).

38 Administration de la sécurité système et utilisateur


2.4.2 Responsabilités de l'utilisateur
Les règles suivantes sont valables pour chaque utilisateur :
• Se souvenir de son mot de passe et le tenir secret en toutes circonstances.
• Modifier immédiatement le mot de passe initial et continuer à le modifier.
• Signaler tout changement d’état et toute violation des règles de sécurité.
• Veiller à entrer le mot de passe aussi confidentiellement que possible.

2.4.3 Caractéristiques d’un bon mot de passe


Observez les recommandations suivantes lors du choix d'un mot de passe et faites part
de ces recommandations aux utilisateurs :
• Choisissez un mot de passe avec au moins six caractères et pas plus de 80
caractères. Les caractères spéciaux peuvent inclure des caractères de contrôle et
des symboles tels que des astérisques et des barres obliques. En mode standard,
seuls les huit premiers caractères sont pris en compte.
• Ne choisissez jamais un mot que l’on peut trouver dans un dictionnaire, même en
l’écrivant à l’envers. Il existe des programmes capables de retrouver ce type de mot
de passe.
• Ne choisissez jamais un mot de passe auquel on puisse aisément vous associer :
nom d’une personne de votre entourage, d’un animal familier ou de votre passe-temps
favori.
• N’utilisez pas de séquences de clavier simple comme qsdfghjkl ni des variantes
de votre nom de connexion (par exemple, avec le nom de connexion anne, évitez
les mots de passe du type anneanne).
• Les mots mal orthographiés et les mots valise obtenus en recombinant les syllabes
de deux mots indépendants sont acceptables. Une autre méthode courante consiste
à choisir les initiales des mots d’un titre ou d’une phrase.
• Envisagez d’utiliser un générateur de mots de passe qui combine des syllabes pour
créer des mots sans signification mais que vous pourrez prononcer.
• Ne partagez pas de mots de passe avec d'autres utilisateurs. La direction de
l’entreprise doit interdire formellement l’échange de mots de passe.
• Veillez à toujours avoir un mot de passe. Votre champ de mot de passe dans le
fichier /etc/passwd ne doit jamais être vierge.

2.4 Gestion des mots de passe 39


2.4.4 Modification du fichier de mots de passe /etc/passwd
Un système standard possède un fichier de mots de passe : /etc/passwd.
Une fois entrés, tous les mots de passe sont immédiatement chiffrés et stockés dans le
fichier de mots de passe, /etc/passwd. Seul le mot de passe chiffré est utilisé pour les
comparaisons.
Appliquez les recommandations suivantes si vous devez modifier le fichier de mots de
passe :
• N'autorisez pas les champs de mots de passe vides ou nuls ; il s'agit d'une violation
de la sécurité. Un champ de mot de passe vide permet à tout utilisateur de définir
le mot de passe pour ce compte.
• N’éditez jamais le fichier de mots de passe directement. Utilisez HP SMH ou la
commande useradd, userdel ou usermod pour modifier des entrées de fichier
de mots de passe. Si vous devez éditez le fichier de mots de passe directement,
utilisez la commande vipw et vérifiez avec la commande pwck. Pour plus
d'informations, voir les pages de manuel vipw(1M) et pwck(1M).

2.4.4.1 Exemples d’utilisation de la commande passwd


Voici quelques exemples utiles de commandes passwd :
• Réinitialiser le mot de passe d'un utilisateur :
# passwd user1

• Forcer une modification de mot de passe lors de la prochaine connexion :


# passwd -f user1

• Verrouiller ou désactiver un compte :


# passwd -l user2

• Activer le vieillissement de mot de passe :


# passwd -n 7 -x 28 user1

• Afficher l'état du vieillissement de mot de passe pour un utilisateur spécifique :


# passwd -s user

• Afficher l'état du vieillissement de mot de passe pour tous les utilisateurs :


# passwd -sa

40 Administration de la sécurité système et utilisateur


2.4.4.2 Format du fichier /etc/passwd
Le fichier /etc/passwd permet d’identifier les utilisateurs au moment de l’ouverture de
session. Le fichier contient une description de chaque compte du système HP-UX. Chaque
entrée se compose de sept champs séparés par un signe deux-points. Une entrée
caractéristique du fichier /etc/passwd ressemble généralement à ceci :
robin:Z.yxGaSvxAXGg:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh
Les champs regroupent les informations suivantes (répertoriées dans l’ordre) séparées
par des signes deux-points :
1. robin—Nom de (connexion de) l’utilisateur, composé de huit caractères maximum.
2. Z.yxGaSvxAXGg—Champ de mot de passe chiffré.
3. 102—ID utilisateur, un entier compris entre 0 et MAXINT-1, c’est-à-dire
2 147 483 646 ou encore 231 -2).
4. 99—ID de groupe, tiré de /etc/group, un entier compris entre 0 et MAXINT-1.
5. Robin Hood,Rm 3,x9876,408-555-1234—Champ de commentaire qui permet
d’identifier les renseignements tels que le nom complet de l’utilisateur, son adresse
et ses numéros de téléphone. Pour des raisons historiques, ce champ est appelé
également gecos.
6. /home/robin—Répertoire personnel, c’est-à-dire le répertoire initial de connexion
de l’utilisateur.
7. /usr/bin/sh—Nom du chemin du programme de connexion exécuté lorsque
l’utilisateur se connecte.
L’utilisateur peut modifier son mot de passe en appelant passwd, le champ de
commentaire (cinquième champ) avec chfn, et le nom du chemin du programme de
connexion (septième champ) avec chsh. Seul l’administrateur système peut définir les
autres champs. L'ID utilisateur doit être unique. Pour plus d'informations, voir chfn(1),
chsh(1), passwd(1) et passwd(4).

2.4.5 Fichier de mot de passe fantôme /etc/shadow


La puissance de calcul accrue utilisable pour le piratage des mots de passe a rendu les
mots de passe non masqués du fichier /etc/passwd vulnérables au déchiffrage.
Un mot de passe fantôme améliore la sécurité système en masquant des mots de passe
chiffrés dans un fichier de mot de passe fantôme. Vous pouvez déplacer des mots de
passe chiffrés préalablement stockés dans le fichier public /etc/passwd dans le fichier
/etc/shadow, accessible uniquement par un utilisateur ayant les privilèges appropriés.
Utilisez les commandes suivantes pour activer, vérifier et désactiver les mots de passe
fantômes :
• La commande pwconv crée un fichier de mot de passe fantôme et copie les mots
de passe chiffrés du fichier /etc/passwd vers le fichier /etc/shadow.
• La commande pwck vérifie s'il existe des incohérences entre les fichiers /etc/
passwd et /etc/shadow.
2.4 Gestion des mots de passe 41
• La commande pwunconv copie les mots de passe chiffrés et les informations de
vieillissement du fichier /etc/shadow vers le fichier /etc/passwd, puis il supprime
le fichier /etc/shadow.
Pour plus d'informations, voir pwconv(1M), pwck(1M), pwunconv(1M) et shadow(4).
Notez les points suivants relatifs à la fonctionnalité de mot de passe fantôme.
• Lorsque la fonctionnalité de mot de passe fantôme est activée, des applications
peuvent être affectées si elles accèdent directement au champ de mot de passe du
fichier /etc/passwd afin d'obtenir des informations de mot de passe et de
vieillissement. Ce champ ne contient pas l’option x, indiquant que les informations
se trouvent dans /etc/shadow.
Les applications qui utilisent les interfaces PAM pour l'authentification ne sont pas
affectées.
Pour accéder au fichier /etc/shadow par programme, utilisez les appels
getspent(). Ces appels sont similaires aux appels getpwent() pour /etc/
passwd. Pour plus d'informations, voir getspent(3C) et getpwent(3C).

• Dans le fichier /etc/nsswitch.conf, les mots de passe fantôme sont pris en


charge avec les services de noms files, NIS et LDAP, mais ils peuvent ne pas
être pris en charge avec d'autres services de commutation de serveur de noms. Pour
configurer le système de façon à utiliser uniquement files, NIS et/ou LDAP,
assurez-vous que la ligne passwd dans /etc/nsswitch.conf contient uniquement
files, NIS et/ou LDAP. Si /etc/nsswitch.conf n'existe pas ou si la ligne
passwd est absente, la valeur par défaut est files uniquement. Pour plus
d'informations, voir nsswitch.conf(4).
• Le mot de passe fantôme est basé sur la norme de facto fournie avec d'autres
systèmes UNIX.
Les attributs suivants, définis dans /etc/default/security, s'appliquent aux mots
de passe fantômes. Pour plus d'informations, voir la Section 2.5 et security(4).
• INACTIVITY_MAXDAYS—Nombre de jours avant expiration d'un compte pour
cause d'inactivité.
• PASSWORD_MINDAYS—Nombre minimum de jours avant qu'un mot de passe puisse
être modifié.
• PASSWORD_MAXDAYS—Nombre maximal de jours pendant lesquels les mots de
passe sont valides.
• PASSWORD_WARNDAYS—Nombre de jours avant affichage d'un message
d'avertissement d'expiration aux utilisateurs.

42 Administration de la sécurité système et utilisateur


Les mots de passe fantômes sont pris en charge avec les produits suivants :
• Lightweight Directory Access Protocol (LDAP)
• Ignite-UX Directory Access Control (LDAP)
• Serviceguard
Les mots de passe fantômes ne sont pas pris en charge par les applications qui s'attendent
à ce que les mots de passe résident dans /etc/passwd.
Pour plus d'informations, voir les pages de manuel suivantes :
passwd(1), pwck(1M), pwconv(1M), pwunconv(1M), getspent(3C), putspent(3C),
nsswitch.conf(4), passwd(4), security(4), shadow(4)

2.4.6 Élimination des comptes fictifs et protection des sous-systèmes clés dans
/etc/passwd
Traditionnellement, le fichier /etc/passwd contient de nombreux « comptes fictifs »,
c’est-à-dire des entrées qui ne sont pas associées à des utilisateurs individuels et qui ne
possèdent pas de véritable shell de connexion interactif.
Certaines de ces entrées, comme date, who, sync et tty, ont évolué essentiellement
par commodité pour l’utilisateur, en offrant des commandes susceptibles d’être exécutées
sans connexion. Pour renforcer votre sécurité, ils sont éliminés du fichier /etc/passwd
distribué pour que ces programmes ne puissent être exécutés que par des utilisateurs
déjà connectés.
Le fichier /etc/passwd contient cependant d’autres entrées de ce type, car les processus
correspondants sont des propriétaires de fichiers. Les programmes ayant des propriétaires
tels que adm, bin, daemon, hpdb, lp et uucp englobent des sous-systèmes entiers et
représentent un cas particulier. Comme ils accordent des accès aux fichiers qu’ils protègent
ou qu’ils utilisent, ces programmes doivent continuer à fonctionner en tant que comptes
fictifs avec des entrées dans /etc/passwd. Les comptes spéciaux et fictifs habituels
sont représentés dans l'Exemple 2-1.

2.4 Gestion des mots de passe 43


Exemple 2-1 Comptes système fictifs et spéciaux
root::0:3::/:/sbin/sh
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sys:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico
lp:*:9:7::/var/spool/lp:/sbin/sh
nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico
hpdb:*:27:1:ALLBASE:/:/sbin/sh
nobody:*:-2:-2::/:

La clé de l’état privilégié de ces sous-systèmes est leur capacité à autoriser l’accès aux
programmes qui dépendent d’eux, sans autoriser d’accès à la racine (uid 0). Par contre,
le bit setuid du fichier exécutable est défini et l’utilisateur effectif du processus
correspond au propriétaire du fichier exécutable. Par exemple, la commande cancel
fait partie du sous-système lp et s’exécute en tant qu’utilisateur effectif lp.
Lorsque la valeur setuid est définie, le système de sécurité de ce sous-système met en
place la protection de tous les programmes du sous-système, et non du système entier.
Par conséquent, la vulnérabilité du sous-système à une agression se limite également aux
fichiers de ce sous-système. Les points de vulnérabilité ne sont pas en mesure d’affecter
les programmes de différents sous-systèmes. Par exemple, des programmes sous lp
n’affectent pas ceux de daemon.

2.4.7 Connexion sécurisée avec le Secure Shell HP-UX


Le Secure Shell HP-UX procure une fonctionnalité de connexion distante et de transfert
de fichiers sécurisés, ainsi qu'une exécution de commande à distance. Toutes les
communications client-serveur sont chiffrées. Les mots de passe qui transitent sur le réseau
ne sont jamais transmis en clair. Pour plus d'informations, voir ssh(1) et la Section 5.6.

2.4.8 Sécurisation des mots de passe stockés dans NIS


Le service d'informations réseau (NIS, Network Information Service) fait partie du système
NFS (Network File System). NIS permet d'administrer la configuration de plusieurs hôtes
à partir d'un emplacement centralisé, un serveur maître. Au lieu d'avoir des configurations
d'hôtes stockées séparément sur chaque hôte, les informations sont consolidées dans un
emplacement centralisé. Le fichier /etc/password est l'un des fichiers de configuration
stockés sur le serveur NIS.
Le fichier de mot de passe fantôme /etc/shadow n'est pas pris en charge sur NIS.
Pour plus d'informations sur le service NIS, voir le document NFS Services Administrator's
Guide.

44 Administration de la sécurité système et utilisateur


2.4.9 Sécurisation des mots de passe stockés sur le serveur d'annuaire LDAP
Les services clients LDAP-UX interopèrent avec PAM pour authentifier les mots de passe
stockés sur un serveur d'annuaire LDAP. La bibliothèque PAM_LDAP fournit le service
d'authentification.

2.5 Définition des attributs de sécurité système


Les attributs de sécurité apportent un contrôle supplémentaire des configurations système,
grâce à l'ajout d'améliorations de sécurité des mots de passe, des connexions et de
l'audit.
Il existe plus de 20 attributs. Ces attributs sont décrits dans security(4). Les catégories
d'attributs sont les suivantes :
Attributs de connexion Ces attributs contrôlent les activités de connexion,
telles que les durées de connexion, le nombre de
connexions autorisées et le nombre d'échecs de
connexion autorisés avant qu'un compte ne soit
verrouillé.
Attributs de mot de passe Ces attributs contrôlent les activités de mots de
passe, telles que la longueur des mots de passe,
le nombre de caractères et leurs types, la
profondeur d'historique, le nombre de jours après
lequel un mot de passe doit être modifié, et
l'expiration des mots de passe.
Attributs d'amorçage Ces attributs contrôlent l'authentification
d'amorçage ; ils définissent quels utilisateurs sont
autorisés à amorcer le système en mode
mono-utilisateur. Voir les informations
d'authentification d'amorçage au Chapitre 1.
Attributs switch user (su) Ces attributs définissent la valeur d'environnement
PATH, le nom de groupe racine pour la
commande su, et si la commande su doit
propager certaines variables d'environnement.
Pour plus d’informations, voir su(1).
Attribut d'audit Cet attribut détermine si un audit des utilisateurs
doit être effectué. L'attribut d'audit est vérifié
durant le processus de connexion. Pour plus
d'informations sur l'audit HP-UX, voir audit(5).
Attribut umask Cet attribut contrôle umask() pour toutes les
sessions initiées par pam_unix ou pam_hpsec.
Pour plus d’informations, voir les pages de manuel
pam_unix(5) et pam_hpsec(5). L'attribut umask
est vérifié durant le processus de connexion.

2.5 Définition des attributs de sécurité système 45


Le système utilise les fichiers suivants pour traiter les attributs :
• /etc/default/security
• /var/adm/userdb
• /etc/security.dsc
• /etc/passwd
• /etc/shadow
Chaque attribut possède une valeur par utilisateur dans un seul des emplacements
suivants : /etc/password, /etc/shadow ou la base de données utilisateur dans
/var/adm/userdb. Chaque attribut et son emplacement par utilisateur sont expliqués
dans la page de manuel security(4).
Le système détermine les attributs à appliquer des manières suivantes :
• Le système examine les valeurs d'attributs par utilisateur dans la base de données
utilisateur /var/adm/userdb, le fichier /etc/passwd ou le fichier /etc/shadow.
• S'il n'y a aucune valeur par utilisateur, le système examine les attributs par défaut
configurables à l'échelle du système dans /etc/default/security.
• S'il n'y a aucun attribut par défaut configurable à l'échelle du système, le système
utilise les attributs par défaut dans /etc/security.dsc.
Le fichier de description d'attributs de sécurité, /etc/security.dsc, répertorie les
attributs que vous pouvez définir dans /etc/default/security et dans la base de
données utilisateur dans /var/adm/userdb. Certains attributs sont configurables,
d'autres sont internes. Vous ne devez modifier le fichier /etc/security.dsc en
aucune manière.

2.5.1 Configuration des attributs à l'échelle du système


Les étapes suivantes expliquent comment définir des attributs de sécurité à l'échelle du
système.
1. Consultez la page de manuel security(4), qui décrit les valeurs par défaut
configurables à l'échelle du système pour les attributs. Ces attributs sont configurés
dans le fichier /etc/default/security, qui est également décrit dans la page
de manuel security(4).
Si un attribut n'est pas défini dans le fichier /etc/default/security, la valeur
par défaut définie dans le fichier /etc/security.dsc est utilisée par le système.
Pour une explication du fichier /etc/security.dsc, voir la page de manuel
userdb(4).
2. Pour modifier une valeur par défaut configurable à l'échelle du système, modifiez
le fichier de paramètres système par défaut, /etc/default/security, à l'aide
d'un éditeur de texte tel que vi. Ce fichier est lisible par tout le monde et accessible
en écriture par l'utilisateur root.

46 Administration de la sécurité système et utilisateur


Chaque ligne du fichier /etc/default/security est soit un commentaire, soit
des informations de configuration d'attribut. Les lignes de commentaire commencent
par un signe dièse (#). Les autres lignes prennent la forme de paires
attribut=valeur, par exemple PASSWORD_MAXDAYS=30.

2.5.2 Configuration des attributs par utilisateur


Utilisez les commandes suivantes pour configurer des attributs spécifiques pour des
utilisateurs spécifiques. Lorsque vous configurez des attributs par utilisateur, ils remplacent
les valeurs système par défaut.
userdbset Modifie l'attribut pour l'utilisateur spécifié de façon à remplacer la valeur
par défaut à l'échelle du système définie dans le fichier /etc/default/
security. Pour un exemple, voir la Section 2.5.2.1. Pour plus
d'informations, voir userdbset(1M).
userdbget Affiche les valeurs définies par l'utilisateur pour un utilisateur spécifique
ou pour tous les utilisateurs. Pour plus d'informations, voir userdbget(1M).
userdbck Vérifie ou corrige les valeurs définies par l'utilisateur. Pour plus
d'informations, voir userdbck(1M).
Par exemple, vous pouvez modifier PASSWORD_MAXDAYS de 60 à 30 jours uniquement
pour l'utilisateur amy. Le mot de passe de amy est valide pour 30 jours au lieu de 60.
Pour tous les autres utilisateurs, la valeur système de 60 jours est applicable.
Appliquez la procédure suivante pour modifier la valeur d'un attribut pour un utilisateur :
1. Consultez la page de manuel security(4), qui contient une explication des valeurs
et attributs à l'échelle du système, et qui décrit comment définir une valeur par
utilisateur. Il n'existe pas une valeur par utilisateur pour tous les attributs.
2. Consultez les pages de manuel des commandes userdbset, userdbget et
userdbck.
3. Déterminez quels utilisateurs sont concernés par la modification, et quels attributs
seront appliqués. Par exemple, vous pourriez faire en sorte que les utilisateurs du
service Comptabilité modifient leur mot de passe tous les 30 jours, et que les étudiants
d'une classe modifient le leur tous les trimestres.
4. Utilisez la commande userdbset pour modifier un attribut pour un utilisateur.
Les informations par utilisateur sont stockées dans la base de données utilisateur
dans le répertoire /var/adm/userdb. La base de données utilisateur est décrite
dans la page de manuel userdb(4).
Vous ne pouvez pas utiliser la commande userdbset pour configurer tous les
attributs. Certaines valeurs par utilisateur sont définies dans les fichiers /etc/passwd
et /etc/shadow. Pour plus d'informations, voir security(4).
5. Utilisez la commande userdbget pour obtenir des informations sur les utilisateurs.

2.5 Définition des attributs de sécurité système 47


2.5.2.1 Exemples de définition d'attributs spécifiques aux utilisateurs à l'aide de userdbset
Dans l'exemple suviant, la commande userdbset supprime tous les attributs définis
par l'utilisateur pour l'utilisateur joe. Lorsque joe se connecte, les valeurs système par
défaut dans /etc/default/security s'appliquent à joe.
# /usr/sbin/userdbset -d -u joe
Ensuite, userdbset définit la longueur minimale des mots de passe à 7 et définit UMASK
à 0022 (octal 022). Ces modifications s'appliquent à joe.
# /usr/sbin/userdbset -u joe MIN_PASSWORD_LENGTH=7 UMASK=0022
Dans l'exemple suivant, userdbset affiche tous les attributs pour l'utilisateur amy :
# /usr/sbin/userdbget -u amy
amy AUDIT_FLAG=1
amy DISPLAY_LAST_LOGIN=0
Dans l'affichage, l'indicateur d'audit est activé et la fonctionnalité de dernière connexion
est désactivée pour amy.

2.5.2.2 INACTIVITY_MAXDAYS et le fichier de mot de passe fantôme


L'attribut INACTIVITY_MAXDAYS défini dans le fichier /etc/default/security
contrôle s'il faut expirer les comptes inactifs à l'échelle du système. Pour outrepasser la
valeur système et configurer INACTIVITY_MAXDAYS sur une base par utilisateur, utilisez
la commande useradd -f ou usermod -f. Utilisez la commande userdel pour
supprimer la configuration par utilisateur. Pour plus d'informations, voir les pages de
manuel useradd(1M), usermod(1M) et userdel(1M).
Vous ne pouvez pas utiliser la commande userdbset pour configurer l'attribut
INACTIVITY_MAXDAYS sur une base par utilisateur. L'attribut INACTIVITY_MAXDAYS
est lié au champ d'inactivité du fichier de mot de passe fantôme. Les commandes
useradd et usermod modifient le champ d'inactivité du fichier de mot de passe fantôme
pour l'utilisateur spécifié. Pour plus d'informations, voir la description de
INACTIVITY_MAXDAYS dans la page de manuel security(4).

2.5.3 Dépannage de la base de données utilisateur


Appliquez les procédures suivantes pour dépanner la base de données utilisateur.
Problème 1 : les attributs de sécurité d'un utilisateur semblent mal configurés. Si vous
soupçonnez que des informations utilisateur sont configurés de manière incorrecte dans
la base de données utilisateur, exécutez la commande suivante :
# userdbget -u nom_utilisateur
Les attributs configurés pour l'utilisateur nom_utilisateur sont affichés. Si un attribut
est configuré de manière incorrecte, reconfigurez-le.

48 Administration de la sécurité système et utilisateur


Problème 2 : la base de données utilisateur ne fonctionne pas correctement. Si vous
devez vérifier la base de données utilisateur, entrez la commande suivante :
# userdbck
La commande userdbck identifie et corrige les problèmes dans la base de données
utilisateur.

2.6 Gestion des programmes setuid et setgid


Étant donné qu'ils présentent un risque potentiel pour la sécurité, vous devez noter quels
sont les programmes setuid (set user ID) et setgid (set group ID). Un pirate peut
exploiter les vulnérabilités des programmes setuid et setgid de deux façons :
• En faisant exécuter par setuid ou setgid des commandes définies par le pirate,
soit de manière interactive, soit par script.
• En substituant des données pirates à celles générées par un programme.
Appliquez les recommandations suivantes pour sécuriser les programmes setuid et
setgid :
• Essayez de détecter toute modification des programmes setuid et setgid.
• Examinez soigneusement tout programme qui semble être inutilement un programme
setuid.
• Modifiez en setgid l'autorisation d'un programme qui est inutilement un programme
setuid. Pour plus d'informations, voir chmod(1) et chmod(2).
La forme longue de la commande ls (ll ou ls -l) affiche les programmes setuid
en remplaçant l’autorisation d’exécution de l’utilisateur, qui est - ou x, par S ou s.
Elle montre les programmes setgid en remplaçant l’autorisation d’exécution de
groupe, qui est - ou x par S ou s.
Vous pourrez trouver des fichiers système setuid et setgid, mais ils doivent
posséder les mêmes autorisations d’accès que celles du support d’usine, à moins
que vous ne les ayez modifiés vous-même.
• N'autorisez pas les utilisateurs à avoir normalement des programmes setuid, en
particulier lorsqu'ils utilisent setuid pour des utilisateurs autres qu'eux-mêmes.
• Examinez le code de tous les programmes importés à partir de sources externes,
afin de détecter s'ils contiennent des programmes destructeurs tels que des chevaux
de Troie. Vous ne devez jamais restaurer ou installer de programme setuid pour
lequel vous n'avez pas de source à examiner.
• Pour permettre aux utilisateurs d’accéder à certains programmes de superutilisateur,
HP recommande vivement d’utiliser SMH en mode restreint. SMH en mode restreint
permet aux non-superutilisateurs d'accéder à certaines zones de SMH. Pour plus de
détails, voir smh(1M).

2.6 Gestion des programmes setuid et setgid 49


2.6.1 Risques éventuels liés à l’utilisation des programmes setuid et setgid
Lorsqu’un programme quelconque est exécuté, il génère un processus qui comporte
quatre ID : les ID utilisateur réels et effectifs (ruid et euid) et les ID de groupe réels et
effectis (rgid et egid). En général, ces paires d'ID sont identiques.
Cependant, lorsque vous exécutez un programme setuid ou setgid, vous modifiez
l’euid ou l’egid du processus associé : l’identification du propriétaire fait place à celle
de l’objet. Les processus générés acquièrent leurs attributs de l’objet et confèrent à
l’utilisateur les mêmes autorisations d’accès que celles du propriétaire du programme et
de son groupe.
• Si le bit setuid est activé, les privilèges du processus sont définis comme ceux du
propriétaire du fichier.
• Si le bit setgid est activé, les privilèges du processus sont définis comme ceux du
groupe du fichier.
• Si ni le bit setuid, ni le bit setgid n’est activé, les privilèges du processus
demeurent inchangés.
• Le cas le plus grave est celui où un programme contient un setuid vers root :
dans ce cas, l’utilisateur obtient tous les privilèges de root. Le danger vient de ce
que le programme peut servir à enfreindre toutes les règles de sécurité du système.
Dans une moindre mesure, le problème existe avec des accès setuid ou setgid
moins privilégiés.
Pour des raisons de sécurité, les bits setuid et setgid sur les scripts sont normalement
ignorés par le noyau HP-UX. Cette règle peut être allégée en modifiant le paramètre
ajustable secure_sid_scripts, mais il est vivement recommandé de ne pas modifier
la valeur par défaut de ce paramètre. Pour plus d'informations sur ce paramètre ajustable,
voir secure_sid_scripts(5).

2.6.2 Mode de définition des ID


Les ID sont définis des manières suivantes :
• Les paramètres ruid et rgid sont hérités du processus login, qui définit votre
uid et votre gid. Les valeurs uid et gid sont stockées dans /etc/passwd.
• La commande login modifie également les valeurs ruid, euid, rgid et egid.
• La commande su modifie les valeurs euid et ruid.
• La commande newgrp peut modifier la valeur de gid.
• Définissez les bits setuid et setgid à l'aide de l'appel système chmod() ou de
la commande chmod. Pour plus d'informations, voir chmod(1) et chmod(2).

50 Administration de la sécurité système et utilisateur


2.6.3 Recommandations concernant la limitation du pouvoir de setuid
Soyez extrêmement prudent lorsque vous ajoutez des programmes setuid-vers-root
à un système existant. L’ajout d’un programme setuid-vers-root modifie en effet la
configuration système et peut compromettre la sécurité.
Les recommandations suivantes relatives à l'administration et à la programmation vous
permettront de limiter l’utilisation des programmes privilégiés :
• N’utilisez setuid et setgid qu'en cas d'absolue nécessité.
• Veillez à ce qu’aucun programme setuid ne soit accessible en écriture à d’autres
utilisateurs.
• Si possible, utilisez setgid plutôt que setuid pour réduire l’étendue des dégâts
que pourrait causer une brèche dans votre système de sécurité.
• Examinez régulièrement les systèmes de fichiers à la recherche de programmes
setuid et setgid nouveaux ou modifiés. Vous pouvez utiliser la commande
ncheck -s.
• N’ignorez jamais ce que font exactement vos programmes setuid et setgid, et
vérifiez qu’ils n’exécutent que les tâches pour lesquelles ils ont été prévus. Si ce n’est
pas le cas, supprimez le programme ou bien ses attributs setuid.
• Si vous devez copier un programme setuid, veillez à ce que les modes soient
corrects sur le fichier de destination.
• Écrivez les programmes setuid de sorte qu’ils puissent être testés sur des données
de peu d’importance, sans attributs setuid ou setgid. N’affectez ces attributs
qu’une fois le code vérifié, et après que les différents départements concernés se
sont assurés de l’innocuité des programmes.
• Veillez à ce que les programmes setuid ne créent pas de fichiers accessibles en
écriture par un autre utilisateur que celui prévu.
• Réinitialisez l'euid avant un appel système exec*(). Souvenez-vous que exec*()
peut être appelé par des programmes de la bibliothèque, et évitez d’utiliser des
procédures (comme popen(), system(), execlp() et execvp()) qui dupliquent
un shell avec fork pour exécuter un programme. Pour plus d'informations, voir les
pages de manuel exec(2), popen(3S) et system(3S).
• Lorsque vous écrivez des programmes setuid, utilisez la fonction setresuid()
autour des éléments de code qui exigent des privilèges, afin de réduire l’étendue
des faiblesses. Pour plus d’informations, voir setresuid(2).
• Fermez tous les descripteurs de fichiers inutiles avant d’appeler exec*().
• Veillez à ce que toutes les variables (PATH, IFS) et la valeur de umask dans
l’environnement de programmation soient suffisamment restrictives.

2.6 Gestion des programmes setuid et setgid 51


• N’utilisez pas l’appel système creat() pour créer un fichier verrouillé. Préférez la
fonction lockf() ou encore fcntl(). Pour plus d’informations, voir les pages de
manuel lockf(2) et fcntl(2).
• Veillez tout particulièrement à éviter les débordements de tampon qui peuvent, par
exemple, découler de l’utilisation de sprintf(), strcpy() et strcat() sans
une validation de la longueur appropriée des paramètres. Pour plus d'informations,
voir les pages de manuel printf(3S) et string(3C).

2.7 Prévention des attaques de débordement de tampon de pile


Le passage d'une grande quantité de données à un programme porte le nom d'attaque
de débordement de tampon de pile. En général, les données contiennent des commandes
que le programme est forcé à exécuter par malice. Ces attaques ont pour but d'obtenir
un accès non autorisé au système, à détruire ou modifier des données, ou à provoquer
un refus de service pour les utilisateurs légitimes.
Pour surveiller les attaques de débordement de tampon de pile, soyez attentifs aux
modifications suivantes :
• Un programme setuid exécute d'autres programmes.
• Un programme obtient de manière inattendue un ID utilisateur de zéro (0). L'ID
utilisateur 0 est destiné uniquement aux superutilisateurs ou aux utilisateurs root.
Pour prévenir les attaques de débordement de tampon de pile :
• Activez le paramètre ajustable de noyau executable_stack.
• Utilisez la commande chatr +es.
Le paramètre ajustable de noyau executable_stack vous permet d'empêcher un
programme d'exécuter du code à partir de sa pile. Ceci permet d’empêcher un intrus
éventuel de transmettre des données illégales à un programme afin que celui-ci exécute
du code arbitraire à partir de la pile.
Le paramètre ajustable de noyau executable_stack active ou désactive de manière
globale la protection contre le débordement de tampon de pile. Une valeur de 0 (zéro)
fait en sorte que les piles soient non-exécutables. Pour des raisons de sécurité, il s'agit
de la valeur préférée. Par défaut, à des fins de compatibilité descendante,
executable_stack a la valeur 1, ce qui permet l’exécution de la pile et n'assure donc
aucune protection. Utilisez HP SMH ou la commande kmtune pour modifier la valeur
de executable_stack.
Une autre manière de gérer la protection contre le débordement de tampon de pile
consiste à utiliser l'option +es de la commande chatr. Par exemple, si
executable_stack a la valeur zéro mais qu'un programme a besoin d'exécuter sa
pile, utilisez la commande chatr suivante pour autoriser l'exécution de la pile pour ce
programme :
# chatr -es enable programme

52 Administration de la sécurité système et utilisateur


Pour plus d'informations, voir chatr(1), kmtune(1M) et executable_stack(5).

2.8 Protection des terminaux et des stations de travail sans personnel


Les stations de travail et les terminaux sans personnel sont extrêmement vulnérables aux
utilisateurs non autorisés. Comme une porte d'entrée laissée ouverte, ils sont accessibles
à tout le monde. Cette section décrit plusieurs façons de réduire les risques :
• Contrôlez l'accès avec /etc/inittab et les niveaux d'exécution. Modifiez /etc/
inittab afin d'identifier quels périphériques doivent s'exécuter aux différents
niveaux d'exécution.
• Protégez les fichiers de périphériques de terminaux en refusant à tout le monde
l'accès aux sessions de terminal utilisateur.
• Configurez le verrouillage d'écran.

2.8.1 Contrôle de l'accès avec /etc/inittab et les niveaux d'exécution


Un niveau d’exécution est un état système autorisant l’exécution d’un ensemble spécifique
de processus. Les processus et les niveaux d’exécution par défaut sont définis dans le
fichier /etc/inittab. Les niveaux d'exécution possibles sont 0 à 6, s et S. Si un
processus n'est pas au même niveau d'exécution que le système, il est arrêté. Si un
processus est au même niveau d'exécution, il est démarré ou il continue de s'exécuter.
Voici un exemple qui autorise l'exécution de terminaux et de modems à des niveaux
d'exécution sélectionnés. ttp1 et ttp2 sont tous deux aux niveaux d'exécution 2 et 3.
ttp1:23:respawn:/usr/sbin/getty -h tty0p1 9600
ttp2:23:respawn:/usr/sbin/uugetty -h ttypd0p2 9600
Voici un exemple de modifications de niveaux d'exécution après les heures de bureau
normales afin d'empêcher les terminaux et les modems d'utiliser un travail cron. Durant
la journée, le niveau d'exécution est 3 et les terminaux ttp1 et ttp2 peuvent être utilisés
car ils sont aux niveaux d'exécution 2 et 3. À 8 heures du lundi au vendredi, le niveau
d'exécution du système est défini à 3 :
# crontab -e
0 8 * * 1-5 /sbin/init 3
0 17 * * * /sbin/init 4
À 17 heures tous les jours (indiqué par le chiffre 17), le niveau d'exécution du système
est défini à 4. Les terminaux ttp1 et ttp2 ne peuvent pas fonctionner après 17 heures,
car ils sont aux niveaux d'exécution 2 et 3.

2.8 Protection des terminaux et des stations de travail sans personnel 53


2.8.2 Protection des fichiers de périphériques de terminaux
Si un intrus parvient à accéder à un terminal ouvert, il peut rediriger une commande vers
une autre fenêtre de terminal. Dans l'exemple suviant, une commande de suppression
(rm) est redirigée vers /dev/tty0p0 :
# echo "\r rm -r / \r\033d" > /dev/tty0p0
Pour empêcher l'écriture de messages sur un terminal, vous pouvez utiliser la commande
mesg -n (ou mesg n). Cette commande révoque les autorisations d'écriture des
utilisateurs qui ne disposent pas des privilèges appropriés. Pour plus d'informations, voir
mesg(1) et write(1).
# vi ~/.shrc
mesg n
Une autre manière de protéger la station de travail ou le terminal consiste à utiliser la
commande xhost. Pour plus d’informations, voir xhost(1). La commande xhost définit
les noms des hôtes et des utilisateurs qui sont autorisés à établir des connexions à la
station de travail.
# xhost +Another.system
Pour autoriser tous les systèmes et tous les utilisateurs à accéder à la station de travail,
et par conséquent désactiver le contrôle d'accès, utilisez la commande suivante :
# xhost +

2.8.3 Configuration du verrouillage d'écran


Cette section explique comment configurer le verrouillage d'écran à l'aide de la variable
TMOUT et du gestionnaire de verrou CDE.

2.8.3.1 Configuration de la variable TMOUT


Vous pouvez configurer la variable TMOUT de façon à verrouiller automatiquement les
terminaux inactifs.
Si vous utilisez d'autres systèmes et si vous copiez le fichier .profile d'un système à
un autre, il est plus commode d'ajouter la variable TMOUT au fichier .profile. Si vous
restez généralement sur un seul système, vous pouvez utiliser l'une ou l'autre méthode
de verrouillage de terminal.
Pour configurer la variable TMOUT, modifiez le fichier .profile comme dans l'exemple
suivant :
# vi ~/.profile
export TMOUT=600 # (verrouillage après 600 secondes d'inactivité)
Vous pouvez remplacer 600 par la valeur souhaitée.

54 Administration de la sécurité système et utilisateur


2.8.3.2 Configuration du gestionnaire de verrou CDE
Vous pouvez configurer le gestionnaire de verrou CDE de façon à verrouiller votre écran
après un certain délai d'inactivité. Pour configurer le gestionnaire de verrou CDE afin
de verrouiller l'écran après 10 minutes d'inactivité, entrez les commandes suivantes :
# cp /usr/dt/config/C/sys.resources /etc/dt/config/C/sys.resources
# vi /etc/dt/config/C/sys.resources
dtsession*lockTimeout: 10
Vous pouvez également utiliser le volet de tâches Style Manager pour régler le
gestionnaire de verrou CDE. Pour cela, cliquez sur l'icône écran.

2.9 Protection contre l'accès au système par des périphériques distants


Pour vous protéger contre les pénétrations système par accès à distance, observez les
précautions suivantes :
• Exigez l’utilisation d’un système de rappel physique pour tous les modems interactifs.
• Exigez des utilisateurs de modem qu’ils entrent un mot de passe supplémentaire, en
ajoutant une entrée pour le modem dans /etc/dialups et, éventuellement, dans
/etc/d_passwd. Voir Section 2.9.1.
• Exigez de vos utilisateurs qu’ils renouvellent régulièrement leurs comptes d'accès à
distance.
• Lorsqu’un employé quitte l’entreprise, désactivez immédiatement son accès au
système.
• Établissez un planning régulier d’audit pour examiner les utilisations à distance.
• Connectez les modems et les équipements de rappel à un unique système HP-UX,
et faites en sorte que les services réseau puissent accéder au système de destination
à partir de ce point.
• Créez des exceptions au rappel pour l'accès UUCP. Les procédures de configuration
UUCP vous permettent de définir des restrictions supplémentaires. Pour plus
d’informations, voir uucp(1).
Une autre exception possible est le transfert de fichiers par l’intermédiaire de
kermit. Pour plus d’informations, voir kermit(1).

• En cas d’effraction, fermez immédiatement les accès réseau et téléphonique et


prévenez immédiatement l’administrateur réseau.
• Lorsque vous configurez un système de rappel par modem, vous pouvez accroître
la sécurité en configurant le mécanisme d’appel sortant pour qu’il n’accepte aucune
autre tâche, et surtout pas la gestion des appels entrants. Pour ces derniers, utilisez
un autre modem sur une autre ligne téléphonique.

2.9 Protection contre l'accès au système par des périphériques distants 55


• Faites en sorte que les numéros de téléphone des modems ne figurent sur aucune
liste et soient sur un système différent des autres téléphones professionnels. Ne mettez
pas les numéros de téléphone d'accès à distance à disponibilité du public.
• Sécurisez physiquement les modems.
• Utilisez l'ID de l'appelant pour identifier tous les appels entrants vers les modems.
• N'autorisez pas le transfert d'appels ou autres services téléphoniques sur les lignes
de modem. N'utilisez pas de modems téléphoniques cellulaires.
• Pour l'accès local et à distance, envisagez d'installer un produit de serveur AAA
HP-UX. Grâce au protocole RADIUS (Remote Authentication Dial-In User Service) de
norme industrielle, le serveur AAA HP-UX fournit une authentification, une autorisation
et une comptabilité de l'accès réseau utilisateur au point d'entrée au réseau. Pour
plus d'informations, voir le document HP-UX AAA Server Administrator's Guide.
• Pour les connexions mobiles avec Mobile IPv6, utilisez HP-UX IPSec pour chiffrer et
authentifier les messages de protocoles Mobile IPv6 entre le client Mobile IPv6 et
le Home Agent. Pour plus d'informations, voir le document HP-UX IPSec
Administrator's Guide.

2.9.1 Contrôle de l'accès avec /etc/dialups et /etc/d_passwd


Pour une sécurité accrue dans l'identification des utilisateurs distants, ajoutez des entrées
aux fichiers /etc/dialups et /etc/d_passwd. Ces fichiers permettent de contrôler
la fonctionnalité de sécurité d'accès à distance de login. Pour plus d'informations, voir
dialups(4) et login(1).
Si le fichier /etc/dialups existe, le processus de connexion compare le terminal à
ceux répertoriés dans /etc/dialups. Si le terminal existe dans /etc/dialups, un
mot de passe est demandé par login. Ce mot de passe est comparé à ceux répertoriés
dans /etc/d_passwd.
De plus, le fichier /etc/passwd est utilisé pour vérifier le mot de passe.
Voici un exemple de configuration du fichier /etc/dialups :
# vi /etc/dialups (répertorie les terminaux qui sont autorisés)
/dev/ttyd0p1
/dev/ttyd0p2
# vi /etc/d_passwd
/usr/bin/sh:xxxencrypted-passwordxxxxxxxxx:comments
/usr/bin/ksh:xxxencrypted-passwordxxxxxxxx:comments
/sbin/sh:xxxencrypted-passwordxxxxxxxxx:comments
L'utilisateur voit :
Login:
Password:
56 Administration de la sécurité système et utilisateur
Dialup password:
Pour modifier les mots de passe dans /etc/d_passwd, utilisez la commande passwd
comme suit :
# passwd -F /etc/d_passwd chemin_accès_shell
Le chemin_accès_shell est le chemin d'accès de shell répertorié dans /etc/
d_passwd.

2.10 Sécurisation des bannières de connexion


Les bannières de connexion sont souvent utilisés pour afficher des informations système
telles que le nom du système, le numéro de version et la fonction du système. Ces
informations peuvent aider un utilisateur non autorisé à en savoir plus sur le système.
Voici quelques recommandations pour la création de bannières de connexion plus
sécurisées :
• Consultez le service juridique afin de déterminer un message approprié.
• Ajoutez un avertissement au message de bannière interdisant toute utilisation non
autorisée.
• Veillez à afficher le même message dans toutes les bannières, quelle que soit la
méthode de connexion.
Vous pouvez modifier une bannière des manières suivantes :
• Modifiez la bannière login définie dans /etc/copyright et /etc/motd.
• Modifiez la bannière telnet définie dans /etc/issue. La commande de fichier
de bannière telnetd -b définit une bannière personnalisée. Pour utiliser /etc/
issue comme bannière de connexion, ajoutez les lignes suivantes au fichier /etc/
inetd.conf :
telnet stream tcp nowait root /usr/lbin/telnetd \
telnetd -b /etc/issue
Lorsque inetd démarre telnetd, la bannière dans /etc/issue est utilisée. Pour
plus d'informations, voir inetd(1M), telnetd(IM) et inetd.conf(4).
• Modifiez la bannière ftp définie dans /etc/ftpd/ftpaccess, qui est le fichier
de configuration ftpd. Les autres messages affichés sont définis dans /etc/ftpd/
ftpaccess : salutation, bannière, nom d'hôte et message. Pour plus d'informations,
voir ftpdaccess(4) et ftpd(1M).
Voici un exemple telnet non sécurisé affichant une banière de connexion :
# telnet computerAmy
La bannière de connexion telnet affiche le numéro de version et le type de machine.
Si un utilisateur non autorisé tente d'utiliser telnet pour accéder à computerAmy, il
serait préférable de ne pas afficher autant d'informations.

2.10 Sécurisation des bannières de connexion 57


Voici un exemple telnet affichant une banière de connexion plus sécurisée :
$ telnet computerMom
Trying...
Connected to computerMom.city.company.com.
Escape character is '^]'.
Local flow control on
Telnet TERMINAL-SPEED option ON

**************************************************************
This is a private system operated for Hewlett-Packard company
business. Authorization from HP management is required
to use this system. Use by unauthorized persons is prohibited.
**************************************************************
login: Connection closed by foreign host.

2.11 Protection du compte root


Voici quelques suggestions pour protéger le compte root :
• Ne partagez pas le mot de passe root.
• N'utilisez pas / comme répertoire personnel root.
• Examinez la sortie de last -R et lastb -R à la recherche d'éventuels échecs
de connexion ou connexions inhabituelles et pour savoir qui s'est connecté en tant
que root.
• Examinez /var/adm/sulog et recherchez les tentatives d'utilisation de la
commande su root.
• Recherchez les comptes non autorisés avec un UID de zéro (0) ; utilisez la commande
logins -d.
Les sections suivantes expliquent comment protéger davantage le compte root.

2.11.1 Contrôle de l'accès au compte root


Si plusieurs administrateurs système ont besoin d'un accès root, voici quelques suggestions
qui vous permettront d'effectuer un suivi :
• Autorisez uniquement les connexions root directes sur la console système. Créez le
fichier /etc/securetty avec l'entrée unique console, comme suit :
# echo console > /etc/securetty
Cette restriction s'applique à tous les noms de connexion qui ont un UID de zéro
(0). Pour plus de détails, voir login(1).

58 Administration de la sécurité système et utilisateur


• Exigez des administrateurs qu'ils utilisent la commande su root à partir de leur
compte personnel pour accéder à root. Par exemple :
login:me
$ su root
password:xxxx

• Contrôlez /var/adm/sulog pour savoir qui a accédé au compte root avec su.
• Configurez un compte root distinct pour chaque administrateur système.
# vipw
root:xxx:0:3::/home/root:/sbin/sh
root1:xxx:0:3::/home/root1:/sbin/sh
root2:xxx:0:3::/home/root2:/sbin/sh

• Contrôlez le fichier historique de chaque administrateur système comme suit :


#more ~root1/.sh_history
#more ~root2/.sh_history

• Contrôlez les tentatives su ayant réussi et échoué dans /var/adm/syslog.

2.11.2 Utilisation du Restricted SMH Builder pour un accès superutilisateur limité


Si vous devez accorder un accès de superutilisateur limité à un non-superutilisateur, vous
pouvez activer le Restricted SMH Builder. Celui-ci vous permet d'activer ou de désactiver
certaines zones SMH pour l'utilisateur. Pour activer le Restricted SMH Builder, entrez :
# smh -r
Lorsque des utilisateurs avec un accès restreint exécuteront SMH, ils bénéficieront d’un
statut de superutilisateur dans les zones que vous avez définies, et le menu qui s’affichera
pour eux ne mentionnera que ces zones. Toutes les autres zones de SMH seront masquées.
Lorsque des utilisateurs sans autorisations d'accès exécuteront SMH, ils recevront un
message d'erreur signalant que l'accès est limité aux superutilisateurs.
Vous pouvez également ajouter des applications supplémentaires à SMH et les configurer
pour en restreindre l’accès.

2.11.3 Examen de l'accès superutilisateur


Le fichier /var/adm/sulog contient toutes les tentatives de la commande su root,
y compris les échecs. Les tentatives réussies sont indiquées par un signe plus (+) et les
échecs par un signe moins (-). Seul l'utilisateur root peut afficher le fichier
/var/adm/sulog. Par exemple :
# su root
Password:
# ll /var/adm/sulog
-rw------- 1 root root 690 Aug 17 19:37 /var/adm/sulog

2.11 Protection du compte root 59


Dans l'exemple suivant, userone a utilisé avec succès la commande su pour accéder
à root. Un deuxième utilisateur, usertwo, a échoué. En outre, usertwo n'est pas
parvenu non plus à utiliser su pour accéder à gooduser1.
# more /var/adm/sulog
SU 08/17 19:10:00 + 0 userone-root
SU 08/17 19:36 - 0 usertwo-root
SU 08/17 19:36 - 0 usertwo-root
SU 08/17 19:36 + 0 userone-root
SU 08/17 19:37 - 0 usertwo-gooduser1

60 Administration de la sécurité système et utilisateur


3 HP-UX Bastille
HP-UX Bastille est un outil de renforcement et de verrouillage permettant d’améliorer la
sécurité du système d’exploitation HP-UX. Il permet un verrouillage personnalisé, système
par système, grâce à une fonction de codage comparable à Bastion Host et à d’autres
listes de contrôle de renforcement et de verrouillage.
Bastille a été développé initialement par la communauté Open Source pour une utilisation
sur les systèmes Linux. HP a apporté une contribution non négligeable au contenu de
Bastille et l'a utilisé comme base pour le développement d'HP-UX Bastille.
Ce chapitre traite des sujets suivants :
• Fonctionnalités et avantages (Section 3.1)
• Installation d'HP-UX Bastille (Section 3.2)
• Utilisation d'HP-UX Bastille (Section 3.3)
• Utilisation d'HP-UX Bastille pour annuler des modifications (Section 3.4)
• Emplacement de fichiers (Section 3.5)
• Conseils et dépannage (Section 3.6)
• Suppression d'HP-UX Bastille (Section 3.7)

3.1 Fonctionnalités et avantages


HP-UX Bastille offre les fonctionnalités et avantages suivants :
• Verrouillage d'un système
— Configuration des démons et des paramètres système pour une sécurité accrue
— Désactivation des services inutiles, tels que pwgrd
— Éducation des utilisateurs par le biais de son interface utilisateur
— Configuration de l'exécution automatique des outils Software Assistant et Security
Patch Check
— Configuration d'un pare-feu basé sur IPFilter
• Rapport sur l'état de la configuration de sécurité
— Génération de rapports sur l'état de la configuration de sécurité
— Création de lignes de base de configuration HP-UX Bastille et comparaison de
l'état actuel du système avec la ligne de base enregistrée (commande drift)
• Intégration avec System Insight Manager (SIM)
— Verrouillage d'un système et génération de rapports par le biais de SIM
— Configuration prétestée, SIM.config, pour le verrouillage de serveur SIM
3.1 Fonctionnalités et avantages 61
3.2 Installation d'HP-UX Bastille
HP-UX Bastille est fourni en tant que logiciel recommandé sur le support Operating
Environment et peut être installé et exécuté avec Ignite-UX ou Update-UX. Pour plus
d'informations sur l'installation d'HP-UX Bastille, reportez-vous au Guide d’installation et
de mise à jour de HP-UX 11i v3.
Pour télécharger la dernière version d'HP-UX Bastille, accédez au site Web suivant :
http://www.hp.com/go/bastille

3.3 Utilisation d'HP-UX Bastille


Vous pouvez utiliser HP-UX Bastille de manière interactive ou non interactive pour effectuer
les tâches suivantes :
• Pour verrouiller votre système (créer un fichier de configuration de sécurité ou
appliquer un fichier existant), entrez :
# bastille -x

• Pour dupliquer un fichier de configuration de sécurité sur plusieurs ordinateurs,


entrez :
# bastille -b -f fichier

• Pour générer des rapports sur l'état de configuration du système, entrez :


# bastille --assess

• Créer des lignes de base de configuration HP-UX Bastille et comparer l'état actuel
du système avec une ligne de base enregistrée. Pour enregistrer une ligne de base,
entrez :
# bastille_drift --save_baseline ligne de base
Pour comparer l'état du système à la ligne de base spécifiée, entrez :
# bastille_drift --from_baseline ligne de base

Pour plus d'informations, voir les pages de manuel bastille(1M) et bastille_drift(1M).

REMARQUE : Réexécutez l'utilitaire bastille_drift chaque fois que de nouveaux


logiciels ou correctifs sont installés, afin de vérifier si ces logiciels ou correctifs ont modifié
l'état du système. L'utilitaire bastille_drift aide également à identifier les
changements d'état système lorsque la commande swverify est exécutée avec l'option
-x fix=true ou l'option -F pour exécuter des scripts de correctifs spécifiques aux
fournisseurs.

62 HP-UX Bastille
3.3.1 Utilisation d'HP-UX Bastille de manière interactive
HP-UX Bastille s'exécute de manière interactive à l'aide de l'interface X implémentée par
le biais de Perl/Tk. L'interface requiert un serveur X et offre les fonctionnalités suivantes :
• Accès aléatoire entre les modules de questions.
• Indicateurs d'achèvement pour indiquer la progression de l'utilisateur.
• Tunneling du trafic X11 sur un canal chiffré à l'aide de l'option suivante :
# ssh -X
Pour plus d’informations, voir ssh(1).
La Figure 3-1 montre l'écran principal de l'interface utilisateur d'HP-UX Bastille.

Figure 3-1 Interface utilisateur d'HP-UX Bastille

L'interface utilisateur guide les utilisateurs tout au long d'une série de questions groupées
par modules (voir Tableau 3-1). Chaque question fournit des explications concernant un
problème et décrit l'action nécessaire pour verrouiller le système HP-UX. Chaque question
décrit également, à un niveau supérieur, le coût et l'avantage de chaque décision, et
l'utilisateur décide de la façon dont l'outil doit gérer les problèmes.

3.3 Utilisation d'HP-UX Bastille 63


Une fois que vous avez répondu à toutes les questions, HP-UX Bastille fournit une prise
en charge automatisée de chaque étape de verrouillage. Il effectue les actions qu'il peut
effectuer automatiquement, puis il génère une liste des actions restantes que l'utilisateur
doit effectuer manuellement. Ces actions doivent être exécutées afin d'achever le processus
de verrouillage HP-UX Bastille.
Tableau 3-1 Modules de questions HP-UX Bastille
Nom du module Description

Applications de correctifs Installe et configure les correctifs afin d'assister l'utilisateur pour la
vérification de conformité aux bulletins de sécurité.

Autorisations de fichiers Exécute un réglage des autorisations SUID et autres.

Sécurité des comptes Configure les paramètres de connexion et l'accès à cron.

inetd sécurisé Désactive les services inetd inutiles.

Démons divers Désactive les services souvent inutilisés ou qui présentent un risque pour
la sécurité.

sendmail Configure la messagerie pour une sécurité accrue, ou permet à l'utilisateur


de la désactiver.

DNS Désactive ou configure DNS pour une sécurité accrue.

Apache Configure les serveurs Apache Web pour une sécurité accrue.

FTP Configure les serveurs FTP pour une sécurité accrue.

HP-UX Effectue des actions de configuration de sécurité qui sont uniques à la


plate-forme HP-UX.

IPFilter Crée un pare-feu basé sur IPFilter.

3.3.2 Utilisation d'HP-UX Bastille de manière non interactive


Le renforcement de la sécurité peut être effectué directement par le biais du moteur de
configuration. Cette méthode est utile pour dupliquer une configuration de sécurité sur
plusieurs ordinateurs sur lesquels les mêmes systèmes d'exploitation et applications sont
installés. Le moteur de configuration utilise le fichier de configuration prédéfini. Cette
option peut utiliser le fichier créé à l'emplacement par défaut par une session interactive
ou un autre fichier spécifié par l'option -f, comme suit :
# bastille -b -f fichier

64 HP-UX Bastille
3.3.3 Configuration d'un système
Pour configurer un système ou pour créer un fichier de configuration qui peut être réutilisé
ultérieurement sur un autre système, procédez comme suit :
1. Basculez vers l'utilisateur root, car HP-UX Bastille doit modifier des paramètres et
la configuration système. Si HP-UX Bastille ne s'exécute pas localement, vous pouvez
choisir de tunneler le trafic X11 sur Secure Shell (ssh) ou IPSec afin de limiter
l'exposition sur le réseau, ou d'utiliser une solution de partage de bureaux plus
complète capable de faire face aux attaques d'utilisateurs locaux et distants.
2. Si vous apportez des modifications au système, décidez s'il faut utiliser HP-UX Bastille
de manière interactive ou non. Si vous utilisez HP-UX Bastille pour la première fois,
vous devez l'exécuter de manière interactive afin de créer un profil de configuration,
à moins que votre distribution n'ait été fournie avec des fichiers de configuration
intégrés tels que DMZ.config. Prenez le temps (environ une heure) de lire et de
répondre à toutes les questions.
Pour plus d'informations sur l'utilisation interactive et non interactive d'HP-UX Bastille,
voir la Section 3.3.
3. Suivez la procédure appropriée (interactive ou non interactive) en fonction de la
décision prise à l'Étape 2.

Procédure interactive
a. Démarrez HP-UX Bastille
Si vous utilisez HP-UX Bastille pour la première fois, exécutez-le de manière
interactive afin de créer un profil de configuration. L'outil met à jour la variable
d'environnement PATH lors de son installation ; par conséquent, si vous vous
êtes déconnecté puis reconnecté après l'installation d'HP-UX Bastille, entrez la
commande suivante pour démarrer l'outil :
# bastille
Si votre variable PATH n'a pas été mise à jour, entrez la commande suivante
pour démarrer HP-UX Bastille :
# /opt/sec_mgmt/bastille/bin/bastille
Seules les catégories de questions pertinentes à la configuration actuelle seront
affichées.
b. Répondez aux questions
Les questions sont classées par fonction et des coches sont utilisées comme
indicateurs d'achèvement afin de noter si une catégorie est terminée. Cela vous
permet d'assurer le suivi de votre progression dans le programme.
Lorsque vous répondez aux questions, utilisez le menu Explanation-Detail pour
basculer entre les explications brèves et détaillées. Toutes les questions n'exigent
pas à la fois des réponses courtes et longues.

Procédure interactive 65
c. Enregistrez votre configuration et appliquez les modifications
Vous pouvez utiliser la barre de menus à tout moment pour enregistrer ou charger
un fichier de configuration. L'option Save As génère un fichier de configuration
plus volumineux, puisque l'outil suppose que vous n'avez pas forcément terminé
ou que vous risquez de modifier la configuration ultérieurement. L'option
Save/Apply indique à l'outil que vous avez terminé et qu'un filtrage
supplémentaire peut être effectué. Bien que la taille du fichier de configuration
généré puisse être différente, la fonctionnalité d'HP-UX Bastille demeure identique
dans les deux cas. L'option Save/Apply enregistre toujours le fichier de
configuration à l'emplacement actuel répertorié dans la barre de titre HP-UX
Bastille.

Procédure non interactive


a. Exécutez HP-UX Bastille de manière interactive pour créer un fichier de
configuration s'il n'en existe pas
Un fichier de configuration par défaut n'est pas fourni pour toutes les distributions.
Dans ces cas-là, vous devez initialement exécuter HP-UX Bastille de manière
interactive pour créer un fichier de configuration. Pour plus d’informations, voir
« Procédure interactive ».
b. Copiez le fichier de configuration sur chaque ordinateur que vous souhaitez
répliquer
Copiez le fichier de configuration, /etc/opt/sec_mgmt/bastille/config,
de son emplacement sur le premier ordinateur vers le même emplacement sur
les autres ordinateurs :
# bastille -b -f fichier

REMARQUE : Étant donné que certaines des questions sont spécifiques au


système d'exploitation ou au logiciel de sécurité installé, le même système
d'exploitation avec le même logiciel de sécurité doivent être installés sur les
ordinateurs à dupliquer et sur l'ordinateur sur lequel le fichier de configuration
a été créé.

c. Installez HP-UX Bastille sur chacun des ordinateurs à répliquer


Vous pouvez effectuer cette opération en masse et les journaux d'actions et
d'erreurs peuvent être recueillis pour un examen ultérieur. Entrez :
# bastille -b

4. Examinez les fichiers journaux


Pour afficher les journaux en temps réel, entrez :
# tail -f fichier_journal

66 HP-UX Bastille
Le fichier journal d'action, /var/opt/sec_mgmt/bastille/log/action-log,
répertorie les étapes spécifiques effectuées par HP-UX Bastille lors de la modification
du système. Il est créé uniquement si vous appliquez les modifications au système.
Le fichier journal d'erreurs, /var/opt/sec_mgmt/bastille/log/error-log,
répertorie les erreurs rencontrées par HP-UX Bastille lors de la modification du
système. Il est créé uniquement si des erreurs se produisent durant l'exécution.
5. Effectuez les étapes répertoriées dans la liste de tâches.
Après avoir effectué les actions qu'il peut exécuter automatiquement, l'outil génère
une liste de tâches, /var/opt/sec_mgmt/bastille/TODO.txt, qui décrit les
actions restantes que l'utilisateur doit effectuer manuellement. Cela comprend les
réamorçages si certaines des modifications requièrent un réamorçage.
Les actions répertoriées dans la liste de tâches doivent être effectuées afin de sécuriser
la configuration.

REMARQUE : La liste de tâches est créée uniquement lorsque les modifications


sont appliquées au système.

3.4 Utilisation d'HP-UX Bastille pour annuler des modifications


Pour restaurer la configuration de sécurité à l'état où elle était avant l'exécution d'HP-UX
Bastille, entrez :
# bastille -r
Si des actions manuelles sont nécessaires pour restaurer l'état HP-UX Bastille précédent,
le processus d'annulation crée le fichier var/opt/sec_mgmt/bastille/
TOREVERT.txt. Vous devez effectuer les actions répertoriées dans ce fichier pour
terminer le processus d'annulation.
Après avoir exécuté l'option d'annulation, vérifiez dans le fichier TOREVERT.txt si
vous devez effectuer des actions manuelles pour achever le processus d'annulation. Ce
fichier se trouve à l'emplacement suivant : /var/opt/sec_mgmt/bastille/
TOREVERT.txt.

REMARQUE : Hormis quelques options de pare-feu, le fait de restaurer les paramètres


système par défaut est le seul moyen par lequel HP-UX Bastille peut rendre un système
moins sécurisé.

3.4 Utilisation d'HP-UX Bastille pour annuler des modifications 67


3.5 Emplacement de fichiers
La liste suivante décrit les principaux fichiers HP-UX Bastille et indique leur emplacement :
• Fichier de configuration par défaut — Contient les réponses à la dernière session
enregistrée si aucun autre nom de fichier n'a été spécifié :
/etc/opt/sec_mgmt/bastille/config

• Fichier journal de configuration — Fichier qui, s'il est appliqué via HP-UX Bastille,
verrouille les éléments qu'HP-UX Bastille avait verrouillé complètement dans le cas
où les deux systèmes ont la même version d'HP-UX, un ensemble d'applications
installées similaire et la même configuration. Dans les cas où les systèmes diffèrent,
le fichier de configuration peut contenir des questions supplémentaires non pertinentes
au système de destination ou des questions nécessaires sur le système distant
pourraient être manquantes. HP-UX Bastille affiche un message dans le premier cas
et génère une erreur dans le second cas. Vous aurez ensuite l'opportunité de
répondre aux questions manquantes ou de supprimer les questions supplémentaires
dans l'interface graphique.
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-log.config

• Fichier journal d'erreurs — Contient les erreurs rencontrées par HP-UX Bastille lors
des modifications du système :
/var/opt/sec_mgmt/bastille/log/error-log

• Fichier journal d'actions — Contient les étapes spécifiques effectuées par HP-UX
Bastille lors des modifications du système :
/var/opt/sec_mgmt/bastille/log/action-log

• Fichier de liste de tâches — Contient les actions manuelles que l'utilisateur doit
effectuer pour garantir la sécurité de l'ordinateur :
/var/opt/sec_mgmt/bastille/TODO.txt

• Script d'actions d'annulation — Restaure les fichiers modifiés par HP-UX Bastille à
l'état où ils étaient avant l'exécution d'HP-UX Bastille :
/var/opt/sec_mgmt/bastille/revert/revert-actions
Ce script fait partie de la fonctionnalité d'annulation.
• Fichier d'annulation — Contient les actions manuelles que l'utilisateur doit effectuer
pour achever l'annulation des modifications et restaurer l'ordinateur à l'état dans
lequel il était avant l'exécution d'HP-UX Bastille :
/var/opt/sec_mgmt/bastille/TOREVERT.txt
• Fichiers de rapports d'évaluation — Ces fichiers sont au format HTML, au format
texte et au format de fichier journal HP-UX Bastille :
68 HP-UX Bastille
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report.HTML
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report.txt
/var/opt/sec_mgmt/bastille/log/Assessment/
assessment-report-log.txt

• Fichier de décalage de configuration — Contient des informations sur le décalage


de configuration éventuel subi par le système depuis la dernière exécution d'HP-UX
Bastille. Ce fichier est créé uniquement lorsqu'une configuration HP-UX Bastille a été
appliquée antérieurement au système :
/var/opt/sec_mgmt/bastille/log/Assessment/Drift.txt

3.6 Conseils et dépannage


Cette section fournit des informations de base sur la résolution des problèmes connus.
• Les modifications apportées par HP-UX Bastille peuvent provoquer l'arrêt du
fonctionnement d'autres logiciels.
Pour résoudre le problème, entrez :
# bastille -r
Cette commande restaure le système à l'état dans lequel il était avant l'exécution
d'HP-UX Bastille, puis vérifie si le problème a disparu.
• $DISPLAY not set, cannot use X.
L'utilisateur a demandé l'interface X, mais la variable d'environnement $DISPLAY
n'a pas été définie. Pour résoudre le problème, définissez la variable d'environnement
à la valeur souhaitée.
• System is in original state...
L'utilisateur a tenté d'annuler les modifications apportées par HP-UX Bastille à l'aide
de l'option -r, mais il n'y avait aucune modification à annuler.

• Vous devez exécuter HP-UX Bastille en tant que root


HP-UX Bastille doit être exécuté en tant que root car les modifications qu'il apporte
affectent des fichiers système.
• Problèmes d'ouverture, de copie ou de lecture de fichiers
Les messages d'erreur mentionnant ces problèmes sont généralement liés aux systèmes
de fichiers NFS qui n'approuvent pas l'utilisateur root sur l'ordinateur local. Pour
plus de détails, consultez la section options de la page de manuel fstab.

3.6 Conseils et dépannage 69


• Erreurs liées à des fichiers de configuration spécifiques
Les erreurs mentionnant des fichiers de configuration spécifiques indiquent qu'un
fichier a été trop lourdement modifié pour qu'HP-UX Bastille puisse apporter des
modifications de manière efficace, ou que les fichiers, emplacements ou autorisations
des répertoires d'installation d'HP-UX Bastille ont été modifiés.
• Si HP Secure Shell vous verrouille hors de votre système lorsque des mots de passe
expirent, vous devrez peut-être installer un correctif PAM : PHCO_24839 (HP-UX
11.11) disponible à partir du Centre de ressources informatiques HP :
https://www2.itrc.hp.com/service/patch/mainPage.do
• HP-UX Bastille configure un pare-feu à l'aide d'IPFilter
Les conflits les plus courants concernent les pare-feu. Lorsqu'un service réseau ne
fonctionne pas mais qu'HP-UX Bastille ne l'a pas désactivé de manière explicite,
vous devez vous assurer que les règles de pare-feu autorisent l'utilisation des ports
dont vous avez besoin.
Pour plus d'informations, voir ipfstat(8) et ipmon(8).

3.7 Suppression d'HP-UX Bastille


Lorsqu'HP-UX Bastille est supprimé d'un système, il ne restaure pas le système à l'état
dans lequel il était avant l'exécution d'HP-UX Bastille. Au lieu de cela, la suppression du
logiciel laisse intact le script revert-actions. Cela permet à l'administrateur de
restaurer les fichiers de configuration modifiés par HP-UX Bastille sans que celui-ci soit
installé. Dans de nombreux cas, les modifications HP-UX Bastille sont enregistrées au
niveau fichier ; par conséquent, le script revert-actions est en mesure de restaurer
uniquement les fichiers qui ont été modifiés.
Dans d'autres cas, HP-UX Bastille apporte des modifications plus granulaires qui peuvent
être annulées par programme même si entre temps vous avez effectué vos propres
modifications dans le même fichier. Par exemple, les autorisations peuvent être restaurées
à leur forme d'origine même si vous avez modifié le fichier dans lequel les autorisations
ont été modifiées.
1. Utilisez swremove pour supprimer HP-UX Bastille d'un ordinateur HP-UX.
2. (Facultatif) Pour annuler les modifications sur un système duquel HP-UX Bastille a été
supprimé, entrez les commandes suivantes :
# cd /var/opt/sec_mgmt/bastille/revert/
# chmod 0500 revert-actions
# ./revert-actions
# mv revert-actions revert-actions.last
3. Vérifiez si une liste de tâches, /var/opt/sec_mgmt/bastille/TOREVERT.txt,
a été créée. Si c'est le cas, effectuez les actions répertoriées dans la liste afin
d'achever le processus d'annulation.

70 HP-UX Bastille
4 Extensions de sécurité du mode standard
Ce chapitre décrit les extensions de sécurité du mode standard (HP-UX SMSE). Il aborde
les sujets suivants :
• Présentation (Section 4.1)
• Attributs de sécurité et la base de données utilisateur (Section 4.2)

4.1 Présentation
Les extensions de sécurité du mode standard (HP-UX SMSE) sont un groupe de
fonctionnalités qui améliorent la sécurité des utilisateurs et du système d'exploitation.
HP-UX SMSE inclut des améliorations ou des modifications du système d'audit HP-UX,
des mots de passe et des connexions pour les systèmes en mode standard. Auparavant,
ces fonctionnalités étaient prises en charge uniquement sur les systèmes convertis en
mode protégé. Avec HP-UX SMSE, vous pouvez utiliser ces fonctionnalités sur un système
en mode standard.

REMARQUE : HP déconseille l'utilisation d'HP-UX SMSE sur les systèmes qui s'exécutent
en mode protégé. HP-UX SMSE rend disponibles en mode standard de nombreuses
stratégies de compte et de mot de passe actuellement disponibles uniquement par
conversion d'un système HP-UX en mode protégé. Les stratégies configurées avec HP-UX
SMSE ne sont pas appliquées sur les systèmes qui s'exécutent en mode protégé.
Pour déterminer si un système a été converti en mode protégé, recherchez le fichier
suivant :
/tcb/files/auth/system/default
Si ce fichier existe, le système s'exécute en mode protégé. Pour reconvertir le système
en mode standard, utilisez la commande sam(1M).
Pour plus d'informations sur les configurations prises en charge avec chacune des
fonctionnalités de sécurité d'HP-UX SMSE, voir la page de manuel security(4).

HP-UX SMSE propose une nouvelle fonctionnalité, la base de données utilisateur.


Auparavant, tous les attributs de sécurité HP-UX et les restrictions de stratégies de mots
de passe étaient définis à l'échelle du système. L'introduction d'une base de données
utilisateur vous permet de définir des attributs de sécurité sur la base de chaque utilisateur,
qui remplacent les attributs système par défaut.
Les fonctionnalités suivantes du mode protégé sont disponibles en mode standard avec
HP-UX SMSE :
• Audit de tous les utilisateurs et événements sur un système
• Affichage des dernières connexions utilisateur ayant réussi et échoué

4.1 Présentation 71
• Verrouillage d'un compte d'utilisateur s'il y a trop d'échecs d'authentification
• Affichage de l'historique de mot de passe
• Expiration des comptes inactifs
• Interdiction des ouvertures de session avec un mot de passe nul
• Restriction des connexions utilisateur à des périodes spécifiques
• L'utilisation de la commande userdbset peut être restreinte en fonction des
autorisations d'un utilisateur. Pour plus d'informations, voir userdbset(1M).
• La commande userstat affiche l'état du compte des utilisateurs locaux. Elle vérifie
l'état des comptes d'utilisateurs locaux et signale les conditions anormales, telles
que les verrouillages de comptes. Pour plus d'informations, voir userstat(1M).

4.2 Attributs de sécurité et la base de données utilisateur


Auparavant, en mode standard, tous les attributs de sécurité HP-UX et les restrictions de
stratégies de mots de passe étaient définis à l'échelle du système. L'introduction d'une
base de données utilisateur vous permet de définir des attributs de sécurité sur la base
de chaque utilisateur, qui remplacent les attributs système par défaut.

4.2.1 Attributs de sécurité système


Un attribut de sécurité définit comment contrôler les configurations de sécurité, telles que
les mots de passe, les connexions et l'audit. Le fichier de description d'attributs de sécurité,
/etc/security.dsc, répertorie les attributs qui peuvent être définis dans /etc/
default/security, dans la base de données utilisateur dans /var/adm/userdb,
ou dans les deux fichiers. Certains attributs sont configurables, d'autres sont internes.

ATTENTION : Vous ne devez modifier le fichier /etc/security.dsc en aucune


manière.
Lorsqu'un utilisateur ouvre une session, le système vérifie les attributs de sécurité
applicables dans l'ordre suivant :
1. Le système examine les attributs par utilisateur aux emplacements suivants :
• /var/adm/userdb
• /etc/passwd
• /etc/shadow

REMARQUE : Pour chaque attribut par utilisateur, une valeur est stockée dans
l'un des trois fichiers mentionnés ci-dessus. Pour savoir quels attributs sont stockés
dans chaque fichier, voir security(4).

72 Extensions de sécurité du mode standard


2. S'il n'y a aucune valeur par utilisateur, le système examine les attributs configurés
à l'échelle du système dans /etc/default/security.
3. S'il n'y a aucun attribut configuré à l'échelle du système, le système utilise les attributs
par défaut dans /etc/security.dsc.

4.2.2 Configuration des attributs à l'échelle du système


Pour configurer des attributs à l'échelle du système, procédez comme suit :
1. Planifiez votre configuration à l'aide des ressources disponibles. Pour plus
d'informations sur la configuration des attributs à l'échelle du système, voir security(4).
2. Pour modifier une valeur par défaut à l'échelle du système, modifiez le fichier /etc/
default/security à l'aide d'un éditeur de texte tel que vi. Les commentaires
commencent par un signe dièse (#). Les attributs sont écrits au format
attribut=valeur.
Par exemple, pour définir à l'échelle du système la quantité minimale de caractères
majuscules dans un mot de passe à deux (2), entrez les valeurs suivantes dans
/etc/default/security :
PASSWORD_MIN_UPPER_CASE_CHARS=2

REMARQUE : Les modifications apportées aux attributs de sécurité à l'échelle du système


ne prennent pas effet immédiatement. Les attributs de mots de passe prennent effet la
prochaine fois que les utilisateurs modifient leurs mots de passe. Les attributs de connexion
prennent effet la prochaine fois que les utilisateurs se connectent.

4.2.3 Composants de la base de données utilisateur


La fonctionnalité de base de données utilisateur d'HP-UX SMSE inclut des fichiers, des
commandes, des pages de manuel et des attributs par utilisateur que vous pouvez
appliquer à des utilisateurs spécifiques sur votre système HP-UX. Tous ces éléments de
la base de données utilisateur sont décrits dans les sections suivantes :

4.2.3.1 Fichiers de configuration


Le Tableau 4-1 décrit brièvement les fichiers utilisés avec la base de données utilisateur.
Tableau 4-1 Fichiers de configuration de la base de données utilisateur
Fichier Description

/var/adm/userdb Stocke la plupart des informations relatives à chaque utilisateur.

4.2 Attributs de sécurité et la base de données utilisateur 73


4.2.3.2 Commandes
Le Tableau 4-2 décrit brièvement les commandes utilisées pour modifier et administrer
les entrées de la base de données utilisateur.
Tableau 4-2 Commandes de la base de données utilisateur
Commande Description

userdbset Modifie les valeurs d'attributs configurées dans la base de données utilisateur

userdbget Affiche les valeurs d'attributs configurées dans la base de données utilisateur

userdbck Vérifie l'intégrité des informations contenues dans la base de données


utilisateur.

userstat Indique l'état des comptes d'utilisateurs locaux.

4.2.3.3 Attributs
Les attributs de sécurité suivants sont disponibles pour les utilisateurs :
Tableau 4-3 Attributs utilisateur
Attribut Description

ALLOW_NULL_PASSWORD Autorise ou refuse la connexion avec un mot de passe nul.

AUDIT_FLAG Démarre ou arrête l'audit de l'utilisateur.

AUTH_MAXTRIES Définit la quantité d'échecs de connexion autorisée avant qu'un


utilisateur ne soit verrouillé hors du système.

DISPLAY_LAST_LOGIN Affiche des informations concernant la dernière connexion d'un


utilisateur.

LOGIN_TIMES Restreint les périodes de connexion.

MIN_PASSWORD_LENGTH Définit la longueur minimale des mots de passe.

NUMBER_OF_LOGINS_ALLOWED Définit la quantité de connexions simultanées autorisée par utilisateur.

PASSWORD_HISTORY_DEPTH Définit la profondeur de l'historique de mot de passe.

PASSWORD_MIN_LOWER_CASE_CHARS Définit la quantité minimale de caractères minuscules requise dans un


mot de passe.

PASSWORD_MIN_UPPER_CASE_CHARS Définit la quantité minimale de caractères majuscules requise dans


un mot de passe.

PASSWORD_MIN_DIGIT_CHARS Définit la quantité minimale de caractères numériques requise dans


un mot de passe.

PASSWORD_MIN_SPECIAL_CHARS Définit la quantité minimale de caractères spéciaux requise dans un


mot de passe.

UMASK Définit le umask pour la création de fichier.

74 Extensions de sécurité du mode standard


REMARQUE : La liste ci-dessus répertorie uniquement les attributs de sécurité pouvant
être configurés dans la base de données utilisateur. Pour obtenir une liste complète des
attributs de sécurité système HP-UX, voir la page de manuel security(4).

4.2.3.4 Pages de manuel


Le Tableau 4-4 décrit brièvement les pages de manuel utilisées avec la base de données
utilisateur.
Tableau 4-4 Pages de manuel relatives à la base de données utilisateur
Page de manuel Description

userdb(4) Fournit une vue d'ensemble de l'utilisation de la base de données utilisateur.

userdbset(1M) Décrit la fonctionnalité et la syntaxe de userdbset.

userdbget(1M) Décrit la fonctionnalité et la syntaxe de userdbget.

userdbck(1M) Décrit la fonctionnalité et la syntaxe de userdbck.

userstat(1M) Décrit la fonctionnalité et la syntaxe de userstat.

4.2.4 Configuration des attributs dans la base de données utilisateur


Dans les systèmes HP-UX précédents, les attributs de sécurité et les restrictions de stratégies
de mots de passe étaient définis à l'échelle du système. Avec HP-UX SMSE, vous pouvez
configurer certaines attributs de sécurité pour chaque utilisateur. Les attributs configurés
par utilisateur remplacent ceux configurés à l'échelle du système.
Pour modifier les valeurs d'attributs d'un utilisateur, procédez comme suit :
1. Déterminez quels utilisateurs sont concernés par la modification, et quels attributs
seront appliqués.
Par exemple, vous souhaitez que joe soit en mesure de se connecter au système
uniquement de 8 heures à 17 heures le lundi.
2. Modifiez les attributs à l'aide de la commande userdbset comme suit :
# userdbset -u nom_utilisateur nom_attribut=valeur_attribut
Par exemple, pour spécifier que l'utilisateur joe puisse se connecter au système
uniquement de 8 heures à 17 heures, entrez :
# userdbset -u joe LOGIN_TIMES=Mo0800-1700

4.2 Attributs de sécurité et la base de données utilisateur 75


4.2.5 Dépannage de la base de données utilisateur
Appliquez les procédures suivantes pour dépanner la base de données utilisateur.
Problème 1 : les attributs de sécurité d'un utilisateur semblent mal configurés. Si vous
soupçonnez que des informations utilisateur sont configurés de manière incorrecte dans
la base de données utilisateur, exécutez la commande suivante :
# userdbget -u nom_utilisateur
Les attributs configurés pour l'utilisateur nom_utilisateur sont affichés. Si un attribut est
configuré de manière incorrecte, reconfigurez-le. Pour obtenir des instructions, voir
« Configuration des attributs dans la base de données utilisateur ».
Problème 2 : la base de données utilisateur ne fonctionne pas correctement. Si vous
devez vérifier la base de données utilisateur, exécutez la commande suivante :
# userdbck
La commande userdbck identifie et corrige les problèmes dans la base de données
utilisateur.

76 Extensions de sécurité du mode standard


5 Administration de la sécurité de l'accès à distance
HP-UX fournit plusieurs services d'accès distant, tels que le transfert de fichiers, la
connexion à distance, l'exécution de commande à distance, la gestion des adresses IP
et des clients réseau, des protocoles de routage, l'échange de messages, des services
réseau et un mécanisme de sécurité créé par inetd, le super démon Internet.
Ce chapitre traite des sujets suivants :
• Présentation des services Internet et des services d'accès distant (Section 5.1)
• Le démon inetd (Section 5.2)
• Protection contre l'emprunt d'identité avec des wrappers TCP (Section 5.3)
• Secure Internet Services (Section 5.4)
• Contrôle d'un domaine administratif (Section 5.5)
• Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) (Section 5.6)

5.1 Présentation des services Internet et des services d'accès distant


Cette section fournit de brèves descriptions du mécanisme d'authentification et
d'autorisation utilisé par différents services Internet, ainsi que des risques pour la sécurité.
Les services Internet HP-UX sont documentés dans les documents HP-UX Internet Services
Administrator's Guide et Using HP-UX Internet Services disponibles à l'adresse suivante :
http://www.docs.hp.com/en/netcom.html#Internet%20Services
Consultez également le document HP-UX Remote Access Services Administrator's Guide
disponible à l'adresse suivante :
http://www.docs.hp.com/en/netcom.html#Internet%20Services
Les services Internet HP-UX fournissent une authentification par le biais d'une vérification
de mot de passe ou d'une autorisation définie dans un fichier de configuration. Pour une
liste des composants de services Internet et leur mécanisme d'autorisation ou de
vérification d'accès, voir le Tableau 5-1.
Tableau 5-1 Composants des services Internet et vérification, autorisation et authentification
d'accès
Composant des services Mécanisme de vérification, d'autorisation ou d'authentification d'accès
Internet

ftp (transfert de fichiers) Vérification du mot de passe. Peut également utiliser le mécanisme
d'authentification Kerberos défini dans /etc/inetsvcs.conf. Voir la
page de manuel ftp(1).

rcp (copie distante) Entrée dans le fichier $HOME/.rhosts ou /etc/hosts.equiv. Peut


également utiliser le mécanisme d'authentification Kerberos défini dans
/etc/inetsvcs.conf. Voir rcp(1).

5.1 Présentation des services Internet et des services d'accès distant 77


Tableau 5-1 Composants des services Internet et vérification, autorisation et authentification
d'accès (suite)
Composant des services Mécanisme de vérification, d'autorisation ou d'authentification d'accès
Internet

rdist (distribution de Entrée dans le fichier $HOME/.rhosts ou /etc/hosts.equiv. Voir la


fichiers à distance) page de manuel rdist(1).

remsh, rexec (exécution à Entrée dans le fichier $HOME/.rhosts ou /etc/hosts.equiv. Peut


partir d'un shell distant) également utiliser le mécanisme d'authentification Kerberos défini dans
/etc/inetsvcs.conf. Voir la page de manuel remsh(1).

rlogin (connexion à Vérification de mot de passe ou entrée dans le fichier $HOME/.rhosts ou


distance) /etc/hosts.equiv. Peut également utiliser le mécanisme d'authentification
Kerberos défini dans /etc/inetsvcs.conf. Voir la page de manuel
rlogin(1).

telnet (connexion à Vérification du mot de passe. Si l’option TAC User ID est activée par le
distance par le biais du démon telnetd, telnet utilise le fichier $HOME/.rhosts ou /etc/
protocole TELNET) hosts.equiv. Voir les pages de manuel telnet(1) et telnetd(1M).

REMARQUE : Les informations (y compris les mots de passe) sont passés d'un système
à l'autre en texte clair (elles ne sont pas chiffrées). Utilisez les services Internet uniquement
entre des hôtes qui sont bien connus et définis l'un pour l'autre, et au sein d'un réseau
interne privé placé derrière un pare-feu. Lorsque vous communiquez sur un réseau non
approuvé, sécurisez les communications avec IPSec ou Kerberos.
Les services d'accès distant connectent des systèmes distants en réseau. Par défaut, ces
services fonctionnent dans un environnement non sécurisé. Pour qu'ils fonctionnent dans
un environnement sécurisé, vous devez activer l'authentification réseau Kerberos V5.
Dans un environnement non sécurisé, vous devez posséder un nom de connexion et un
mot de passe pour accéder à un système distant, et le nom de connexion n'est pas soumis
à l'authentification ni à l'autorisation. Dans un environnement sécurisé, vous devez avoir
un nom de connexion et un mot de passe. Lorsque vous tentez de vous connecter à un
système distant, le protocole Kerberos vérifie si l'utilisateur est autorisé à accéder au
système distant.

5.1.1 Sécurisation du protocole FTP


Un utilisateur non autorisé peut tenter d'accéder à un système par le biais de la commande
ftp. Voici quelques suggestions afin de limiter les risques :
• Activez la connexion ftp dans /etc/inetd.conf à l'aide de la commande
ftpd -l.
• Vérifiez si les journaux ftp dans /var/adm/syslog/syslog.log et /var/
adm/syslog/xferlog ne mentionnent pas de tentatives d'accès distant
inhabituelles.

78 Administration de la sécurité de l'accès à distance


Voir syslogd(1M) et xferlog(5).
• Refusez l'accès ftp à guest, root et autres comptes en les répertoriant dans le
fichier /etc/ftpd/ftpusers.
Voir ftpusers(4).
• Recherchez et supprimez régulièrement les fichiers ~/.netrc des utilisateurs. Le
fichier .netrc contient des informations de compte, de connexion et de mot de
passe utilisées par le processus de connexion automatique ftp, par la routine de
bibliothèque rexec() et par la commande rexec.
Voir netrc(4).

5.1.2 Sécurisation de l'accès FTP anonyme


Si un fichier $HOME/.rhosts est placé dans /home/ftp, un utilisateur non autorisé
peut utiliser rlogin pour se connecter en tant qu'utilisateur ftp. Le fichier .rhosts
spécifie les hôtes et les utilisateurs qui sont autorisés à accéder à un compte local avec
rcp, remsh ou rlogin sans mot de passe. Pour plus d'informations, voir hosts.equiv(4).
Voici quelques suggestions pour sécuriser l'accès ftp anonyme :
• Assurez-vous que ni /home/ftp, ni aucun de ses enfants n'est accessible en
écriture :
$chmod -R a -w /home/ftp

• Assurez-vous que l'entrée ftp dans /etc/passwd est configurée correctement :


ftp:*:500:100:Anonymous FTP user:/var/ftp:/usr/bin/false

• Assurez-vous que tous les mots de passe dans ~ftp/etc/passwd sont des
astérisques (*) :
$more ~ftp/etc/passwd
root:*:0:3::/:/usr/bin/false daemon:*:1:5::/:/usr/bin/false

• Si vous devez avoir un répertoire pub accessible en écriture, utilisez des autorisations
1733 :
$chmod 1733 /home/ftp/pub

• Utilisez des quotas de disques ou une tâche cron pour contrôler la tâche de /home/
ftp/pub :
0 1 * * * find /home/ftp/pub/* -atime +1 exec rm -rf {} \;

• Vérifiez l'activité ftp anonyme dans /var/adm/syslog/syslog.log :


$tail /var/adm/syslog/syslog.log

5.1 Présentation des services Internet et des services d'accès distant 79


5.1.3 Refus de l’accès avec /etc/ftpd/ftpusers
Le démon inetd exécute le serveur de protocole de transfert de fichiers, ftpd, lorsqu'une
demande de service est reçue sur le port indiqué dans /etc/services. Le serveur
ftpd refuse les connexions distantes aux comptes d'utilisateurs locaux répertoriés dans
/etc/ftpusers. Ces comptes d'utilisateurs portent le nom de comptes restreints. Voir
ftpd(1M), privatepw(1) et services(4).
Dans le fichier /etc/ftpd/ftpusers, chaque nom de compte restreint doit apparaître
tout seul sur une ligne. Vous devez également ajouter les comptes d'utilisateurs avec des
shells de connexion restreints qui sont définis dans /etc/passwd, car ftpd accède
aux comptes locaux sans utiliser leurs shells de connexion.
Si /etc/ftpd/ftpusers n’existe pas, ftpd n’effectue pas de vérification de sécurité.
Pour plus d'informations, voir ftpusers(4).
Sur HP-UX 11i, le démon ftpd est basé sur WU-FTPD. WU-FTPD est l'implémentation
HP du démon ftpd développé à l'Université de Washington. WU-FTPD inclut un contrôle
d'accès renforcé, des capacités de connexion améliorées, la prise en charge des hôtes
virtuels et la prise en charge de RFC1413 (Protocole d'identification). Pour plus
d'informations, consultez le document HP-UX Remote Access Services Administrator's
Guide disponible à l'adresse suivante :
http://www.docs.hp.com/en/netcom.html#Internet%20Services

5.1.4 Autres solutions de sécurité contre l'emprunt d'identité


L'emprunt d'identité consiste à assumer l'identité d'un utilisateur ou d'un hôte valide dans
le but d'accéder au système de manière autorisée. Les adresses IP et les noms d'hôtes
étant vulnérables à l'emprunt d'identité, l'utilisation du fichier de sécurité
/var/adm/inetd.sec pour inetd (le démon Internet) ne constitue pas une solution
de sécurité garantie. Pour plus d'informations sur inetd, voir la Section 5.2.
Les fonctionnalités ou produits de sécurité suivants constituent des solutions de sécurité
alternatives :
• IPFilter est un filtre de paquets TCP/IP utilisable en tant que pare-feu système pour
la protection des serveurs d'applications. Pour plus d'informations, consultez le
document HP-UX IPFilter Administrator's Guide disponible à l'adresse suivante :
http://www.docs.hp.com/en/internet.html#IPFilter
• Les wrappers TCP fournissent un démon wrapper TCP, tcpd, appelé par inetd
afin de renforcer la sécurité. Voir la Section 5.3 et le document HP-UX Internet
Services Administrator's Guide disponible à l'adresse suivante :
http://www.docs.hp.com/en/netcom.html#Internet%20Services
• Les services Internet sécurisés (Secure Internet Services) permettent d'utiliser
l'authentification et l'autorisation Kerberos pour ftp, rcp, remsh , rlogin et
telnet. Au lieu de mots de passe utilisateur, des enregistrements d'authentification
80 Administration de la sécurité de l'accès à distance
Kerberos chiffrés sont transmis sur le réseau. Voir la Section 5.4, Installing and
Administering Internet Services à l'adresse suivante : http://www.docs.hp.com/en/
netcom.html#Internet%20Services, ainsi que le document Configuration Guide for
Kerberos Client Products on HP-UX à l'adresse suivante :
http://www.docs.hp.com/en/internet.html#Kerberos
• IPSec, une suite de protocole de sécurité IP, permet de sécuriser les réseaux IP en
ce qui concerne l'intégrité des données, l'authentification, la confidentialité des
données, la sécurité transparente pour les applications et le chiffrement.
Pour plus d'informations, voir le document HP-UX IPSec Administrator's Guide
disponible à l'adresse suivante :
http://www.docs.hp.com/en/internet.html#IPSec

5.2 Le démon inetd


Le démon Internet, /usr/sbin/inetd, est le serveur maître pour de nombreux services
Internet.
Le démon inetd est généralement démarré automatiquement par le script /sbin/
init.d/inetd dans le cadre du processus d'amorçage.
Le démon inetd assure le contrôle des demandes de connexion pour les services
répertoriés dans le fichier de configuration /etc/inetd.conf et il démarre le serveur
approprié lorsqu'il reçoit une demande. Autrement dit, les utilisateurs se connectent aux
systèmes distants par le biais d'un service Internet, tel que telnet. Le démon inetd
détermine si une connexion telnet à partir de l'hôte est autorisée avant d'établir la
connexion. Les informations d'hôte relatives à l'autorisation ou au refus de l'accès se
trouvent dans le fichier /var/adm/inetd.sec.
Le principe de fonctionnement du démon inetd est le suivant :
1. Il démarre au niveau d'exécution 2 durant l'amorçage du système. (Si le commande
suivante se trouve dans le script de démarrage du système : /sbin/init.d/inetd
start)
2. Il vérifie /etc/inetd.conf afin de déterminer les services à fournir. Pour plus
d'informations, voir ftp(1) et inetd.conf(4).
3. Il vérifie /etc/services afin de déterminer les ports à contrôler pour les services
répertoriés dans /etc/inetd.conf. Le fichier /etc/services mappe les noms
de services aux numéros de ports. Pour plus d'informations, voir services(4).
4. Il reçoit une demande de connexion de service Internet de la part d'un client. Par
exemple, quelqu'un exécute telnet.
5. Il consulte /var/adm/inetd.sec afin de déterminer si le client est autorisé à
accéder au service. Pour plus d'informations, voir inetd.sec(4).
6. Il enregistre la demande dans /var/adm/syslog/syslog.log, si la journalisation
est activée. Pour plus d'informations, voir syslogd(1M).

5.2 Le démon inetd 81


7. Si inetd refuse la connexion pour des raisons de sécurité, la connexion est rompue.
8. Si la demande de connexion est valide, inetd démarre un processus serveur afin
de la gérer. Le processus serveur peut avoir d'autres fonctionnalités de sécurité en
plus de inetd.

5.2.1 Sécurisation d'inetd


Le fichier /etc/inetd.conf est le fichier de configuration inetd, qui répertorie les
services que le démon inetd peut démarrer. Chaque service répertorié dans /etc/
inetd.conf doit également figurer dans le fichier /etc/services. Le fichier /etc/
services mappe les noms de services aux numéros de ports. Chaque numéro de port
est associé à un nom de protocole, tel que tcp ou udp. Chaque entrée pour un protocole
doit avoir une entrée correspondante dans le fichier /etc/protocols.
Les suggestions suivantes permettent d'améliorer la sécurité d'inetd :
• Activez la journalisation inetd dans /etc/rc.config.d/netdaemons. Pour
plus d'informations, voir rc.config.d(4).
• Vérifiez si des modifications ont été apportées à /etc/inetd.conf et /etc/
services. Un utilisateur non autorisé pourrait avoir obtenu un accès root et modifié
les fichiers /etc/services et /etc/inetd.conf. Dans /etc/inetd.conf,
recherchez les noms de services que vous n'utilisez pas. Dans /etc/services,
recherchez les numéros de ports qui ne sont pas inscrits auprès de l'Internet Assigned
Numbers Authority (IANA) sur le site Web à l'adresse http://www.iana.org. Vérifiez
que les numéros de ports répertoriés pour les services Internet correspondent à ceux
inscrits auprès de l'IANA.
• Insérez des marques de commentaires pour les services inutiles, tels que finger,
dans /etc/inetd.conf. La commande finger affiche des informations utilisateur
sans nécessiter de mot de passe.
• Insérez des marques de commentaires pour les services RPC (Remote Procedure
Calls) dans /etc/inetd.conf.
• Insérez des marques de commentaires pour les services "internes courants" inetd
dans /etc/inetd.conf afin d'éviter les attaques de type "refus de service". Un
utilisateur malveillant pourrait surcharger inetd avec des demandes chargen
(générateur de caractères). Pour plus d'informations, voir inetd(1M) et inetd.conf(4).

5.2.1.1 Refus ou autorisation de l'accès à l'aide de /var/adm/inetd.sec


En plus du fichier /etc/inetd.conf, vous pouvez configurer un fichier de sécurité
optionnel nommé /var/adm/inetd.sec afin de restreindre l'accès aux services
démarrés par inetd. Le fichier /var/adm/inetd.sec répertorie les hôtes pour lesquels
l'accès à chaque service est autorisé ou refusé. Pour plus d'informations, voir inetd.conf(4).

82 Administration de la sécurité de l'accès à distance


Par exemple :
login allow 10.3-5 192.34.56.5 ahost anetwork
login deny 192.54.24.5 cory.example.edu.testlan

5.3 Protection contre l'emprunt d'identité avec des wrappers TCP


Les wrappers TCP (Transmission Control Protocol) fournissent une sécurité accrue pour
les services démarrés par inetd. Ils constituent une aternative à l'utilisation de /etc/
inetd.sec et fournissent une protection contre l'emprunt d'identité (nom d'hôte et
adresse d'hôte). L'emprunt d'identité consiste à assumer l'identité d'un utilisateur ou d'un
hôte valide dans le but d'accéder au système de manière autorisée.
Pour empêcher l'emprunt d'identité, les wrappers TCP utilisent des listes de contrôle
d'accès (ACL, Access Control Lists). Les listes ACL sont des listes de systèmes dans les
fichiers /etc/hosts.allow et /etc/hosts.deny. Les wrappers TCP fournissent une
protection contre l'emprunt d'adresse IP lorsqu'ils sont configurés de façon à vérifier le
mappage nom d'hôte-à-adresse IP et à rejeter les paquets avec routage de source IP.
En revanche, ils ne procurent pas d'authentification cryptographique ni de chiffrement
des données. Comme avec inetd, les informations sont transmises en texte clair.
Les wrappers TCP font partie du logiciel de services Internet HP-UX. Pour plus
d'informations, consultez le document HP-UX Internet Services Administrator's Guide
disponible à l'adresse suivante : http://www.docs.hp.com/en/
netcom.html#Internet%20Services et les pages de manuel suivantes :
tcpd(1M), tcpdmatch(1), tcpdchk(1), tcpd.conf(4), hosts_access(3), hosts_access(5) et
hosts_options(5).
Lorsque vous activez les wrappers TCP, inetd exécute un démon de wrapper TCP,
nommé tcpd, au lieu d'exécuter directement le service demandé. Le principe de
fonctionnement des wrappers TCP est le suivant :
1. Les clients envoient des demandes de connexion ordinaires à inetd, par exemple
des demandes telnet.
2. Au lieu d'appeler le processus serveur, inetd appelle le démon de wrapper TCP
(tcpd).
3. Celui-ci détermine la validité de la demande de connexion du client. Le démon tcpd
enregistre la demande dans le journal et vérifie les fichiers de contrôle d'accès
(/etc/hosts.allow et /etc/hosts.deny).
4. Si le client est valide, tcpd appelle le processus serveur approprié.
5. Le processus serveur traite la demande du client (par exemple, la connexion telnet
est établie).

5.3 Protection contre l'emprunt d'identité avec des wrappers TCP 83


5.3.1 Fonctionnalités supplémentaires des wrappers TCP
Vous pouvez également définir des paramètres de configuration dans le fichier de
configuration /etc/tcpd.conf, tels que le comportement de connexion, les recherches
de noms d'utilisateurs et le comportement d'échec de recherche inversée. Le démon tcpd
lit ce fichier de configuration afin de rechercher les paramètres de configuration durant
l'exécution.
Vous pouvez configurer les fichiers /etc/hosts.allow et /etc/hosts.deny pour
d'autres foncitonnalités de sécurité, telles que les paramètres d'interceptions et les
messages de bannières.
La fonctionnalité de paramètres d'interceptions des wrappers TCP vous permet de
déclencher une action appropriée sur l'hôte en fonction du nombre de tentatives de
connexion refusées à partir d'un hôte distant.
La fonctionnalité de messages de bannières provoque l'envoi d'un message au client
lorsqu'une règle de liste ACL est incluse dans un fichier de contrôle d'accès.

5.3.2 Les wrappers TCP ne fonctionnent pas avec les services RPC
Les wrappers TCP ne fonctionnent pas avec les services RPC (Remote Procedure Calls)
sur TPC. Ces services sont inscrits en tant que rpc ou tcp dans le fichier /etc/
inetd.conf. Le seul service important affecté par cette limitation est rexd, qui est
utilisé par la commande on.

5.4 Secure Internet Services


Secure Internet Services (SIS) est un mécanisme à activation optionnelle qui incorpore
l'authentification et l'autorisation Kerberos V5 pour les services d'accès distant : ftp,
rcp, remsh, rlogin et telnet.
Secure Internet Services fait partie du produit HP-UX Internet Services, qui est décrit dans
le document Using HP-UX Internet Services disponible à l'adresse
http://www.docs.hp.com/en/netcom.html#Internet%20Services et dans les pages de
manuel suivantes :
sis(5), kinit(1), klist(1), kdestroy(1M), krbval(1M), k5dcelogin(1M), inetsvcs_sec(1M) et
inetsvcs(4).
Lorsque vous exécutez des commandes SIS, la sécurité est améliorée car vous n'êtes plus
obligé de transmettre de mot de passe sous forme lisible par le biais du réseau.

REMARQUE : Les bibliothèques SIS ne chiffrent pas la session au-delà de ce qui est
nécessaire pour vous autoriser ou pour authentifier le service. Par conséquent, ces services
n'offrent pas de services de vérification de l’intégrité ou de chiffrement des données ou
des services distants. Pour chiffrer les données, utilisez OpenSSL. Pour plus d'informations,
reportez-vous au document OpenSSL Release Notes : http://docs.hp.com/en/
internet.html#OpenSSL.

84 Administration de la sécurité de l'accès à distance


Lorsque deux systèmes opèrent dans un environnement sécurisé par Kerberos V5, les
services SIS garantissent qu’un hôte local et un hôte distant peuvent s’identifier
mutuellement de manière sûre et protégée, et que l’utilisateur est autorisé à accéder au
compte distant.
Pour ftp/ftpd, rlogin/rlogind et telnet/telnetd, le mécanisme
d'authentification Kerberos V5 envoie des tickets chiffrés au lieu d'un mot de passe sur
le réseau afin de vérifier et d'identifier l'utilisateur. Pour rcp/remshd et remsh/remshd,
les versions sécurisées de ces services garantissent que l’utilisateur est autorisé à accéder
au compte distant.

5.5 Contrôle d'un domaine administratif


Tous les programmes d’administration réseau doivent être la propriété d’un compte
protégé et propre au réseau, tel que uucp ou nso, ou d'un démon, et non de root.
Le domaine administratif est un groupe de systèmes connectés au réseau par les services
réseau qui permettent aux utilisateurs d’avoir accès les uns aux autres sans vérification
des mots de passe. L’emploi d’un domaine administratif suppose que les utilisateurs du
système ont déjà été contrôlés par leurs système hôte. Pour identifier et contrôler un
domaine administratif, appliquez la procédure suivante :
1. Affichez les nœuds vers lesquels vous exportez des systèmes de fichiers dans /etc/
exports. Le fichier /etc/exports contient des entrées d'un nom de chemin de
système de fichiers et une liste de systèmes ou groupes de systèmes qui sont autorisés
à accéder au système de fichiers. Les entrées du fichier /etc/exports peuvent
contenir des noms de groupes de systèmes. Vous pouvez connaître le nom des
systèmes d’un groupe donné en consultant /etc/netgroup.
2. Affichez les nœuds qui possèdent des bases de données de mots de passe
équivalents dans /etc/hosts.equiv.
3. Vérifiez qu’aucun nœud du domaine administratif ne confère ses privilèges à des
nœuds qui n’en font pas partie. Répétez les étapes 2 et 3 pour chaque nœud du
domaine.
4. Contrôlez la sécurité de root et la sécurité locale sur chaque nœud du domaine
administratif. Un utilisateur qui possède des privilèges de superutilisateur sur une
machine du domaine peut acquérir ces mêmes privilèges sur toutes les autres
machines du domaine.
5. Vérifiez la cohérence du nom d’utilisateur, de l'uid et du gid parmi les fichiers de
mots de passe du domaine administratif.
6. Vérifiez la cohérence des fichiers de groupe de tous les nœuds du domaine
administratif. Par exemple, pour vérifier la cohérence avec les systèmes hq et mfg,
si le système de fichiers racine du système mfg est monté à distance dans hq en
tant que /nfs/mfg/, entrez la commande diff suivante :
$diff /etc/group /nfs/mfg/etc/group

5.5 Contrôle d'un domaine administratif 85


Si des différences apparaissent, les deux fichiers /etc/group sont incohérents
alors qu'ils ne devraient pas l'être.

5.5.1 Vérification des paramètres d'autorisations sur les fichiers de contrôle réseau
Les fichiers de contrôle réseau dans le répertoire /etc sont des cibles de sécurité car
ils fournissent un accès au réseau lui-même. Les fichiers de contrôle réseau ne doivent
jamais être accessibles en écriture au public.
Les modes, les propriétaires et les groupes doivent être définis soigneusement sur tous
les fichiers systèmes. Vérifiez régulièrement si ces fichiers ont été modifiés et corrigez
toute modification.
Les fichiers de contrôle réseau les plus couramment utilisés sont les suivants :
• /etc/exports
Liste de répertoires de fichiers qui peuvent être exportés vers des clients NFS. Pour
plus d'informations, voir exports(4)
• /etc/hosts
Liste d'hôtes réseau et leurs adresses IP. Pour plus d'informations, voir hosts(4).
• /etc/hosts.equiv
Liste d'hôtes distants qui disposent d'un accès et qui équivalent à l'hôte local. Pour
plus d'informations, voir hosts.equiv(4).
• /etc/inetd.conf
Fichier de configuration des services Internet. Pour plus d'informations, voir
inetd.conf(4).
• /etc/netgroup
Liste de groupes à l'échelle du réseau. Pour plus d'informations, voir netgroup(4).
• /etc/networks
Liste de noms et de numéros de réseaux. Pour plus d'informations, voir networks(4).
• /etc/protocols
Liste de noms et de numéros de protocoles. Pour plus d'informations, voir protocols(4).
• /etc/services
Liste de noms de services officiels et d'alias avec le numéro de port et le protocole
utilisés par les services. Pour plus d'informations, voir services(4).

86 Administration de la sécurité de l'accès à distance


5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH)
HP-UX Secure Shell est basé sur le produit OpenSSH, un produit SSH Open Source
(http://www.openssh.org). Il permet d'établir une connexion sécurisée entre un client
et un hôte distant sur un réseau autrement non sécurisé. Voici les principaux attributs de
cette connexion sécurisée :
• Authentification renforcée pour le client et l'hôte distant.
• Chiffrement renforcé et cryptographie à clé publique pour les communications entre
un client et l'hôte distant.
• Canal sécurisé pour l'exécution de commandes sur l'hôte distant par le client.
HP-UX Secure Shell constitue une solution de remplacement sécurisée pour des fonctions
et commandes courantes telles que telnet, remsh, rlogin, ftp et rcp.
Pour la documentation HP-UX Secure Shell, voir la page de manuel ssh(1) pour le client
ssh et la page de manuel sshd(8) pour le serveur sshd. Ces deux pages de manuel
contiennent des références aux autres pages de manuel HP-UX Secure Shell fournies avec
le produit.
Voir également le document HP-UX Secure Shell Release Notes à l'adresse :
http://www.docs.hp.com/en/internet.html#Secure%20Shell

5.6.1 Principales fonctionnalités de sécurité de HP-UX Secure Shell


Les principales fonctionnalités de sécurité de HP-UX Secure Shell sont les suivantes :
• Chiffrement renforcé
Toutes les communications entre le client et l'hôte distant sont chiffrées à l'aide
d'algorithmes de chiffrement non brevetés, tels que Blowfish, 3DES, AES et arcfour.
Les informations d'authentification, telles que les mots de passe, ne sont jamais
envoyées sur le réseau en texte clair. Le chiffrement, allié à une cryptographie
renforcée à clé publique, assure également une protection contre les attaques de
sécurité potentielles.
• Authentification renforcée
HP-UX Secure Shell prend en charge un riche ensemble de méthodes
d'authentification entre le client et le serveur. L'authentification peut être
bidirectionnelle : le serveur authentifie le client, et le client authentifie le serveur.
Cela permet de protéger la session contre un large évantail de problèmes de sécurité.
Les méthodes d'authentification prises en charge sont décrites dans Section 5.6.5.
• Transfert de port
La redirection des connexions TCP/IP entre un client et un hôte distant (et inversement)
porte le nom de transfert de port ou tunneling SSH. HP-UX Secure Shell prend en
charge le transfert de port. Par exemple, le trafic ftp entre un client et un serveur
(ou le trafic de messagerie entre un client de messagerie et un serveur POP/IMAP)
5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) 87
peut être redirigé à l'aide du transfert de port. Au lieu que le client communique
directement avec son serveur, le trafic peut être redirigé vers un serveur sshd par
le biais d'un canal sécurisé, et le serveur sshd peut ensuite transférer le trafic vers
un port désigné sur la machine serveur.
• Intégration avec les fonctionnalités de sécurité HP-UX sous-jacentes.
Le produit HP-UX Secure Shell est intégré à d'importantes fonctionnalités de sécurité
HP-UX. Pour plus d'informations, voir la Section 5.6.7.

5.6.2 Composants logiciels de HP-UX Secure Shell


Le logiciel HP-UX Secure Shell est constitué d'un ensemble de composants client et serveur.
Voir Tableau 5-2.
Tableau 5-2 Composants logiciels de HP-UX Secure Shell
Composant Description Emplacement Composants non
sécurisés équivalents

ssh Le client Secure Shell est un remplacement Client remsh, telnet,


sécurisé pour telnet et remsh ; il rlogin
s'apparente à remsh avec des fonctionnalités
de sécurité

slogin Liaison symboliqe vers ssh Client remsh, telnet,


rlogin

scp Client de copie sécurisé et serveur de copie Client et serveur rcp


sécurisé

sftp Client ftp sécurisé Client ftp

sshd Démon de shell sécurisé Serveur remshd, telnetd,


rlogind

sftp-server Démon ftp sécurisé Serveur ftpd

ssh-rand-helper Générateur de nombres aléatoires, utilisé Serveur Non applicable


lorsque sshd est incapable de trouver /dev/
random ou /dev/urandom sur le serveur.
HP-UX est fourni avec un générateur de
nombres aléatoires résidant dans le noyau,
rng. Si rng est déconfiguré, sshd utilise
prngd.

ssh-agent Outil pour la connexion "automatique" basée Client et serveur Mécanisme de fichier
sur clé du client au serveur rhosts

ssh-add Outil pour la création de paires de clés du Client Non applicable


client connu sous le nom de ssh-agent

ssh-keygen Outil de génération de paires de clés pour Client Non applicable


l'authentification par clé publique

88 Administration de la sécurité de l'accès à distance


Tableau 5-2 Composants logiciels de HP-UX Secure Shell (suite)
Composant Description Emplacement Composants non
sécurisés équivalents

ssh-keyscan Outil permettant à un client de recueillir les Client Non applicable


clés publiques pour un ensemble d'hôtes
exécutant le démon Secure Shell (sshd)

ssh-keysign Outils permettant de générer la signature Client Non applicable


numérique requise durant l'authentification
basée sur l'hôte, utilisé par ssh() pour accéder
aux clés d'hôte local

5.6.3 Exécution de HP-UX Secure Shell


Avant d'exécuter des clients Secure Shell répertoriés dans le Tableau 5-2, démarrez le
démon de serveur Secure Shell, sshd. Le démon sshd obtient ses valeurs de configuration
initiales à partir du fichier sshd_config, qui se trouve dans le répertoire /opt/ssh/
etc sur le système serveur. L'une des directives de configuration les plus importantes
dans sshd_config est l'ensemble de méthodes d'authentification prises en charge par
le démon sshd. Pour plus d’informations, voir la Section 5.6.5.

5.6.3.1 Exécution du client ssh


L'application cliente ssh établit une connexion socket avec le serveur sshd. Le serveur
sshd crée un processus sshd enfant. Cet enfant hérite du socket de connexion et
authentifie le client conformément à la méthode d'authentification sélectionnée. La session
cliente sécurisée n'est établie qu'une fois l'authentification réussie.
Une fois la session établie, toutes les communications ultérieures ont lieu directement
entre le client et ce processus sshd enfant. Le client peut maintenant exécuter des
commandes distantes sur le serveur. Chaque demande de commande envoyée par le
client ssh fait en sorte que le processus sshd enfant crée un processus de shell pour
exécuter cette commande.
En résumé, une session client-serveur ssh en cours est constituée des processus suivants :
• Sur chaque système client connecté au serveur sshd, il y a un processus client ssh
pour chaque connexion ssh actuellement établie à partir de ce système client.
• Sur le système serveur, il y a un processus sshd parent et autant de processus sshd
enfants qu'il y a de clients ssh connectés simultanément au serveur. Le nombre de
processus sshd enfants exécutés sur le serveur double si la séparation des privilèges
est activée sur le serveur. Voir la Section 5.6.4.
• Sur le système serveur, pour chaque demande d'exécution de commande provenant
d'un client ssh, le processus sshd enfant correspondant crée un processus de shell
et utilise un canal UNIX pour communiquer la demande de commande à ce processus
de shell. Celui-ci retourne les résultats de l'exécution de commande au processus

5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) 89


sshd enfant par le biais du canal UNIX et se termine une fois l'exécution de la
commande achevée.

5.6.3.2 Exécution du client sftp


L'application cliente sftp fait en sorte que le processus client sftp crée le client ssh,
puis communique avec lui par le biais d'un canal UNIX. Le client ssh établit ensuite une
connexion socket avec le serveur sshd.
Le reste de l'interaction serveur est semblable au cas du client ssh décrit dans la
Section 5.6.3.1. La différence réside dans le fait qu'au lieu de créer un shell pour exécuter
la commande distante, le processus sshd enfant crée le processus sftp-server. Toutes
les communications ultérieures durant cette session sftp ont lieu parmi les processus
suivants :
• Le client sftp et le client ssh, sur le système client, par le biais d'un canal UNIX.
• Le client ssh et le processus sshd enfant, par le biais du socket de connexion établi.
• Le processus sshd enfant et le processus serveur sftp, par le biais d'un canal
UNIX.

5.6.3.3 Exécution du client scp


Le cas du client scp est presque identique à celui de l'exécution du client sftp. La
différence réside dans le fait qu'au lieu de créer le processus sftp-server, le processus
sshd enfant crée le processus scp. Toutes les communications ultérieures durant la
session scp ont lieu parmi les processus suivants :
• Le client scp et le client ssh, sur le système client, par le biais d'un canal UNIX.
• Le client ssh et le processus sshd enfant, par le biais du socket de connexion établi.
• Le processus sshd enfant et le processus serveur scp, par le biais d'un canal UNIX.

5.6.4 Séparation des privilèges HP-UX Secure Shell


HP-UX Secure Shell offre un niveau de sécurité accrue grâce à la fonctionnalité de
séparation des privilèges. Comme décrit à la Section 5.6.3, le processus sshd parent
et le processus sshd enfant s'exécutent en tant qu'utilisateurs privilégiés. Lorsque la
séparation des privilèges est activée, un processus supplémentaire est créé par connexion
utilisateur.
Lorsqu'un client ssh se connecte à un serveur sshd configuré pour la séparation des
privilèges, le processus sshd parent crée un processus sshd enfant privilégié. Lorsque
la séparation des privilèges est activée, le processus sshd enfant crée un processus
sshd enfant supplémentaire non privilégié. Ce processus sshd enfant non privilégié
hérite ensuite du socket de connexion. Toutes les communications ultérieures entre le
client et le serveur ont lieu avec ce processus sshd enfant non privilégié.

90 Administration de la sécurité de l'accès à distance


La plupart des demandes d'exécution de commande en provenance du client ne sont
pas privilégiées et sont gérées par un shell créé sous ce processus sshd enfant non
privilégié. Lorsque le processus sshd enfant non privilégié a besoin d'exécuter une
fonction privilégiée, il communique avec son processus sshd parent privilégié par le
biais d'un canal UNIX.
La séparation des privilèges aide à protéger le système contre les dommages éventuels
provoqués par un intrus. Par exemple, si une attaque de débordement de tampon a lieu
durant l'exécution d'une commande de shell, le contrôle se trouve dans le processus non
privilégié, ce qui réduit les risques pour la sécurité.

REMARQUE : La séparation des privilèges est la configuration par défaut pour HP-UX
Secure Shell. Vous pouvez la désactiver en définissant UsePrivilegeSeparation
NO dans le fichier sshd_config. Étant donné le risque potentiel pour la sécurité, la
séparation des privilèges ne doit être désactivée qu'après mûre réflexion.

5.6.5 Authentification HP-UX Secure Shell


HP-UX Secure Shell prend en charge les méthodes d'authentification suivantes :
• GSS-API (authentification client Kerberos)
• Authentification par clé publique
• Authentification basée sur l'hôte
• Authentification par mot de passe
Lorsqu'un client se connecte avec un démon sshd distant, il sélectionne la méthode
d'authentification souhaitée (l'une de celles mentionnées ci-dessus) et présente les
informations d'identification appropriées dans le cadre de la demande de connexion
ou répond à une invite envoyée par le serveur. Toutes les méthodes d'authentification
fonctionnent de cette manière.
Le serveur exige du client qu'il fournisse la clé, le mot de passe ou les informations
d'identification requises afin d'établir une connexion.
Vous pouvez choisir de faire en sorte que l'instance sshd prenne en charge uniquement
un sous-ensemble des méthodes d'authentification prises en charge en fonction de vos
exigences de sécurité.
Bien que HP-UX Secure Shell prenne en charge toutes les méthodes d'authentification
mentionnées plus haut, les administrateurs système peuvent limiter les méthodes
d'authentification offertes par une instance sshd en fonction des exigences de séucrité
spécifiques à leur environnement. Par exemple, un environnement HP-UX Secure Shell
peut exiger des clients qu'ils s'authentifient avec la méthode par clé publique ou la
méthode Kerberos. Vous pouvez dans ce cas désactiver les autres méthodes. L'activation
et la désactivation des méthodes d'authentification prises en charge s'effectuent par le
biais des directives de configuration spécifiées dans le fichier sshd_config.

5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) 91


Lorsqu'une demande de connexion cliente ssh est effectuée, le serveur répond d'abord
avec sa liste de méthodes d'authentification prises en charge. Cette liste représente les
méthodes d'authentification prises en charge par le serveur sshd et l'ordre dans lequel
ces méthodes sont tentées. Le client peut omettre une ou plusieurs de ces méthodes
d'authentification. Il peut également chenger l'ordre dans lequel les méthodes sont tentées.
Ces opérations s'effectuent par le biais d'une directive de configuration dans le fichier
de configuration client, /opt/ssh/etc/ssh_config.
Les méthodes d'authentification prises en charge par HP-UX Secure Shell sont décrites
dans les sections suivantes :

5.6.5.1 GSS-API
Avec l'interface de programmation d'application (API) Generic Security Service (GSS-API),
une authentification client Kerberos, le client doit obtenir des informations d'identification
Kerberos au préalable et un fichier de configuration Kerberos doit être présent dans le
répertoire client approprié. Lorsqu'un client se connecte avec un démon sshd, il présente
ses informations d'identification au moment de la connexion. Le serveur établit une
correspondance entre ces informations d'identification et sa copie des informations
d'identification pour cet utilisateur spécifique. Il peut également établir la légitimité de
l'environnement hôte du client, le cas échéant.
Pour plus d'informations, voir les pages de manuel gssapi(5), kerberos(9) et la
documentation de l'administrateur Kerberos administrator à l'adresse suivante :
http://www.docs.hp.com/en/internet.html#Kerberos.

5.6.5.2 Authentification par clé publique


Pour l'authentification par clé publique, l'environnement Secure Shell doit avoir la
configuration suivante :
• Le client et le serveur doivent avoir une paire de clés. Chaque client ssh et chaque
serveur sshd doit générer pour lui-même une paire de clés à l'aide de l'utilitaire
ssh-keygen.
• Le client doit divulguer sa clé publique à tous les serveurs sshd avec lesquels il doit
communiquer. Pour cela, vous devez copier la clé publique du client dans un
répertoire prédéterminé sur chaque serveur concerné.
• Le client doit obtenir la clé publique de chaque serveur avec lequel il doit
communiquer. Le client obtient les clé publiques à l'aide de l'utilitaire ssh-keyscan.
Une fois cette configuration effectuée, les clients ssh qui se connectent aux serveurs
sshd sont authentifiés à l'aide de clés publiques et privées. Pour plus d'informations sur
la cryptographie à clé publique, voir cryptographie à clé publique.
HP-UX Secure Shell propose une fonctionnalité supplémentaire pour l'optimisation de
l'authentification par clé publique. Pour certains environnements, vous souhaiterez peut-être
ne pas être obligé de répondre tout le temps aux invites de mot de passe. Vous pouvez
pour cela utiliser une combinaison des processus ssh-agent et ssh-add, tous deux
92 Administration de la sécurité de l'accès à distance
exécutés sur la machine cliente. Le client inscrit ses informations de clés auprès du
processus ssh-agent par le biais de l'utilitaire ssh-add. Ensuite, l'authentification
par clé publique entre le client et le serveur est effectuée par ssh-agent sans qu'il y
ait d'interaction entre le démon sshd et le client.

5.6.5.3 Authentification par clé publique et basée sur l'hôte


L'authentification par clé publique et basée sur l'hôte est une extension de la méthode
d'authentification par clé publique qui offre davantage de sécurité. Outre l'existence de
paires de clés pour le client et le serveur, cette méthode permet aux environnements
clients de limiter les serveurs avec lesquels ils communiqueront. Vous pouvez implémenter
cette restriction en créant un fichier .rhosts dans le répertoire personnel du client.

5.6.5.4 Authentification par mot de passe


La méthode d'authentification par mot de passe repose sur l'existence d'une connexion
à ID utilisateur uniuque et basée sur mot de passe. Cette connexion peut être basée sur
la connexion de l'utilisateur spécifiée dans /etc/passwd ou être basée sur des modules
PAM.
HP-UX Secure Shell est intégré totalement aux modules PAM disponibles sur le système
serveur. Le fichier /opt/ssh/etc/sshd_config contient à cet effet une directive de
configuration UsePAM. Si elle a la valeur YES, toute demande d'authentification par
mot de passe provenant du client fait en sorte que sshd examine le fichier de
configuration PAM (/etc/pam.conf). L'authentification par mot de passe est alors
effectuée par le biais des modules PAM configurés, dans l'ordre, jusqu'à ce qu'elle
réussisse. Pour plus d'informations sur l'authentification PAM, voir pam.conf(4).
Pour ignorer l'authentification PAM, affectez la valeur NO à la directive UsePAM. Dans
ce cas, toute demande d'authentification provenant du client fait en sorte que sshd
ignore les paramètres de configuration PAM sur le serveur. Au lieu de cela, sshd obtient
les informations de mot de passe utilisateur en appelant directement l'appel de
bibliothèque getpwnam().
HP-UX Secure Shell a été testé avec PAM_UNIX, PAM_LDAP et PAM_KERBEROS. Il devrait
également fonctionner avec d'autres modules PAM, tels que PAM_DCE et PAM_NTLM.

5.6.6 Protocoles de communication


Les utilisateurs de HP-UX Secure Shell peuvent se connecter à un démon sshd distant
par le biais du protocole SSH-1 ou SSH-2. Nous vous recommandons vivement d'utiliser
SSH-2 plutôt que SSH-1, car il offre davantage de sécurité.

5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) 93


5.6.7 HP-UX Secure Shell et le système HP-UX
HP-UX Secure Shell n'est en réalité pas un vrai shell. Il s'agit d'un mécanisme de création
d'une connexion sécurisée entre un client et un hôte distant afin d'exécuter des sessions
de shell distantes sur l'hôte de manière sécurisée. Pour obtenir la connexion sécurisée,
HP-UX Secure Shell effectue la plupart des tâches d'authentification et de création de
session lui-même. Voici une liste partielle des fonctionnalités utilisées par HP-UX Secure
Shell :
• Enregistrement des tentatives login
Comme telnet ou remsh, HP-UX Secure Shell enregistre les sessions qui ont réussi
ou échoué, respectivement dans les fichiers /var/adm/wtmp et /var/adm/btmp.
Pour plus d'informations, voir utmp(4).
• Modules PAM
Comme décrit à la Section 5.6.5, HP-UX Secure Shell peut utiliser l'authentification
PAM pour les sessions clientes. Lorsque l'authentification PAM est sélectionnée,
HP-UX Secure Shell utilise le fichier /etc/pam.conf et appelle le module PAM
approprié pour l'authentification. Pour plus d'informations sur le fichier /etc/
pam.conf, voir pam.conf(4).

• Utilisation du fichier /etc/default/security


Il s'agit d'un fichier de configuration à l'échelle du système qui contient des attributs
définissant le comportement des connexions, des mots de passe et autres
configurations de sécurité. HP-UX Secure Shell autorise l'utilisation de ces attributs
avec certaines restrictions, qui sont expliquées dans le fichier /opt/ssh/
README.hp pour HP-UX Secure Shell.
Vous trouverez des informations supplémentaires sur le fichier /etc/default/
security dans la page de manuel security(4).

• Mots de passe fantômes


HP-UX Secure Shell est intégré à la fonctionnalité de mot de passe fantôme de HP-UX.
Pour plus d'informations, voir shadow(4).
• Journal système de contrôle (syslog)
HP-UX Secure Shell utilise syslog pour écrire des messages importants. Pour plus
d'informations, voir syslog(3C) et syslogd(1M).
• Journalisation de l'audit
La journalisation de l'audit (en mode protégé) est implémentée dans le propre code
de HP-UX Secure Shell. Pour plus d'informations, voir audit(5).

94 Administration de la sécurité de l'accès à distance


5.6.8 Technologies associées
HP-UX Secure Shell a été testé avec les technologies suivantes :
• Kerberos 5 et GSS-API
• OpenSSL
• IPv6
• Wrappers TCP
• PAM (PAM_UNIX, PAM_Kerberos, PAM_LDAP)
• HP-UX Strong Random Number Generator

5.6.9 Exigences relatives à Strong Random Number Generator


Comme tous les produits cryptographiques basés sur des clés, HP-UX Secure Shell requiert
un générateur de nombres aléatoires. Il recherche les fichiers spéciaux de périphériques
HP-UX Strong Random Number Generator, /dev/urandom and /dev/random, et
utilise le premier fichier spécial de périphérique qu'il trouve. Si ces deux fichiers n'existent
pas sur le système, HP-UX Secure Shell utilise son propre générateur de nombres aléatoires
interne, ssh-rand-helper.
HP-UX Strong Random Number Generator améliore les performances et l'entropie (une
mesure du caractère aléatoire, et donc de la sécurité des clés générées) de HP-UX Secure
Shell. Il génère des nombres réellement aléatoires et non reproductibles. Il est vivement
recommandé d'utiliser HP-UX Strong Random Number Generator avec HP-UX Secure
Shell.
HP-UX Strong Random Number Generator est disponible par défaut. Pour plus
d'informations, voir random(7).

5.6.10 Prise en charge des wrappers TCP


Le démon HP-UX Secure Shell, sshd, est lié à la bibliothèque d'archives, libwrap.a,
afin de prendre en charge les wrappers TCP. Voir aussi la Section 5.3.

5.6.11 Prison de répertoires chroot


chroot est une prison de répertoires. Elle démarre une application dans un répertoire
spécifié et resteint les utilisateurs à l'accès à ce répertoire et aux répertoires situés
au-dessous. Elle empêche les utilisateurs de changer de répertoire et d'accéder à ceux
situés au-dessus du répertoire spécifié. Elle a pour but de restreindre l'accès aux fichiers
et aux répertoires aux utilisateurs de cette application pendant qu'ils l'utilisent.
Vous devez activer chroot pour une application. Vous devez créer de nouveaux
répertoires et copier l'ensemble de fichiers approprié dans ces nouveaux répertoires.
Vous pouvez éventuellement configurer ssh, scp et sftp avec un répertoire chroot.

5.6 Sessions distantes sécurisées avec HP-UX Secure Shell (SSH) 95


Le fichier README de HP-UX Secure Shell situé dans /opt/ssh/README.hp décrit la
fonctionnalité chroot, le script de configuration chroot et les fichiers spécifiques copiés
par ce script afin d'activer ssh, sftp et scp pour un environnement chroot. Voir
également chroot(1M).
Le script de configuration chroot se trouve dans le fichier /opt/ssh/utils/
ssh_chroot_setup.sh, qui fait partie du produit logiciel HP-UX Secure Shell (Secure
Shell 4.30.004/005).

96 Administration de la sécurité de l'accès à distance


Partie II Protection des données
La protection des données offerte par HP-UX 11i se présente sous plusieurs formes : protection
des données en transit, en cours d'utilisation et au repos. En utilisant les fonctionnalités de sécurité
conçues pour protéger les données dans leurs trois formes, les clients HP-UX 11i peuvent limiter
les risques non seulement en termes de perte de données, mais également en termes de confiance
et satisfaction de la clientèle. Cette section traite des sujets suivants :
• Sécurité du système de fichiers (Chapitre 6)
• Compartiments (Chapitre 7)
• Privilèges à granularité élevée (Chapitre 8)

97
98
6 Sécurité du système de fichiers
Ce chapitre traite de la sécurité du système de fichiers. Avant de lire ce chapitre, vous
devez vous familiariser avec le concept des fichiers et systèmes de fichiers.
Les données étant stockées dans des fichiers, il est important de savoir comment les
protéger. Ce chapitre traite des sujets suivants :
• Contrôle de l’accès aux fichiers (Section 6.1)
• Définition des listes de contrôle d’accès (Section 6.2)
• Utilisation de listes ACL HFS (Section 6.3)
• Utilisation de listes ACL JFS (Section 6.4)
• Comparaison des listes ACL JFS et HFS (Section 6.5)
• Listes ACL et NFS (Section 6.6)
• Considérations de sécurité relatives aux fichiers spéciaux de périphériques /dev
(Section 6.7)
• Protection des partitions de disques et des volumes logiques (Section 6.8)
• Recommandations de sécurité concernant le montage et le démontage des systèmes
de fichiers (Section 6.9)
• Contrôle de la sécurité des fichiers sur un réseau (Section 6.10)

6.1 Contrôle de l’accès aux fichiers


L’accès à un fichier donné est déterminé par les groupes de travail, les autorisations
d’accès aux fichiers, les appartenances de fichiers et les règles de compartiment. Les
règles d'accès aux fichiers les plus simples sont les autorisations de fichiers UNIX standard.
Vous pouvez répartir les utilisateurs en groupes de sorte que les fichiers possédés par
un groupe puissent être partagés au sein du groupe et protégés contre tout accès extérieur.
Les autorisations de fichiers UNIX traditionnelles sont affichées à l'aide de la commande
ls avec l'indicateur -l. Les autorisations indiquent le type d'accès (c'est-à-dire la capacité
à lire, écrire et exécuter) qui est accordé au propriétaire et aux groupes sur votre système.
Les protections de fichiers UNIX traditionnelles permettent de contrôler dans une certaine
mesure qui a accès à vos fichiers et répertoires, mais elles ne vous permettent pas de
définir l'accès pour des utilisateurs et des groupes spécifiques au-delà de l'utilisateur
propriétaire et du groupe propriétaire. Voici un bref aperçu des autorisations de fichiers
UNIX.
Chaque fichier et chaque répertoire est associé à neuf autorisations. Les fichiers et les
répertoires ont les trois types d'autorisations suivants :

6.1 Contrôle de l’accès aux fichiers 99


• r (lecture)
• w (écriture)
• x (exécution)
Ces trois autorisations sont applicables à chacune des trois classes d'utilisateurs suivantes :
• u (utilisateur/propriétaire)
• g (groupe)
• o (tous les autres)
L'autorisation r permet aux utilisateurs d'afficher ou d'imprimer le fichier. L'autorisation
w permet aux utilisateurs d'écrire (modifier) le fichier. L'autorisation x permet aux
utilisateurs d'exécuter le fichier ou d'effectuer des recherches dans des répertoires.
La Figure 6-1 illustre les champs d'autorisations traditionnels.

Figure 6-1 Champs d'autorisations de fichiers et de répertoires


autorisation

propriétaire groupe autres


rwx rwx rwx

r lecture
w écriture
x exécution

L'utilisateur/propriétaire d'un fichier ou répertoire est généralement la personne qui l'a


créé. Si vous êtes le propriétaire d'un fichier, vous pouvez modifier les autorisations de
fichier avec la commande chmod.
Le groupe spécifie le groupe auquel le fichier appartient. Si vous êtes le propriétaire
d'un fichier, vous pouvez modifier l'ID de groupe du fichier avec la commande chgrp.
Les significations de ces trois types d'autorisations diffèrent légèrement selon qu'il s'agit
de fichiers ordinaires ou de répertoires. Pour plus d’informations, voir le Tableau 6-1.

100 Sécurité du système de fichiers


Tableau 6-1 Différences entre les privilèges de fichiers et de répertoires
Autorisation Fichier Répertoire

r (lecture) Le contenu peut être affiché ou Le contenu peut être lu, mais pas
imprimé. recherché. Normalement, r et x sont
utilisés ensemble.

w (écriture) Le contenu peut être modifié ou Vous pouvez y ajouter ou y


supprimé. supprimer des entrées.

x (exécution) Le fichier peut être utilisé en tant Des recherches peuvent être
que programme. effectuées dans le répertoire.

6.1.1 Définition des autorisations d’accès aux fichiers


La commande chmod modifie le type d’accès (privilèges de lecture, d'écriture et
d’exécution) du propriétaire du fichier, des membres du groupe, ou de tous les autres.
Seul le propriétaire d'un fichier ou un utilisateur ayant les privilèges appropriés peut
modifier l'accès au fichier. Voir chmod(1).
Par défaut, l'ensemble initial d'autorisations de lecture et d'écriture pour les fichiers et
répertoires est déterminé par la valeur umask du créateur. Pour modifier les autorisations
de fichiers par défaut, utilisez la commande umask. Voir umask(1).
Chaque bit défini dans le masque de création de mode de fichier provoque l'effacement
(désactivation) du bit d'autorisation correspondant dans le mode de fichier. Inversement,
les bits désactivés dans le masque entraînent l'activation des bits de mode de fichier
correspondants dans les fichiers nouvellement créés.
Par exemple, un umask de 022 (octal) crée un masque de u=rwx,g=rx,o=rx, ce qui
désactive les autorisations de groupe et autres autorisations d'écriture.

6.1.2 Définition de la propriété de fichier


La commande chown modifie la propriété d’un fichier. Pour modifier le propriétaire,
vous devez posséder le fichier ou détenir les privilèges appropriés.
La commande chgrp modifie l'appartenance d’un fichier à un groupe. Pour modifier le
groupe, vous devez posséder le fichier ou détenir les privilèges appropriés.
Pour plus d'informations, voir chown(1) et chgrp(1).

6.1.3 Protection des répertoires


Normalement, si un répertoire est accessible en écriture par le biais des autorisations
standard ou par le biais des listes de contrôle d'accès (ACL), n'importe qui peut supprimer
les fichiers du répertoire, quelles que soient les autorisations applicables aux fichiers.

6.1 Contrôle de l’accès aux fichiers 101


Pour bénéficier d'une protection contre les suppressions de fichiers indésirables dans un
répertoire :
• Supprimez les autorisations d’écriture pour les répertoires qui ne doivent pas les
avoir.
Ceci est particulièrement vrai pour les répertoires privés des utilisateurs. La commande
suivante permet à d’autres utilisateurs de lire et rechercher le répertoire mydir ,
mais seul le propriétaire peut supprimer des fichiers de ce répertoire.
# chmod 755 mydir
Voir les pages de manuel chmod(1) et chmod(2).
• Définissez le bit de protection sur le répertoire.
• Le bit de protection est un bit spécial dans le mode de chaque fichier. La définition
du bit de protection empêche les utilisateurs de supprimer de ce répertoire les fichiers
d'autres utilisateurs. La définition de ce bit pour un répertoire autorise uniquement
le propriétaire du fichier, le propriétaire du répertoire ou un utilisateur ayant les
privilèges appropriés à supprimer ou à renommer les fichiers.
Ceci concerne les répertoires temporaires et de projet (comme /tmp et /var/tmp)
qui doivent rester accessibles à de nombreux utilisateurs autorisés. La commande
suivante permet à quiqonque de créer, lire et écrire des fichiers dans /mfgproj,
mais seuls le propriétaire du fichier, celui du répertoire ou un utilisateur ayant les
privilèges appropriés peuvent supprimer des fichiers .
# chmod a+rwxt /mfgproj
La définition du bit de protection est importante pour les répertoires utilisés pour les
fichiers temporaires. Lorsque ce bit n'est pas défini, un agresseur peut modifier le
comportement attendu des programmes utilisateur en attendant la création d'un
fichier temporaire puis en supprimant et en recréant un nouveau fichier avec du
contenu modifié mais avec le même nom. Dans la plupart des cas, l'application
n'est pas consciente de la modification et elle risque d'effectuer des actions
malveillantes pour le compte de l'agresseur.

6.1.4 Protection des fichiers liés aux comptes d'utilisateurs


Suivez les recommandations suivantes afin de protéger les fichiers liés aux comptes
d'utilisateurs :
• Un répertoire personnel ne doit être accessible en écriture que par son propriétaire.
Autrement, tout utilisateur peut ajouter et supprimer des fichiers dans ce répertoire.
• Les fichiers .profile, .kshrc, .login et .cshrc de chaque utilisateur ne
doivent être accessibles en écriture que par le propriétaire du compte.
• Le fichier .rhosts d'un utilisateur ne doit être accessible en lecture et en écriture
que par le propriétaire du compte. Ces précautions permettent d’empêcher que
d’autres utilisateurs ne devinent les comptes que vous détenez, et interdisent que
102 Sécurité du système de fichiers
l’on puisse modifier le fichier .rhosts afin d'accéder à votre place à ces systèmes.
Pour plus d'informations, voir hosts.equiv(4).
• N'utilisez pas de fichier .netrc, car il contourne l’authentification login dans le
cas de l’ouverture de session à distance, et peut même contenir, en clair, le mot de
passe de l’utilisateur. Si vous utilisez .netrc malgré cela, veillez à ce qu’il ne soit
accessible en écriture et en lecture que par son propriétaire. Pour plus d'informations,
voir netrc(4).

6.1.5 Repérage et correction des altérations de fichiers avec fsck


Les problèmes suivants peuvent indiquer que le système de fichiers est endommagé :
• Un fichier contient des données parasites.
• Un fichier est tronqué ou a perdu des données.
• Les fichiers deviennent inaccessibles ou changent d’emplacement de manière
inopinée.
• Des messages d’erreur apparaissent sur un terminal utilisateur, sur la console système
ou dans le fichier journal du système.
• Vous ne pouvez plus changer de répertoires ou répertorier les fichiers.
• Le système ne s'amorce plus.
Si vous ou d'autres utilisateurs ne parvenez pas à identifier les problèmes liés au système
de fichiers, utilisez la commande fsck pour vérifier le système de fichiers. La commande
fsck est l'outil principal de recherche et de correction des incohérences de système de
fichiers. La commande fsck examine le système de fichiers répertorié dans /etc/
fstab.
L'utilitaire fsck est incapable de détecter un endommagement de fichier. Si la commande
fsck ne détecte aucune erreur, il ne s’agit probablement pas d’un problème de système
de fichiers endommagé. Autrement dit, le système de fichiers est utilisable, même si les
données sous-jacentes sont perdues ou endommagées. Vérifiez s'il existe un ou plusieurs
des problèmes de fichiers suivants :
• Un utilisateur, un programme ou une application a supprimé, écrasé, déplacé ou
tronqué le ou les fichiers concernés.
• Le système de fichiers associé à un répertoire particulier lors de la création du fichier
n'est peut-être pas monté dans ce répertoire.
• Un ou plusieurs fichiers ont été placés dans un répertoire dans lequel est désormais
monté un système de fichiers. Les fichiers existent toujours, mais ils sont inaccessibles.
Démontez le système de fichiers afin de pouvoir accéder aux fichiers.
• La protection ou la protection de fichier interdit l'accès. Utilisez la commande chmod
ou chown pour changer les autorisations de fichiers.

6.1 Contrôle de l’accès aux fichiers 103


6.2 Définition des listes de contrôle d’accès
Les listes de contrôle d’accès (ACL) offrent un meilleur niveau de protection des fichiers
que les autorisations d’accès traditionnelles. Utilisez ces listes pour autoriser ou restreindre
l’accès aux fichiers pour des utilisateurs individuels, quel que soit le groupe auquel ils
appartiennent. Seul le propriétaire d'un fichier ou un utilisateur ayant les privilèges
appropriés peut créer des listes de contrôle d'accès.
Les systèmes de fichiers JFS (Journaled File System) et HFS (High-Performance File System)
prennent tous deux en charge les listes de contrôle d'accès, mais ils utilisent des
mécanismes et une syntaxe différents.
JFS est l'implémentation HP-UX du système de fichiers Veritas VxFS. HFS est la version
HP-UX du système de fichiers UNIX (UFS) ; elle est compatible avec les versions antérieures
de HP-UX.
Une liste de contrôle d'accès (ACL) est un ensemble d'entrées utilisateur, groupe et mode
associées à un fichier. La liste spécifie les autorisations pour toutes les combinaisons
possibles d'ID utilisateur et d'ID de groupe. Les listes ACL permettent de contrôler l’accès
aux fichiers de manière plus précise que les autorisations de fichiers UNIX traditionnelles.
Elles vous permettent d’autoriser ou de restreindre l’accès aux fichiers pour des utilisateurs
et des groupes spécifiques, au-delà du contrôle traditionnel.
Les listes ACL sont prises en charge par les systèmes de fichiers HFS et JFS, mais avec
des mécanismes et une syntaxe différents.

REMARQUE : Le système HFS est aujourd'hui désapprouvé. Il sera supprimé du système


d'exploitation dans une version ultérieure.
HP-UX prend en charge deux produits JFS distincts : le produit JFS de base, qui est fourni
avec le système d'exploitation, et le produit avancé optionnel, OnLineJFS, qui est installé
séparément. Les deux produits JFS prennent en charge les listes ACL.
Pour plus d'informations, voir setacl(1), getacl(1), aclv(5), chacl(1), lsacl(1) et acl(5).

6.3 Utilisation de listes ACL HFS


Vous pouvez définir les autorisations d’ACL HFS avec la commande chacl et les afficher
avec la commande lsacl. Voir l'Exemple 6-1.

IMPORTANT : Vous devez utiliser chmod avec l’option -A lorsque vous travaillez avec
des fichiers auxquels sont affectées des autorisations d’ACL HFS. En l’absence de l’option
-A, chmod supprime les autorisations ACL du fichier. La syntaxe est la suivante :
# chmod -A fichier_mode

La commande chacl est un sur-ensemble de la commande chmod. Toutes les autorisations


d’accès que vous accordez avec la commande chacl sont ajoutées aux autorisations
d’accès plus générales accordées grâce à la commande chmod.
104 Sécurité du système de fichiers
Lorsqu’un fichier dispose de listes ACL, la commande ll affiche un signe plus (+) après
la chaîne d’autorisation.
Si un utilisateur.groupe correspond à plusieurs entrées de liste ACL HFS, l’entrée
la plus spécifique est prioritaire. Voir Exemple 6-2.

Exemple 6-1 Création d’une liste ACL HFS

Dans cet exemple, la commande chmod restreint les autorisations d'écriture pour myfile
à l'utilisateur allan. La commande chmod supprime également toute liste ACL HFS
précédente.
$ chmod 644 myfile
$ ll myfile
-rw-r--r-- 1 allan users 0 Sep 21 16:56 myfile
$ lsacl myfile
(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
La commande lsacl affiche simplement les valeurs par défaut (pas d’ACL) correspondant
aux autorisations élémentaires de propriétaire, de groupe et autres autorisations.
La commande chacl donne un accès en lecture et en écriture à myfile à un autre
utilisateur.
$ chacl 'naomi.users=rw' myfile
$ ll myfile
-rw-r--r--+ 1 allan users 0 Sep 21 16:56 myfile
$ lsacl myfile
(naomi.users,rw-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
Notez deux éléments : l’affichage des autorisations ll apparaît sous la forme d’un +,
indiquant qu'il existe des listes ACL et que la chaîne d'autorisations ll n’a pas changé.
L’entrée supplémentaire de l’écran lsacl indique que l’utilisateur naomi du groupe
users dispose d’un accès en lecture et en écriture à myfile.

6.3 Utilisation de listes ACL HFS 105


Exemple 6-2 Correspondances multiples avec les listes ACL HFS

Si la combinaison utilisateur.groupe d’un utilisateur correspond à plusieurs entrées


de liste ACL HFS, l’entrée la plus spécifique est prioritaire. Dans cet exemple, vous
définissez d'abord les autorisations de fichiers.
$ chmod 644 myfile
Utilisez la commande chacl sur myfile pour ajouter une entrée d'écriture seule pour
l'utilisateur naomi :
$ chacl naomi.%=w myfile
$ lsacl myfile
(naomi.%,-w-)(allan.%,rw-)(%.users,r--)(%.%,r--) myfile
Désormais, l’utilisateur naomi dispose d’un accès en écriture au fichier myfile, avec
la liste ACL définie pour naomi.%, mais il n’a pas d’accès en lecture au fichier car
naomi.% est prioritaire par rapport aux listes ACL définies pour %.users et %.%.
La commande lsacl affiche les listes ACL HFS par ordre décroissant de spécificité. En
d’autres termes, les correspondances d’autorisations sont lues de gauche à droite.

6.3.1 Listes ACL HFS et commandes et appels HP-UX


Les commandes et appels système suivants sont compatibles avec les listes ACL sur les
systèmes de fichiers HFS :
Tableau 6-2 Commandes de liste ACL HFS
Commandes Description

chacl Modifie les listes ACL HFS des fichiers.

getaccess Répertorie les autorisations d’accès des utilisateurs


aux fichiers.

lsacl Répertorie les listes ACL HFS des fichiers.

Tableau 6-3 Appels système de liste ACL HFS


Appel système Description

getaccess() Obtient les droits d’accès effectifs à un fichier pour


un utilisateur donné.

getacl(), fgetacl() Obtient les informations de listes ACL HFS.

setacl(), fsetacl() Définit les informations de listes ACL HFS.

acltostr() Convertit la structure des listes ACL HFS en chaîne


de caractères.

chownacl() Modifie le propriétaire ou le groupe représenté dans


la liste ACL d'un fichier HFS.

106 Sécurité du système de fichiers


Tableau 6-3 Appels système de liste ACL HFS (suite)
Appel système Description

cpacl(), fcpacl() Copie des bits de liste ACL HFS et de mode d’un
fichier vers un autre.

setaclentry(), fsetaclentry() Ajoute, modifie, supprime l'entrée ACL d'un fichier


HFS.

strtoacl() Analyse et convertit la structure ACL HFS en chaîne


de caractères.

strtoaclpatt() Analyse et convertit les chaînes de format ACL HFS


en tableaux.

Les commandes, appels système et bibliothèques de sous-routine suivants affectent les


entrées de listes ACL, parfois de manière inattendue.
Tableau 6-4 Commandes et appels affectant les entrées de listes ACL
Commande ou appel Description

chmodl Supprime les listes ACL HFS par défaut. Utilisez


l’option -A pour préserver les listes ACL HFS.

chmodl() Supprime les entrées ACL HFS. Utilisez les


commandes getacl() et setacl() pour
sauvegarder et restaurer les entrées ACL HFS.

cpset Ne définit pas les entrées optionnelles ACL d’un


fichier.

find Identifie les fichiers dont les entrées ACL coïncident


avec ou incluent des formes ACL données sur des
systèmes de fichiers HFS ou JFS.

ls -l La forme longue indique l’existence de listes ACL en


affichant un signe plus (+) après les bits
d’autorisation d’accès au fichier.

mailx Ne prend pas en charge les entrées ACL sur les


fichiers /var/mail/*.

compact, compress, cp, ed, pack, unpack Copie les entrées d’ACL dans les nouveaux fichiers
créés.

frecover, fbackup N’utilisez ces commandes que pour récupérer et


sauvegarder des fichiers de manière sélective.
Utilisez l’option -A lorsque vous effectuez une
sauvegarde depuis un système ACL pour une
restauration sur un système qui ne prend pas en
charge les listes ACL.

6.3 Utilisation de listes ACL HFS 107


Tableau 6-4 Commandes et appels affectant les entrées de listes ACL (suite)
Commande ou appel Description

ar, cpio, ftio, shar, tar, dump, restore Ces commandes ne conservent pas les listes ACL lors
de l’archivage et de la restauration. Elles utilisent la
valeur st_mode renvoyée par stat().

rcs, sccs Ces commandes ne prennent pas en charge les listes


ACL.

Les listes de contrôle d’accès HFS utilisent des « inœuds suite » lors de la création de
nouveaux systèmes de fichiers. Tenez-en compte lorsque vous utilisez les commandes
suivantes :
• fsck : renvoie le nombre de fichiers qui possèdent des entrées ACL en tant que
valeur pour icont. L’option -p permet de supprimer les inœuds suite non référencés.
Voir fsck(1M).
• diskusg, ncheck : ignore les inœuds suite. Voir les pages de manuel diskusg(1M)
et ncheck(1M).
• mkfs : prévoit la place des inœuds suite sur les nouveaux disques. Voir mkfs(1M).

6.4 Utilisation de listes ACL JFS


Cette section décrit les listes de contrôle d’accès JFS et leur utilisation.

REMARQUE : Pour utiliser des listes ACL JFS, vous devez disposer d’un système de
fichiers VxFS comportant la structure de disque version 4. Pour mettre à jour un système
de fichiers vers la version 4, voir vxupgrade(1M).

6.4.1 Définition d’une liste ACL JFS


Une liste ACL JFS contient des entrées d’une ligne servant à nommer des utilisateurs et
des groupes et à indiquer les accès qui leur sont accordés. La présence d’une liste ACL
JFS modifie également la signification des bits d’autorisation group, affichés à l’aide
de la commande ls -l.
Une liste ACL JFS possède toujours quatre entrées : user, group, class et other.
Lorsqu’une liste ACL JFS ne contient que ces quatre entrées, les autorisations accordées
sont exactement les mêmes que celles représentées par les bits d’autorisation du système
UNIX standard.

108 Sécurité du système de fichiers


6.4.2 Génération d’une liste ACL JFS par le système
Si un fichier est créé sur un système de fichiers JFS, le système initialise une liste ACL JFS
minimale pour le fichier contenant une entrée user pour les autorisations du propriétaire,
une entrée group pour les autorisations du groupe propriétaire, une entrée class pour
les autorisations du groupe propriétaire et une entrée other pour les autres autorisations
du groupe. L’utilisateur peut éventuellement ajouter d’autres entrées ou consécutivement
aux entrées par défaut spécifiées dans le répertoire parent.

6.4.3 Liste ACL JFS minimale


Une liste ACL avec les quatre entrées de base définies ci-dessus porte le nom de liste
ACL JFS minimale. Voici un exemple de liste ACL minimale :
user::rw-
group::r--
class:r--
other:---
• L'entrée user indique les autorisations du propriétaire du fichier et est mappée
directement aux bits d'autorisation de propriétaire. La première entrée étant
applicable au propriétaire du fichier, il n'est pas nécessaire de spécifier un nom
d'utilisateur. Cet exemple d'entrée de liste ACL accorde un accès en lecture et en
écriture au propriétaire du fichier.
• Les entrées group et class spécifient l'autorisation accordée aux membres du
groupe propriétaire du fichier. L'exemple d'entrée de liste ACL accorde un accès
en lecture seule au groupe propriétaire du fichier. Les entrées group et class sont
décrites plus en détail dans la Section 6.4.5.
• L'entrée other est une entrée à portée globale qui spécifie les autorisations pour
tout utilisateur pour lequel d'autres entrées n'acordent ou ne refusent aucune
autorisation. L'exemple d'entrée other refuse l'accès à tous les utilisateurs qui ne
sont pas propriétaires du fichier ou qui n'appartiennent pas au groupe propriétaire
du fichier.
Les bits d’autorisation affichés par ls -l pour ce fichier peuvent prendre l’aspect
suivant :
rw-r-----
La section qui suit décrit la manière dont les entrées de liste ACL JFS affectent l’accès
aux fichiers et l’interprétation des bits d’autorisation.

6.4 Utilisation de listes ACL JFS 109


6.4.4 Entrées supplémentaires utilisateur et groupe de liste ACL
Si vous souhaitez accorder ou refuser l’accès à des utilisateurs et des groupes spécifiques
sur le système, vous pouvez ajouter jusqu’à 13 entrées user et group supplémentaires
aux quatre entrées minimales décrites dans la section précédente.
par exemple, l'entrée suivante dans la liste ACL d'un fichier accorde un accès en lecture,
en écriture et d'exécution à un utilisateur connecté en tant que boss :
user:boss:rwx
Dans l'exemple suivant, une liste ACL comportant l’entrée suivante refuse l’accès à un
utilisateur du groupe spies :
group:spies:---

6.4.5 Entrées de groupe et de classe de liste ACL JFS


Dans un fichier ayant une liste ACL minimale, les entrées ACL group et class
propriétaires sont identiques. Toutefois, dans un fichier ayant des entrées supplémentaires,
les entrées de liste ACL group et class sont distinctes. L’entrée de group propriétaire
accorde des autorisations à un groupe spécifique : le group propriétaire.
L’entrée class est de portée plus générale ; elle spécifie les autorisations maximales
susceptibles d’être accordées par l’une des entrées supplémentaires user et group.
Si une autorisation particulière n’est pas accordée dans l’entrée class, elle ne peut pas
être accordée par une des entrées de liste ACL, sauf par la première entrée user
(propriétaire) et l’entrée other. Aucune autorisation ne peut être refusée à un utilisateur
ou un groupe particulier. L’entrée class fonctionne comme une limite supérieure pour
les autorisations de fichiers.
Lorsqu’une liste ACL contient plusieurs entrées group ou user, les entrées user et
group supplémentaires constituent les entrées group class, car l’autorisation effective
accordée par une de ces entrées supplémentaires est limitée par l’entrée class.

6.4.6 Utilisation des commandes setacl et getacl


Utilisez les commandes setacl et getacl pour modifier et afficher des listes ACL.
Utilisez la commande setacl pour modifier la liste ACL de l'une des manières suivantes :
• Remplacer l'intégralité de la liste ACL d'un fichier, y compris la liste ACL par défaut
sur le répertoire.
• Ajouter, modifier ou supprimer une ou plusieurs entrées, y compris les entrées par
défaut sur les répertoires.
La commande getacl permet d'afficher les entrées de liste ACL. Les bits d'autorisation
de fichier pour user et group sont traduits en cas spéciaux pour ces entrées :
• Les bits représentant les autorisations du propriétaire sont représentés par une entrée
user sans ID utilisateur spécifié.

110 Sécurité du système de fichiers


• Les bits représentant les autorisations du groupe sont représentés par une entrée
group sans ID de groupe spécifié.
Une liste ACL doit contenir une entrée spéciale user et group. La liste ACL peut
avoir un nombre quelconque d’entrées supplémentaires user et group, mais celles-ci
doivent contenir un ID utilisateur et un ID de groupe, respectivement. Il n’existe
qu’une entrée other dans une liste ACL, destinée à représenter les bits d’autorisation
à accorder aux autres utilisateurs.
Pour une description des commandes, voir setacl(1) et getacl(1).

6.4.7 Effets de chmod sur les entrées class


Lorsqu’un fichier dispose d’une liste ACL minimale, les entrées ACL group et class
propriétaires sont identiques et chmod les affecte toutes les deux. Toutefois, lorsqu’un
fichier contient des entrées de liste ACL additionnelles et optionnelles, les conséquences
sont les suivantes :
• L’entrée de liste ACL class ne correspond plus nécessairement à l’entrée ACL
group propriétaire.
• La commande chmod affecte l’entrée de liste ACL class, et non l’entrée group
propriétaire.
• Vous devez utiliser setacl pour changer l’entrée group propriétaire.

6.4.8 Exemple de modification d'une liste ACL JFS minimale


Pour illustrer la fonction de l’entrée ACL JFS class, cette section décrit comment chmod
et setacl affectent un fichier ayant une liste ACL JFS minimale et un fichier ayant des
entrées group class.

REMARQUE : Pour plus de détails sur l’utilisation des commandes getacl et setacl,
voir la Section 6.4.10. Voir également les pages de manuel getacl(1) et setacl(1).
Considérez un fichier, exfile, avec des autorisations en lecture seule (444) et une liste
ACL JFS minime. La commande ls -l affiche les autorisations pour exfile :
$ ls -l exfile
-r--r--r-- 1 jsmith users 12 Sep 20 15:02 exfile
La commande getacl affiche la sortie suivante pour exfile, qui est une liste ACL JFS
minimale :
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::r--
group::r--

6.4 Utilisation de listes ACL JFS 111


class:r--
other:r--
L’utilisation de la commande chmod pour ajouter des autorisations d’écriture à exfile
change à la fois les entrées ACL propriétaires group et class : Par exemple, examinez
la sortie de la commande getacl :
$ chmod 666 exfile
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rw-
group::rw-
class:rw-
other:rw-
Ajoutez maintenant des entrées supplémentaires user et group, qui vont affecter l’entrée
de liste ACL class, mais pas l’entrée group propriétaire. La première commande
setacl ci-dessous accorde des autorisations en lecture seule à l’utilisateur guest ; les
autres entrées ne sont pas affectées. Toutefois, la deuxième commande setacl accorde
des autorisations de lecture et d'exécution au groupe dev, et la limite supérieure des
autorisations (l’entrée class) est étendue de façon à inclure l'autorisation d'exécution.
$ setacl -m u:guest:r-- exfile
$ setacl -m g:dev:r-x exfile
$ getacl exfile# file: exfile
# owner: jsmith
# group: users
user::rw-
user:guest:r--
group::rw-
group:dev:r-x
class:rwx
other:rw-
Ensuite, la commande chmod supprime les autorisations d’écriture et de lecture de l’entrée
group, et réduit en fait les autorisations de class à la valeur lecture seule. Les
autorisations du group propriétaire, bien qu’elles ne soient pas modifiées, sont
effectivement réduites également à la valeur lecture seule.
$ chmod g-wx exfile
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rw-
user:guest:r--
group::rw- # effective:r--
group:dev:r-x # effective:r--
class:r--
other:rw-

112 Sécurité du système de fichiers


Les autorisations other restent inchangées. L’entrée class ne limite pas l’accès
susceptible d’être accordé par la première entrée user (propriétaire) ou other.
Ensuite, la commande ls -l affiche les autorisations pour exfile. Le signe plus (+)
en fin de chaîne des autorisations indique qu’il existe une liste ACL pour le fichier.
$ ls -l exfile
-rw-r--rw-+ 1 jsmith users 12 Sep 20 15:02 exfile

6.4.9 Listes ACL JFS par défaut


Vous souhaiterez peut-être que tous les fichiers créés dans un répertoire disposent de
certaines entrées ACL. Par exemple, vous pouvez autoriser une autre personne à écrire
dans un des fichiers d’un de vos répertoires lorsque vous travaillez ensemble.
Vous pouvez ajouter une entrée ACL autorisant l’accès souhaité pour tous les fichiers du
répertoire, mais vous devez alors ajouter de nouveau cette entrée à chaque création
d’un nouveau fichier. En utilisant les entrées ACL par défaut, vous pouvez faire en sorte
que le système procède de cette façon de manière automatique à chaque création d’un
fichier.
Une entrée ACL par défaut a l'apparence suivante :
default:user:boss:rw-
Les listes ACL par défaut peuvent uniquement être placées sur un répertoire ; elles n'ont
aucune influence sur l'accès accordé aux utilisateurs sur le répertoire. La liste ACL par
défaut est appliquée aux fichiers créés dans le répertoire.
Lorsque le fichier nouvellement créé est un répertoire, les entrées ACL ont deux effets :
• Les entrées ACL non par défaut correspondantes sont créées de manière que les
autorisations souhaitées soient accordées ou refusées pour le répertoire, exactement
comme pour tous les fichiers créés dans le répertoire.
• Les entrées par défaut elles-mêmes sont copiées de sorte que le nouveau
sous-répertoire ait la même liste ACL par défaut que le répertoire parent.
Par exemple, si vous souhaitez que tous les fichiers créés dans le répertoire projectdir
soient lisibles par certains utilisateurs, il est préférable de créer les entrées par défaut
appropriées comme indiqué ci-dessous :
$ setacl -m d:u:boss:r,d:u:jjones:r,d:u:dev:r projectdir
$ getacl projectdir
# file: projectdir
# owner: jsmith
# group: users
user::rw-
user:boss:rw-
user:jjones:rw-
user:jdoe:---
group::rw-
group:dev:rw-
class:rw-
6.4 Utilisation de listes ACL JFS 113
other:---
default:user:boss:r---
default:user:jjones:r--
default:group:dev:r--
Si le fichier nouvellement créé est un répertoire, les mêmes entrées ACL sont générées.
En outre, les entrées par défaut elles-mêmes sont également placées dans la liste ACL.
Si ces entrées sont en place, un nouveau fichier créé dans le répertoire projectdir
peut avoir une liste ACL identique à celle présentée plus haut sans les entrées par défaut.

6.4.10 Modification de liste ACL JFS avec la commande setacl


Cette section contient des exemples supplémentaires d'utilisation de la commande
setacl.

6.4.10.1 Utilisation des options de modification et de suppression


La commande setacl suivante utilise l'option -m (modifier) pour accorder un accès en
lecture seule à l'utilisateur boss pour le fichier junk :
$ setacl -m u:boss:r-- junk
Pour accorder l'accès en lecture et en écriture à tous les membres du groupe dev, utilisez
le paramètre de groupe (g:) avec la commande setacl -m :
$ setacl -m g:dev:rw- junk
L’option -d supprime une entrée. Avec -d, vous ne spécifiez aucune autorisation dans
l’entrée ACL. Par exemple, la commande suivante supprime l'entrée du groupe dev :
$ setacl -d g:dev junk

6.4.10.2 Utilisation de l'option -f


Si vous ajoutez ou modifiez plusieurs entrées, vous pouvez utiliser une procédure
différente. Vous pouvez enregistrer la liste ACL dans un fichier, modifier le fichier, puis
appliquer la nouvelle liste ACL au fichier. Par exemple, enregistrez la liste ACL dans un
fichier avec cette commande :
$ getacl junk > junk.acl
Modifiez le fichier comme suit :
$ cat junk.acl
# file: junk
# owner: user1
# group: group1
user::rw-
user:user2:rw-
user:user3:rw-
user:user4:---
user:user5:r--
group::rw-
group:group2:rw-
group:group3:r--
114 Sécurité du système de fichiers
group:group4:---
group:group5:rw-
class:rw-
other:r--
Appliquez la liste ACL au fichier avec la commande setacl -f :
$ setacl -f junk.acl junk

6.4.10.3 Autorisations effectives et commande setacl -n


Normalement, setacl recalcule l'entrée class afin de s'assurer que les autorisations
accordées dans les entrées ACL supplémentaires sont bien accordées. Si vous spécifiez
l'option -n, l'entrée class n'est pas recalculée ; la valeur existante est utilisée. Cela
signifie que certaines autorisations accordées par les entrées ACL ne seront pas accordées
réellement.
Par exemple, cette liste ACL est modifiée avec la commande setacl -n de façon à
ajouter des autorisations de lecture et d'exécution au groupe dev comme suit :
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rw-
group::rw-
class:rw-
other:rw-
$ setacl -n -m group:dev:r-x exfile
$ getacl exfile
# file: exfile
# owner: jsmith
# group: users
user::rw-
group::rw-
group:dev:r-x #effective r--
class:rw-
other:rw-
L’entrée ACL de groupe dev est ajoutée comme stipulé, mais l'autorisation d'exécution
n'est pas réellement accordée. L'autorisation d'exécution est refusée par l’entrée class
et l’entrée class n’a pas été recalculée car l’option -n a été spécifiée. Si l’option -n
n’avait pas été utilisée, class aurait été réintialisée à la valeur class:rwx et le
commentaire effective ne serait pas présent.

6.4 Utilisation de listes ACL JFS 115


6.5 Comparaison des listes ACL JFS et HFS
Les listes ACL JFS sont conformes à la norme ACL POSIX.
Les listes ACL JFS diffèrent des listes ACL HFS en termes de format (interne et externe) et
de fonctionnalités.
Les différences fonctionnelles entre les listes ACL JFS et HFS sont les suivantes :
• Une liste ACL de répertoire JFS peut avoir des entrées par défaut qui sont appliquées
aux fichiers créés ultérieurement dans ce répertoire. Les listes ACL HFS n’ont pas
cette capacité.
• Une liste ACL HFS appartient à un propriétaire qui peut être différent de celui du
fichier que contrôle la liste ACL. Les listes ACL JFS appartiennent au propriétaire du
fichier correspondant.
• Une liste ACL HFS peut avoir différentes entrées pour un utilisateur particulier dans
des groupes spécifiques. Par exemple, userx peut avoir un accès en lecture et en
écriture tout en étant membre du groupe users, mais n’avoir que des autorisations
de lecture en étant membre du groupe other.

6.5.1 Commande JFS et HFS et mappage de fonctions


Le Tableau 6-5 répertorie les pages de manuel pour les fonctions et commandes
équivalentes pour les listes ACL JFS et HFS.
Tableau 6-5 Équivalents des listes ACL HFS et JFS
Nom HFS Équivalent JFS

chacl(1) setacl(1)

lsacl(1) getacl(1)

getacl(2) acl(2)

fgetacl(2) —aucun—

setacl(2) acl(2)

fsetacl(2) —aucun—

acltostr(3C) —aucun—

chownacl(3C) —aucun—

cpacl(3C) —aucun—

setaclentry(3C) —aucun—

strtoacl(3C) —aucun—

—aucun— aclsort(3C)

acl(5) aclv(5)

116 Sécurité du système de fichiers


6.6 Listes ACL et NFS
Le système de fichiers réseau (NFS, Network File System) ne permet pas de passer des
informations de liste ACL concernant des fichiers distants. Par conséquent, les listes ACL
ne sont pas visibles par NFS sur les fichiers distants. La commande ls -l n'indique pas
l'existence de listes ACL sur un fichier distant, mais le contrôle ACL sur les autorisations
d'accès demeure effectif.
Vous trouverez une description du comportement des différents appels système, appels
de bibliothèque et commandes dans les pages de manuel correspondantes.

IMPORTANT : Procédez avec caution lors du transfert réseau de fichier qui possèdent
des entrées optionnelles ou lors de la manipulation de fichiers distants, car NFS peut
supprimer des entrées optionnelles sans préavis.

6.7 Considérations de sécurité relatives aux fichiers spéciaux de


périphériques /dev
L’accès à tous les périphériques du système est contrôlé par des fichiers spéciaux qui
permettent aux programmes de travailler indépendamment des périphériques. Ces fichiers
sont fournis avec des paramètres d'autorisations qui garantissent une utilisation correcte
et une protection maximale.
Si vous installez d’autres fichiers spéciaux de périphériques, consultez la page de manuel
insf(1M) pour plus d'informations sur les paramètres d'autorisation corrects.
Les fichiers spéciaux de périphériques étant aussi vulnérables aux manipulations non
autorisées que les autres fichiers, vous devez respecter les recommandations suivantes :
• Conservez tous les fichiers spéciaux de périphériques dans le répertoire /dev.
• Évitez de laisser l’accès libre aux fichiers mémoire /dev/mem et /dev/kmem, car
ces fichiers contiennent des informations confidentielles sur les utilisateurs. Par
exemple, un programme qui surveille la mémoire dans l’attente d’un appel au
programme login pourrait copier le mot de passe entré par l’utilisateur en
récupérant les tampons de login. Les protections de fichiers doivent être les
suivantes :
crw-r----- 1 bin sys 3 0x000001 Jun 9 2006 /dev/kmem
crw-r----- 1 bin sys 3 0x000000 Jun 9 2006 /dev/mem

• Protégez tous les fichiers spéciaux de disque :


— Protégez en écriture tous les fichiers spéciaux de disque contre les utilisateurs
non privilégiés, afin d'éviter les altérations involontaires de données. Désactivez
l’accès en écriture pour les classes group et other.
— Protégez en lecture les fichiers spéciaux de disque pour éviter la divulgation des
informations qu’ils contiennent. Désactivez l’accès en lecture pour la classe
other.

6.6 Listes ACL et NFS 117


Les protections de fichiers doivent être les suivantes :
brw-r----- 1 bin sys 31 0x002000 Feb 18 2004 /dev/dsk/c0t2d0
crw-r----- 1 bin sys 188 0x002000 Aug 3 2004 /dev/rdsk/c0t2d0
brw-r----- 1 root sys 64 0x000002 Jun 11 2006 /dev/vg00/lvol2
crw-r----- 1 root sys 64 0x000002 Jun 11 2006 /dev/vg00/rlvol2

• Les ports de terminaux des systèmes HP-UX sont accessibles en écriture par n’importe
qui si vous autorisez les utilisateurs à communiquer par le biais des programmes
write ou talk. Accordez une autorisation de lecture uniquement au propriétaire
• N'autorisez pas des utilisateurs à posséder un fichier spécial de périphérique autre
que pour un périphérique de terminal ou une imprimante personnelle.
• Avant de mettre en service un disque ou tout autre périphérique montable d’origine
inconnue, recherchez parmi ses fichiers d’éventuels fichiers spéciaux de périphériques
ou des programmes setuid. Voir la Section 6.9.

6.8 Protection des partitions de disques et des volumes logiques


Une gestionnaire de volume logique (LVM, Logical Volume Manager) est un outil de
gestion de disque commun. LVM divise les disques plus facilement que les partitions de
disques, et les volumes peuvent chevaucher plusieurs disques. Les volumes sont des
périphériques logiques qui apparaissent comme une partition de disque physique. Vous
pouvez utiliser un volume en tant que partition de disque pour créer par exemple un
système de fichiers ou une base de données.
Voici quelques considérations relatives à la sécurité des partitions de disques et des
volumes logiques :
• Assurez-vous que les ficheirs spéciaux de périphériques des partitions de disques
et des volumes logiques sont accessibles en lecture uniquement par root et,
éventuellement, par un compte réservé aux sauvegardes de disques. Voir la
Section 6.7.
• Les appartenances et les autorisations étant stockées dans l'inœud, tout utilisateur
ayant une autorisation d'écriture sur une partition montée peut définir l'ID utilisateur
pour tout fichier de cette partition. Le fichier est sujet à modification quel que soit le
propriétaire, contournant l'appel système chmod() et autres vérifications de sécurité.
Si le fichier spécial de périphérique est accessible en écriture, un utilisateur peut
ouvrir ce fichier et accéder au disque brut. Il peut alors modifier directement le
système de fichiers, lire des fichiers ou modifier des autorisations et des propriétaires
de fichiers.
Assurez-vous que les autorisations de fichiers interdisent l'accès au fichier spécial
de périphérique et accordent un accès en lecture uniquement au compte root.
• Si un programme, par exemple une application de base de données, requiert un
accès direct à la partition, réservez cette partition à un usage exclusif par le
programme. Ne montez pas de partition en tant que système de fichiers si des

118 Sécurité du système de fichiers


utilisateurs peuvent y accéder directement. Si vous montez une partition en tant que
système de fichiers, des utilisateurs pourraient modifier le système de fichiers
sous-jacent.
Signalez aux utilisateurs de programme que la sécurité du fichier est assurée par
des paramètres d'autorisations plutôt que par le système de fichiers HP-UX.

6.9 Recommandations de sécurité concernant le montage et le démontage


des systèmes de fichiers
La commande mount vous permet d’attacher des systèmes de fichiers, des disques ou
des partitions de disques à une arborescence de fichiers existante. La commande mount
utilise un fichier appelé /etc/fstab qui contient une liste des systèmes de fichiers
disponibles et de leurs points de montage correspondants. Faites en sorte que seul le
compte root puisse accéder en écriture au fichier /etc/fstab, mais que celui-ci soit
lisible par tout le monde. Pour plus d'informations sur les systèmes de fichiers, voir fstab(4).
Respectez les recommandations suivantes lorsque vous montez un système de fichiers
ou un disque :
• Créez un répertoire particulier (par exemple /mnt) dans lequel vous monterez le
nouveau système de fichiers. Ne montez jamais un système de fichiers dans un
répertoire qui contient déjà des fichiers, car ces derniers seront inaccessibles.
Le point de montage d’un système de fichiers monté acquiert les autorisations d’accès
et les appartenances du répertoire racine du système de fichiers.
• Définissez des autorisations et des entrées de liste de contrôle d’accès sur les noms
de chemin du disque afin de contrôler l’accès aux disques.
• Utilisez l’option -r de la commande mount pour monter le système de fichiers en
lecture seule. Vous devez monter physiquement de cette manière les systèmes de
fichiers protégés en écriture.
• Lorsque vous montez un système de fichiers nouveau ou d’origine étrangère, il est
plus prudent de considérer que le support n’est pas sûr.
— Vérifiez que la variable d’environnement PATH ne contient pas « . » (répertoire
actuel), car vous risquez alors d’exécuter une version Cheval de Troie de ls ou
d’une commande du même type pendant que vous examinez le nouveau système
de fichiers.
— Exécutez la commande fsck pour vérifier que le système de fichiers n’est pas
techniquement endommagé. Voir fsck(1M).
— Exécutez la commande ncheck_hfs -s ou ncheck_vxfs -s pour rechercher
les programmes et fichiers de périphériques setuid et setgid, et examinez
tout résultat suspect. L'option -s a pour but de découvrir les violations de stratégie
de sécurité dissimulées. Pour plus d'informations, voir ncheck_hfs(1M) et
ncheck_vxfs(1M).
6.9 Recommandations de sécurité concernant le montage et le démontage des systèmes de fichiers 119
— Créez un répertoire limité à root en définissant ses autorisations d’accès à 700
(drwx------).
# mkdir /securefile
# chmod 700 /securefile

— Montez le système de fichiers étranger en lecture seule à cet emplacement :


# mount -r /dev/disk1 /securefile

— Recherchez dans tous les répertoires s'il existe des programmes privilégiés, et
vérifiez l’identité de chaque programme.
— Rétablissez les autorisations en lecture et écriture du système et supprimez les
autorisations setuid et setgid inutiles des fichiers découverts à l’étape
précédente. Respectez scrupuleusement ces recommandations lorsqu’un utilisateur
vous demande de monter un système de fichiers personnel.
Après avoir effectué ces tests, et seulement après, vous pourrez démonter le système
de fichiers et le remonter à l’emplacement de votre choix.
• Veillez à démonter tous les systèmes de fichiers montés d’un utilisateur dont vous
supprimez le compte.
Pour plus d’informations sur les fichiers montés dans un environnement NFS, voir la
Section 6.10.2.

6.10 Contrôle de la sécurité des fichiers sur un réseau


En matière de sécurité, les réseaux sont plus vulnérables que les systèmes autonomes.
La mise en réseau facilite l’accès aux systèmes, mais multiplie également les risques de
piratage.
Si vous ne pouvez pas contrôler totalement la sécurité sur le réseau, vous pouvez contrôler
celle de chaque nœud de ce réseau afin de limiter les risques d’intrusion sans réduire
l’utilité du système, ni la productivité des utilisateurs.
Assurez-vous que tous les programmes d’administration réseau sont la propriété d’un
compte protégé et propre au réseau, comme uucp, nso ou daemon, et non de root.

6.10.1 Vérification des paramètres d'autorisations sur les fichiers de contrôle réseau
Les modes, les propriétaires et les groupes doivent être définis soigneusement sur tous
les fichiers systèmes. Vérifiez régulièrement si ces fichiers ont été modifiés. Notez et
corrigez toute modification par rapport aux valeurs d'origine.
Apportez une attention particulière aux fichiers de contrôle réseau du répertoire /etc.
Ces fichiers sont très utiles à ceux qui tentent d'accéder de manière illicite au système,
car ils permettent d'accéder directement au réseau. Les fichiers de contrôle réseau ne
doivent jamais être accessibles en écriture au public. Il s'agit des fichiers suivants :
exports Liste des systèmes de fichiers exportés vers des clients NFS

120 Sécurité du système de fichiers


hosts Hôtes réseaux et leurs adresses
hosts.equiv Hôtes distants qui possèdent une autorisation d’accès équivalente à
celle d’un système hôte local
inetd.conf Fichier de configuration Internet
netgroup Liste de groupes à l'échelle du réseau
networks Noms des réseaux et leurs adresses
protocols Base de données des noms des protocoles
services Base de données des noms des services

6.10.2 Fichiers montés dans un environnement NFS


Un système de fichiers NFS (Network File System) offre les avantages suivants :
• Économie d’espace de fichiers.
• Garantie d'une utilisation cohérente des fichiers.
• Environnement utilisateur coopératif et peu encombrant.
NFS facilite le partage de fichiers entre les systèmes serveur et client en contrôlant les
accès grâce au fichier /etc/exports. Les entrées dans /etc/exports fournissent
les autorisations d’accès pour monter un système de fichiers présent sur un serveur sur
n’importe quelle machine cliente, ou sur une liste particulière d’ordinateurs. Lorsqu’un
système de fichiers est intégré à /etc/exports, l’information est accessible à tout
utilisateur capable d’effectuer un montage NFS. Ainsi, l’utilisateur client NFS peut accéder
au système de fichiers du serveur sans avoir à ouvrir de session sur le système serveur.
Pour plus d'informations sur le contrôle de l'accès aux systèmes de fichiers exportés, voir
exports(4). Pour plus d'informations sur les recommandations de sécurité, voir la
Section 6.10.2.3.

6.10.2.1 Vulnérabilité des serveurs


La protection d’un serveur passe par la définition d'autorisations restrictives sur le fichier
/etc/exports. Les privilèges de la racine ne sont pas maintenus dans NFS. Cela
signifie que si vous possédez des privilèges racine sur un système client, vous n’obtenez
pas pour autant un accès spécial au serveur.
Le serveur effectue pour le client distant les mêmes vérifications des autorisations d’accès
que celles qu’il réalise localement pour ses propres utilisateurs. Le côté serveur contrôle
les accès du client aux fichiers serveur en comparant l’ID utilisateur et l’ID de groupe du
client, qu’il reçoit par l’intermédiaire du réseau, aux ID correspondants du fichier serveur.
La vérification se fait au niveau du noyau.
Un utilisateur qui possède des privilèges sur un client NFS peut se servir de ces privilèges
pour obtenir un accès illimité à un serveur NFS.

REMARQUE : N’exportez jamais un système de fichiers vers un nœud sur lequel les
privilèges sont accordés de manière moins restrictive que sur votre propre système.
6.10 Contrôle de la sécurité des fichiers sur un réseau 121
6.10.2.2 Vulnérabilité des clients
Sur les précédentes versions de NFS pour les stations de travail, l’inœud /dev devait
résider sur le disque du client. NFS permet désormais à l’inœud /dev de conserver sur
le serveur les nombres majeur et mineur d’un fichier spécial de périphérique monté sur
le client. Le pirate possède ainsi la possibilité de créer un cheval de Troie qui outrepasse
les autorisations d’accès définies sur le fichier spécial de périphérique monté du client,
en accédant au fichier spécial de périphérique par l’intermédiaire du numéro de fichier
et d’inœud qu’il peut trouver sur le serveur.
Même s’il n’obtient pas la permission de créer un fichier spécial périphérique sur le
client, le pirate peut créer un fichier spécial de périphérique, comme /dev/kmem, qui
utilise les autorisations racines sur le serveur. Le nouveau fichier /dev possède les mêmes
nombres majeur et mineur que le périphérique cible sur le client, mais avec les
autorisations d’accès suivantes :
crw-rw-rw-
L'intrus peut alors accéder au client, ouvrir une session en tant qu'utilisateur ordinaire
puis, avec NFS, ouvrir le fichier spécial de périphérique nouvellement créé sur le serveur
et l'utiliser à des fins malveillantes.

6.10.2.3 Comment préserver les fichiers montés en mode NFS


Voici quelques suggestions qui vous aideront à protéger les fichiers montés en mode
NFS :
• Si possible, vérifiez que les mêmes personnes administrent les systèmes client et
serveur.
• Préservez la cohérence des ID utilisateur et des ID de groupe sur les systèmes serveur
et client.
• Vérifiez régulièrement les fichiers /dev dans les systèmes de fichiers exportés à
partir du serveur.
• Limitez les utilisateurs autorisés à accéder en écriture aux fichiers client /etc/
passwd.
• Pour un contrôle encore plus strict, faites un audit de tous les hôtes accessibles par
le biais du réseau.
• Envisagez d'utiliser la commande fstab nosuid pour protéger le système des
programmes setuid qui peuvent s'exécuter en tant que root et endommager le
système. L'option de montage par défaut est suid, qui permet aux programmes
montés ayant l'autorisation setuid de s'exécuter avec les autorisations de leurs
propriétaires, quel que soit l'utilisateur qui les démarre. Par conséquent, si un
programme ayant l'autorisation setuid est détenu par root, il s'exécute avec des
autorisations root, quel que soit l'utilisateur qui le démarre.

122 Sécurité du système de fichiers


7 Compartiments
Ce chapitre décrit la fonctionnalité de compartiment de HP-UX 11i v3. Il traite des sujets
suivants :
• Présentation (Section 7.1)
• Planification de la structure de compartiments (Section 7.2)
• Activation des compartiments (Section 7.3)
• Modification de la configuration de compartiment (Section 7.4)
• Composants de compartiment (Section 7.5)
• Règles et syntaxe de compartiment (Section 7.6)
• Configuration des applications dans des compartiments (Section 7.7)
• Résolution des problèmes liés aux compartiments (Section 7.8)
• Utilisation du mode découverte pour générer une configuration de compartiment
initiale (Section 7.9)
• Compartiments dans les clusters HP Serviceguard (Section 7.10)

7.1 Présentation
Les compartiments permettent d'isoler les composants d'un système. Lorsqu'ils sont
configurés correctement, ils sécurisent de manière efficace le système HP-UX et les données
qui y résident.
Les compartiments vous permettent d'isoler les processus (ou sujets) les uns des autres,
ainsi que des ressources (ou objets).
Conceptuellement, chaque processus appartient à un compartiment, et les ressources
sont gérées de l'une des deux manières suivantes :
1. La ressource est libellée avec le compartiment du processus créateur. C'est de cette
façon que les ressources transitoires, telles que les points de terminaison de
communication et la mémoire partagée, sont affectées à un compartiment.
2. Les ressources peuvent être associées à une liste d'accès qui spécifie la manière
dont les processus des différents compartiments peuvent y accéder, pour des
ressources persistantes telles que les fichiers et les répertoires. Autrement dit, les
processus peuvent accéder aux ressources ou communiquer avec des processus
appartenant à un compartiment différent uniquement s'il existe une règle entre ces
compartiments. Les processus qui appartiennent au même compartiment peuvent
communiquer les uns avec les autres et accéder aux ressources de ce compartiment
sans règle.

7.1 Présentation 123


Les compartiments séparent les sujets des objets. Cela procure un groupement virtuel de
sujets et d'objets connexes. Vous pouvez configurer le système de sorte que, si un service
exécuté dans un compartiment est compromis, cela n'affecte pas les services exécutés
dans d'autres compartiments. Les dommages sont ainsi limités uniquement au
compartiment affecté.

7.1.1 Architecture des compartiments


Les compartiments isolent un procesus et ses processus enfants au sein d'un système. La
Figure 7-1 illustre un processus parent qui crée plusieurs processus de gestion qui doivent
accéder à différentes parties du système. Les compartiments du système sont configurés
de telle façon que les processus puissent accéder aux ressources dont ils ont besoin.

Figure 7-1 Architecture des compartiments


processus Compartiment
relation de processus serveur_parent
serveur_enfants
fichiers et/ou répertoires
lan cmpt 1
accès aux fichiers
réseau
IPC parent
signaux

enregistreur

Tout

gestionnaire
/
gestionnaire

/var/opt/server gestionnaire
re
lectu ure
crit e
re ,é r
lec
tu itu
é cr
,
re
logs ctu
le
Réseau

spool

124 Compartiments
Sur la Figure 7-1, le processus parent est configuré dans un compartiment, le compartiment
A. Dans le cadre de ses opérations, le processus parent crée plusieurs processus de
gestion dans un compartiment différent, le compartiment B. Les processus de gestion
héritent de la configuration de compartiment du processus parent. La carte réseau qui
connecte ce système au réseau local est configurée dans un autre compartiment, le
compartiment C. Le système de fichiers est configuré de façon à accorder un accès
complet au compartiment A, mais seulement un accès partiel au compartiment B. La
communication entre les composants du système dans leurs compartiments distincts est
configurée comme suit :
• Tous les procesuss de gestion sont configurés pour communiquer avec le réseau.
• L'enregistreur peut accéder au système de fichiers.
• Les processus de gestion ont un accès en lecture et en lecture/écriture à certaines
parties du système de fichiers.
• Les processus de gestion peuvent communiquer avec le processus parent, et avec
l'enregistreur par le biais d'IPC et de signaux.
• Le réseau est isolé de l'enregistreur et du processus parent.
Cette configuration de compartiment permet de sécuriser le système de fichiers et
l'enregistreur. Tous deux sont isolés par leur compartiment. Bien que les processus de
gestion puissent communiquer avec le réseau, celui-ci est inaccessible à l'enregistreur et
au procesuss parent.

7.1.2 Configuration de compartiment par défaut


Lorsque vous activez les compartiments, un compartiment par défaut nommé INIT est
créé. Lorsque vous amorcez le système, le processus init appartient à ce compartiment.
Le compartiment INIT est défini de façon à pouvoir accéder à tous les autres
compartiments ; il n'est défini dans aucun fichier de règles de compartiments.

IMPORTANT : Si vous redéfinissez le compartiment INIT en créant des règles explicites


dans un fichier de règles, toutes les caractéristiques spéciales du compartiment sont
perdues et ne peuvent être restaurées sans réamorçage du système.

7.2 Planification de la structure de compartiments


Planifiez la structure de compartiments avant de commencer à créer des règles de
compartiments
Pour planifier la structure de compartiments, répondez aux questions suivantes :
• Souhaitez-vous isoler différents groupes d'utilisateurs accédant à ce système ? Par
exemple, ce système est-il utilisé à la fois par le service Comptabilité et par le service
Ressources humaines, et ces groupes d'utilisateurs doivent-ils être séparés ?

7.2 Planification de la structure de compartiments 125


• Souhaitez-vous isoler une interface réseau sur le système, qui communique avec
l'extérieur du pare-feu, du reste du système, qui communique uniquement avec
l'intérieur du pare-feu ?
• La stratégie de sécurité inclue-t-elle des exigences ou des problèmes qui peuvent
être résolus par l'utilisation de compartiments ?
• La stratégie de sécurité spécifie-t-elle ou suggère-t-elle une configuration de règles
de compartiments spécifique ?
Lorsque vous avez répondu à ces questions, utilisez les réponses pour déterminer comment
affecter les différentes parties du système à chaque compartiment.
Étudiez les recommandations suivantes lors de la planification de la configuration de
compartiment :
• Placez tous les fichiers de configuration de compartiment dans le répertoire /etc/
cmpt.
Vous pouvez utiliser la directive #include pour créer des fichiers de configuration
de compartiment à n'importe quel emplacement du système. Toutefois, HP vous
conseille d'éviter cette option. Il est plutôt préférable de regrouper les fichiers de
configuration de compartiment, afin d'en faciliter la localisation.
• Développez une configuration de compartiment distincte pour chaque composant
du système.
À moins qu'il n'existe une dépendance logicielle spécifique et définie entre deux
composants, ne mélangez pas les règles pour différents composants. Un compartiment
de composant ne doit pas contenir de règles faisant référence aux compartiments
d'un autre composant. Si vous devez supprimer un composant, la modification de
la configuration de compartiment sera plus facile si les configurations de
compartiments sont séparées.
• Créez un seul fichier de configuration de compartiment pour chaque composant
logiciel.
Cela facilitera la suppression de la configuration de compartiment en cas de
suppression du logiciel du système. Vous retrouverez également plus facilement
toutes les règles relatives au composant logiciel.
• Certains produits logiciels sont fournis avec des règles de compartiment déjà
configurées. Évitez de modifier ces règles.
Avant de modifier des configurations de compartiment fournies avec un produit,
assurez-vous de bien comprendre la configuration existante. Consultez la
documentation du produit logiciel et examinez soigneusement la configuration
existante.

126 Compartiments
ATTENTION : Ne redéfinissez pas le compartiment INIT. Si vous tentez de modifier
ou de redéfinir le compartiment INIT, toutes les définitions générées automatiquement
seront détruites et les compartiments ne fonctionneront pas correctement.

7.3 Activation des compartiments


Pour activer des règles de compartiment sur le système, procédez comme suit :
1. Planifiez les règles de compartiment. Pour plus d’informations, voir la Section 7.2.

ASTUCE : HP vous conseille de planifier soigneusement la configuration des règles


de compartiment. Une fois que vous aurez créé la configuration et que vous l'aurez
implémentée sur un système de production, il sera difficile de la modifier. Lorsque
vous modifiez une configuration de compartiment, vous devez apporter des
modifications aux outils, scripts et procédures utilisateur.

2. Créez des règles de compartiment. Pour obtenir des instructions sur l'exécution de
cette étape et une description complète de la syntaxe de règle de compartiment,
voir la Section 7.6.
3. (Facultatif) Affichez un aperçu des règles de compartiment en entrant la commande
suivante :
# setrules -p
L'option -p analyse la liste de règles configurées et signale toute incohérence
syntaxique ou sémantique. HP recommande d'effectuer cette étape avant d'activer
les règles de compartiment sur le système.
4. (Facultatif) Effectuez des copies de sauvegarde des fichiers de configuration de
compartiment. Placez ces fichiers à l'extérieur du répertoire /etc/cmpt ou omettez
le suffixe .rules. Il sera alors plus facile de revenir au point de départ en cas de
problème d'édition.
5. Activez la fonctionnalité de compartiment en entrant la commande suivante :
# cmpt_tune -e
6. Réamorcez le système. Cette étape est obligatoire.

ASTUCE : Conservez les fichiers de sauvegarde ; il vous sera ainsi plus facile de revenir
à une configuration antérieure.

7.3 Activation des compartiments 127


7.4 Modification de la configuration de compartiment
Vous pouvez créer de nouveaux compartiments et modifier des compartiments existants
sans réamorcer le système. Si vous activez ou désactivez la fonctionnalité de
compartiment, ou si vous supprimez complètement un compartiment, vous devez réamorcer
le système. Toutefois, si vous supprimez toutes les règles associées à un compartiment
et toutes les références à ce compartiment, vous pouvez laisser le compartiment sur le
système jusqu'au prochain réamorçage.
Pour plus d'informations sur les conséquences de la modification du nom d'un
compartiment, voir la Section 7.4.2.
Vous pouvez ajouter de nouvelles règles de compartiment, supprimer des règles inutiles
et modifier des règles existantes. Vous pouvez également modifier les noms des
compartiments existants.
Les sections suivantes décrivent comment modifier une configuration de compartiment.

7.4.1 Modification de règles de compartiment


1. (Facultatif) Effectuez des copies de sauvegarde temporaires des fichiers de
configuration que vous envisagez de modifier. Placez ces fichiers à l'extérieur du
répertoire /etc/cmpt ou omettez le suffixe .rules. Il sera alors plus facile de
revenir au point de départ en cas de problème d'édition.
2. Utilisez la commande suivante pour examiner les règles de compartiment actuelles :
# getrules
3. Créez ou modifiez des règles de compartiment. Pour obtenir des instructions sur
l'exécution de cette étape et une description complète de la syntaxe de règle de
compartiment, voir la Section 7.6.
4. (Facultatif) Affichez un aperçu des règles de compartiment en entrant la commande
suivante :
# setrules -p
L'option -p analyse la liste de règles configurées et signale toute incohérence
syntaxique ou sémantique. HP recommande d'effectuer cette étape avant d'activer
les règles de compartiment sur le système.
5. (Facultatif) Effectuez des copies de sauvegarde des fichiers de configuration de
compartiment.
6. Exécutez la commande setrules pour charger les règles configurées :
# setrules

128 Compartiments
7.4.2 Modification de noms de compartiments
Vous pouvez modifier les noms des compartiments. Toutefois, la modification du nom
d'un compartiment peut affecter les applications qui sont déjà configurées avec les noms
de compartiments existants. Si vous modifiez le nom d'un compartiment, vous devez
egalement reconfigurer toute application configurée dans ce compartiment.

REMARQUE : Le fait de renommer un compartiment équivaut en fait à supprimer ce


compartiment et à en créer un avec un nouveau nom. Vous devez modifier toutes les
références afin de reconnaître le nouveau compartiment. L'ancien compartiment continu
d'exister sur le système jusqu'à ce qu'un réamorçage ait lieu.

7.5 Composants de compartiment


La fonctionnalité de compartiment comprend un ensemble de fichiers de configuration
et de commandes que vous utilisez pour configurer et administrer les compartiments. Des
pages de manuel sont incluses afin de vous aider lors de l'utilisation des fonctionnalités
de compartiment. Ces composants sont répertoriés dans les sections suivantes :

7.5.1 Fichiers de configuration de compartiment


Le Tableau 7-1 décrit brièvement les fichiers utilisés avec les composants de compartiment.
Tableau 7-1 Fichiers de configuration de compartiment
Fichier de configuration Description

/etc/cmpt Répertoire dans lequel les fichiers de règles de compartiment


résident.

/etc/cmpt/*.rules Fichier contenant les règles de compartiment configurées pour


le système.

/etc/cmpt/hardlinks/ Fichier contenant les points de montage valides à analyser


hardlinks.config afin de vérifier la cohérence des règles de compartiment pour
les fichiers vers lesquels pointent plusieurs liens physiques.

7.5.2 Commandes de compartiment


Le Tableau 7-2 répertorie les commandes utilisées pour gérer les compartiments.
Tableau 7-2 Commandes de compartiment
Commande Description

cmpt_tune Interroge, active et désactive la fonctionnalité de compartiment.

setfilexsec Définit les attributs de sécurité des fichiers binaires, y compris l'attribut
de compartiment.

7.5 Composants de compartiment 129


Tableau 7-2 Commandes de compartiment (suite)
Commande Description

getfilexsec Affiche les attributs de sécurité associés aux fichiers exécutables


binaires, y compris l'attribut de compartiment.

getprocxsec Affiche les attributs de sécurité des processus, y compris l'attribut de


compartiment.

getrules Affiche les règles de compartiment actuellement actives dans le noyau.

setrules Active des règles nouvelles ou modifiées dans le noyau.


Avec l'option -p, affiche les règles modifiées afin de les examiner sans
les passer au noyau.

vhardlinks Vérifie la cohérence des règles de compartiment pour les fichiers qui
ont plusieurs liens physiques, afin de s'assurer qu'il n'existe aucun conflit
de règles d'accès.

7.5.3 Pages de manuel de compartiment


Le Tableau 7-3 répertorie les pages de manuel associées aux compartiments.
Tableau 7-3 Pages de manuel de compartiment
Page de manuel Description

compartments(4) Décrit la syntaxe de règle de compartiment.

compartments(5) Fournit une présentation de la fonctionnalité de compartiment et décrit


l'utilisation des règles de compartiment.

cmpt_tune(1M) Décrit la fonctionnalité et la syntaxe de cmpt_tune.

setfilexsec(1M) Décrit la fonctionnalité et la syntaxe de setfilexsec.

getfilexsec(1M) Décrit la fonctionnalité et la syntaxe de getfilexsec.

getprocxsec(1M) Décrit la fonctionnalité et la syntaxe de getprocxsec.

getrules(1M) Décrit la fonctionnalité et la syntaxe de getrules.

setrules(1M) Décrit la fonctionnalité et la syntaxe de setrules.

vhardlinks(1M) Décrit la fonctionnalité et la syntaxe de vhardlinks.

130 Compartiments
7.6 Règles et syntaxe de compartiment
Un compartiment est constitué d'un nom et d'un ensemble de règles. Cette section décrit
les quatre types de règles de compartiment :
• Règles de système de fichiers
• Règles IPC
• Les règles réseau
• Règles diverses
Vous devez ajouter les règles à un fichier de règles que vous créez dans le répertoire
/etc/cmpt. Vous pouvez modifier ce fichier à l'aide de vi ou d'un éditeur de texte
semblable. Le fichier de règles doit avoir une extension .rules.
Pour plus d'informations, voir compartments(5).

7.6.1 Définition de compartiment


Vous pouvez définir des compartiments en configurant un nom pour chaque compartiment
et en associant une ou plusieurs règles de compartiment au nom de compartiment. Vous
pouvez spécifier les règles dans n'importe quel ordre.
La syntaxe de définition de compartiment est la suivante :
[sealed] [discover] compartment nom_nouveau_compartiment { règles }
où :
sealed (Facultatif) Un processus dans ce compartiment
ne peut pas obtenir de privilèges ni changer de
compartiment en appelant execve().
discover (Facultatif) Découvrir et ajouter automatiquement
les règles de sorte que les violations de
compartiment soient outrepassées. Il s'agit d'une
fonctionnalité de développement qui permet de
déterminer les règles nécessaires ; elle ne doit pas
être utilisée sur un système de production. Pour
plus d'informations sur ce mot clé, voir la
Section 7.9.
compartment Indique que la règle est une définition de
compartiment.
nom_nouveau_compartiment Libellé associé au nouveau compartiment. Ce
libellé est sensible à la casse. Par exemple,
compartimenta et CompartimentA sont des
compartiments différents.
{} Placez les règles de ce compartiment entre des
accolades.

7.6 Règles et syntaxe de compartiment 131


Par exemple :
sealed compartment server_children {

/* Deny all access to any file system objects ... */


permission none /
}

REMARQUE : Le nom de compartiment INIT n'est pas sensible à la casse. INIT, init
et Init sont tous traités comme le même compartiment par le système.
Les spécifications de compartiments sont prétraitées avec cpp() avant que l'analyse ne
débute. C'est pourquoi vous devez utiliser des directives cpp() telles que #include,
#define, #ifdef et des commentaires de style C pour organiser et documenter les
fichiers de règles.

7.6.2 Règles de système de fichiers


Les règles de système de fichiers régissent l'accès aux fichiers et aux répertoires sur le
système. Elles sont transmises d'un répertoire parent vers tous les sous-répertoires et
fichiers dans le parent, à moins qu'une règle explicite n'outrepasse l'héritage.
Par défaut, si aucune autorisation n'est spécifiée, toutes les autorisations sont accordées
pour un objet de système de fichiers.
La syntaxe des règles de système de fichiers est la suivante :
(permission|perm) liste_autorisations objet_fichier
où :
permission ou perm Définit les autorisations pour un fichier ou un répertoire.
liste_autorisations Les types d'autorisations que vous pouvez appliquer à un
fichier ou un répertoire sont les suivants :
• none : refuse toutes les autorisations à un fichier ou
un répertoire.
• read : contrôle l'accès en lecture à l'objet. Si l'objet
est un fichier, la lecture et l'exécution du fichier sont
contrôlées. Si l'objet est un répertoire, la recherche
et l'affichage du répertoire sont contrôlés. De plus,
pour des raisons d'héritage, la lecture de tous les
fichiers situés sous le répertoire est contrôlée. Les
fichiers doivent être accessibles en lecture afin d'être
ouvert pour exécution.
• write : contrôle l'accès en écriture à l'objet. Si
l'objet est un fichier, l'écriture dans le fichier est
contrôlée. Si l'objet est un répertoire, pour des

132 Compartiments
raisons d'héritage, l'écriture de tous les fichiers situés
sous le répertoire est contrôlée.
• create : contrôle la capacité à créer des objets.
Cela s'applique uniquement aux objets répertoires.
Cet attribut est hérité par tous les répertoires situés
sous le répertoire spécifié.
• unlink : contrôle la capacité à supprimer des
objets. Cela s'applique uniquement aux objets
répertoires. Cet attribut est hérité par tous les
répertoires situés sous le répertoire spécifié.
• nsearch : contrôle la capacité à rechercher un
élément si l'objet_fichier est un répertoire. Cet
attribut n'est pas hérité par les sous-répertoires.
objet_fichier Le nom de chemin d'accès complet au fichier ou au
répertoire.
Par exemple :
/* deny all permissions except read to entire system */
perm read /

/* except for this directory */


perm read,write,create,unlink /var/opt/server

/* just read and write log files, not create them */


perm read,write /var/opt/server/logs

REMARQUE : Pour qu'il soit possible d'accorder une autorisation quelconque à un


objet de système de fichiers, le compartiment doit avoir au minimum une autorisation de
lecture sur chaque répertoire au-dessus de cet objet. Par exemple, pour accorder des
autorisations de lecture et d'écriture sur /var/opt/tmp/file1, vous devez accorder
des autorisations de lecture sur /var/opt/tmp, /var/opt, /var et /.

7.6.3 Règles IPC


Les règles Interprocess Communication (IPC) régissent la manière dont les processus
utilisent les méthodes de communication interprocessus entre les compartiments. Les
méthodes de communication IPC incluent la communication directe processus-à-processus
ou l'accès partagé à un objet IPC. Lorsqu'un objet est associé à un processus, l'objet
existe dans le même compartiment que le processus qui l'a créé. Vous définissez des
règles de compartiment pour décrire la relation entre le processus qui accède à l'objet
et l'objet auquel on accède. Lorsque la règle décrit deux processus qui communiquent
l'un avec l'autre, vous traitez le deuxième processus comme un objet. Le comportement
par défaut pour les objets IPC est que toutes les opérations entre différents compartiments
sont interdites, à moins qu'elles ne soient autorisées de manière explicite par une règle.

7.6 Règles et syntaxe de compartiment 133


On distingue deux types de règles IPC. La syntaxe du premier type de règle est la
suivante :
(grant|access) (pty|fifo|uxsock|ipc) nom_compartiment
où :
Accès Indique si la règle est orientée objet ou orientée sujet. Les
options sont les suivantes :
• grant : spécifie une règle orientée objet. Cette règle
permet aux processus du compartiment
nom_compartiment d'accéder au mécanisme IPC
spécifié dans le compartiment actuel.
• access : spécifie une règle orientée sujet. Cette règle
permet aux processus du compartiment actuel d'accéder
au mécanisme IPC spécifié dans le compartiment
nom_compartiment.
Méthode Spécifie la méthode de communication à laquelle s'applique
cette règle. Les options sont les suivantes :
• pty : indique que la règle s'applique à pty utilisé dans
la communication interprocessus.
• fifo : indique que la règle s'applique aux FIFO.
• uxsock : indique que la règle s'applique aux sockets de
domaines UNIX.
• ipc : indique que la règle s'applique aux objets IPC
SYSV et POSIX, tels que la mémoire partagée, les
sémaphores et les files d'attente de messages.
nom_compartiment Nom de l'autre compartiment avec lequel les processus de ce
compartiment peuvent communiquer.
Par exemple :
/* allow the children to access UNIX domain */
/* sockets created by the parent compartment */
grant uxsock server_children
Le deuxième type de règle IPC gouverne l'accès des processus. La syntaxe de ce type
de règle est la suivante :
(send|receive) signal nom_compartiment
où :

134 Compartiments
Direction Indique si les processus du compartiment actuel peuvent voir
et modifier le comportement des processus à partir d'un autre
compartiment spécifié. Les options sont les suivantes :
• send : spécifie une règle orientée sujet. Autorise les
processus du compartiment actuel à envoyer des signaux
et à voir les données de processus du compartiment
nom_compartiment.
• receive : spécifie une règle orientée objet. Autorise les
processus du compartiment nom_compartiment à
envoyer des signaux et à voir les données de processus
du compartiment actuel.
signal Indique que cette règle s'applique aux signaux et à la visibilité
des processus.
nom_compartiment Nom de l'autre compartiment vers ou à partir duquel les
processus du compartiment actuel peuvent voir les informations
de processus.
Par exemple :
/* allow the parent to send signals to children */
send signal server_children

7.6.4 Règles réseau


Les règles réseau régissent l'accès aux interfaces réseau. Elles régissent également la
communication entre les processus qui utilisent la communication de domaine INET (flux
et sockets TCP/IP). Le comportement par défaut consiste à refuser l'accès au réseau.
Les points de terminaison réseau sont traités comme des objets libellés avec le
compartiment du processus qui les crée. Toutefois, un point de terminaison réseau peut
être créé par un processus, puis passé à un autre processus qui peut s'exécuter dans un
autre compartiment. Des vérifications d'accès sont effectuées sur le compartiment qui
contenait le point de terminaison lorsque celui-ci a été créé, et non sur le compartiment
actuel. De plus, le point de terminaison passe sa configuration de compartiment aux
points de terminaison acceptants lorsqu'il reçoit de nouvelles connexions.
Les points de terminaison de domaine INET sont fréquemment utilisés pour les
communications interprocessus. Assurez-vous de configurer les compartiments en
conséquence.
La syntaxe des règles réseau est la suivante :
(grant|deny) (server|client|bidir) (tcp|udp|raw [num_protocole] )
[port num_port] [peer[portport]] nom_compartiment
où :

7.6 Règles et syntaxe de compartiment 135


Accès Accorde ou refuse au compartiment l'accès au trafic réseau
dans le compartiment spécifié. Les options sont les suivantes :
• grant
• deny
Direction Indique le sens d'application de la règle. Les options sont les
suivantes :
• server : cette règle s'applique uniquement aux
demandes entrantes. Pour TCP, seules les connexions
entrantes sont contrôlées par cette règle. Pour UPD et
RAW, cette règle s'applique à tous les paquets entrants.
• client : cette règle s'applique uniquement aux
demandes sortantes. Pour TCP, seules les initiations de
connexions sont contrôlées par cette règle. Pour UPD et
RAW, cette règle s'applique à tous les paquets sortants.
• bidir : cette règle s'applique aux demandes entrantes
et sortantes. Pour TCP, les connexions initiées et reçues
par le point de terminaison sont contrôlées par cette règle.
Pour UPD et RAW, cette règle s'applique à tous les
paquets passant par le point de terminaison.
Protocole Spécifie le protocole réseau qui s'applique à cette règle. Les
options sont les suivantes :
• tcp : cette règle s'applique au protocole TCP.
• udp : cette règle s'applique au protocole UDP.
• raw : cette règle s'applique à tout autre protocole dans
le domaine INET.
num_protocole Le numéro de protocole spécifié pour cette règle. L'option
num_protocole ne s'applique qu'à la spécification raw.
port (Facultatif) Indique que cette règle s'applique à un port
spécifique.
num_port Identifie le port spécifié dans cette règle.
peer (Facultatif) Les informations de port s'appliquent au point de
terminaison d'homologue impliqué dans la communication
pour cette règle.
nom_compartiment Le nom du compartiment associé à l'interface ou au point de
terminaison d'homologue auquel cette règle s'applique.
Par exemple :
/* allow all inbound TCP connections(any port)from interfaces labeled lancmpt1 */
grant server tcp lancmpt1

136 Compartiments
/* allow DNS client lookups (both TCP and UDP) through interface labeled lancmpt1 */
grant client tcp port 53 lancmpt1
grant bidir udp port 53 lancmpt1
/* allow only outbound telnet connections through interface labeled ifacelan0 */
grant client tcp peer port 23 ifacelan0
/* allow all TCP traffic except inbound telnet through interface labeled ifacelan0 */
/* the following two lines can be specified in either order */
grant bidir tcp ifacelan0
deny server tcp port 23 ifacelan0
/* allow inbound web server traffic through interface lan1cmpt */
grant server tcp port 80 lan1cmpt
Pour plus d'informations sur les règles réseau, voir compartments(4).

7.6.5 Règles diverses


Il s'agit des règles qui n'appartiennent à aucune des catégories de règles décrites
ci-dessus.
Règles d'interface réseau Une règle d'interface réseau spécifie le compartiment auquel
appartient une interface. Une interface réseau qui n'est dans aucun compartiment ne
peut pas être activée.

REMARQUE : Pour des stratégies de sécurité plus strictes, configurez les interfaces
réseau dans des compartiments différents de ceux affectés aux processus. Définissez des
règles d'accès réseau pour chaque compartiment en conséquence. Les compartiments
égaux disposent toujours d'un accès complet les uns aux autres.
La syntaxe de règle d'interface réseau est la suivante :
compartment nom_compartiment {
interface interface_ou_ip[,interface_ou_ip][...]
}
où :
interface Indique qu'il s'agit d'une définition d'interface.
interface_ou_ip[,interface_ou_ip][...] Liste de noms d'interfaces, d'adresses IP ou de
plages d'adresses IP séparées par des virgules.
Les adresses IP ou plages d'adresses IP peuvent
être spécifiées sous forme d'adresses IPv4 ou IPv6
avec un masque optionnel.
Par exemple :
compartment iface0 {
/* Define the compartment for the network interface lan0 */
interface lan0
/* All addresses in the range 192.168.0.0-192.168.0.255 */
interface 192.160.0.0/24
}

7.6 Règles et syntaxe de compartiment 137


compartment other_ifaces {
/* Define the compartment for two of the other network interfaces */
interface lan1,lan5
Règles de limitation de privilège Une règle de limitation de privilège contrôle l'héritage
des privilèges. Un privilège nommé dans une règle de limitation de privilège ne peut
pas être obtenu lors de l'appel de execve(2).
La syntaxe des règles de limitation de privilège est la suivante :
disallowed privileges privilège[,privilège[...]]
où :
disallowed privileges Indique qu'il s'agit d'une règle de limitation de
privilège.
privilège[,privilège[...]] Liste de privilèges séparés par des virgules. Vous
pouvez utiliser les mots clés supplémentaires
suivants :
• all : interdire tous les privilèges
• none : autoriser tous les privilèges
• ! : signifie "excepté"
Par exemple :
/* Disallow all privileges except mount. */
disallowed privileges all,!mount
/* Disallow mount only. */
disallowed privileges none,mount
Si aucune règle de limitation de privilège n'est spécifiée pour un compartiment, la
limitation de privilège par défaut est basicpolicy,mknod pour chaque compartiment,
à l'exception du compartiment INIT. La limitation de privilège par défaut pour le
compartiment INIT est none.

7.6.6 Exemple de fichier de règles


Un exemple de fichier de règles se trouve dans /etc/cmpt/examples/
sendmail.example.

7.7 Configuration des applications dans des compartiments


Vous pouvez configurer une application pour qu'elle s'exécute dans un compartiment
donné. Utilisez la commande setfilexsec pour configurer l'attribut de compartiment d'un
fichier binaire. Par exemple, pour configurer l'application pomme dans le compartiment
fruit, entrez la commande suivante :
# setfilexsec -c fruit pomme

138 Compartiments
En guise d'alternative, vous pouvez utiliser le contrôle d'accès basé sur les rôles HP-UX
pour configurer une application de sorte qu'elle s'exécute dans un compartiment. Voir
la Section 9.5.5.

7.8 Résolution des problèmes liés aux compartiments


Si quelque chose ne fonctionne pas sur le système et que vous soupsçonnez que le
problème est lié à la structure des compartiments, vous pouvez vérifier les règles de
compartiment de la manière suivante.
Problème 1 : l'accès n'est pas contrôlé conformément aux règles de compartiment que
j'ai configurées. Solution : les règles ne sont peut-être pas définies dans le noyau. Pour
vérifier si les règles sont définies dans le noyau, procédez comme suit :
1. Utilisez la commande suivante pour répertorier les règles de compartiment valides
dans le noyau.
# getrules
2. Utilisez la commande suivante pour répertorier toutes les règles configurées sur le
système, y compris celles qui n'ont pas été chargées dans le noyau.
# setrules -p
3. Comparez les sorties des deux commandes. Si elles sont identiques, toutes les règles
sont chargées dans le noyau. Si les sorties diffèrent, vous devez charger des règles
dans le noyau.
4. Utilisez la commande suivante pour charger des règles dans le noyau. :
# setrules

Problème 3 : l'accès à un fichier ne fonctionne pas correctement. Solution : si plusieurs


liens physiques pointent vers ce fichier, la configuration de règles de compartiment
contient peut-être des règles incohérentes pour l'accès au fichier. Pour vérifier s'il existe
des incohérences, procédez comme suit :
1. Exécutez la commande suivante :
# vhardlinks
Si la sortie indique la présence d'une incohérence, passez à l'étape 2.
2. Modifiez les règles afin de supprimer l'incohérence. Appliquez la procédure décrite
à la Section 7.4.
Problème 3 : les règles de serveur réseau n'apparaissent pas dans la sortie de
getrules. Solution : étant donné la manière dont les règles sont gérées en interne, les
règles de serveur réseau pour un compartiment donné peuvent être répertoriées dans la
sortie du compartiment cible de la commande getrules.
Par exemple :
/* telnet compartment rule to allow incoming telnet requests through compartment labeled ifacelan0
*/
grant server tcp port 23 ifacelan0

7.8 Résolution des problèmes liés aux compartiments 139


Si cette règle est spécifiée, elle est répertoriée sous la sortie du compartiment ifacelan0
de getrules.

ACCESS PROTOCOL SRCPORT DESPORT DESCMPT


Grant client tcp 0 23 telnet

7.9 Utilisation du mode découverte pour générer une configuration de


compartiment initiale
Une définition de compartiment peut être balisée avec le mot clé discover. Voir la
Section 7.6.1. Le mot clé discover fait en sorte que le système découvre toutes les
règles nécessaires au bon fonctionnement de l'application. Cette fonctionnalité ne doit
être utilisée que dans un environnement de test.
Pour utiliser le mode discover, marquez le compartiment comme discover et exécutez
les applications de manière normale. Le système identifie toutes les adresses de ressources
et crée les règles requises.
Après l'exécution initiale de l'application, utilisez la commande getrules –m
nom_compartiment pour générer une version des règles lisible par l'ordinateur.
Les règles générées par le système sont nécessaires au fonctionnement correct de
l'application dans l'environnement de test, mais elles devront peut-être être généralisées.
Par exemple, il se peut que le système génère une règle qui concerne un numéro de port
dans une plage de ports anonyme où le noyau, et non l'application, sélectionne le numéro
de port. Lorsque l'application est exécutée de nouveau, elle peut se retrouver avec un
numéro de port différent, exigeant une règle différente. La règle devra peut-être être
généralisée de telle sorte que tous les ports ou au moins les numéros de ports dans la
plage de ports anonymes soient spécifiés.

7.10 Compartiments dans les clusters HP Serviceguard


Si vous utilisez des compartiments avec HP Serviceguard, vous devez configurer tous les
démons Serviceguard dans le compartiment INIT par défaut. Par contre, vous pouvez
configurer des packages Serviceguard dans d'autres compartiments. Pour plus
d'informations sur les démons requis dans Serviceguard et sur les extensions Serviceguard
pour Oracle Real Application Cluster (RAC), consultez les versions les plus récentes des
documents Managing Serviceguard et Using Serviceguard Extension for RAC.
Les packages Serviceguard peuvent appartenir à des compartiments spécifiques. Les
applications contrôlées dans le cadre d'un package Serviceguard peuvent également
être configurées dans des compartiments spécifiques. Lorsque vous configurez le
compartiment pour un package, assurez-vous que les ressources requises par le package
(telles que des groupes de volumes, des systèmes de fichiers, des adresses réseau, et
ainsi de suite) sont accessibles à ce compartiment. Les règles de compartiment sont
spécifiques aux nœuds et ne sont pas transférées durant les opérations de basculement
Serviceguard. Pour garantir un fonctionnement correct après un basculement, tous les
nœuds du cluster doivent avoir des configurations de compartiment identiques.
140 Compartiments
Lorsqu'une interface LAN principale bascule vers une interface LAN de secours, le libellé
de compartiment de l'interface principale est copié automatiquement vers l'interface de
secours, à condition que celle-ci ne soit pas en ligne. Si l'interface de secours est déjà
configurée en ligne, les deux interfaces doivent être configurées dans le même
compartiment pour que le basculement réussisse. Si l'interface de secours est configurée
dans un compartiment différent de l'interface principale, mais qu'elle est hors ligne au
moment du basculement, l'interface de secours est mise à jour vers la configuration de
compartiment de l'interface principal lors du basculement d'interface.
Pour garantir un fonctionnement correct de Serviceguard lors du déploiement de
compartiments dans des nœuds ou des packages Serviceguard :
• Ne modifiez en aucune manière les spécifications du compartiment INIT.
• Assurez-vous que inetd s'exécute dans le compartiment INIT.
• Assurez-vous que tous les démons Serviceguard dans un cluster s'exécutent dans le
compartiment INIT. Les démons pour Serviceguard version A.11.16 comprennent
entre autres cmclconfd, cmcld, cmlogd, cmlvmd, cmomd et cmsnmpd. Pour
obtenir une listes des démons Serviceguard, consultez le document Managing
Serviceguard.
• Assurez-vous que toutes les exigences de cluster Serviceguard sont satisfaites pour
les clusters Serviceguard Extensions for RAC. De plus, les clusters avec Serviceguard
Extension for RAC Version A.11.16 exigent que le démon cmsmgd s'exécute dans
le compartiment INIT. Les processus RAC doivent avoir accès à la bibliothèque
libnmapi2 et doivent communiquer avec cmsmgd. Pour obtenir une liste des
démons et bibliothèques requis, reportez-vous au document Using Serviceguard
Extension for RAC.
• Ne configurez pas d'interfaces LAN de secours dans un compartiment.
• Configurez les compartiments et les règles de façon identique sur tous les nœuds
du cluster. Les compartiments et les règles sont spécifiques à un système et ne sont
pas transférés en cas de basculement du système.

REMARQUE : Si une interface de secours est configurée dans un compartiment,


l'exécution de la commande setrules applique ce compartiment à l'interface de
secours même si elle a basculé correctement depuis une interface principale. Si le
compartiment d'interface de secours configuré ne correspond pas au compartiment
d'interface principale, celui-ci est écrasé lorsque vous exécutez setrules. Cela peut
provoquer des violations de sécurité.
Aucune modification n'est apportée aux scripts Serviceguard afin de faciliter l'utilisation
des compartiments, des privilèges à granularité élevée ou du contrôle d'accès basé sur
les rôles.

7.10 Compartiments dans les clusters HP Serviceguard 141


142
8 Privilèges à granularité élevée
Ce chapitre décrit la fonctionnalité de privilèges à granularité élevée de HP-UX 11i. Il
traite des sujets suivants :
• Présentation (Section 8.1)
• Composants de privilèges à granularité élevée (Section 8.2)
• Privilèges disponibles (Section 8.3)
• Configuration des applications avec les privilèges à granularité élevée (Section 8.4)
• Implications de sécurité des privilèges à granularité élevée (Section 8.5)
• Privilèges à granularité élevée dans les clusters HP Serviceguard (Section 8.6)
• Résolution des problèmes liés aux privilèges à granularité élevée (Section 8.7)

8.1 Présentation
Le système d'exploitation UNIX utilise traditionnellement un modèle de privilège "tout
ou rien" dans lequel des superutilisateurs (ceux ayant un UID=0 effectif, tels que
l'utilisateur root) ont des pouvoirs pratiquemment illimités, et les autres utilisateurs n'ont
que peu ou aucun privilège spécial.
HP-UX fournit plusieurs méthodes héritées pour déléguer des pouvoirs limités, y compris
smh(1M) restreint, les groupes de privilèges décrits dans privgrp(4), le fichier
shutdown.allow décrit dans shutdown(1M) et le fichier cron.allow décrit dans
crontab(1).
Ces méthodes héritées peuvent être remplacées par l'utilisation de privilèges à granularité
élevée et par le cadre de contrôle d'accès HP-UX RBAC.
Le modèle de privilèges à granularité élevée HP-UX divise les pouvoirs des superutilisateurs
en un ensemble de privilèges. Les privilèges à granularité élevée sont accordés aux
processus. Chaque privilège accorde à un processus qui possède ce privilège le droit à
un certain ensemble de services restreints fournis par le noyau.
Pour plus d’informations, voir privileges(5).

8.2 Composants de privilèges à granularité élevée


La fonctionnalité de privilèges à granularité élevée de HP-UX 11i inclut des fichiers de
configuration, des commandes et des pages de manuel. Vous pouvez utiliser ces
composants pour configurer et administrer les privilèges à granularité élevée.

8.1 Présentation 143


8.2.1 Commandes
Le Tableau 8-1 décrit brièvement les commandes de privilèges à granularité élevée.
Tableau 8-1 Commandes de privilèges à granularité élevée
Commandes Description

setfilexsec Définit les attributs de sécurité des fichiers binaires. Ces attributs
comprennent des privilèges retenus, des privilèges autorisés, un
compartiment et l'indicateur de début de privilège.

getfilexsec Affiche les attributs de sécurité associés aux fichiers exécutables


binaires. Ces attributs comprennent des privilèges retenus, des privilèges
autorisés, un compartiment et des indicateurs d'attributs de sécurité.

getprocxsec Affiche les attributs de sécurité associés aux processus en cours


d'exécution. Ces attributs comprennent l'ensemble de privilèges effectifs,
l'ensemble de privilèges retenus, l'ensemble de privilèges autorisés,
euid et le nom de compartiment.

8.2.2 Pages de manuel


Le Tableau 8-2 décrit brièvement les pages de manuel de privilèges à granularité élevée.
Tableau 8-2 Pages de manuel de privilèges à granularité élevée
Page de manuel Description

privileges(5) Présentation des privilèges HP-UX

privileges(3) Décrit les interfaces de privilèges à granularité élevée.

setfilexsec(1M) Décrit la fonctionnalité et la syntaxe de setfilexsec.

getfilexsec(1M) Décrit la fonctionnalité et la syntaxe de getfilexsec.

getprocxsec(1M) Décrit la fonctionnalité et la syntaxe de getprocxsec.

8.3 Privilèges disponibles


Les privilèges à granularité élevée sont destinés principalement aux développeurs.
Toutefois, il peut être utile que les administrateurs comprennent le concept de privilèges
afin de mieux comprendre comment ces applications fonctionnent et afin d'identifier si
des applications non autorisées ont obtenu des privilèges.
Le Tableau 8-3 répertorie les privilèges et leurs fonctions principales.

144 Privilèges à granularité élevée


Tableau 8-3 Privilèges disponibles
Privilège Description

PRIV_ACCOUNTING Permet à un processus de contrôler le système de comptabilité de


processus.

PRIV_AUDCONTROL Permet à un processus de démarrer, modifier ou arrêter le système


d'audit.

PRIV_CHANGECMPT Accorde à un processus la possibilité de changer de compartiment.

PRIV_CHANGEFILEXSEC Permet à un processus d'accorder des privilèges à des binaires.

PRIV_CHOWN Permet à un processus d'accéder aux appels système chown().

PRIV_CHROOT Permet à un processus de changer son répertoire racine.

PRIV_CHSUBJIDENT Permet à un processus de changer ses UID, GID et listes de groupes.


Permet également à un processus de laisser ses bits suid ou sgid
définis sur le fichier lorsque l'appel système chown() est utilisé.

PRIV_CMPTREAD Permet à un processus d'ouvrir un fichier ou un répertoire pour la


lecture, l'exécution ou la recherche, en contournant les règles de
compartiment qui interdisent normalement ces opérations.

PRIV_CMPTWRITE Permet à un processus d'écrire dans un fichier ou un répertoire, en


contournant les règles de compartiment qui interdisent normalement
cette opération.

PRIV_COMMALLOWED Permet à un processus d'outrepasser les règles de compartiment


dans l'IPC et les sous-systèmes de mise en réseau.

PRIV_DACREAD Permet à un processus d'outrepasser toutes les restrictions d'accès


de lecture, d'exécution et de recherche discrétionnaires.

PRIV_DACWRITE Permet à un processus d'outrepasser toutes les restrictions d'accès


d'écriture discrétionnaires.

PRIV_DEVOPS Permet à un processus d'effectuer des opérations administratives


spécifiques aux périphériques, telles que le formatage de disque
ou de bande.

PRIV_DLKM Permet à un processus de charger un module de noyau, d'obtenir


des informations concernant un module de noyau chargé, et de
modifier des chemins d'accès de recherche globale pour un module
de noyau chargé de manière dynamique.

PRIV_FSINTEGRITY Permet à un processus d'effectuer des opérations de disque telles


que la suppression ou la modification de la taille ou des limites de
partitions de disque, ou d'importer et d'exporter un groupe de
volumes LVM au sein du système.

PRIV_LIMIT Permet à un processus de définir des limites de ressources et de


priorités au-delà des valeurs limites maximales.

8.3 Privilèges disponibles 145


Tableau 8-3 Privilèges disponibles (suite)
Privilège Description

PRIV_LOCKRDONLY Permet à un processus d'utiliser l'appel système lockf() pour


verrouiller des fichiers ouverts avec une autorisation en lecture seule.

PRIV_MKNOD Permet à un processus de créer des fichiers spéciaux en mode


caractère ou en mode bloc à l'aide de l'appel système mknod().

PRIV_MLOCK Permet à un processus d'accéder à l'appel système plock.

PRIV_MOUNT Permet à un processus de monter et démonter un système de fichiers


à l'aide des appels système mount() et umount().

PRIV_MPCTL Permet à un processus de modifier la liaison de processeur, la liaison


de domaine de localité ou la stratégie de démarrage.

PRIV_NETADMIN Permet à un processus d'effectuer des opérations d'administration


réseau, y compris la configuration des tables de routage réseau et
l'interrogation des informations d'interface.

PRIV_NETPRIVPORT Permet à un processus d'établir une liaison à un port privilégié. Par


défaut, les numéros de port 0-1023 sont des ports privilégiés.

PRIV_NETPROMISCUOUS Permet à un processus de configurer une interface de façon à écouter


en mode de proximité.

PRIV_NETRAWACCESS Permet à un processus d'accéder aux protocoles réseau Internet


bruts.

PRIV_OBJSUID Permet à un processus de définir les bits suid ou sgid sur n'importe
quel fichier si le processus détient le privilège OWNER. Permet
également à un processus de modifier la propriété d'un fichier sans
effacer les bits suid ou sgid, à condition que le processus soit
autorisé à modifier la propriété du fichier.

PRIV_OWNER Permet à un processus d'outrepasser toutes les restrictions en ce qui


concerne la correspondance entre l'UID et le propriétaire du fichier
ou de la ressource.

PRIV_PSET Permet à un processus de modifier la configuration pset du système.

PRIV_REBOOT Permet à un processus d'effectuer des opérations de réamorçage.

PRIV_RTPRIO Permet à un processus d'accéder à l'appel système rtprio().

PRIV_RTPSET Permet à un processus de contrôler des psets RTE.

PRIV_RTSCHED Permet à un processus de définir des priorités POSIX.4 en temps


réel.

PRIV_RULESCONFIG Permet à un processus d'ajouter et de modifier des règles de


compartiment sur le système.

PRIV_SELFAUDIT Permet à un processus de générer des enregistrements d'audit pour


lui-même à l'aide d'un appel système auditwrite().

146 Privilèges à granularité élevée


Tableau 8-3 Privilèges disponibles (suite)
Privilège Description

PRIV_SERIALIZE Permet à un processus d'utiliser l'appel système serialize() pour


forcer un processus cible à s'exécuter en série avec d'autres
processus marqués pour la sérialisation.

PRIV_SPUCTL Permet à un processus d'effectuer certaines opérations


administratives dans le produit Instant Capacity.

PRIV_SYSATTR Permet à un processus de gérer des attributs système, y compris


définir des paramètres ajustables et modifier le nom d'hôte, le nom
de domaine et les quotas utilisateur.

PRIV_SYSNFS Permet à un processus d'effectuer des opérations NFS telles que


l'exportation d'un système de fichiers, l'appel système getfh(), le
verrouillage de fichier NFS, la révocation d'authentification NFS et
la création d'une thread de démon de noyau NFS.

PRIV_TRIALMODE Permet à un processus de consigner des informations de mode


d'évaluation dans le fichier syslog.

8.4 Configuration des applications avec les privilèges à granularité élevée


Les applications écrites ou modifiées de façon à prendre en charge les privilèges à
granularité élevée portent le nom d'applications compatibles avec les privilèges. Vous
devez inscrire les applications compatibles avec les privilèges à l'aide de la commande
setfilexsec. Une fois les applications inscrites, les attributs de sécurité associés à un
fichier binaire sont stockés dans un fichier de configuration et sont conservés d'un
réamorçage à l'autre. Cete opération est normalement effectuée à votre intention lorsque
vous installez et configurez des applications compatibles avec les privilèges à l'aide des
utilitaires SD-UX.
Les anciennes applications HP-UX, ou applications héritées, ne sont pas compatibles
avec les privilèges. Vous pouvez configurer des applications héritées qui s'exécutent
avec UID=0 de sorte qu'elles s'exécutent avec des privilèges à granularité élevée. Pour
configurer des applications héritées avec le contrôle d'accès basé sur les rôles HP-UX,
voir la Section 9.5.4.

ASTUCE : HP recommande d'utiliser le contrôle d'accès basé sur les rôles HP-UX pour
configurer les applications dont l'exécution requiert des privilèges variables.
Pour configurer les attributs de sécurité d'une application compatible avec les privilèges,
utilisez la commande setfilexsec comme suit :
# setfilexsec [options] nom_fichier
La commande setfilexsec est supposée affecter des privilèges aux binaires sur un
système de fichiers local. Aucun privilège ne doit être accordé aux binaires obtenus à
partir d'un système de fichiers réseau (NFS), car si le fichier est modifié par un système
8.4 Configuration des applications avec les privilèges à granularité élevée 147
différent (directement sur le serveur NFS), les attributs étendues définis par setfilexsec
ne sont pas supprimés.
Les options de setfilexsec sont les suivantes :
-d Supprime du fichier de configuration et du noyau toute information de sécurité
relative à ce fichier.
-D Supprime du fichier de configuration toute information de sécurité relative à ce
fichier. Cette option est utilisée pour effacer les informations de sécurité relatives à
un fichier supprimé.
-r Ajouter ou modifier des privilèges retenus minimum.
-R Ajouter ou modifier des privilèges retenus maximum.
-p Ajouter ou modifier des privilèges permis minimum.
-P Ajouter ou modifier des privilèges permis maximum.
-f Définit les indicateurs d'attributs de sécurité.
La commande getfilexsec affiche les attributs étendus d'un fichier binaire, définis
avec la commande setfilexsec.
# getfilexsec nom_fichier

8.4.1 Modèle de privilège


Chaque processus est associé à trois ensembles de privilèges :
• Ensemble de privilèges permis
L'ensemble maximal de privilèges qu'un processus peut élever. Le processus peut
retirer n'importe quel privilège de cet ensemble, mais il ne peut pas en ajouter. Les
privilèges de cet ensemble peuvent être ajoutés à l'ensemble de privilèges effectifs
du processus.
• Ensemble de privilèges effectifs
L'ensemble de privilèges actuellement actifs pour un processus. Un processus
compatible avec les privilèges peut modifier l'ensemble de privilèges effectifs de
façon à conserver uniquement les privilèges nécessaires dans cet ensemble à tout
moment donné. Le processus peut supprimer n'importe quel privilège de l'ensemble
de privilèges effectifs, mais il ne peut ajouter que des privilèges de l'ensemble de
privilèges permis.
L'ensemble de privilèges effectifs est toujours un sous-ensemble de l'ensemble de
privilèges permis.
• Ensemble de privilèges retenus
L'ensemble de privilèges retenus lorsqu'un processus invoque l'appel système
execve(). Le processus peut retirer n'importe quel privilège de cet ensemble, mais
il ne peut pas en ajouter.

148 Privilèges à granularité élevée


L'ensemble de privilèges retenus est toujours un sous-ensemble de l'ensemble de
privilèges permis.
Le premier processus, init, démarre avec un petit ensemble de privilèges. Il crée ensuite
d'autres processus qui exécutent d'autres binaires à l'aide d'appels de la famille exec
(execv, execve et ainsi de suite). Durant cet appel exec, les attributs étendus du
binaire, les attributs définis avec la commande setfilexsec, peuvent faire en sorte
que ces processus obtiennent des privilèges que leur processus parent n'a pas, ou perdent
des privilèges que leur processus parent avait. Par exemple, si un binaire a un minimum
permis de DACREAD (setfilexsec –p DACREAD a été exécutée sur le binaire), le
nouveau processus aura le privilège DACREAD même si le processus parent ne l'avait
pas. D'un autre côté, si le processus avait déjà le privilège DACREAD et que le binaire
qu'il exécute n'a pas ce privilège dans le max permis (par exemple setfilexsec -P
none …. a déjà été exécuté sur le fichier), il perdra ce privilège suite à l'exécution du
binaire.

8.4.2 Privilèges composés


Les privilèges composés permettent de spécifier rapidement un ensemble prédéfini de
privilèges simples.
Voici une liste de privilèges composés :
• BASIC
Privilèges de base disponibles à tous les processus par défaut. Les processus peuvent
supprimer un ou plusieurs privilèges de cet ensemble.
• BASICROOT
Privilèges de base et privilèges qui procurent des pouvoirs généralement associés
à UID=0.
• POLICY
Privilèges d'outrepassement de stratégie et privilèges de configuration de stratégie.
Les privilèges d'outrepassement de stratégie outrepassent les règles de compartiment.
Les privilèges de configuration de stratégie contrôlent la manière dont les privilèges
sont configurés.
Pour obtenir une liste complète des privilèges dans chaque privilège composé, voir
privileges(5).

8.4 Configuration des applications avec les privilèges à granularité élevée 149
8.5 Implications de sécurité des privilèges à granularité élevée
Les privilèges à granularité élevée ne sont pas propagés sur les systèmes distribués ; ils
sont appliqués uniquement au système local. Par example, un processus sur un système
qui a PRIV_DACREAD et PRIV_DACWRITE ne peut pas outrepasser les restrictions
discrétionnaires sur un autre système afin de lire ou d'écrire dans un fichier.

8.5.1 Escalade des privilèges


Dans certaines situations, si vous accordez à un processus un certain privilège ou
ensemble de privilèges, ce processus peut obtenir des privilèges supplémentaires qui ne
lui ont pas été accordés de manière explicite. On appelle cela l'escalade des privilèges.
Par exemple, un processus avec le privilège PRIV_DACWRITE peut écraser des fichiers
de système d'exploitation critiques et, par là même, peut s'accorder à lui-même des
privilèges à granularité élevée supplémentaires.

8.6 Privilèges à granularité élevée dans les clusters HP Serviceguard


Les applications compatibles avec les privilèges peuvent être contrôlées par
HP Serviceguard. Aucune modification n'a été apportée aux fichiers de configuration
de package Serviceguard ou à la gestion de package Serviceguard afin de prendre en
charge les privilèges à granularité élevée. Aucune modification n'a été apportée aux
scripts Serviceguard afin de faciliter l'utilisation des privilèges à granularité élevée.
Pour garantir un fonctionnement correct des opérations Serviceguard lors du déploiement
des privilèges à granularité élevée HP-UX 11i sur des nœuds ou des packages
Serviceguard :
• Assurez-vous que le compte root (UID=0) a des privilèges complets dans le
compartiment INIT.
• Assurez-vous que les implémentations des privilèges à granularité élevée ne créent
aucun risque pour la sécurité des clusters Serviceguard.

8.7 Résolution des problèmes liés aux privilèges à granularité élevée


Si quelque chose ne fonctionne pas sur le système et que vous soupçonnez que le
problème est lié aux privilèges à granularité élevée, vous pouvez vérifier la configuration
des privilèges à granularité élevée de la manière suivante.
Problème 1 : bien que des privilèges à granularité élevée soient affectés à un fichier
binaire, les processus qui exécutent exec() pour accéder au binaire ne reçoivent pas les
privilèges à granularité élevée affectés. Solution : vérifiez les éléments suivants :
• Le fichier en question est-il un script ?
Tout privilège à granularité élevée affecté aux scripts de shell est ignoré.

150 Privilèges à granularité élevée


• Le fichier a-t-il changé depuis l'affectation des privilèges à granularité élevée ?
Lorsqu'un fichier est modifié, ses attributs de privilèges à granularité élevée sont
perdus. Exécutez la commande suivante avant ou après la modification du fichier :
# setfilexsec -d nom_fichier
Ensuite, ajoutez les attributs de privilèges que vous souhaitez affecter au fichier.
Pour plus d'informations sur la résolution des problèmes liés aux privilèges à granularité
élevée, voir setfilexsec(1M).
Problème 2 : un processus a des privilèges qu'il ne devrait pas avoir, ou n'a pas les
privilèges qu'il devrait avoir. Solution : utilisez la commande getprocxsec pour
déterminer les privilèges que détient un processus :
# getprocxsec -per pid
Cette commande affiche les ensembles de privilèges permis, effectifs et retenus pour le
processus. Pour plus d'informations, voir getprocxsec(1M).
Si le processus n'a pas les privilèges corrects, configurez le fichier binaire qui a créé ce
processus avec les privilèges corrects. Pour plus d’informations, voir « Configuration des
applications avec les privilèges à granularité élevée ».

8.7 Résolution des problèmes liés aux privilèges à granularité élevée 151
152
Partie III Protection de l'identité
Dans les entreprises globales d'aujourd'hui, la gestion de l'identité n'est pas une tâche facile,
en particulier lorsque ses exigences incluent la gestion d'employés, de sous-traitants, de
partenaires et de fournisseurs implantés dans de nombreux pays appliquant différentes lois et
réglementations relatives à la protection de la vie privée. HP-UX 11i simplifie la gestion de
l'authentification et de l'accès utilisateur tout en assurant un audit de toutes les actions privilégiées
qui ont lieu.
Cette section traite des sujets suivants :
• Contrôle d'accès basé sur les rôles HP-UX (Chapitre 9)
• Administration de l'audit (Chapitre 10)

153
154
9 Contrôle d'accès basé sur les rôles HP-UX
Les informations de ce chapitre décrivent le contrôle d'accès basé sur les rôles HP-UX
(HP-UX RBAC). Il traite des sujets suivants :
• Présentation (Section 9.1)
• Principes de base du contrôle d'accès (Section 9.2)
• Composants du contrôle d'accès basé sur les rôles HP-UX (Section 9.3)
• Planification du déploiement HP-UX RBAC (Section 9.4
• Configuration du contrôle d'accès basé sur les rôles HP-UX (Section 9.5)
• Utilisation du contrôle d'accès basé sur les rôles HP-UX (Section 9.6)
• Dépannage du contrôle d'accès basé sur les rôles HP-UX (Section 9.7)

9.1 Présentation
La sécurité, en particulier celle des plates-formes, a toujours constitué un élément important
de l'infrastructure d'entreprise. Malgré tout, de nombreuses organisations ont souvent
négligé ou ignoré dans le passé les concepts de sécurité tels que la responsabilité de
l'individu et les moindres privilèges. Cependant, la législation introduite il y a peu aux
États-Unis, y compris le "Health Insurance Portability and Accountability Act (HIPAA)" et
le "Sarbanes-Oxley Act", a contribué à souligner l'importance de ces concepts de sécurité.
La plupart des environnements d'entreprise ont des systèmes administrés par plusieurs
utilisateurs. En général, on leur procure le mot de passe à un compte commun partagé
appelé root. Bien que le compte root simplifie la gestion du contrôle d'accès en permettant
aux administrateurs qui connaisssent le mot de passe root d'effectuer toutes les opérations,
il présente tout de même certains inconvénients pour la gestion du contrôle d'accès :
• Une fois que les utilisateurs administratifs connaissent le mot de passe root, il est
difficile de les restreindre.
• Dans le meilleur des cas, la révocation de l'accès pour un administrateur spécifique
nécessite de modifier le mot de passe commun et d'en informer les autres
administrateurs. Plus concrètement, la simple modification du mot de passe ne sera
probablement pas suffisante pour vraiment révoquer l'accès, car d'autres mécanismes
d'accès auront peut-être déjà été implémentés.
• La gestion des comptes individuels avec un compte root partagé est pratiquement
impossible. En conséquence, il est difficile, voire impossible, d'effectuer une analyse
correcte après un événement de sécurité.

9.1 Présentation 155


La fonctionnalité de contrôle d'accès basé sur les rôles HP-UX permet d'éliminer ces
inconvénients ; elle autorise pour cela l'affectation d'ensembles de tâches à des comptes
d'utilisateurs ordinaires mais configurés de manière adéquate. Elle limite également les
coûts de gestion associés à l'affectation et à la révocation d'autorisations individuelles
sur la base de chaque utilisateur.
Le contrôle d'accès basé sur les rôles HP-UX offre les fonctionnalités suivantes :
• Fichiers de configuration prédéfinis spécifiques à HP-UX, pour un déploiement simple
et rapide
• Réauthentification flexible par le biais de modules PAM (Plugable Authentication
Modules) afin d'autoriser des restrictions sur la base de chaque commande
• Intégration au système d'audit HP-UX afin de générer une trace d'audit unique et
unifiée
• Architecture enfichable pour la personnalisation des décisions de contrôle d'accès

9.2 Principes de base du contrôle d'accès


L'objectif d'un système de contrôle d'accès est de limiter l'accès aux ressources en fonction
d'un ensemble de contraintes. En général, ces contraintes et leurs attributs associés
appartiennent aux catégories suivantes :
• Sujet : l'entité qui tente d'accéder à la ressource. Dans le contexte d'un système
d'exploitation, le sujet est généralement un utilisateur ou un processus associé à un
utilisateur.
• Opération : une action effectuée sur une ressource. Une opération peut correspondre
directement à une application ou à une commande. Dans le cas du contrôle d'accès
basé sur les rôles HP-UX, l'opération est une chaîne hiérarchique séparée par des
points, telles que hpux.user.add.
• Objet : la cible de l'opération, qui est souvent (mais pas toujours) identique à la
ressource finale.
On pourrait apparenter une demande de contrôle d'accès à une question combinant les
éléments précédents, où la réponse à la question (généralement autoriser ou refuser)
détermine si l'accès à la ressource est accordé. Par exemple :
L'utilisateur ron est-il autorisé à effectuer l'opération hpux.fs.mount sur l'objet
/dev/dsk/c0t1d0 ?
Le terme "autorisation" est souvent utilisé comme synonyme de contrôle d'accès. Dans
le contrôle d'accès basé sur les rôles HP-UX, l'autorisation fait référence à la capacité à
effectuer une opération sur un objet. Comme illustré dans le Tableau 9-1, un utilisateur
peut avoir un ensemble d'autorisations, chacune autorisant l'accès à une ressource.

156 Contrôle d'accès basé sur les rôles HP-UX


Tableau 9-1 Exemple d'autorisations par utilisateur
Composant opération de Utilisateurs
l'autorisation

ron lisa jim liz

hpux.user.add

hpux.user.delete

hpux.user.modify

hpux.user.password.modify • • • •

hpux.network.nfs.start •

hpux.network.nfs.stop •

hpux.network.nfs.config •

hpux.fs.backup • •

hpux.fs.restore • •

REMARQUE : Le Tableau 9-1 contient uniquement le composant opération des


autorisations, et non l'élément objet.

9.2.1 Simplification du contrôle d'accès avec des rôles


Outre les notions de base du contrôle d'accès décrites dans la présentation ci-dessus,
cette section explique comment la stratégie de contrôle d'accès est représentée et comment
les décisions sont prises.
La présentation du contrôle d'accès fournie plus haut ne décrit pas comment la stratégie
de contrôle d'accès est représentée, ni comment les décisions sont prises. L'une des
solutions consiste à simplement gérer une liste d'utilisateurs et des autorisations (paires
opération-objet) qui leur sont affectées. Cette solution offre l'avantage d'être flexible, car
l'ensemble d'autorisations de chaque utilisateur peut être complètement différent de celui
des autres utilisateurs.
Malheureusement, elle est également difficile à gérer car à mesure que vous ajoutez des
utilisateurs, vous devez déterminer exactement quelles autorisations sont requises par
chaque utilisateur. En outre, lors des audits, vous devez examiner chaque utilisateur
individuellement afin de déterminer ses autorisations associées.
Le contrôle d'accès basé sur les rôles HP-UX résout ces problèmes en regroupant dans
des "rôles" les utilisateurs ayant besoin des mêmes autorisations. Les rôles servent de
mécanisme de groupement afin de simplifier l'affectation des autorisations et l'audit.
Plutôt qu'affecter une autorisation directement à un utilisateur, vous affectez des
autorisations à des rôles. À mesure que vous ajoutez des utilisateurs au système, vous

9.2 Principes de base du contrôle d'accès 157


leur affectez un ensemble de rôles qui déterminent les actions qu'ils peuvent effectuer et
les ressources auxquelles ils peuvent accéder.
Comparez le Tableau 9-2, qui répertorie les autorisations affectées aux rôles, au
Tableau 9-1, qui répertorie les autorisations affectées à chaque utilisateur. La comparaison
de ces deux tableaux permet de voir comment les rôles simplifient l'affectation des
autorisations.
Tableau 9-2 Exemple d'autorisations par rôle
Composant opération de Rôle
l'autorisation

UserAdmin NetworkAdmin BackupOper Admin

hpux.user.add • •

hpux.user.delete • •

hpux.user.modify • •

hpux.user.password.modify •

hpux.network.nfs.start • •

hpux.network.nfs.stop • •

hpux.network.nfs.config • •

hpux.fs.backup • •

hpux.fs.restore • •

REMARQUE : Le Tableau 9-2 contient uniquement le composant opération des


autorisations, et non l'élément objet.

9.3 Composants du contrôle d'accès basé sur les rôles HP-UX


Voici une liste des principaux composants du contrôle d'accès basé sur les rôles HP-UX :
Commande wrapper privrun Basée sur les autorisations associées à un
utilisateur, privrun invoque des applications
héritées existantes avec des privilèges après avoir
effectué des vérifications d'autorisation et
éventuellement réauthentifié l'utilisateur, sans
toutefois modifier l'application.
Commande privedit Basée sur les autorisations associées à un
utilisateur, privedit permet aux utilisateurs de
modifier des fichiers qu'ils ne seraient
normalement pas autorisés à modifier à cause

158 Contrôle d'accès basé sur les rôles HP-UX


d'autorisations de fichiers ou de listes de contrôle
d'accès (ACL, Access Control Lists).
Access Control Policy Switch (ACPS) Détermine si un sujet est autorisé à effectuer une
opération sur un objet.
Module de stratégie de contrôle Évalue les fichiers de base de données de contrôle
d'accès d'accès basé sur les rôles HP-UX et applique des
stratégies de mappage aux demandes de contrôle
d'accès de service.
Commandes de gestion Modifient et valident les fichiers de base de
données de contrôle d'accès basé sur les rôles
HP-UX.
Les sections suivantes traitent en détail des composants du contrôle d'accès basé sur les
rôles HP-UX.

9.3.1 Access Control Policy Switch


Le commutateur de stratégie de contrôle d'accès (HP-UX RBAC Access Control Policy
Switch) est une interface personnalisable entre des applications qui doivent prendre des
décisions de contrôle d'accès et les modules de stratégie de contrôle d'accès qui
fournissent des réponses après avoir interprété les informations de stratégie contenues
dans la base de données RBAC. Comme illustré à la Figure 9-1, depuis son emplacement
dans l'architecture HP-UX RBAC, l'ACPS procure une interface entre les modules de
stratégie de contrôle d'accès et les applications qui prennent des décisions de contrôle
d'accès.
L'ACPS possède les interfaces suivantes, décrites en détail dans leurs pages de manuel
respectives :
• Interface de programmation d'application (API) ACPS
• Interface fournisseur de service (SPI) ACPS
• /etc/acps.conf
L'interface administrative pour ACPS est le fichier de configuration /etc/acps.conf.
Le fichier de configuration /etc/acps.conf détermine les modules de stratégie consultés
par l'ACPS, la séquence de consultation des modules, et les règles de combinaison des
réponses du module en vue de délivrer un résultat aux applications qui requièrent des
décisions de contrôle d'accès. Cette implémentation ACPS vous permet de créer un
module pour appliquer une stratégie personnalisée sans modifier les applications de
contrôle d'accès basé sur le rôle existantes.

REMARQUE : Pour plus d'informations sur l'ACPS et ses interfaces, voir acps(4),
acps.conf(4), acps_api(3) et acps_spi(3).

9.3 Composants du contrôle d'accès basé sur les rôles HP-UX 159
9.3.2 Fichiers de configuration HP-UX RBAC
Le Tableau 9-3 répertorie et décrit brièvement les fichiers HP-UX RBAC.
Tableau 9-3 Fichiers de configuration HP-UX RBAC
Fichier de configuration Description

/etc/rbac/auths Fichier de base de données contenant toutes les autorisations valides.

/etc/rbac/cmd_priv Fichier de base de données privrun contenant des autorisations et des privilèges
de fichier et de commande.

/etc/rbac/role_auth Fichier de base de données définissant les autorisations pour chaque rôle.

/etc/rbac/roles Fichier de base de données définissant tous les rôles configurés.

/etc/rbac/user_role Fichier de base de données définissant les rôles pour chaque utilisateur.

/etc/acps.conf Fichier de configuration pour l'ACPS.

/etc/rbac/aud_filter Fichier de filtre d'audit identifiant les rôles, opérations et objets HP-UX RBAC
spécifiques à auditer.

9.3.3 Commandes HP-UX RBAC


Le Tableau 9-4 répertorie et décrit brièvement les commandes HP-UX RBAC.
Tableau 9-4 Commandes HP-UX RBAC
Commande Description

privrun Appelle une application héritée avec des privilèges après avoir effectué des vérifications
d'autorisation et éventuellement une réauthentification de l'utilisateur.

privedit Permet aux utilisateurs autorisés de modifier des fichiers dont l'accès est contrôlé.

roleadm Permet de modifier des informations de rôle dans les fichiers /etc/rbac/user_role,
/etc/rbac/role_auth et /etc/rbac/roles.

authadm Permet de modifier des informations d'autorisation dans les fichiers /etc/rbac/role_auth
et /etc/rbac/roles.

cmdprivadm Permet de modifier des autorisations et privilèges de commande dans la base de données
/etc/rbac/cmd_priv.

rbacdbchk Permet de vérifier les autorisations et la syntaxe dans les fichiers de base de données HP-UX
RBAC et privrun.

160 Contrôle d'accès basé sur les rôles HP-UX


9.3.4 Pages de manuel HP-UX RBAC
Le Tableau 9-5 répertorie et décrit brièvement les pages de manuel HP-UX RBAC.
Tableau 9-5 Pages de manuel HP-UX RBAC
Page de manuel Description

rbac(5) Décrit la fonctionnalité HP-UX RBAC.

acps(3) Décrit l'ACPS et ses interfaces.

acps.conf(4) Décrit le fichier de configuration ACPS et sa syntaxe.

acps_api(3) Décrit l'API ACPS.

acps_spi(3) Décrit l'IPS ACPS.

privrun(1m) Décrit la fonctionnalité et la syntaxe de privrun.

privedit(1m) Décrit la fonctionnalité et la syntaxe de privedit.

roleadm(1m) Décrit la fonctionnalité et la syntaxe de roleadm.

authadm(1m) Décrit la fonctionnalité et la syntaxe de authadm.

cmdprivadm(1m) Décrit la fonctionnalité et la syntaxe de cmdprivadm.

rbacdbchk(1m) Décrit la fonctionnalité et la syntaxe de rbacdbchk.

9.3.5 Architecture du contrôle d'accès basé sur les rôles HP-UX


Le principal composant du contrôle d'accès basé sur les rôles HP-UX est la commande
privrun, qui appelle des commandes, applications et scripts existants. La commande
privrun utilise le sous-système ACPS pour effectuer des demandes de contrôle d'accès.
Une demande d'accès est accordée ou refusée en fonction d'un ensemble de fichiers de
configuration qui définissent les mappages utilisateur-à-rôle et rôle-à-autorisation.
Si la demande d'accès est accordée, privrun appelle la commande cible avec des
privilèges supplémentaires, qui peuvent inclure un ou plusieurs des éléments suivants :
UID, GID, privilèges à granularité élevée et compartiments. Les privilèges sont configurés
de façon à permettre l'exécution correcte de la commande cible.
La Figure 9-1 illustre l'architecture du contrôle d'accès basé sur les rôles HP-UX.

9.3 Composants du contrôle d'accès basé sur les rôles HP-UX 161
Figure 9-1 Architecture du contrôle d'accès basé sur les rôles HP-UX
/usr/sbin/
cmdprivadm

Commande, Base application application


privrun de données privedit compatible avec le compatible avec le
privilèges auth. contrôle d'accès contrôle d'accès

PAM, Commutateur
de service de noms
API ACPS

Access Control Policy Switch (ACPS)

Module de
Informations utilisateur
service (par exemple /etc/passwd) SPI ACPS
PAM
RBAC local
Autre ACPM stratégie
ACPM
CLÉ :
Commandes wrapper
de privilèges
Base de Base de données
Rôles système Auths
Access Control Switch données autorisations
valides système valides
rôles utilisateur utilisateur
RBAC

Futur
/usr/sbin/ /usr/sbin/ /usr/sbin/
Composants existants rbacdbck roleadm authadm

9.3.6 Exemple d'utilisation et de fonctionnement du contrôle d'accès basé sur les rôles
HP-UX
La Figure 9-2 et les notes de bas de page suivantes illustrent un exemple d'appel de
privrun et des fichiers de configuration utilisés par privrun pour déterminer si un
utilisateur est autoriser à appeler une commande.

162 Contrôle d'accès basé sur les rôles HP-UX


Figure 9-2 Exemple d'opération après un appel à privrun

Autorisations
PLUSIEURS:PLUSIEURS PLUSIEURS:PLUSIEURS PLUSIEURS:PLUSIEURS Cmd,
Utilisateurs Rôles Opérations
1:1
Objets Privs
/etc/rbac/user_role /etc/rbac/role_auth /etc/rbac/cmd_priv

via
via

ACP
AC
PS 3

S
4

Commande
Processus cmd, args, UID Rejeter tout
(shell )
Privrun sauf privs définis
avec
Privilèges
2 5
1

1. Un processus (plus spécifiquement un shell) associé à l'utilisateur exécute privrun


avec comme objectif l'exécution d'une commande cible avec un privilège élevé.
2. La ligne de commande cible (commande et arguments) est passée de manière
explicite à privrun et l'UID de l'utilisateur appelant est passé de manière implicite
par le contexte du processus.
3. privrun tente d'établir une correspondance (ou un ensemble de correspondances)
dans la base de données /etc/rbac/cmd_priv pour la ligne de commande
spécifiée. Chaque entrée correspondante spécifie également une autorisation requise
(paire opération-objet) et les privilèges résultants si l'utilisateur possède l'autorisation
spécifiée.
4. privrun effectue un appel (pour chaque entrée /etc/rbac/cmd_priv
correspondante) à l'ACPS. Le serveur principal HP-UX RBAC de l'ACPS consulte les
bases de données /etc/rbac/user_role et /etc/rbac/role_auth afin de
déterminer si l'utilisateur possède l'autorisation spécifiée, et ce résultat est renvoyé
à privrun.
5. En supposant que l'utilisateur associé au processus dispose de l'autorisation requise
spécifiée dans la base de données /etc/rbac/cmd_priv pour la commande
demandée, la commande privrun annule tous les privilèges à l'exception de ceux
spécifiés dans l'entrée /etc/rbac/cmd_priv et elle exécute la commande
demandée. La commande privrun est définie à UID=0 et elle démarre avec tous
les privilèges nécessaires.

9.3 Composants du contrôle d'accès basé sur les rôles HP-UX 163
9.4 Planification du déploiement HP-UX RBAC
Avant de déployer le contrôle d'accès basé sur les rôles HP-UX, assurez-vous de suivre
les étapes de planification suivantes :
1. Planifiez les rôles pour les utilisateurs.
2. Planifiez les autorisations pour les rôles.
3. Planifiez les mappages autorisation-à-commande.
Les sections suivantes décrivent ces étapes de manière plus approfondie.

9.4.1 Planification des rôles


La planification d'un ensemble de rôles appropriés pour les utilisateurs d'un système est
une première étape critique dans le déploiement du contrôle d'accès basé sur les rôles
HP-UX. Dans certaines entreprises cet ensemble de rôles existe déjà, et vous pouvez le
réutiliser lors de la configuration du contrôle d'accès basé sur les rôles HP-UX. Le plus
souvent, vous devez concevoir les rôles en fonction des tâches existantes associées aux
utilisateurs administratifs du système.
Voici quelques recommandations pour la conception des rôles :
• Le nombre de rôles doit être largement inférieur au nombre d'utilisateurs du système.
Si chaque utilisateur requiert un rôle spécial, vous ne pourrez pas tirer parti de la
gestion simplifiée associée à l'utilisation des rôles.
• Les rôles doivent être en rapport avec les rôles professionnels réels des utilisateurs.
• Les utilisateurs pouvant avoir plusieurs rôles, il est possible de concevoir certains
rôles simplement dans le but de grouper des autorisations communes à plusieurs
rôles professionnels. Cette approche vous permettra de concevoir des rôles
hiérarchiques en incluant leurs autorisations.

9.4.2 Planification des autorisations pour les rôles


Après avoir défini les rôles, vous pouvez planifier les autorisations associées à chaque
rôle. Si les rôles sont alignés à la hiérarchie opérationnelle préexistante, l'affectation
des autorisations est une tâche relativement aisée. Entrez la commande suivante pour
répertorier toutes les autorisations définies par le système :
# authadm list sys
Si la hiérarchie d'autorisations existante ne correspond pas à vos rôles, la définition des
autorisations associées à chaque rôle est une tâche plus complexe. Vous pouvez utiliser
les étapes suivantes pour vous aider :
1. Répertoriez les commandes système couramment utilisées par chaque rôle.
2. Comparez ces commandes à celles de la base de données /etc/rbac/cmd_priv.
3. Si vous identifiez des entrées identiques après avoir effectué les étapes précédentes,
utilisez ces entrées comme guide pour l'affectation des autorisations.

164 Contrôle d'accès basé sur les rôles HP-UX


Par exemple, supposez que l'un des rôles souhaités soit UserOperator, qui exécute
couramment des commandes telles que useradd, usermod, userdel, et ainsi de suite.
Pour déterminer les autorisations les plus appropriées pour ce rôle, entrez la commande
suivante :
# grep useradd /etc/rbac/cmd_priv
/usr/sbin/useradd:dflt:(hpux.user.add,*):0/0//:dflt:dflt:dflt:
Dans cet exemple, la commande /usr/sbin/useradd requiert l'autorisation
hpux.user.add. Vous pourriez affecter cette autorisation directement, ou affecter
hpux.user.* comme autorisation.
Procédez avec caution lors de l'utilisation de caractères génériques dans les affectations
d'autorisations. L'affectation de cette autorisation affecte en réalité plusieurs autorisations :
# grep hpux.user. /etc/rbac/cmd_priv
/usr/sbin/pwgrd:dflt:(hpux.user.cache.admin,*):0/0// :dflt :dflt :dflt :
/usr/sbin/userdel:dflt:(hpux.user.delete,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupdel:dflt:(hpux.user.group.delete,*):0/0// :dflt :dflt :dflt :
/usr/sbin/useradd:dfl:(hpux.user.add,*):0/0//:dflt:dflt:dflt:
/usr/sbin/usermod:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupadd:dflt:(hpux.user.group.add,*):0/0// :dflt :dflt :dflt :
/usr/sbin/groupmod:dflt:(hpux.user.group.modify,*):0/0// :dflt :dflt :dflt :
/usr/sbin/vipw:dflt:(hpux.user.modify,*):0/0// :dflt :dflt :dflt :

9.4.3 Planification des mappages de commandes


Définissez toute commande couramment utilisée par l'un des rôles définis mais qui n'existe
pas dans le fichier /etc/rbac/cmd_priv prédéfini fourni. Le fichier
/etc/rbac/cmd_priv définit le mappage entre les autorisations et les commandes.
Déterminez les éléments suivants pour chaque commande :
• Le chemin d'accès complet à la commande
• L'autorisation nécessaire à vérifier avant d'exécuter la commande
• Tout privilège spécial requis par la commande, par exemple euid=0
Les chaînes de texte qui constituent les entrées "opération" et "objet" dans le fichier
/etc/rbac/cmd_priv sont arbitraires, mais elles doivent correspondre logiquement
à une commande ou à un ensemble de commandes. Lors de la planification des
mappages autorisation-à-commande dans /etc/rbac/cmd_priv, il convient de
respecter les recommandations suivantes :
• Définissez les opérations en groupes logiques, afin de faciliter l'affectation des
opérations aux rôles.
• Ne créez pas de banches d'opérations avec un nombre d'éléments enfants trop
élevé (plus de 10) ou trop bas (moins de 2). L'arborescence globale ne doit pas
être trop large (ce qui rendrait difficile l'affectation de groupes aux opérations), ni
trop haute (avec des noms d'opérations longs et difficiles à utiliser).
• Terminez le premier élément d'un nom d'opération par une action (verbe).

9.4 Planification du déploiement HP-UX RBAC 165


• Définissez les opérations de sorte que les nouvelles commandes puissent être
clairement placées lors de leur ajout.
Pour la procédure de configuration de commandes supplémentaires, voir « Configuration
d'autorisations et de privilèges de commandes supplémentaires ».

9.4.4 Limitations et restrictions du contrôle d'accès basé sur les rôles HP-UX
Voici une liste d'éléments à prendre en considération avant de déployer le contrôle
d'accès basé sur les rôles HP-UX :
• Le contrôle d'accès basé sur les rôles HP-UX ne prend pas en charge le mode
mono-utilisateur ; par conséquent, le compte root doit être disponible lorsque ce
mode est nécessaire.
• Serviceguard ne prend pas en charge le contrôle d'accès basé sur les rôles HP-UX
et l'utilisation de privrun pour accorder l'accès aux commandes Serviceguard.
Pour plus d'informations sur le contrôle d'accès basé sur les rôles HP-UX et les clusters
Serviceguard, voir la Section 9.6.1.1.
• Comme avec toutes les applications, le contrôle d'accès basé sur les rôles HP-UX
est soumis aux règles qui régissent les compartiments (voir Chapitre 7). N'oubliez
pas les points suivants lors de l'utilisation du contrôle d'accès basé sur les rôles
HP-UX avec des compartiments :
— Vous ne pouvez pas exécuter privedit sur un fichier restreint par une définition
de compartiment.
— Pour fournir à une autre application des privilèges à granularité élevée, la
commande privrun doit s'exécuter avec les mêmes privilèges que ceux qu'elle
souhaite accorder à l'application. Par défaut, privrun est configurée pour
s'exécuter avec tous les privilèges (pour plus d'informations, voir getfilexsec(1M)).
Toutefois, cet ensemble de privilèges par défaut peut parfois être restreint. Par
exemple, si un compartiment est configuré de façon à refuser des privilèges,
cette spécification empêche privrun de fournir les privilèges à l'application
dans ce compartiment car privrun ne possède pas elle-même les privilèges.
Notez que par défaut les compartiments scellés sont configurés de façon à refuser
le privilège composé POLICY.
— Pour que privrun puisse appeler une autre application dans un compartiment,
privrun doit déclarer le privilège CHANGECMPT. Si privrun ne peut pas
déclarer le privilège CHANGECMPT, par exemple si le compartiment est configuré
de façon à refuser les privilèges, privrun échoue. Ce comportement est voulu
et conçu pour renforcer le concept de compartiment scellé.

166 Contrôle d'accès basé sur les rôles HP-UX


9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX
La configuration du contrôle d'accès basé sur les rôles HP-UX est un processus en trois
étapes :
1. Configuration des rôles.
2. Configuration des autorisations.
3. Configuration des éventuelles commandes supplémentaires.

IMPORTANT : Les autorisations sont intégrées (codées en dur) aux commandes


d'administration HP-UX RBAC et ne peuvent pas être configurées. Cependant, vous
pouvez configurer quels rôles et utilisateurs détiennent les autorisations de commande
d'administration HP-UX RBAC requises.
Les commandes d'administration HP-UX RBAC n'ont pas besoin d'être enveloppées avec
la commande privrun car elles sont setuid=0. Les commandes d'administration
HP-UX RBAC s'exécutent avec des privilèges égaux à root, quel que soit l'utilisateur qui
les appellent. Les vérifications de contrôle d'accès limitent qui peut utiliser les commandes
administratives HP-UX RBAC.
Pour plus d'informations sur leurs autorisations, consultez la section Autorisation dans
chaque page de manuel de commande administrative HP-UX RBAC.

Cette Section 9.5 utilise les utilisateurs et les résultats de l'exemple de planification du
Tableau 9-6 pour illustrer le processus de configuration des commandes administratives
HP-UX RBAC.
Tableau 9-6 Exemple de résultats de planification
Utilisateurs Rôles Autorisations Commandes typiques
(Remarque : on suppose que les
objets sont *)

chandrika, UserOperator hpux.user.* /usr/sbin/useradd


rwang hpux.security.* /usr/sbin/usermod

bdurant, NetworkOperator hpux.network.* /sbin/init.d/inetd


prajessh

luman Administrator hpux.* /opt/customcmd


company.customauth

9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX 167
9.5.1 Configuration des rôles
La configuration des rôles pour les utilisateurs est un processus en deux étapes :
1. Création des rôles.
2. Affectation des rôles aux utilisateurs et aux groupes.

9.5.1.1 Création des rôles


Utilisez la commande roleadm pour créer des rôles et les affecter à des utilisateurs et
des groupes. Vous devez d'abord ajouter des rôles qui n'existent pas encore, puis affecter
des utilisateurs à ces rôles. La syntaxe de la commande roleadm est la suivante :
roleadm add rôle [commentaires]
| delete rôle
| modify ancien_nom_rôle nouveau_nom_rôle
| assign utilisateur rôle
| assign "&groupe" rôle
| revoke utilisateur [rôle]
| revoke "&groupe" [rôle]
| list [user=nom_utilisateur][role=nom_rôle][sys]
Voici la liste et une brève description des arguments de la commande roleadm :
add Ajoute le rôle à la liste système de rôles dans /etc/rbac/roles.
delete Supprime le rôle de la liste système de rôles dans /etc/rbac/roles.
modify Modifie les noms de rôles dans les trois fichiers de base de données liés aux
rôles : /etc/rbac/roles , /etc/rbac/user_role et
/etc/rbac/role_auth.
assign Affecte un rôle à un utilisateur ou un groupe et met à jour le fichier
/etc/rbac/user_role.
revoke Révoque un rôle d'un utilisateur ou d'un groupe et supprime l'entrée du fichier
/etc/rbac/user_role.
list Répertorie les rôles système valides (sys) ou les mappages utilisateur-à-rôle.

REMARQUE : Pour plus d’informations, voir la page de manuel roleadm(1m).


Voici deux exemples d'ajout de nouveaux rôles avec la commande roleadm :
# roleadm add UserOperator
roleadm: added role UserOperator
# roleadm add NetworkOperator
roleadm: added role NetworkOperator

REMARQUE : Les fichiers de configuration par défaut fournis avec HP-UX RBAC
contiennent un seul rôle préconfiguré : Administrator. Par défaut, le rôle Administrator
dispose de toutes les autorisations système HP-UX (hpux.*, *) et est associé à l'utilisateur
root.

168 Contrôle d'accès basé sur les rôles HP-UX


Après avoir défini des rôles valides, vous pouvez les affecter à un ou plusieurs utilisateurs
ou groupes. Toute tentative d'affectation d'un rôle qui n'a pas été créé provoque
l'affichage d'un message d'erreur signalant que le rôle n'existe pas.

9.5.1.2 Affectation de rôles aux utilisateurs


La séparation des processus de création de rôle et d'affectation de rôle offre les avantages
suivants :
• Le fait que les rôles doivent être créés avant de pouvoir être affectés permet de
garantir que toute erreur typographique est interceptée lors de la spécification des
noms de rôles durant l'affectation des rôles.
• Cela permet à différents utilisateurs d'effectuer chaque tâche. Par exemple, il n'est
pas obligatoire que le même utilisateur crée les rôles et les affectent.
Après avoir créé des rôles valides, utilisez la commande roleadm pour les affecter aux
utilisateurs appropriés, comme illustré dans les exemples suivants :
# roleadm assign luman Administrator
roleadm assign done in /etc/rbac/user_role

# roleadm assign rwang UserOperator


roleadm assign done in /etc/rbac/user_role
Après avoir utilisé la commande roleadm assign pour affecter des rôles aux
utilisateurs, vous pouvez utiliser la commande roleadm list pour vérifier que ces
rôles ont été affectés correctement, comme dans l'exemple suivant :
# roleadm list
root: Administrator
luman: Administrator
rwang: UserOperator

REMARQUE : Le contrôle d'accès basé sur les rôles HP-UX permet d'ajouter un utilisateur
spécial nommé DEFAULT à la base de données /etc/rbac/user_role . L'affectation
d'un rôle à l'utilisateur DEFAULT signifie que tout utilisateur qui n'existe pas sur le système
est affecté à ce rôle.

9.5.1.3 Affectation de rôles aux groupes


Le contrôle d'accès basé sur les rôles HP-UX vous permet également d'affecter des rôles
à des groupes. Vous pouvez utiliser les options de la commande roleadm qui utilisent
la valeur utilisateur, telles que roleadm assign utilisateur rôle et
roleadm revoke utilisateur rôle pour administrer les groupes et les rôles.
Vous pouvez affecter, révoquer ou répertorier les informations de rôles et de groupes à
l'aide de la commande roleadm en insérant une esperluette (&) au début de la valeur
utilisateur et en plaçant celle-ci entre guillemets. La valeur du nom de groupe et le signe
& doivent être placés entre guillemets pour être interprétés par roleadm. Par exemple :
# roleadm assign "&nom_groupe" rôle
9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX 169
9.5.2 Configuration des autorisations
La configuration des autorisations est semblable à la création et l'affectation des rôles.
Les autorisations contiennent cependant deux éléments : une opération et un objet. Le
caractère générique * (l'objet le plus couramment utilisé) est l'objet implicite utilisé si
vous ne spécifiez aucun objet lors de l'appel de la commande authadm. Dans de
nombreux cas, l'objet est non spécifié de manière intentionnelle de sorte que l'opération
s'applique à tous les objets. On laisse souvent l'objet non spécifié pour les autorisations
qui s'appliquent aux commandes enveloppées, car il peut être difficile de déterminer la
cible d'une action à partir du nom de la commande.
La commande /usr/sbin/passwd constitue un exemple de cette ambiguïté d'objet.
La commande passwd peut opérer sur plusieurs référentiels, par exemple le fichier
/etc/passwd, une table NIS et une entrée LDAP. Étant donné qu'il est impossible de
déterminer l'objet réel en examinant la ligne de commande, il est en général plus simple
d'exiger que l'opération concerne tous les objets, comme dans l'exemple suivant :
(hpux.security.passwd.change, *).

REMARQUE : Vous pouvez configurer une valeur pour l'objet par défaut. Par défaut,
si vous ne spécifiez pas d'objet, le contrôle d'accès basé sur les rôles HP-UX utilise le
caractère générique * comme objet. Toutefois, si vous avez configuré une valeur pour
le paramètre RBAC_DEFAULT_OBJECT= dans /etc/default/security, le contrôle
d'accès basé sur les rôles HP-UX utilise cette valeur au lieu du caractère générique *
comme objet par défaut.
Utilisez la commande authadm pour modifier des informations d'autorisation dans les
bases de données HP-UX RBAC. La syntaxe authadm est semblable à celle de roleadm.
La syntaxe de la commande authadm est la suivante :
authadm add opération[objet[commentaires]]
| delete opération[objet]
| assign rôle opération[objet]
| revoke [role=nom][operation=nom[object=nom]]
| list [role=nom][operation=nom[object=nom][sys]
Voici la liste et une brève description des arguments de la commande authadm :
add Ajoute une autorisation à la liste système d'autorisations valides dans
/etc/rbac/auths.
delete Supprime une autorisation de la liste système d'autorisations valides dans
/etc/rbac/auths.
assign Affecte une autorisation à un rôle et ajoute l'entrée dans
/etc/rbac/role_auth.
revoke Révoque une autorisation d'un rôle et met à jour /etc/rbac/role_auth.
list Répertorie les autorisations valides par système ou par rôle, et répertorie les
rôles associés à l'opération spécifiée.

170 Contrôle d'accès basé sur les rôles HP-UX


IMPORTANT : Sachez que lorsque vous affectez une autorisation qui contient un
astérisque (caractère *), vous devez placer cet astérisque entre guillemets afin d'empêcher
l'interprétation du shell, comme dans les exemples suivants.
Voici quelques exemples de création et d'affectation d'autorisation basés sur le
Tableau 9-6 :
# authadm add 'company.customauth.*'
authadm added auth: (company.customauth.*,*)

# authadm assign Administrator 'company.customauth.*'


authadm added auth for role Administrator
Utilisez l'argument list avec la commande authadm pour vérifier l'affectation
d'autorisation, comme dans l'exemple suivant :
# authadm list
Administrator: (hpux.*, *) (company.customauth.*, *)

9.5.3 Configuration d'autorisations et de privilèges de commandes supplémentaires


Vous devez définir toute commande supplémentaire qui n'est pas fournie dans la
configuration par défaut. Les autorisations nécessaires pour exécuter les commandes
doivent déjà exister et doivent être affectées à un rôle. Dans le cas contraire, la commande
sera configurée mais aucun utilisateur ne sera autorisé à l'utiliser.
Utilisez la commande cmdprivadm pour modifier les informations de privilège et
d'autorisation d'une commande. Le fonctionnement de la commande cmdprivadm est
semblable à celui de roleadm et authadm, mais elle autorise uniquement l'ajout et la
suppression d'un privilège et d'une autorisation de commande dans la base de données
privrun.
La syntaxe de la commande cmdprivadm est la suivante :
cmdprivadm add cmd=chemin_d'accès_complet_à_une_commande | nom_de_chemin_d'accès_complet_à_un_fichier

|[op=opération]|[object=objet]
|[ruid=ruid]|[euid=euid]
|[rgid=rgid]|[egid=egid]
|[compartment=libellé_compartiment]
|[privs=liste_de_privilèges_séparés_par_des_virgules]
|[re-auth=nom_service_pam]
|[flags=liste_d'indicateurs_séparés_par_des_virgules]
cmdprivadm delete cmd=chemin_d'accès_complet_à_une_commande |
nom_de_chemin_d'accès_complet_à_un_fichier
|[op=opération]|[object=objet]
|[ruid=ruid]|[euid=euid]
|[rgid=rgid]|[egid=egid]
|[compartment=libellé_compartiment]
|[privs=liste_de_privilèges_séparés_par_des_virgules]
|[re-auth=nom_service_pam]
|[flags=liste_d'indicateurs_séparés_par_des_virgules]

Voici la liste et une brève description des deux principaux arguments de la commande
cmdprivadm :

9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX 171
add Ajoute des informations d'autorisation de commande (ou de fichier) dans la
base de données /etc/rbac/cmd_priv.
delete Supprime des informations d'autorisation de commande (ou de fichier) de la
base de données /etc/rbac/cmd_priv.
L'exemple suivant illustre les arguments de cmdprivadm les plus courants :
# cmdprivadm add cmd=/opt/customcmd \
op=companyname.customcommand ruid=0 euid=0 flags=edit \
/opt/customcmd::(companyname.customcommand,*):0/0/-1/-1::::edit
cmdprivadm added the entry to /etc/rbac/cmd_priv
Comme illustré dans l'exemple précédent, le fichier de base de données cmd_priv
contient un champ pour des valeurs d'indicateurs. Assurez-vous de prendre en compte
la valeur des cmdprivadm flags lors de la configuration des informations d'autorisation
et de privilège de commande ou de fichier.
La commande privrun reconnaît un indicateur défini, KEEPENV. Si l'indicateur KEEPENV
est défini dans le fichier cmd_priv pour une commande particulère, aucune des variables
d'environnement ne sera purgée lorsque privrun enveloppera cette commande
spécifique.
Pour privedit, vous pouvez spécifier des valeurs d'indicateurs afin de spécifier si
privedit peut modifier un fichier. Vous pouvez spécifier des valeurs d'indicateurs
supplémentaires pour spécifier si privrun peut exécuter une commande. Les valeurs
d'indicateurs prises en charge sont les suivantes :
flag=vide ou tout autre jeton Indique que le fichier peut uniquement être exécuté
et ne peut pas être modifié.
flag= edit Indique que le fichier peut être modifié et exécuté.
Cet indicateur est destiné principalement aux
scripts.
flag= noexec Indique que le fichier ne peut pas être exécuté et
peut uniquement être modifié avec privedit.

REMARQUE : Pour plus d'informations sur tous les arguments de la commande


cmdprivadm, voir cmdprivadm(1M). La plupart des arguments sont facultatifs et
remplacés par des valeurs par défaut raisonnables si rien n'est spécifié.
REMARQUE : Pour modifier une entrée existante dans le fichier /etc/rbac/cmd_priv,
vous devez d'abord supprimer l'entrée, puis rajouter la version mise à jour. Lorsque vous
utilisez cmdprivadm pour supprimer des entrées, les arguments jouent le rôle de filtres.
Par exemple, si vous spécifiez la commande cmdprivadm delete op=foo, toutes
les entrées dont l'opération est foo sont supprimées. Par conséquent, lorsque vous utilisez
cmdprivadm pour supprimer des entrées, veillez à spécifier des arguments suffisants
pour identifier de manière unique les entrées à supprimer.

172 Contrôle d'accès basé sur les rôles HP-UX


9.5.4 Configuration du contrôle d'accès basé sur les rôles HP-UX avec des privilèges à
granularité élevée
Les applications communiquent avec les ressources système au moyen d'appels système,
ce qui permet au système d'explotiation d'accéder aux ressources système. Certains
appels système requièrent des privilèges élevés spéciaux pour que l'application puisse
accéder au système d'exploitation et au matériel système.
Lorsque les privilèges à granularité élevée n'étaient pas encore disponibles, UID=0 était
satisfaisant en tant que privilèges élevé spécial pour certains appels système. Si l'UID
était différent de 0, l'appel système était refusé et une erreur d'application était renvoyée.
Le contrôle d'accès basé sur les rôles HP-UX, et plus spécifiquement la commande wrapper
privrun, permet aux utilisateurs non-root d'acquérir le niveau de privilèges spéciaux
ou UID=0 requis pour l'exécution de certaines applications. En plus de fournir UID=0
à un utilisateur non-root dans certaines circonstances pour exécuter une application
spécifique, le contrôle d'accès basé sur les rôles HP-UX peut également utiliser les
privilèges à granularité élevée pour exécuter des applications avec des privilèges
supplémentaires, mais sans UID=0.
Vous pouvez utiliser le contrôle d'accès basé sur les rôles HP-UX pour configurer des
commandes de sorte qu'elles s'exécutent uniquement avec un ensemble de privilèges
spécifique et avec différents ensembles de privilèges pour différents utilisateurs, toujours
sans UID=0. Par exemple, un administrateur peut avoir besoin d'exécuter la commande
foobar avec plusieurs privilèges, tandis qu'un utilisateur ordinaire peut avoir besoin
de beaucoup moins de privilèges pour exécuter foobar.
On peut considérer les privilèges à granularité élevée comme des "clés de vérification
de contrôle d'accès d'appels système". Plutôt que de vérifier UID=0, l'appel système
vérifie l'existence d'un privilège particulier. Ces privilèges à granularité élevée permettent
de "verrouiller" des appels système et de contrôler l'accès des applications aux ressources
matériel et du système d'exploitation. En outre, grâce au fractionnement des privilèges
en privilèges à granularité élevée, les applications n'exigent pas tous les privilèges pour
pouvoir s'exécuter, mais uniquement un privilège ou un ensemble de privilèges spécifique.
Si un processus d'application exécuté avec un ensemble de privilèges particulier se
trouve compromis, les dommages potentiels sont beaucoup moins importants que si le
processus s'était exécuté avec UID=0.

REMARQUE : Pour plus d'informations sur les privilèges à granularité élevée, voir la
page de manuel privileges(5).
Utilisez la commande cmdprivadm et l'option privs pour configurer des commandes
pour que privrun soit enveloppée et s'exécute uniquement avec les privilèges spécifiés.
Voici un exemple de commande cmdprivadm qui configure la commande
/usr/bin/ksh de sorte qu'elle s'exécute avec le privilège composé BASICROOT et
qui requiert l'autorisation (hpux.adm.mount, *) :
# cmdprivadm add cmd=/etc/mount op=hpux.adm.mount object='*' privs=BASICROOT

9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX 173
La commande cmdprivadm ci-dessus crée une entrée dans le fichier
/etc/rbac/cmd_priv comme suit :
#---------------------------------------------------------------------------------------
# Command : Args :Authorizations :U/GID :Cmpt :Privs :Auth :Flags
#----------------:--------:---------------------:------:-------:----------:------:------
/etc/mount :dflt :(hpux.adm.mount,*) :/// :dflt :BASICROOT :dflt :

Une fois que vous avez créé l'entrée avec cmdprivadm et utilisé privrun pour
envelopper la commande,/etc/mount s'exécute avec le privilège élevé du privilège
composé à granularité élevée BASICROOT et sans UID=0 si l'utilisateur a l'autorisation
(hpux.adm.mount, *).
Comme décrit à la Section 9.6.1, l'option de commande privrun -p établit une
correspondance uniquement avec les entrées du fichier de base de données
/etc/rbac/cmd_priv qui ont les privilèges spécifiés par l'option -p. Sachez, lorsque
vous spécifiez un privilège avec l'option privrun -p, que privrun établira une
correspondance avec toutes les entrées qui contiennent le privilège spécifié, y compris
les groupes de privilèges et privilèges composés qui incluent le privilège spécifié -p. La
commande privrun s'exécutera en fonction de la première correspondance dans
/etc/rbac/cmd_priv. Par exemple, voici un exemple de commande privrun -p
et une liste d'entrées pour lesquelles la commande établira une correspondance dans
/etc/rbac/cmd_priv :
La commande :
# privrun -p MOUNT /etc/mount
établit une correspondance avec les entrées /etc/rbac/cmd_priv suivantes :
#---------------------------------------------------------------------------------------------------------
# Command : Args :Authorizations :U/GID :Cmpt :Privs :Auth
:Flags
#----------------:--------:-------------------:------:------:---------------------------------:-----:-----
/etc/mount :dflt :(hpux.adm.mount,*) :/// :dflt :PRIV_CHOWN, MOUNT :dflt
:
/etc/mount :dflt :(hpux.*,nfs) :/// :dflt :MOUNT, PRIV_RTPRIO, PRIV_MLOCK :dflt
:
/etc/mount :dflt :(hpux.adm.*,*) :/// :dflt :BASICROOT :dflt
:

REMARQUE : La commande privrun -p MOUNT /etc/mount établit une


correspondance avec le privilège BASICROOT car le privilège simple MOUNT fait partie
du privilège composé prédéfini BASICROOT. Pour plus d'informations sur les privilèges
simples et composés, voir la page de manuel privileges(5).

174 Contrôle d'accès basé sur les rôles HP-UX


IMPORTANT : La séquence d'entrées dans /etc/rbac/cmd_priv est importante car
privrun s'exécutera en fonction de la première correspondance explicite trouvée. Dans
l'exemple précédent, bien que les trois entrées soient considérées comme des
correspondances de la commande privrun, celle-ci exécuterait la première entrée.
Gardez bien la séquence d'entrées à l'esprit lors de la configuration des commandes et
des autorisations. L'outil cmdprivadm ajoute les entrées au bas du fichier
/etc/rbac/cmd_priv.

9.5.5 Configuration du contrôle d'accès basé sur les rôles HP-UX avec des compartiments
Le contrôle d'accès basé sur les rôles HP-UX peut également utiliser des compartiments
pour configurer des applications de sorte qu'elles s'exécutent dans un compartiment
spécifique. Avec les compartiments, vous pouvez partitionner logiquement un système
en compartiments de sorte qu'un processus ne puisse pas communiquer ni accéder aux
ressources en dehors de son compartiment (à moins qu'une règle de compartiment ne
soit définie à cet effet).
Voici un exemple de commande cmdprivadm qui configure la commande
/sbin/init.d/hpws_apache de façon à s'exécuter uniquement dans le compartiment
apache, qui est défini par la règle de compartiment /etc/cmpt/apache.rules :
# cmdprivadm add cmd='/sbin/init.d/hpws_apache -a start' \
op=hpux.network.service.start object=apache compartment=apache
La commande cmdprivadm ci-dessus crée une entrée dans le fichier
/etc/rbac/cmd_priv comme suit :
#--------------------------------------------------------------------------------------------------------------
# Command : Args :Authorizations :U/GID :Cmpt :Privs :Auth
:Flags
#-------------------------:--------:------------------------------------:----------------:------:-------:------
/sbin/init.d/hpws_apache :start :(hpux.network.service.start,apache) :/// :apache :dflt :dflt
:

Une fois que vous avez créé l'entrée avec cmdprivadm et utilisé privrun pour
envelopper la commande, les utilisateurs autorisés peuvent exécuter la commande
/sbin/init.d/hpws_apache -start et celle-ci ne s'exécutera que dans le
compartiment apache. L'indicateur de compartiment du processus devient apache et
les propriétés du processus suivront les règles de compartiment apache définies.

9.5 Configuration du contrôle d'accès basé sur les rôles HP-UX 175
REMARQUE : Utilisez uniquement la commande cmdprivadm pour configurer des
compartiments pour des commandes. Ne modifiez pas le fichier de base de données
/etc/rbac/cmd_priv sans utiliser cmdprivadm.
Pour modifier une entrée existante dans le fichier /etc/rbac/cmd_priv, vous devez
d'abord supprimer l'entrée, puis rajouter la version mise à jour. Lorsque vous utilisez
cmdprivadm pour supprimer des entrées, les arguments jouent le rôle de filtres. Par
exemple, si vous spécifiez la commande cmdprivadm delete op=foo, toutes les
entrées dont l'opération est foo sont supprimées. Par conséquent, lorsque vous utilisez
cmdprivadm pour supprimer des entrées, veillez à spécifier des arguments suffisants
pour identifier de manière unique les entrées à supprimer.

9.6 Utilisation du contrôle d'accès basé sur les rôles HP-UX


Cette section explique comment utiliser les commandes privrun et privedit pour
exploiter les fonctionnalités du contrôle d'accès basé sur les rôles HP-UX.

9.6.1 Utilisation de la commande privrun pour exécuter des applications avec des
privilèges
La commande privrun permet à un utilisateur d'exécuter des applications héritées avec
différents privilèges, en fonction des autorisations associés à l'utilisateur appelant.
L'utilisateur appelle privrun en spécifiant l'application héritée comme arguments de
ligne de commande. Ensuite, privrun consulte la base de données
/etc/rbac/cmd_priv afin de déterminer l'autorisation nécessaire pour exécuter la
commande avec des privilèges supplémentaires. Si l'utilisateur dispose de l'autorisation
nécessaire, privrun appelle la commande spécifiée après avoir modifié son UID et/ou
GID comme spécifié dans la base de données /etc/rbac/cmd_priv.
La syntaxe de la commande privrun est la suivante :
privrun [options] commande [args]
| [-u eUID|nom_utilisateur]
| [-g eGID|nom_groupe]
| [-U rUID|nom_utilisateur]
| [-G rGID|nom_groupe]
| [-a (opération, objet)]
| [-c compartiment]
| [-p privilège[,privilège,privilège...]]
| [-x]
| [-v [-v]]
| [-h]
| [-t]
La liste suivante explique chacune des options de la commande privrun :

176 Contrôle d'accès basé sur les rôles HP-UX


-u Établit une correspondance uniquement avec les entrées qui contiennent l'ID
utilisateur effectif (EUID) correspondant à l'EUID spécifié ou à l'EUID associé au
nom d'utilisateur.
-g Établit une correspondance uniquement avec les entrées qui contiennent l'ID de
groupe effectif (EGID) correspondant à l'EGID spécifié ou à l'EGID associé au
nom de groupe.
-U Établit une correspondance uniquement avec les entrées qui contiennent l'ID
utilisateur réel (RUID) correspondant à l'RUID spécifié ou à l'RUID associé au nom
d'utilisateur.
-G Établit une correspondance uniquement avec les entrées qui contiennent l'ID de
groupe réel (RGID) correspondant à l'RGID spécifié ou à l'RGID associé au nom
de groupe.
-a Établit une correspondance uniquement avec les entrées qui requièrent l'autorisation
spécifiée. L'autorisation est définie en tant que paires (opération-objet) dans le
fichier de base de données /etc/rbac/cmd_priv. L'autorisation spécifiée doit
correspondre exactement à l'autorisation présente dans le fichier
/etc/rbac/cmd_priv ; les caractères génériques ne sont pas pris en charge.
-c Établit une correspondance avec le compartiment spécifié dans le fichier de base
de données /etc/rbac/cmd_priv. Le compartiment spécifié doit correspondre
exactement au compartiment présent dans /etc/rbac/cmd_priv.
-p Établit une correspondance entre les privilèges spécifiés et les privilèges présents
dans le fichier de base de données /etc/rbac/cmd_priv. Vous pouvez spécifier
plusieurs privilèges. Dans ce cas, séparez chaque privilège par une virgule. Sachez,
lorsque vous spécifiez un privilège avec l'option privrun -p, que privrun
établira une correspondance avec toutes les entrées qui contiennent le privilège
spécifié, y compris les groupes de privilèges et privilèges composés qui incluent le
privilège spécifié -p. La commande privrun s'exécutera en fonction de la première
correspondance dans /etc/rbac/cmd_priv.
-x Utilise un mode "fall-through" qui modifie le comportement de privrun uniquement
lorsqu'une vérification d'autorisation ou d'authentification échoue. Plutôt que de
s'arrêter avec un message d'erreur, la commande cible s'exécute, mais sans
privilèges supplémentaires. La commande cible s'exécute comme si l'utilisateur
l'exécutait directement sans privrun.
-v Appelle privrun en mode commenté (verbose). Le niveau verbose augmente si
deux options -v sont spécifiées. Un niveau verbose supérieur provoque l'affichage
d'informations suplémentaires.
-h Imprime des informations d'aide sur privrun.
-t Utilise un mode test qui effectue toutes les vérifications d'autorisation et
d'authentification normales, conformément au fichier de configuration, afin de
déterminer si l'appel privrun souhaité réussira. La seule différence est qu'au lieu
d'exécuter la commande, en cas de succès privrun -t effectue un retour simple.
Utilisez ce mode pour savoir si un appel privrun donné réussira.
9.6 Utilisation du contrôle d'accès basé sur les rôles HP-UX 177
Voici un exemple d'utilisation rudimentaire de privrun : l'enveloppement d'une
application héritée. Dans ce cas, la commande ipfstat s'exécute en tant qu'argument
de commande privrun afin de s'exécuter en fonction des autorisations associées à
l'utilisateur appelant :
# privrun ipfstat
Tant que l'utilisateur connecté dispose des autorisations nécessaires, définies dans
/etc/rbac/cmd_priv, la commande wrapper privrun exécute la commande héritée
avec les privilèges (UID et GID) définis dans l'entrée /etc/rbac/cmd_priv.
Il peut exister plusieurs entrées pour la même commande, éventuellement avec différentes
autorisations requises et différents privilèges résultants. Dans ce cas, privrun itère
séquentiellement la base de données /etc/rbac/cmd_priv et exécute la première
commande que l'utilisateur est autorisé à exécuter.
Dans certains cas, cela n'est pas idéal. Par exemple, tous les utilisateurs peuvent être
autorisés à exécuter la commande passwd pour modifier leur propre mot de passe,
mais si un utilisateur administrateur l'exécute, il doit disposer des privilèges nécessaires
pour modifier les mots de passe des autres utilisateurs. Si l'entrée pour tous les utilisateurs
ordinaires est répertoriée avant celle des administrateurs, elle est exécute en premier,
ce qui peut empêcher les administrateurs d'exécuter la version plus privilégiée.
Pour les situations de ce type, privrun propose des options permettant aux utilisateurs
de spécifier les privilèges souhaités. Seules les entrées correspondant aux privilèges
spécifiés (par exemple l'UID) sont utilisées. Si aucune entrée ne correspond aux privilèges
souhaités, privrun renvoie un message d'erreur.
Voici un exemple d'appel de privrun qui établit une correspondance uniquement avec
les entrées dont l'UID effectif a la valeur 0 :
# privrun -u 0 ipfstat

REMARQUE : Pour plus d'informations sur l'utilisation de la commande privrun, voir


les pages de manuel privrun(1M) et rbac(5).

9.6.1.1 Contrôle d'accès basé sur les rôles HP-UX dans les clusters Serviceguard
Serviceguard ne prend pas en charge le contrôle d'accès basé sur les rôles HP-UX et
l'utilisation de privrun pour accorder l'accès aux commandes Serviceguard.
Serviceguard version A.11.16 implémente son propre contrôle d'accès basé sur les rôles
en spécifiant des stratégies de contrôle d'accès par le biais de fichiers de configuration
de package et de cluster, fournissant ainsi des stratégies compatibles avec les clusters
pour les opérations Serviceguard. Le mécanisme Serviceguard doit être utilisé pour le
contrôle d'accès basé sur les rôles HP-UX des opérations Serviceguard. Pour plus de
détails sur les stratégies de contrôle d'accès Serviceguard, consultez la version la plus
récente du document Managing Serviceguard.

178 Contrôle d'accès basé sur les rôles HP-UX


Le contrôle d'accès basé sur les rôles HP-UX peut être utilisé avec des commandes
non-Serviceguard dans un cluster Serviceguard. Les mêmes règles HP-UX RBAC doivent
être appliquées à tous les nœuds du cluster.

9.6.2 Utilisation de la commande privedit pour modifier des fichiers dont l'accès est
contrôlé
La commande privedit permet aux utilisateurs autorisés de modifier des fichiers qu'ils
ne sont normalement pas autorisés à modifier à cause d'autorisations de fichiers ou de
listes de contrôle d'accès. Une fois que vous avez appelé la commande et identifié le
fichier à modifier comme argument, privedit vérifie la base de données
/etc/rbac/cmd_priv, de la même façon que privrun, afin de déterminer
l'autorisation requise pour modifier le fichier spécifié. Si l'utilisateur appelant est autorisé
à modifier le fichier, privedit appelle un éditeur sur une copie du fichier.

REMARQUE : Lorsque vous utilisez privedit pour appeler un éditeur en vue de


modifier un fichier, l'éditeur ne s'exécute avec aucun privilège élevé. Pour cette raison,
toute tentative d'action (par exemple un échappement de shell) s'exécute avec l'ensemble
de privilèges ordinaire (non élevé) de l'utilisateur.
Vous pouvez spécifier l'éditeur utilisé par privedit pour modifier le fichier en définissant
la variable d'environnement EDITOR. Si vous ne définissez pas la variable EDITOR,
privedit utilise l'éditeur par défaut, vi. Vous ne pouvez pas passer d'arguments à
l'éditeur par le biais de la ligne de commande privedit. Cependant, l'éditeur reconnaît
et prend en charge des variables d'environnement spécifiques à l'éditeur si vous les
définissez avant d'appeler privedit.
Utilisez un nom de fichier complet en tant qu'argument de privedit afin d'identifier
le fichier à modifier. Si vous n'utilisez pas de nom de fichier complet, privedit ajoute
le répertoire de travail actuel au début du nom de fichier spécifié. Quelle que soit la
façon dont vous spécifiez le fichier à modifier, tous les noms de fichiers sont complets
après l'appel de privedit. La commande privedit reconnaît et prend également
en charge les fichiers qui sont des liaisons symboliques.
La commande privedit peut modifier un seul fichier à la fois. Si vous spécifiez plusieurs
noms de fichiers comme arguments de privedit, privedit modifie le premier fichier
spécifié et ignore les noms de fichiers ultérieurs. La syntaxe de la commande privedit
est la suivante :
privedit [option] nom_fichier_complet
| [-a (opération, objet)]
| [-v]
| [-h]
| [-t]
| [-x]
Voici la liste et une brève description des options de la commande privedit :

9.6 Utilisation du contrôle d'accès basé sur les rôles HP-UX 179
-a autorisation Établit une correspondance uniquement avec les entrées du
fichier /etc/rbac/cmd_priv qui ont l'autorisation spécifiée.
-v Appelle privedit en mode commenté (verbose).
-h Imprime des informations d'aide sur privedit.
-t Vérifie si l'utilisateur dispose de l'autorisation requise pour
modifier le fichier et rapporte le résultat.
-x Si la vérification d'autorisation échoue, le fichier sera modifié
avec les privilèges d'origine de l'appelant.
Voici un exemple d'utilisation de la commande privedit pour modifier le fichier
/etc/default/security avec l'autorisation spécifique de (hpux.sec.edit,
secfile) :
# privedit -a "(hpux.sec.edit, secfile)" /etc/default/security

REMARQUE : Souvenez-vous que les valeurs des indicateurs pour chaque entrée dans
la base de données cmd_priv déterminent si privedit peut modifier ou non un fichier.
Pour plus d'informations sur les indicateurs et sur l'utilisation de la commande privedit,
voir « Configuration d'autorisations et de privilèges de commandes supplémentaires »
et la page de manuel privedit(1M).

9.6.3 Personnalisation de privrun et privedit avec l'ACPS


La fonctionnalité HP-UX RBAC permet de personnaliser la manière dont privedit et
privrun vérifient les autorisations utilisateur. Le module ACPS est une interface
personnalisable qui fournit des réponses aux applications qui doivent prendre des
décisions relatives à l'autorisation. Le fichier de configuration ACPS, /etc/acps.conf,
contrôle les aspects suivants de l'ACPS :
• les modules consultés pour prendre des décisions relatives à l'accès
• la séquence de consultation des modules
• les règles de combinaison des réponses de module pour renvoyer les résultats aux
applications
Pour plus d'informations sur l'ACPS, voir la Section 9.3.1, and acps.conf(4), acps(3) et
rbac(5).

9.7 Dépannage du contrôle d'accès basé sur les rôles HP-UX


Voici une liste des principaux macénismes utilisés pour dépanner et déboguer le contrôle
d'accès basé sur les rôles HP-UX :
• L'utilitaire rbacdbchk vérifie la syntaxe de la base de données HP-UX RBAC.
• La commande privrun -v fournit des informations supplémentaires pertinentes.

180 Contrôle d'accès basé sur les rôles HP-UX


9.7.1 L'outil de syntaxe de base de données rbacdbchk
Les bugs les plus courants sont dus à une modification manuelle des bases de données
HP-UX RBAC, ce qui donne lieu à des configurations non valides du point de vue
syntaxique ou à des configurations incohérentes entre les bases de données (par exemple,
un rôle dans /etc/rbac/user_role qui n'est pas défini dans /etc/rbac/roles).
Pour faciliter le diagnostic, la fonctionnalité HP-UX RBAC inclut une commande
rbacdbchk. Cette commande lit les bases de données HP-UX RBAC et affiche des
avertissements lorsque des entrées de configuration incorrectes ou incohérentes sont
détectées :
# rbacdbchk
[/etc/rbac/user_role] chandrika: UserOperator
invalid user
The value 'chandrika' for the Username field is bad.

[/etc/rbac/cmd_priv]
/opt/cmd:dflt:(newop,*):0/0//:dflt:dflt:dflt:
invalid command: Not found in the system
The value '/opt/cmd' for the Command field is bad.

[Role in role_auth DB with no assigned user in user_role DB]


Rebooter:(hpux.admin.*, *)

[Invalid Role in user_role DB. Role 'UserOperator' assigned to user 'chandrika' does not exist in
the roles DB]

Sur un système configuré correctement, la commande rbacdbchk ne génère aucune


sortie, ce qui indique qu'aucune erreur n'a été détectée.

9.7.2 privrun -v Information


La deuxième méthode pour détecter des problèmes consiste à exécuter la commande
privrun avec l'option -v (mode commenté). Dans ce mode, privrun affiche des
informations supplémentaires sur les entrées avec lesquelles la commande d'entrée a
établi une correspondance, ainsi que l'état de la vérification d'autorisation et d'autres
données perinentes. Dans de nombreux cas, cette sortie clarifie le problème provoquant
l'échec de privrun. Spécifiez l'option -v à plusieurs reprises pour obtenir différents
niveaux de sortie commentée. Voici un exemple de sortie de privrun -v avec la
commande ipfstat :
# privrun -v /sbin/ipfstat
privrun: user root intends to execute command /sbin/ipfstat
privrun: input entry: '/sbin/ipfstat:dflt:(,):///:dflt:dflt::'
privrun: found matching entry: '/sbin/ipfstat:dflt:(hpux.network.filter.readstat,*):0/0//:dflt:dflt::'
privrun: passed authorization check
privrun: attempting to set ruid/euid/rgid/egid to 0/0/-1/-1
privrun: current settings for ruid/euid/rgid/egid are 0/0/3/3
privrun: executing: /sbin/ipfstat

9.7 Dépannage du contrôle d'accès basé sur les rôles HP-UX 181
182
10 Administration de l'audit
L’objectif de l'audit est l'enregistrement sélectif des événements afin d'effectuer leur
analyse et de détecter les violations de sécurité. Les données d'audit sont enregistrées
dans des fichiers journaux. Ainsi, le système d'audit assume la fonction de dispositif de
persuasion contre les abus système et expose les éventuelles faiblesses de sécurité.
Il enregistre les instances d'accès par des sujets aux objets sur le système, il détecte toute
tentative répétée de contournement du mécanisme de protection et toute utilisation abusive
des privilèges, et il aide également à exposer les faiblesses de sécurité potentielles du
système.
Lorsqu'un utilisateur se connecte, un ID de session d'audit unique appelé "balise d'audit"
est généré et associé au processus de l'utilisateur. La balise d'audit demeure identique
durant chaque session de connexion. Même si un utilisateur change d'identité durant
une session, tous les événements sont enregistrés avec la même balise d'audit et associés
au nom de connexion d'origine de l'utilisateur.
Des enregistrements d'audit sont générés pour certains événements système liés à la
sécurité. Chaque enregistrement d'audit contient des informations sur l'événement, par
exemple la nature de l'événement, l'heure à laquelle il s'est produit, l'ID de l'utilisateur
qui l'a provoqué, l'ID du processus qui l'a provoqué, et ainsi de suite.
Les enregistrements d'audit sont recueillis dans des journaux/fichiers d'audit au format
binaire. Le système d'audit HP-UX sur HP-UX 11i v3 est capable d'utiliser plusieurs threads
d'écriture pour l'enregistrement des données dans des fichiers. Chaque thread d'écriture
écrit dans un fichier. Cela contribue à augmenter le débit des données. En conséquence,
une trace d'audit est présente sur le système de fichiers sous forme de répertoire contenant
plusieurs fichiers d'audit.
Les enregistrements contenus dans la trace d'audit sont compressés afin d'économiser
l'espace disque. Lorsqu'un processus est audité pour la première fois, un enregistrement
d'identification de processus (PID, Process Identification Record) est écrit dans la trace
d'audit ; il contient des informations qui demeurent constantes pendant toute la durée
de vie du processus. Il s'agit de l'ID de processus, de l'ID du processus parent, de la
balise d'audit, de l'ID de l'utilisateur réel, de l'ID de l'utilisateur effectif, de l'ID de groupe
effectif, de la liste d'ID de groupe, des privilèges effectifs, permis et retenus, de l'ID de
compartiment et de l'ID de terminal. Le PIR est entré une seule fois par processus par
trace d'audit.
Ce chapitre traite des sujets suivants :
• Composants d'audit (Section 10.1)
• Audit du système (Section 10.2)
• Audit des utilisateurs (Section 10.3)
• Audit des événements (Section 10.4)

183
• Traces d'audit (Section 10.5)
• Affichage des fichiers journaux d’audit (Section 10.6)
• Auto-audit (Section 10.7)
• Audit HP-UX RBAC (Section 10.8)

10.1 Composants d'audit


La fonctionnalité d'audit de HP-UX 11i inclut des fichiers de configuration, des commandes
et des pages de manuel. Ces composants sont répertoriés dans les sections suivantes.

10.1.1 Commandes
Le Tableau 10-1 contient une brève description de chaque commande d'audit.
Tableau 10-1 Commandes d'audit
Commande Description

audevent Modifie et affiche l’état des événements ou des appels système.

audisp Affiche les enregistrements d’audit.

audomon Définit les paramètres de contrôle et de taille des fichiers d’audit.

audsys Démarre et interrompt le processus d’audit. Définit et affiche les informations


de fichier ou de répertoire d’audit.

userdbset Sélectionne les utilisateurs à auditer en spécifiant l'option AUDIT_FLAG=1.

10.1.2 Fichiers de configuration d'audit


Le Tableau 10-2 contient une brève description de chaque fichier de configuration associé
à la fonctionnalité d'audit.
Tableau 10-2 Fichiers de configuration d'audit
Fichier Description

/etc/audit/audit.conf Fichier contenant des informations de classification d'événements prédéfinies.

/etc/audit/ Fichier contenant des informations de classification d'événements spécifiques


auditr_site.conf au site.

/etc/default/security Fichier contenant des paramètres d'audit par défaut à l'échelle du système.

/var/adm/userdb Base de données contenant des informations d'audit par utilisateur.

/etc/rc.config.d/ Fichier contenant des informations de configuration faisant en sorte que


auditing l'audit démarre lors du réamorçage système.

184 Administration de l'audit


10.1.3 Pages de manuel d'audit
Le Tableau 10-3 contient une brève description de chaque page de manuel associée à
la fonctionnalité d'audit.
Tableau 10-3 Pages de manuel d'audit
Page de manuel Description

audevent(1M) Décrit la fonctionnalité et la syntaxe de audevent.

audisp(1M) Décrit la fonctionnalité et la syntaxe de audisp.

audomon(1M) Décrit la fonctionnalité et la syntaxe de audomon.

audsys(1M) Décrit la fonctionnalité et la syntaxe de audsys.

userdbset(1M) Décrit la fonctionnalité et la syntaxe de userdbset.

audit.conf(4) Décrit le fichier /etc/audit/audit.conf.

audit(5) Fournit des informations de base sur l'audit HP-UX.

10.2 Audit du système


Appliquez les procédures suivantes pour planifier, activer et contrôler l'audit de votre
système.

10.2.1 Planification de l'implémentation de l'audit


Pour planifier l'implémentation de l'audit, procédez comme suit :
1. Identifiez les utilisateurs à auditer. Par défaut, tous les utilisateurs sont sélectionnés
pour l'audit.
2. Déterminez les événements ou appels système à auditer. Utilisez la commande
audevent pour afficher la liste des événements et appels système actuellement
sélectionnés pour l'audit.
Les événements et appels système peuvent être regroupés en profils.
3. Décidez de l'emplacement où vous souhaitez placer les fichiers journaux d'audit
(traces d'audit) sur le système. Pour plus d'informations sur la configuration des
fichiers journaux d'audit, voir la Section 10.5.
4. Créez une stratégie d'archivage et de sauvegarde des fichiers d'audit. Les fichiers
d'audit prennent souvent beaucoup d'espace et peuvent déborder si vous ne planifiez
pas soigneusement la gestion des fichiers. Utilisez l'option -X avec la commande
audomon pour automatiser l'archivage.
Pour plus d'informations sur l'audit des performances système et sur les tâches
d'administration qui peuvent vous aider à planifier l'implémentation de l'audit, voir la
Section 10.2.5 et la Section 10.2.6.

10.2 Audit du système 185


10.2.2 Activation de l'audit
Pour activer l'audit sur le système, procédez comme suit :
1. Configurez les utilisateurs que vous souhaitez auditer avec la commande
userdbset. Pour plus d'informations sur la configuration de l'audit des utilisateurs,
voir la Section 10.3.
2. Configurez les événements que vous souhaitez auditer avec la commande
audevent. Par exemple, pour auditer en fonction de MySitePolicy, entrez la
commande suivante :
# audevent -P -F -r MySitePolicy
MySitePolicy doit être définie dans le fichier /etc/audit/audit_site.conf.
Utilisez la commande audevent sans option pour afficher la liste des événements
et appels système actuellement configurés pour l'audit.
Pour plus d'informations sur la configuration de l'audit des événements, voir la
Section 10.4.
3. Définissez les paramètres d'arguments audevent dans le fichier /etc/
rc.config.d/auditing de sorte que le système d'audit conserve les paramètres
de configuration actuels lors du réamorçage du système. Par exemple, pour conserver
les paramètres conservés à l'étape 2, définissez les paramètres comme suit :
AUDEVENT_ARGS1 = –P –F –r MySitePolicy
4. Démarrez le système d'audit et définissez la ou les traces d'audit à l'aide de la
commande audsys :
#audsys -n -c fichier_audit_principal -s 1000
5. Définissez les fichiers journaux et les paramètres de basculement de fichiers journaux
dans le fichier /etc/rc.config.d/auditing. Procédez comme suit :
a. Définissez PRI_AUDFILE au nom du principal fichier journal d'audit.
b. Définissez PRI_SWITCH à la taille maximale du principal fichier journal d'audit
(en Ko), seuil au-delà duquel la journalisation de l'audit bascule vers le fichier
journal auxiliaire.
c. Définissez SEC_AUDFILE au nom du fichier journal d'audit auxiliaire.
d. Définissez SEC_SWITCH à la taille maximale du fichier journal d'audit secondaire
(en Ko).
Pour plus d'informations sur la configuration des fichiers journaux d'audit principaux
et auxiliaires, voir la Section 10.5.
6. Démarrez le démon audomon si ce n'est déjà fait. Le démon audomon contrôle la
croissance de la trace d'audit actuelle et bascule vers une trace d'audit secondaire
en cas de besoin. Par exemple :
#audomon -p 20 -t 1 -w 90 -X "/usr/local/bin/rcp_audit_trail hostname"

186 Administration de l'audit


Pour plus d'informations sur la configuration du démon audomon, voir la
Section 10.5.2.
7. Définissez le paramètre d'argument audomon dans le fichier /etc/rc.config.d/
auditing de façon à conserver les paramètres actuels d'un réamorçage à l'autre.
8. Affectez la valeur 1 à l'indicateur AUDITING dans le fichier /etc/rc.config.d/
auditing afin que le système d'audit démarre automatiquement lors de l'amorçage
système.

10.2.3 Désactivation de l'audit


Pour désactiver l'audit sur le système, procédez comme suit :
1. Arrêtez l'audit du système à l'aide de la commande suivante :
# audsys -f
2. Affectez la valeur 0 à l'indicateur AUDITING dans le fichier /etc/rc.config.d/
auditing afin que le système d'audit ne démarre pas lors du réamorçage système.
3. (Facultatif) Pour arrêter le démon audomon, entrez la commande suivante :
# kill `ps -e | awk '$NFS~ /audomon/ {print $1}'`
N'effectuez cette étape que si vous souhaitez reconfigurer le démon audomon. Pour
reconfigurer et redémarrer le démon audomon, effectuez l'étape 6 et l'étape 7
de la procédure dans la Section 10.2.2.

10.2.4 Contrôle des fichiers d'audit


Pour afficher, contrôler et administrer les fichiers d'audit, procédez comme suit :
1. Affichez les fichiers journaux d'audit avec la commande audisp :
# audisp fichier_audit
Pour plus de détails sur la commande audisp, voir « Affichage des fichiers journaux
d’audit ».
2. Définissez les arguments de contrôle de fichiers journaux dans le fichier /etc/
rc.config.d/auditing. Définissez les mêmes valeurs que celles utilisées à
l'étape 2.
3. (Facultatif) Arrêtez l'audit du système à l'aide de la commande suivante :
# audsys -f
4. (Facultatif) Affectez la valeur 0 à l'indicateur AUDIT dans le fichier /etc/
rc.config.d/auditing afin que le système d'audit ne démarre pas lors du
prochain réamorçage système.

10.2 Audit du système 187


10.2.5 Audit et performances
Les opérations d’audit augmentent la charge de travail du système. Si les performances
sont une de vos priorités, veillez à choisir soigneusement les événements et les utilisateurs
que vous voulez contrôler. Vous réduirez ainsi l’incidence des tâches d’audit sur les
performances.

10.2.6 Recommandations pour l’administration du système d’audit


Veillez à appliquer les recommandations suivantes lors de l'administration du système :
• Vérifiez si les journaux d'audit sont conformes à la stratégie de sécurité. Les fichiers
d’audit en ligne doivent être conservés pendant au moins 24 heures et tous les
enregistrements d'audit stockés hors ligne doivent être conservés pendant au moins
30 jours.
• Examinez le fichier journal d’audit à la recherche d’activités anormales, telles que
les connexions tardives, les échecs de connexion ou d’accès aux fichiers système
et les tentatives infructueuses d’exécution de tâches qui relèvent de la sécurité.
• Archivez chaque jour les fichiers journaux afin d'éviter le dépassement de capacité.
• Mettez régulièrement à jour la liste des événements sélectionnables, et plus
particulièrement après avoir installé de nouvelles versions de HP-UX : souvent, les
nouvelles versions font intervenir de nouveaux appels système.
• Mettez régulièrement à jour la liste des utilisateurs sélectionnés pour l’audit.
• Veillez à ne pas sélectionner les événements ou les utilisateurs de manière routinière.
• Définissez des recommandations à l’usage du site. Les utilisateurs et la direction
doivent participer au développement de ces recommandations.
• S'il est prévu que le volume de données d'audit soit élevé, configurez des traces
d'audit sur un volume logique composé de plusieurs disques physiques et de plusieurs
cartes d'E/S physiques. Utilisez l'option -N de la commande audsys pour fractionner
la trace d'audit en plusieurs fichiers.

10.3 Audit des utilisateurs


Par défaut, lorsque l’audit système est activé, l’état d’audit de chaque utilisateur est
également activé. Les nouveaux utilisateurs ajoutés au système sont automatiquement
intégrés dans l’audit.
La fonctionnalité d'audit vous permet de contrôler les tâches effectuées par les utilisateurs
sur des systèmes HP-UX. Pour modifier les utilisateurs soumis à l'audit, choisissez l'une
des options suivantes :

188 Administration de l'audit


• Auditer tous les utilisateurs.
Par défaut, l'état d'audit de tous les utilisateurs est activé lorsque le système d'audit
est activé. Les nouveaux utilisateurs ajoutés au système sont automatiquement intégrés
dans l’audit.
Si l'audit est désactivé pour tous les utilisateurs, définissez AUDIT_FLAG=1 dans le
fichier /etc/default/security.

• N'auditer aucun utilisateur.


Pour désactiver l'audit pour tous les utilisateurs, procédez comme suit :
1. Vérifiez quels utilisateurs sont déjà audités. Pour cela, procédez comme suit :
a. Vérifiez le paramètre AUDIT_FLAG dans le fichier /etc/default/
security.
b. Vérifiez le paramètre AUDIT_FLAG stocké dans la base de données
utilisateur à l'aide de la commande suivante :
# userdbget -a AUDIT_FLAG

2. Définissez AUDIT_FLAG=0 dans le fichier /etc/default/security.


• Auditer des utilisateurs spécifiques. Pour configurer l'audit pour des utilisateurs
spécifiques, procédez comme suit :
1. Désélectionnez l'audit pour tous les utilisateurs en définissant AUDIT_FLAG=0
dans le fichier /etc/default/security.
2. Configurez l'audit pour un utilisateur spécifique à l'aide de la commande
suivante :
# /usr/sbin/userdbset -u nom_utilisateur AUDIT_FLAG=1.

Si le système d'audit n'est pas activé, utilisez la commande audsys -n pour le démarrer.
Les modifications d'audit prennent effet à compter de l’ouverture de session suivante.

10.4 Audit des événements


Un événement est une action ayant une implication pour la sécurité, telle que la création
d'un fichier, l'ouverture d'un fichier ou l'ouverture de session sur un système. Vous pouvez
auditer les événements sur un système HP-UX afin d'améliorer la sécurité en détectant
les violations potentielles. Toutefois, plus le nombre d'événements audités sera élevé,
plus vous utiliserez de ressources système et plus grand sera l'impact sur les performances
système. L'architecte de la sécurité doit déterminer les événements à auditer en fonction
des besoins professionnels et des réglementations gouvernementales applicables.
La commande audevent permet de spécifier les activités système (événements) qui
doivent être soumis à un audit. Ces événements sont classifiés en catégories et en profils,
afin de faciliter la configuration. Une fois que vous avez sélectionné une catégorie ou
un profil d'événements, tous les appels système et les événements d'auto-audit associés
à la catégorie ou au profil d'événements sont sélectionnés. Lorsque le système d'audit
10.4 Audit des événements 189
est installé, un ensemble d'informations de classification d'événements par défaut est
fourni dans le fichier /etc/audit/audit.conf. Des classifications et profils
supplémentaires spécifiques au site peuvent également être définis dans le fichier /etc/
audit/audit_site.conf.

REMARQUE :
HP recommande d'auditer au moins les événements suivants :
• événement admin
• événement login
• événement d'auto-audit moddac
• execv, execve
• événement pset
Ces événements sont prédéfinis dans le profil de base dans le fichier /etc/audit/
audit.conf.

Configurez les événements que vous souhaitez auditer avant d'activer le système d'audit.
La syntaxe de la commande audevent est la suivante :
# audevent [options]
Les options suivantes sont couramment utilisées avec la commande audevent :
Tableau 10-4 Options de la commande audevent
Options de audevent Description

-e événement Spécifie un événement à enregistrer

-F Enregistre les opérations d'événements qui ont échoué

-l Affiche une liste complète de types d'événements et d'appels système associés

-P Enregistre les opérations d'événements qui ont réussi

-r profil Spécifie le profil d'événements à enregistrer. Les profils sont définis dans le
fichier /etc/audit/audit.conf.

-S or -s Modifie l'état d'audit d'un événement ou d'un appel système


appel_système

aucune option Affiche l'état actuel des événements ou appels système sélectionnés

Pour configurer admin, login et modaccess pour l'audit, entrez la commande suivante :
# audevent -P -F -e admin -e login -e moddac
Pour configurer les événements du profil de base pour l'audit, utilisez la commande
suivante :
# audevent -P -F -r basic

190 Administration de l'audit


Audit Success et Audit Failure sont tous deux définis comme types d'événements
pour le contrôle des événements ou des appels système qui ont échoué ou réussi. Cette
sélection constitue le type d'événement minimum recommandé pour l'exécution d'un
système.
En général, un enregistrement est écrit uniquement si l'événement et l'utilisateur qui
l'initient ont été sélectionnés pour l’audit. Toutefois, il se peut que certains enregistrements
soient générés au moment où un utilisateur démarre et termine une session, même s'il
n'est pas sélectionné pour l'audit. Ces enregistrements sont considérés comme des
informations à l'échelle du système basées sur la sélection d'événement plutôt que sur
la sélection d'utilisateur. Les programmes qui effectuent un auto-audit peuvent décider
de manière arbitraire d'ignorer la sélection d'utilisateur, mais cela n'est pas recommandé
pour l'auto-audit.

10.5 Traces d'audit


Toutes les données d’audit sont enregistrées dans une trace d'audit. En mode normal,
une trace d'audit est présente dans le système de fichiers sous forme d'un répertoire
composé d'un ou plusieurs fichiers journaux. Le nombre de fichiers journaux dépend du
nombre de threads d'écriture utilisés pour l'enregistrement des données. Seul le répertoire,
et non les fichiers qui y résident, représente des données significatives pour l'analyse et
l'affichage. Outre le mode normal, HP-UX 11i version 3 contient également un mode de
compatibilité qui permet de générer une trace d'audit présente sous la forme d'un fichier
unique. Le mode de compatibilité est pris en charge uniquement à des fins de compatibilité
descendante ; il sera obsolète dans les versions ultérieures de HP-UX 11i version 3. Pour
plus d'informations, voir la page de manuel audsys(1M).
À tout moment lorsque le système d'audit est activé, au moins une trace d'audit doit être
présente. Le nom de trace et divers attributs de trace peuvent être spécifiés à l'aide de
la commande audsys. Lorsque la taille actuelle excède sa capacité prédéfinie (sa taille
AFS (Audit File Switch)), ou lorsque le système de fichiers d'audit dans lequel elle réside
s'approche d'une capacité prédéfinie (sa taille FSS (File Space Switch)), le sous-système
d'audit affiche un avertissement. Une fois la taille AFS ou FSS de la trace d'audit actuelle
atteinte, le sous-système d'audit recherche une trace auxiliaire. S'il en trouve une,
l'enregistrement bascule vers cette trace auxiliaire. Si aucune trace auxiliaire n'est
spécifiée, le sous-système d'audit crée une nouvelle trace d'audit avec le même nom de
base mais une extension d'horodatage différente, et il commence à enregistrer les
événements dans cette nouvelle trace. Audomon exécute également une ligne de
commande après un basculement de trace d'audit, afin de traiter la dernière trace d'audit.
Selon les besoins spécifiques au site, le traitement peut impliquer la sauvegarde de
données, l'archivage, le déplacement hors site, le nettoyage ou la création de rapports
de données. Si la commande auto-switch échoue, des messages d'avertissement
sont envoyés afin d'exiger une action de la part de l'administrateur concerné, et la trace
d'audit actuelle continue de croître.

10.5 Traces d'audit 191


REMARQUE :
1. Avec HP-UX 11i version 3, il n'est plus nécessaire de spécifier de manière explicite
et manuelle une trace auxiliaire pour le basculement. Le système d'audit effectue le
basculement des traces d'audit automatiquement.
2. Si le basculement automatique a échoué et que la trace d'audit continue de croître
au-delà du point FSS, la valeur du paramètre minfree, définie par le système, peut
être dépassée. À ce stade, toutes les actions spumises à l'audit des utilisateurs
normaux sont suspendues. Pour rétablir le fonctionnement normal du système,
archivez les données d’audit ou désignez un nouveau fichier journal d'audit sur un
système de fichiers ayant suffisamment d'espace.
3. Si d’autres activités se partagent l’espace du système de fichiers, ou si le système
de fichiers choisi ne dispose pas d’assez de place pour la taille AFS choisie, le point
FSS peut être atteint avant le point AFS.
Choisissez pour vos fichiers journaux d’audit un système de fichiers disposant d’un espace
suffisant. Pour évaluer la taille de vos systèmes de fichiers, utilisez la commande bdf.
HP vous conseille de configurer les fichiers journaux avec, au moins, les paramètres
suivants :
• Le système de fichiers doit posséder plus de 5000 Ko d’espace disponible pour le
fichier journal d’audit principal.
• Il doit disposer de plus de 20 % de son espace total.
Pour éviter de perdre des données, la croissance des fichiers journaux d'audit est surveillée
de près par le démon de surveillance de dépassement de capacité d’audit, audomon.

10.5.1 Configuration des traces d'audit


Utilisez la commande audsys pour spécifier le fichier journal d'audit principal et
(éventuellement) le fichier journal d'audit auxiliaire pour la collecte des données d'audit :
#audsys -n -N2 -c mon_fichier_audit -s 5000
Cet exemple démarre le système d'audit et enregistre les données dans le répertoire
mon_fichier_audit, avec deux threads d'écriture. La taille AFS est définie à 5000 Ko.
Pour plus d'informations, voir audsys(1M).

10.5.2 Contrôle et gestion des traces d'audit


Le démon de surveillance de dépassement de capacité d’audit (audomon) permet de
contrôler et de gérer les traces d'audit. Le démon audomon est démarré automatiquement
lorsque l'audit est démarré à l'amorçage système (AUDITING=1 dans /sbin/init.d/
auditing). Le démon audomon peut également être démarré par un utilisateur privilégié.
Une fois démarré, le démon audomon contrôle la capacité de la trace d'audit actuelle
et le système de fichiers dans lequel elle réside. Voici un exemple de commande utilisée
pour démarrer le démon audomon :

192 Administration de l'audit


# audomon -p 20 -t 1 -w 90 -X "/user/local/bin/rcp_audit_trail nom_hôte"
Cette commande démarre le démon audomon avec le comportement suivant, en supposant
que le système d'audit ait été démarré avec la commande suivante :
# audsys -n -N 2 -c /var/.audit/my_trail -s 500
• audomon dort par intervalles d'au moins une minute.
• Lorsque la taille de la trace d'audit actuelle atteint 4500 Ko, ou lorsque le système
de fichiers dans lequel réside la trace d'audit est plein à 80 %, le démon audomon
cesse d'enregistrer les données dans la trace d'audit actuelle et commence à
enregistrer une nouvelle trace d'audit : /var/.audit/my_trail.aaaammjjHHMM
• Une fois le basculement vers la nouvelle trace d'audit réussi, le démon audomon
appelle la commande suivante :
sh -c "/usr/local/bin/rcp_audit_trail nom_hôte /var/.audit/my_trail"
Ce script est spécifique au site et peut être utilisé pour copier l'ancienne trace d'audit,
effectuer des sauvegardes de données ou des fonctions d'archivage, et créer des
rapports d'audit. Pour plus d'informations sur le démon audomon, voir audomon(1).

ATTENTION :
• Si le système de fichiers contenant la trace d'audit est plein, tout processus non root
qui génère des données d'audit sera bloqué à l'intérieur du noyau. De même, si un
processus non root est connecté au terminal système, il sera arrêté. Pour plus de
détails, voir la section WARNINGS de audsys(1M).
• Ne placez pas de trace d'audit dans le système de fichiers racine.

ASTUCE : HP vous conseille d'écrire un script afin d'implémenter votre stratégie de


stockage de données à long terme, et de le passer au démon audomon avec l'option
-X.
La commande audomon prend les arguments suivants :
-p fss Pourcentage d'espace minimal restant dans le système de
fichiers qui contient le fichier journal d'audit principal, à partir
duquel le système d'audit bascule vers le fichier journal
auxiliaire. La valeur fss par défaut est 20 %.
-t fréq_pb Intervalle de réveil minimal, en minutes, auquel le système
affiche sur la console des messages d'avertissement pour des
points de basculement de fichier journal d'audit. La valeur
fréq_pb par défaut est 1 minute.
-w avertissement Pourcentage de l'espace de fichier journal d'audit utilisé ou
espace libre minimal dans le système de fichiers utilisé, au-delà
duquel des messages d'avertissement sont affichés sur la
console. La valeur d'avertissement par défaut est 90%.
10.5 Traces d'audit 193
-X commande La commande est exécutée chaque fois que le démon
audomon provoque un basculement de trace d'audit.
Pour plus d'informations, voir audomon(1M).

10.6 Affichage des fichiers journaux d’audit


Les opérations d’audit génèrent un volume important de données. Vous pouvez utiliser
la commande audisp pour sélectionner les données à afficher :
#/usr/sbin/audisp trace_audit
Les options suivantes sont disponibles avec la commande audisp :
-f Affiche uniquement les événements d'échecs.
-p Affiche uniquement les événements de réussite.
-c appel_système Affiche l'appel système sélectionné.
-t Affiche les événements qui se sont produits après l'heure
spécifiée.
-s Affiche les événements qui se sont produits avant l'heure
spécifiée.
-u nom_utilisateur Affiche des informations relatives à un utilisateur spécifique.
-l nom_terminal Affiche des informations relatives à un terminal spécifique.
-e nom_événement Affiche des informations relatives à l'événement spécifié.
> nom_fichier Écrit la sortie dans le fichier spécifié.
La préparation des enregistrements des fichiers journaux d’audit volumineux peut prendre
plusieurs minutes. Lorsque vous passez en revue vos données d’audit, prenez garde aux
anomalies suivantes :
• Les données d’audit peuvent sembler incorrectes lorsque les programmes qui
effectuent des appels système soumis à l’audit fournissent des paramètres incorrects.
Les données d’audit montrent les paramètres que le programme utilisateur a passé
au noyau. Par exemple, exécuter l’appel système kill() sans paramètres peut
générer des valeurs imprévisibles dans la section paramètre de l’enregistrement
d’audit.
• Les informations de périphériques d’inœuds des appels système qui acceptent des
noms de fichiers comme arguments peuvent ne pas être correctement enregistrées.
Si l’appel système se termine sur un échec, ces valeurs seront égales à -1.
• Si vous effectuez un audit sur le superutilisateur alors que vous modifiez les
paramètres d’un événement ou d’un appel système, vous générerez un très long
enregistrement d’audit. Par exemple, lorsque vous ajoutez un type d’événement à
la liste d’audit, chaque type d’événement ou d’appel système sélectionné pour l’audit
générera un enregistrement, et pas seulement le nouveau type d’événement que
vous ajoutez.

194 Administration de l'audit


10.6.1 Exemples d'utilisation de la commande audisp
Les exemples suivants montrent des informations d'audit affichées à l'aide de la commande
audisp :
• Afficher la sortie de journal à l'écran :
#/usr/sbin/audisp trace_audit

• Diriger la sortie de journal vers /tmp/mylogoutput :


#/usr/sbin/audisp trace_audit > /tmp/mylogoutput

• Afficher uniquement les événements de réussite :


#/usr/sbin/audisp -p trace_audit

• Afficher les activités dont l'utilisateur joe est le propriétaire :


#/usr/sbin/audisp -u joe trace_audit

• Afficher les activités sur le terminal ttypa :


#/usr/sbin/audisp -l ttypa trace_audit

• Afficher uniquement les événements de connexion :


#/usr/sbin/audisp -e login trace_audit

10.7 Auto-audit
Certains processus appellent une série d'actions qui peuvent être auditées. Pour réduire
la quantité de données d’audit recueillies et les rendre plus significatives, certains de ces
processus sont programmés pour suspendre l’audit des actions qu’ils appellent et ne
produire qu’une seule entrée qui décrit la totalité du processus déclenché. Les processus
programmés de cette façon portent le nom de programmes à auto-audit ; l'utilisation de
ce type de programme permet de rationnaliser les données de journal d'audit.

REMARQUE : La liste de processus à auto-audit varie d'un système à l'autre.

Processus à auto-audit
Les processus suivants sont des programmes à auto-audit :
chfn Modifier une entrée finger
chsh Modifier un shell de connexion
login L'utilitaire de connexion
newgrp Modifier un groupe effectif
passwd Modifier un mot de passe
audevent Sélectionner les événements concernés par l’audit
audisp Afficher les données d'audit

10.7 Auto-audit 195


audsys Démarrer ou arrêter le système d'audit
audusr Sélectionner les utilisateurs concernés par l’audit
init Modifier des niveaux d'exécution, des utilisateurs qui se déconnectent
lpsched Planifier des demandes d'imprimantes ligne
fbackup Sauvegarde de fichier flexible
ftpd Démon de protocole de transfert de fichiers
remshd Démon de serveur de shell distant
rlogind Démon de serveur de connexion distante
telnetd Démon de serveur telnet
privrun Appelle une application héritée.1
privedit Permet aux utilisateurs autorisés de modifier des fichiers.1
roleadm Modifie des informations de rôle.1
authadm Modifie des informations d'autorisation.1
cmdprivadm Modifie des autorisations et privilèges de commandes.1
La plupart des programmes à auto-audit génèrent des données d'audit sous une seule
catégorie d'événements. Par exemple, la commande audsys génère les données d'audit
sous la catégorie admin. Certaines commandes génèrent des données d'événements
sous plusieurs catégories d'événements. Par exemple, la commande init génère les
données sous les catégories login et admin.

10.8 Audit HP-UX RBAC


Les commandes de contrôle d'accès basé sur les rôles HP-UX privrun, privedit,
roleadm, authadm et cmdprivadm génèrent chacune des enregistrements d'audit.
Les attributs suivants sont inclus dans chaque enregistrement d'audit :
• Nom d'utilisateur
• UID
• Rôle
• Autorisations (opération, objet)
• Heure de l'événement
• Résultat de l'événement (réussite ou échec)

1. Pour plus d’informations, voir le Chapitre 9.


196 Administration de l'audit
10.8.1 Audit basé sur des critères de contrôle d'accès basé sur les rôles HP-UX et fichier
/etc/rbac/aud_filter
HP-UX RBAC version B.11.23.02 et ultérieures prennent en charge l'utilisation d'un fichier
de filtre d'audit pour identifier des critères HP-UX RBAC spécifiques à auditer. Vous
pouvez créer un filtre nommé /etc/rbac/aud_filter pour identifier des rôles, des
opérations et des objets spécifiques pour lesquels générer des enregistrements d'audit.
Les enregistrements d'audit sont générés uniquement si les attributs d'un processus
correspondent aux trois entrées (rôle, opération et objet) présentes dans /etc/rbac/
aud_filter. Si le rôle d'un utilisateur et son autorisation associée ne figurent pas dans
le fichier ou ne correspondent pas de manière explicite, aucun enregistrement d'audit
spécifique à rôle-à-autorisation n'est généré.
Les utilisateurs autorisés peuvent modifier le fichier /etc/rbac/aud_filter à l'aide
d'un éditeur de texte et spécifier le rôle et l'autorisation à auditer. Chaque autorisation
est spécifiée sous la forme d'une paire opération-objet. Toutes les autorisations associées
à un rôle doivent être spécifiées dans une entrée unique. Une seule autorisation peut
être spécifiée par rôle sur chaque ligne ; le caractère générique * est cependant pris en
charge. Voici les entrées prises en charge et le format du fichier
/etc/rbac/aud_filter :
rôle, opération, objet
La liste suivante décrit chacune des entrées du fichier /etc/rbac/aud_filter :
rôle Tout rôle valide défini dans /etc/rbac/roles. Si * est spécifié, tous
les rôles sont accessibles par l'opération.
opération Une opération spécifique qui peut être effectuée sur un objet. Par
exemple, hpux.printer.add est l'opération qui consiste à ajouter
une imprimante. hpux.printer.* est l'opération qui consiste à ajouter
ou à supprimer une imprimante. Si * est spécifié, toutes les opérations
sont accessibles par l'opération.
objet L'objet auquel l'utilisateur peut accéder. Si * est spécifié, tous les objets
sont accessibles par l'opération.
Voici des exemples d'entrées /etc/rbac/aud_filter qui indiquent comment générer
des enregistrements d'audit pour le rôle SecurityOfficer avec l'autorisation
(hpux.passwd, /etc/passwd), et pour le rôle Administrator avec l'autorisation
d'effectuer l'opération hpux.printer.add sur tous les objets.
SecurityOfficer, hpux.passwd, /etc/passwd
Administrator, hpux.printer.add, *

REMARQUE : Utilisez un éditeur tel que vi pour modifier directement le fichier /etc/
rbac/aud_filter. Les commandes administratives HP-UX RBAC n'interfacent pas
avec /etc/rbac/aud_filter.

10.8 Audit HP-UX RBAC 197


10.8.2 Procédure d'audit des critères HP-UX RBAC
Les étapes suivantes décrivent comment configurer un processus d'audit de façon à
auditer des critères HP-UX RBAC sur le système :
1. Pour configurer le système de façon à auditer les événements Passed ou Failed pour
les événements Administrator, utilisez la commande suivante :
# audevent -PFe admin
2. Pour configurer l'emplacement et le nom du fichier de sortie d'audit et activez l'audit
sur le système, utilisez la commande suivante :
# audsys -n -c /tmp/aud.out -s 2048
3. Exécuter une commande HP-UX RBAC, par exemple :
# /usr/sbin/authadm add newauth
4. Pour ouvrir le fichier de sortie d'audit et rechercher les enregistrements sur la
commande authadmin, utilisez la commande suivante :
# audisp /tmp/aud.out |fgrep authadm

REMARQUE : Pour en savoir plus sur l'audit des systèmes HP-UX, voir audit(5),
audevent(1M), audsys(1M) et audisp(1M).

198 Administration de l'audit


A Systèmes protégés
Cette annexe décrit comment configurer et gérer un système protégé. Elle traite des sujets
suivants :
• Configuration d'un système protégé (Section A.1)
• Audit d’un système protégé (Section A.2)
• Gestion des mots de passes protégés et de l'accès au système (Section A.3)
• Recommandations pour la sauvegarde et la récupération protégées (Section A.4)

REMARQUE : Trusted Systems est désormais obsolète. HP-UX 11i v3 est la dernière
version qui prend en charge ce produit.

A.1 Configuration d'un système protégé


Pour configurer un système protégé, procédez comme suit :
1. Élaborez une stratégie générale de sécurité qui soit en accord avec les exigences
de votre site.
2. Vérifiez les risques en termes de sécurité concernant les fichiers existants de votre
système et apportez-y des solutions. Cette étape est essentielle avant de convertir
votre système en système protégé. À partir de ce moment, inspectez les fichiers
régulièrement ou chaque fois que vous pensez avoir été attaqué. Voir la Section 6.9
au Chapitre 6
3. Sauvegardez le système de fichiers afin de pouvoir récupérer ultérieurement les
fichiers des utilisateurs. Pensez également à sauvegarder le fichier /etc/passwd
sur une bande avant de convertir votre système.
Utilisez le programme HP-UX de votre choix pour la première sauvegarde et la
récupération correspondante. Cependant, une fois les fonctionnalités de sécurité
implémentées, vous devez utiliser exclusivement fbackup et frecover, qui
préservent et restaurent les listes de contrôle d’accès (ACL). Pour plus d'informations,
voir fbackup(1M) et frecover(1M).
4. Convertissez votre système en système protégé. La conversion en système protégé
est une opération réversible.
Pour convertir un système en système protégé, exécutez HP SMH et cliquez sur
System Security Policies. Vous accéderez alors à l'invite Convert to trusted
system. Le programme peut vous demander une confirmation. Entrez Y pour lancer
le processus de conversion.
Lorsque vous convertissez un système en système protégé, le programme de
conversion effectue les actions suivantes :
• Il génère une nouvelle base de données de mots de passe protégés dans /tcb/
files/auth/.

A.1 Configuration d'un système protégé 199


• Il déplace les mots de passe chiffrés du fichier /etc/passwd vers la base de
données de mots de passe protégés et remplace le champ password de /etc/
passwd par un astérisque (*).
• Il force tous les utilisateurs à employer des mots de passe.
• Il crée un ID d’audit pour chaque utilisateur. L'ID d'audit demeure identique
durant tout l'historique de l'utilisateur. Il identifie l'utilisateur de manière unique.
Notez que l'ID d'audit est obsolète (tout comme Trusted System) dans HP-UX
11i v3, et qu'il est remplacé par une balise d'audit affectée de manière
dynamique chaque fois qu'un utilisateur ouvre une nouvelle session. Pour plus
d'informations sur les balises d'audit, voir le Chapitre 10.
• Il active l’indicateur d’audit pour tous les utilisateurs existants.
• Il convertit les fichiers d’entrée at, batch et crontab pour qu’ils utilisent l'ID
d’audit de l’exécuteur de la commande.
5. Vérifiez que les fichiers d’audit sont présents sur le système :
1. Utilisez swlist -l fileset pour répertorier les ensembles de fichiers
installés. Recherchez l'ensemble de fichiers nommé SecurityMon, qui contient
les fichiers de programme d'audit. Pour réduire la longueur de la liste, entrez
la commande suivante :# swlist -l fileset | grep Security
2. Par ailleurs, vérifiez que les fichiers suivants, qui ne sont pas mentionnés dans
SecurityMon, sont également présents :
• /etc/rc.config.d/auditing, qui contient les paramètres de contrôle
de l’audit. Vous pouvez modifier ce fichier avec SMH ou manuellement
avec un éditeur de texte.
• /sbin/rc2.d/S760auditing est le script qui démarre l'audit. Ne
modifiez pas ce fichier.
6. Une fois la conversion en système protégé effectuée, vous pouvez utiliser le
sous-système d'audit et exécuter le système HP-UX en tant que système protégé.

REMARQUE : Sur HP-UX 11i v3, un système d'audit fonctionne également sur un
système sans que celui-ci ait été converti en système protégé.
Pour plus d’informations, voir le Chapitre 10.
Si vous devez reconvertir en système standard un système protégé, exécutez HP SMH
et utilisez la fenêtre Auditing and Security. Les écrans Audited Events, Audited System
Calls et Audited Users proposent tous une option de reconversion.

ASTUCE : L'une des manières de déterminer si le système a été converti en système


protégé consiste à rechercher la présence de fichiers /tcb. S'ils existent, il s'agit d'un
système protégé.

200 Systèmes protégés


A.2 Audit d’un système protégé
L'audit d'un système protégé est très semblable à l'audit d'un système qui n'a pas été
converti en mode protégé. Voir le Chapitre 10 pour plus d’informations sur l'audit. La
seule différence réside dans le mode de sélection des utilisateurs concernés par l'audit.
Sur un système qui n'a pas été converti en mode protégé, la commande userdbset
est utilisée pour spécifier les utilisateurs qui doivent être soumis à un audit. Voir
userbdset(1M) et userdb(4). L'attribut associé se nomme AUDIT_FLAG ; il est décrit dans
security(4). Sur un système protégé, la commande audusr spécifie les utilisateurs qui
doivent être soumis à un audit. Pour plus d'informations, voir audusr(1M).

A.3 Gestion des mots de passes protégés et de l'accès au système


Le mot de passe est le symbole d’identification individuel le plus important. Le système
l’utilise pour s’assurer de l’identité d’un utilisateur et lui permettre l’accès au système. Les
mots de passe pouvant être divulgués lorsqu’ils sont utilisés, stockés ou connus, ils doivent
rester secrets en toutes circonstances.
Pour plus d'informations sur les mots de passe, voir également le Chapitre 2.

Responsabilités de l'administrateur de la sécurité


L'administrateur de la sécurité, ainsi que tous les utilisateurs du système, partagent la
charge de protéger les mots de passe. Il effectue les tâches suivantes :
• Il génère des mots de passe provisoires pour les nouveaux utilisateurs. Ce mot de
passe doit être utilisé pour la première ouverture de session. Une fois qu’il a été
vérifié, le système invite l’utilisateur à entrer un nouveau mot de passe.
• Il assure le renouvellement des autorisations d’accès correctes sur tous les systèmes
de fichiers, y compris le fichier de mots de passe standard,/etc/passwd, et les
fichiers de base de données protégée, /tcb/files/auth/*.
• Il détermine le délai d’expiration des mots de passe.
• Il évite la réutilisation des mots de passe personnels.
• Il efface ou inhibe les mots de passe expirés, les ID et les mots de passe des
utilisateurs qui n’ont plus l’autorisation d’accéder au système.

Responsabilités de l’utilisateur
Les règles suivantes sont valables pour chaque utilisateur :
• Se souvenir de son mot de passe et le tenir secret en toutes circonstances.
• Remplacer immédiatement le mot de passe initial. Par la suite, changer régulièrement
ce mot de passe.
• Signaler tout changement d’état et toute violation des règles de sécurité.
• Veiller à entrer le mot de passe aussi confidentiellement que possible.
• Choisir un mot de passe différent pour chaque machine où l’utilisateur possède un
compte.
A.2 Audit d’un système protégé 201
A.3.1 Fichiers de mots de passe
Un système protégé possède de nombreux fichiers de mots de passe : le fichier /etc/
passwd et les fichiers de la base de données de mots de passe protégés /tcb/files/
auth/ (voir « Base de données /tcb/files/auth/ »). Il existe pour chaque utilisateur une
entrée dans les deux fichiers, et login recherche les deux entrées pour authentifier les
demandes d’ouverture de session.
Tous les mots de passe sont chiffrés immédiatement après saisie et stockés dans /tcb/
files/auth/user-char/user-name, le fichier de base de données de mots de
passe protégés de l'utilisateur. Seul le mot de passe chiffré est utilisé pour les
comparaisons.
Aucun de ces fichiers de mots de passe ne doit contenir de champ vide. Sur les systèmes
protégés, le champ de mot de passe de /etc/passwd est ignoré. Un utilisateur qui
possède un mot de passe vide devra définir un mot de passe à l’ouverture de sa session
sur un système protégé. Cela présente tout de même un risque pour la sécurité ; toute
personne se connectant à ce compte devra définir le mot de passe.
N’éditez jamais les fichiers de mots de passe directement. Utilisez HP SMH, useradd,
userdel ou usermod pour modifier les entrées des fichiers de mots de passe.

A.3.1.1 Fichier /etc/passwd


Un système protégé utilise le fichier /etc/passwd pour identifier un utilisateur lors de
la connexion. Le fichier contient une description de chaque compte du système HP-UX.
Chaque entrée se compose de sept champs séparés par un signe deux-points. Une entrée
du fichier /etc/passwd dans un système protégé ressemble généralement à ceci :
robin:*:102:99:Robin Hood,Rm 3,x9876,408-555-1234:/home/robin:/usr/bin/sh
Les champs regroupent les informations suivantes (répertoriées dans l’ordre) séparées
par des signes deux-points :
1. Le nom de (connexion de) l’utilisateur, composé de huit caractères maximum. (Dans
l’exemple, robin).
2. Le champ de mot de passe inutilisé, où un astérisque remplace le mot de passe réel.
(*)
3. ID utilisateur, un entier compris entre 0 et MAXINT-1, c’est-à-dire 2 147 483 646
ou encore 231 -2. (102)
4. ID de groupe (gid), tiré de /etc/group, un entier compris entre 0 et MAXINT-1.
(99)
5. Un champ de commentaire qui permet d’identifier les renseignements tels que le
nom complet de l’utilisateur, son adresse et ses numéros de téléphone. Pour des
raisons historiques, ce champ est appelé également gecos.
(Robin Hood,Rm 3,x9876,408-555-1234)
6. Le répertoire personnel, c’est-à-dire le répertoire initial de connexion de l’utilisateur.
(/home/robin).
7. Le nom du chemin du programme de connexion qui est exécuté lorsque l’utilisateur
se connecte. (/usr/bin/sh)

202 Systèmes protégés


L’utilisateur peut modifier le champ de commentaire (cinquième champ) avec la commande
chfn et le nom du chemin du programme de connexion (septième champ) avec la
commande chsh. Seul l’administrateur système peut définir les autres champs. L'ID
utilisateur doit être unique. Pour plus d'informations, voir les pages de manuel chfn(1),
chsh(1), passwd(1) et passwd(4). L’utilisateur peut modifier le mot de passe dans la base
de données de mots de passe protégés à l’aide de la commande passwd.

A.3.1.2 Base de données /tcb/files/auth/


Lorsque vous convertissez votre système en système protégé, le mot de passe chiffré qui
se trouve normalement dans le deuxième champ de /etc/passwd est déplacé vers la
base de données de mots de passe protégés et un astérisque prend sa place dans le
fichier /etc/passwd.
Les bases de données de mots de passe protégés sont stockées dans l’arborescence /
tcb/files/auth/. Les profils d’authentification utilisateur sont stockés dans ces
répertoires en fonction de la première lettre du nom du compte d'utilisateur. Par exemple,
le profil d’authentification de l’utilisateur david est stocké dans /tcb/files/auth/
d/david.
Sur les systèmes protégés, les éléments essentiels de protection sont conservés dans la
base de données de mots de passe protégés et ne sont accessibles qu’aux
superutilisateurs. Utilisez HP SMH pour définir les entrées de données de mots de passe.
Si, pour un utilisateur donné, les valeurs relatives au mot de passe ne sont pas précisées,
elles sont initialisées aux valeurs système par défaut stockées dans le fichier /tcb/
files/auth/system/default.
La base de données de mots de passe protégés contient de nombreuses entrées
d’authentification de l’utilisateur. Voir prpwd(4) pour plus d'informations sur ces entrées,
parmi lesquelles :
• Nom de l’utilisateur et ID utilisateur
• Mot de passe chiffré
• Propriétaire du compte
• Authentification d'amorçage, pour permettre aux utilisateurs spécifiés d'amorcer le
système ; voir security(4).
• ID d’audit et indicateur d’audit pour l'utilisateur (l’audit est-il ou non activé ?)
• Délai minimal entre deux changements de mot de passe
• Longueur maximale du mot de passe
• Délai d’expiration du mot de passe, au-delà duquel le mot de passe doit être changé
• Durée de vie du mot de passe, au-delà de laquelle le compte est verrouillé
• Dates de la dernière tentative réussie et de la dernière tentative infructueuse de
modification du mot de passe
• Heure (date) absolue d’expiration du compte
• Délai maximal autorisé entre deux connexions avant verrouillage du compte

Responsabilités de l’utilisateur 203


• Date, en nombre de jours avant l’expiration, d’émission d’un message d’avertissement
• Les mots de passe sont-ils générés par l’utilisateur ou par le système ?
• Vérification du caractère trivial des mots de passe, afin d'empêcher l'utilisation de
noms communs ou de termes connus en tant que mots de passe.
• Type de mots de passe générés par le système
• Mots de passe nuls
• ID utilisateur responsable de la dernière modification du mot de passe, s’il ne s’agit
pas du propriétaire du compte
• Plages horaires d’ouverture de session de ce compte
• Identité du terminal ou des systèmes hôtes distants associés à la dernière tentative
réussie et à la dernière tentative infructueuse d’ouverture de session sur ce compte
• Nombre de tentatives infructueuses d’ouverture de session : ce nombre est remis à
zéro après une tentative réussie
• Nombre maximal de tentatives d’ouverture de session sur ce compte avant son
verrouillage

A.3.2 Sélection et génération de mots de passe


Sur les systèmes protégés, vous disposez des options suivantes de génération de mots
de passe :
• Mots de passe générés par l’utilisateur.
Une option de filtrage permet de tester le mot de passe en vérifiant la présence de
noms de connexion, de groupes, de permutations de ces noms et de palindromes.
La différence entre le nouveau mot de passe et l’ancien doit être de trois caractères
au minimum.
• Mots de passe générés par le système utilisant une combinaison de lettres seulement.
• Mots de passe générés par le système et utilisant une combinaison de lettres, de
chiffres et de signes de ponctuation.
• Mots de passe générés par le système et utilisant des syllabes prononçables mais
sans aucune signification.
Vous pouvez définir les options de génération de mots de passe pour un système. Vous
pouvez également définir les options de génération de mots de passe utilisateur par
utilisateur, en outrepassant la définition par défaut du système.
Vous devez définir au moins une option de génération de mot de passe par utilisateur.
Si un utilisateur dispose de plus d’une option, un menu de génération de mot de passe
s’affiche lorsque cet utilisateur change son mot de passe personnel.

204 Systèmes protégés


A.3.3 Délai d’expiration des mots de passe
Vous pouvez activer ou désactiver le délai d'expiration de mot de passe pour chaque
utilisateur. Si l’option est activée, le système conserve les informations suivantes :
Durée minimale La durée minimale entre deux modifications du mot de
passe personnel. Pour s’épargner l’effort de mémoriser
un nouveau mot de passe, certains utilisateurs
réinstallent l’ancien immédiatement après l’avoir
changé.
Délai d’expiration Le délai au-delà duquel un utilisateur doit modifier son
mot de passe pour ouvrir une session.
Délai d’avertissement La date d’émission d’un message d’avertissement en
nombre de jours avant l’expiration du mot de passe.
Durée de vie La durée au bout de laquelle le compte associé au mot
de passe est verrouillé si le mot de passe n’est pas
changé. Une fois qu’un compte est verrouillé, seul
l’administrateur système peut le déverrouiller. Si le
compte est déverrouillé, le mot de passe doit quand
même être changé pour que l’utilisateur puisse ouvrir
une session sur ce compte.
Les valeurs du délai d’expiration et de la durée de vie sont réinitialisées lorsque le mot
de passe est changé. Lorsque la durée de vie est fixée à 0, il n’y a pas de délai
d’expiration du mot de passe. Dans ce cas, les autres valeurs d’expiration du mot de
passe sont sans conséquence.

A.3.4 Historique et réutilisation des mots de passe


Vous pouvez activer la fonctionnalité d'historique de mot de passe à l'échelle du système
afin de décourager la réutilisation des mots de passe précédents.
Vous pouvez activer la vérification de réutilisation de mot de passe en définissant l'attribut
PASSWORD_HISTORY_DEPTH dans le fichier /etc/default/security :
PASSWORD_HISTORY_DEPTH=n
où n est un entier spécifiant le nombre de mots de passe précédents à vérifier.
Lorsqu’un utilisateur modifie son mot de passe personnel, le nouveau mot de passe est
comparé aux n précédents mots de passe, en commençant par le mot de passe actuel.
Si le système parvient à établir une correspondance, il refuse le nouveau mot de passe.
Pour éviter que vos utilisateurs passent alternativement d’un mot de passe à l’autre,
donnez à n la valeur 2.
Pour plus d'informations, voir passwd(1) et security(4).

Responsabilités de l’utilisateur 205


A.3.5 Contrôle d’accès basé sur l’heure
Sur les systèmes protégés, vous pouvez définir pour chaque utilisateur des heures de la
journée et des jours de la semaine pendant lesquels l’ouverture de session est autorisée.
Lorsqu’un utilisateur tente de se connecter en dehors de ces périodes d’accès autorisées,
l’événement est consigné (dans le cas où les connexions réussies ou infructueuses font
l’objet d’un audit) et la connexion est immédiatement fermée. Les superutilisateurs peuvent
se connecter en dehors des périodes d’accès autorisées, mais l’ouverture de session sera
consignée. Les périodes d’accès autorisées, qui peuvent être définies grâce à HP SMH,
sont stockées dans la base de données de mots de passe protégés. Les utilisateurs qui
ont ouvert une session au cours d’une période d’accès autorisée ne sont pas déconnectés
lorsque cette période se termine.

A.3.6 Contrôle d'accès basé sur les périphériques


Sur un système protégé, vous pouvez établir une liste des utilisateurs qui auront accès à
un port MUX ou DTC dédié donné. Lorsque la liste associée à un périphérique est vide,
tous les utilisateurs peuvent y accéder.
Les informations d’accès au périphérique sont stockées dans la base de données
d’affectation de périphériques, /tcb/files/devassign, qui contient une entrée pour
chaque périphérique terminal d’un système protégé. Un champ de cette entrée répertorie
les utilisateurs qui peuvent accéder au périphérique.
Les informations de connexion aux terminaux d’un système protégé sont stockées dans
la base de données de contrôle des terminaux, /tcb/files/ttys, qui fournit les
renseignements suivants sur chaque terminal :
• Nom du périphérique
• ID dernier utilisateur à s’être correctement connecté sur le terminal
• Date de dernière connexion réussie sur le terminal
• Date de dernière connexion infructueuse sur le terminal
• Nombre de connexions infructueuses consécutives avant le verrouillage du terminal
• Indicateur de verrouillage du terminal
Seul les superutilisateurs peuvent accéder à ces bases de données de système protégé
et peuvent utiliser HP SMH pour définir ces valeurs. Voir devassign(4) et ttys(4).

A.3.7 Manipulation des bases de données d’un système protégé


Utilisez les routines de bibliothèques décrites dans les pages de manuel suivantes pour
accéder aux informations contenues dans les fichiers de mots de passe et dans d'autres
bases de données de système protégé :
getdvagent(3) Manipule les entrées de périphériques dans /tcb/files/
devassign
getprdfent(3) Manipule les valeurs système par défaut dans /tcb/files/
auth/system/default
getprpwent(3) Récupère les entrées de mots de passe dans /tcb/files/auth/

206 Systèmes protégés


getprtcent(3) Manipule la base de données de contrôle des terminaux, /tcb/
files/ttys
getpwent(3C) Récupère les entrées de mots de passe dans /etc/passwd
putpwent(3C) Écrit des entrées de fichier de mots de passe dans /etc/passwd
getspwent(3X) Récupère des entrées de mots de passe dans /tcb/files/auth/
(fourni à des fins de compatibilité descendante)
putspwent(3X) Écrit des entrées de mots de passe dans /tcb/files/auth/
(fourni à des fins de compatibilité descendante)
putprpwnam(3) Écrit des entrées de fichier de mots de passe dans /tcb/files/
auth/

A.4 Recommandations pour la sauvegarde et la récupération protégées


Voici quelques recommandations concernant la sauvegarde et la récupération sur un
système protégé :
• Pour sauvegarder et récupérer des fichiers de manière sélective, n’utilisez que les
commandes fbackup et frecover. Seules fbackup et frecover ont accès aux
listes de contrôle d'accès. Sur les systèmes qui ne possèdent pas de listes de contrôle
d'accès, utilisez l’option -A de ces commandes pour sauvegarder et récupérer des
fichiers. Pour plus d'informations, voir fbackup(1M) et frecover(1M).
• Si vous prévoyez de récupérer les fichiers sur un autre système, vérifiez que le nom
d’utilisateur et le nom de groupe sur les deux systèmes sont identiques.
• Souvenez-vous que le support de sauvegarde contient des données confidentielles.
Seuls les utilisateurs qui en ont un besoin véritable doivent avoir accès au support.
• Étiquetez les bandes de sauvegarde et stockez-les soigneusement. Entreposez-les à
l’extérieur de votre entreprise pour améliorer la sécurité. Conservez les archives
pendant six mois au minimum, puis recyclez les supports.
• Appliquez les procédures appropriées pour nettoyer les supports magnétiques afin
de supprimer les données avant toute réutilisation.
• Effectuez des sauvegardes incrémentielles quotidiennes et des sauvegardes complètes
hebdomadaires.
Établissez le planning de sauvegarde en fonction du flux de données de
l'organisation. Si, par exemple, les mises à jour de votre principale base de données
ont lieu le vendredi, il est peut-être plus sûr de prévoir la sauvegarde hebdomadaire
le vendredi soir.
• Si tous les fichiers doivent être sauvegardés en fonction d’un planning, demandez
à tous les utilisateurs de fermer leur session avant de commencer la sauvegarde.
Toutefois, fbackup vous prévient si un fichier évolue pendant que vous le
sauvegardez.
• Pour identifier d’éventuels problèmes au cours de la sauvegarde, examinez le fichier
journal des dernières sauvegardes. Définissez des autorisations restrictives pour le
fichier journal de sauvegarde.

A.4 Recommandations pour la sauvegarde et la récupération protégées 207


• La commande frecover vous permet d’écraser un fichier. Toutefois, le fichier
conserve les autorisations et les listes de contrôle d’accès définies au moment de sa
sauvegarde.
• Testez le processus de récupération à l’avance pour vous assurer de pouvoir restaurer
intégralement les données en cas d’urgence.
• Lorsque vous restaurez un fichier à partir d’une autre machine, l’utilisateur et le
groupe de ce fichier n’existent peut-être pas sur le nouveau système. Vous devrez
alors exécuter la commande chown pour définir un ID utilisateur et un ID de groupe
sur le nouveau système. Un fichier restauré à partir d’un nouveau système qui ne
possède pas le groupe correspondant adopte l’appartenance de groupe de la
personne qui exécute frecover. Si les noms du propriétaire et du groupe ont des
significations différentes sur des systèmes différents, la récupération peut donner
des résultats imprévisibles.
• Une coupure d'alimentation ne doit pas entraîner la perte d’un fichier. Toutefois, si
un de vos utilisateurs signale la perte d’un fichier après une panne de courant,
recherchez le fichier dans le répertoire /lost+found avant de le restaurer à partir
d’une bande de sauvegarde.
• Pour vérifier le contenu de la bande de récupération, utilisez l’option -I de
frecover qui vous donne l’index des fichiers sur la bande. Souvenez-vous
cependant que la sauvegarde conserve intégralement les autorisations d’accès
définies pour un système de fichiers. Vous ne pourrez pas lire le fichier avec
frecover si ses autorisations l’interdisent.
• Ne récupérez jamais les fichiers critiques comme /etc/passwd ou ceux de /tcb/
files. Restaurez ces fichiers dans un répertoire intermédiaire (n’utilisez pas /tmp)
et accordez à ce répertoire les autorisations drwx------ afin que personne d’autre
que vous ne puisse l’utiliser. Comparez les fichiers récupérés à ceux que vous devez
remplacer. Effectuez les modifications nécessaires.
• Les fonctions d’audit ne sont pas automatiquement activées lorsque vous récupérez
le système. Assurez-vous d'activer l'audit avec la commande audsys.

208 Systèmes protégés


B Autres produits de sécurité
Cette annexe traite de produits de sécurité supplémentaires disponibles pour HP-UX.
Vous pouvez télécharger ces produits gratuitement à partir du HP Software Depot à
l'adresse http://www.hp.com/go/softwaredepot.

B.1 HP-UX HIDS


HP-UX Host Intrusion Detection System (HIDS) permet aux administrateurs de la sécurité
de contrôler, détecter et répondre de manière proactive aux attaques au sein d'un réseau,
grâce aux fonctionnalités suivantes :
• Il assure une protection contre les scénarios d'attaque existants et contre certains
scénarios encore inconnus. Il recherche des motifs qui pourraient suggérer des
violations de sécurité ou des utilisations abusives en examinant des informations
concernant l'activité du système à partir de différentes sources de données. Il peut
s'agir d'activités telles que les suivantes : un pirate qui tente de pénétrer ou de
perturber votre système, des activités "d'intrus" subversives, ou des tentatives de
propagation de virus.
• Il améliore la sécurité au niveau de l'hôte local au sein de votre réseau. Il contrôle
automatiquement chaque système hôte configuré sur le réseau, afin de détecter les
signes éventuelles d'intrusions nuisibles. Sans ce contrôle, vous risquez de constater
une indisponibilité des systèmes clés ou une perte de l'intégrité des données. HP-UX
HIDS génère des alertes pour de nombreux types d'agressions.
• Il fournit une protection continue contre les scénarios d'attaque existants et contre
des scénarios inconnus, contrairement aux systèmes de détection d'intrusion. Il
détecte les intrusions en utilisant des modèles de détection. Ces modèles de détection
constituent les blocs de base utilisés pour identifier les types élémentaires d'activité
système non autorisée ou les attaques de sécurité fréquemment rencontrées sur les
réseau d'entreprise.
• Il fournit une notification en cas de détection d'une activité suspecte qui peut précéder
une attaque. Par contraste, d'autres systèmes de détection d'intrusion reposent
entièrement sur une analyse des fichiers journaux système effectuée par l'opérateur.
En général, l'opérateur analyse les fichiers journaux système à la fin de la journée.
Ce délai dans l'analyse de l'attaque procure suffisamment de temps à l'agresseur
pour endommager gravement le système.

B.2 Correctifs de sécurité


HP-UX Software Assistant (SWA) est un outil de ligne de commande qui consolide et
simplifie la gestion des correctifs et des bulletins de sécurité sur les systèmes HP-UX. L'outil
SWA est une nouveauté dans les versions d'HP-UX à compter de janvier 2007 ; il
remplace Security Patch Check (SPC) et constitue l'utilitaire recommandé par HP pour
garantir la mise à jour et la cohérence avec les bulletins de sécurité publiés par HP relatifs
aux logiciels HP-UX.

B.1 HP-UX HIDS 209


HP édite des correctifs logiciels mis à jour pour répondre aux problèmes de sécurité qui
livrent un accès non autorisé au répertoire racine de votre système. Pour plus
d'informations, voir le Chapitre 1.

B.3 HP-UX IPFilter


HP-UX IPFilter est un pare-feu système qui filtre les paquets IP afin de contrôler le flux de
paquets entrants et sortants pour un ordinateur. Il assure la fonction de barrière de sécurité
en réduisant le nombre de points d'exposition sur un ordinateur.

B.4 HP-UX Secure Shell


HP-UX Secure Shell utilise le hachage afin de garantir l'intégrité des données et propose
des fonctionnalités de tunneling sécurisé, de transfert de port, ainsi qu'un agent SSH
pour la maintenance de clés privées sur le client.
Il vous permet de vous connecter à un autre système de manière sécurisée par le biais
du réseau, d'exécuter des commandes sur un système distant et de déplacer des fichiers
d'un système à un autre. HP-UX Secure Shell fournit un ensemble de commandes qui
remplacent des commandes non sécurisées telles que rlogin, rsh, rcp, ftp et telnet.
Il protège également les réseaux contre les risques suivants :
Emprunt d'identité IP Technique utilisée pour accéder à des ordinateurs de
manière non autorisée. Un intrus envoie un message
à un ordinateur avec une adresse IP indiquant que le
message provient d'un hôte approuvé.
Écoute clandestine Recherche de mots de passe, de numéros de cartes
bancaires ou de secrets professionnels sur un système.
Détournement Technique utilisée pour assumer le contrôle des
communications réseau de telle manière que
l'agresseur puisse inspecter et modifier des données
transmises entre les parties communiquantes.

210 Autres produits de sécurité


Glossaire
3DES Triple Data Encryption Standard. Algorithme de chiffrement de bloc de clé
symétrique qui chiffre les données à trois reprises, en utilisant une clé 56 bits
différente à chaque fois (168 bits utilisés pour la clé). 3DES convient au chiffrement
de données en bloc.
ACL Access Control List (liste de contrôle d'accès). Liste ou base de données qui définit
les ressources auxquelles des utilisateurs ou autres entités peuvent accéder, ainsi
que le type d'accès autorisé.
AES Advanced Encryption Standard. Algorithme de chiffrement de bloc de clé
symétrique HP-UX IPSec prend en charge la norme AES avec une clé de 128 bits.
AES convient au chiffrement de données en bloc.
AH Authentication Header (en-tête d'authentification). L'en-tête d'authentification
assure l'intégrité des données, l'authentification au niveau système, et peut fournir
une protection contre la relecture. Il fait partie de la suite de protocole IPsec.
attaque de Méthode d'attaque de système qui consiste à provoquer des erreurs de processus
débordement ou à faire en sorte qu'un processus exécute du code nuisible. Cette méthode
de tampon consiste en général à provoquer le débordement d'un tampon d'entrée dans la
pile. Cela provoque une violation de mémoire ou autre erreur qui entraîne l'arrêt
du processus ou l'exécution, par le processus, de code nuisible. Voir également
attaque de débordement de tampon de pile.
attaque de Méthode d'ataque d'un système qui consiste à forcer un processus à exécuter du
débordement code nuisible. Pour cela, l'agresseur provoque en général un débordement d'un
de tampon de tampon d'entrée dans la pile afin d'insérer du code nuisible, puis il modifie le
pile pointeur de pile de façon à exécuter ce code nuisible. Voir également attaque
de débordement de tampon.
attaque de Attaque qui consiste à empêcher un système de répondre aux paquets réseau,
refus de service de sorte qu'il ne puisse pas répondre aux demandes de service. Les attaques de
refus de service peuvent être implémentées en inondant un système vulnérable
de demandes factices qui consomment une grande quantité de ressources. Elles
sont souvent utilisées avec l'emprunt d'identité d'hôte afin d'empêcher l'hôte
victime (celui dont l'intrus a emprunter l'adresse IP) de participer à l'échange
entre l'intrus et le système auquel il tente d'accéder.
attaque de Dans une attaque de tierce partie, l'agresseur intercepte des paquets transmis
tierce partie entre deux parties A et B. A et B supposent qu'ils échangent des messages l'une
avec l'autre, alors qu'en fait l'échange s'effectue avec la tierce partie. L'agresseur
assume l'identité de A pour échanger des messages avec B, et il assume l'identité
de B pour échanger des messages avec A. Ce type d'agression est également
appelée "attaque intermédiaire".
attaque Voir attaque de tierce partie.
intermédiaire
audit Enregistrement sélectif des événements en vue d'une analyse et de la détection
des violations de sécurité. Le système d'audit HP-UX procure un mécanisme
permettant d'effectuer un audit des utilisateurs et des processus.
Authentication Voir AH.
Header

211
authentification Processus qui consiste à identifier un sujet (utilisateur, hôte, périphérique ou autre
entité d'un réseau informatique). L'authentification est souvent un élément prérequis
pour accorder l'accès aux ressources d'un système. Il s'agit également du
processus de vérification de l'intégrité des données ou de l'identité de l'expéditeur
des données.
authentification stimulation-réponse
Forme d'authentification dans laquelle l'authentifiant envoie une valeur aléatoire,
la stimulation, à l'utilisateur ou l'entité soumis à l'authentification. L'utilisateur
renvoie une réponse basée sur la valeur de stimulation et une valeur de secret
partagé précédemment établie avec l'authentifiant, telle qu'une valeur de hachage
MD5.
Contrairement à un échange de mot de passe ordinaire, le dialogue
stimulation-réponse varie, de sorte qu'un intrus ne peut pas relire la réponse d'un
utilisateur en vue d'obtenir l'authentification.

autorisation Procesuss qui consite à évaluer les informations de contrôle d'accès et à déterminer
si un sujet (utilisateur, hôte, périphérique ou autre entité d'un réseau informatique)
est autorisé à effectuer une opération sur une ressource ou un objet particulier.
L'autorisation est généralement effectuée après que l'identité du sujet a été
authentifiée.
Dans le contexte du contrôle d'accès basé sur les rôles (RBAC), l'autorisation fait
référence à la mise en correspondance entre une opération et un objet. Voir
RBAC.

CA Certificate Authority (organisme de certification). Tierce partie approuvée qui


authentifie les utilisateurs et émet des certificats. En plus d'établir une approbation
dans la liaison entre la clé publique d'un utilisateur et d'autres informations de
sécurité dans un certificat, l'organisme de certification signe numériquement les
informations de certificat à l'aide de sa clé privée.
certificat Un certificat de sécurité associe (ou lie) une clé publique à une entité (un individu,
un système, un périphérique ou autre entité). Le certificat de sécurité est émis par
une entité, en laquelle les utilisateurs ont toute confiance, appelée Organisme de
certification, qui garantit ou confirme l'identité du détenteur (individu, périphérique
ou autre entité) de la clé privée correspondante. L'organisme de certification
signe le certificat avec sa clé privée, de sorte qu'il puisse être vérifié à l'aide de
sa clé publique. Le format le plus couramment utilisé pour les certificats à clé
publique est la norme ISO (International Organization for Standardization) X.509,
Version 3.
certificat de Voir certificat.
sécurité
chiffrement Processus qui consiste à convertir des données d'un format lisible en un format
illisible, à des fins de confidentialité. Les fonctions de chiffrement prennent
généralement des données et une clé cryptographique (valeur ou séquence de
bits) en tant qu'entrée.
clé Valeur cryptographique sur laquelle deux systèmes se sont entendus pour le
prépartagée chiffrement ou l'authentification. La clé est échangée avant que les communications
de données informatiques aient lieu, en général par le biais d'un échange hors
de portée (tel qu'un échange verbal en face à face). Voir également cryptographie
à clé partagée.

212 Glossaire
clés manuelles Clés cryptographiques configurées manuellement pour IPSec. Il s'agit d'une
alternative à l'utilisation du protocole Internet Key Exchange (IKE) qui permet de
générer des clés cryptographiques et autres informations pour des associations
de sécurité (SA) IPSec.
compartiments Méthode permettent d'isoler les différents composants d'un système. Lorsqu'ils
sont configurés correctement, ils sécurisent de manière efficace le système HP-UX
et les données qui y résident.
confinement Mécanisme ou ensemble de mécanismes qui permettent de restreindre les droits
d'accès des processus.
Dans le contexte du contrôle RBAC, le confinement est une combinaison de
contrôle d'accès obligatoire et de provilèges à granularité élevée. Voir RBAC.

contrôle de Voir RBAC.


l'accès basé
sur les rôles
CRL Certificate Revocation List (Liste de révocation de certificat). Les certificats sont
émis avec une durée de vie spécifique, définie par une date/heure de début et
une date/heure d'expiration. Toutefois, il s'avérer nécessaire de révoquer le
certificat (par exemple lorsqu'une valeur de clé est compromise). Dans ce cas,
l'organisme de certification peut procéder à la révocation du certificat en incluant
le numéro de série du certificat sur une liste CRL mise à jour et publiée
régulièrement par l'organisme de certification et mise à disposition des utilisateurs
de certificats. Voir CA.
cryptographie Processus qui consiste à chiffrer des données normales (en texte clair) de sorte
qu'elles puissent être déchiffrées uniquement par les détenteurs d'informations
spécifiques.
cryptographie Voir cryptographie à clé publique.
à clé
asymétrique
cryptographie Méthode cryptographique selon laquelle deux parties utilisent et partagent la
à clé partagée même clé pour le chiffrement et l'authentification des données. Pour assurer la
confidentialité ou l'authentification des données, seules les deux parties doivent
connaître la valeur de la clé (la clé doit être privée). La cryptographie à clé
partagée étant plus efficace que la cryptographie à clé publique-privée pour le
chiffrement des données, on l'utilise souvent pour le chiffrement de données en
bloc. Toutefois, la distribution ou l'établissement de la clé partagée requiert un
échange de clé hors de portée (par exemple un échange verbal en face à face),
un échange Diffie-Hellman ou autre mécanisme.
On l'appelle également "cryptographie à clé privée" ou "cryptographie à clé
symétrique".

cryptographie Voir cryptographie à clé partagée.


à clé privée
cryptographie Méthode cryptographique utilisant deux clés liées mathématiquement (par exemple
à clé publique k1 et k2) de telle sorte que les données chiffrées avec k1 puissent être déchiffrées
uniquement avec k2. En outre, la plupart des algorithmes garantissent que seul
le détenteur de k1 puisse chiffrer correctement des données pouvant être
déchiffrées avec k2.

213
L'une des clés doit être privée (connue uniquement du propriétaire), mais la
seconde clé peut être rendue publique, ce qui facilite la gestion de la distribution
des clés. Le chiffrement à clé publique est très gourmand en ressources de calcul,
et ne convient donc pas vraiment aux chiffrement de données en bloc. Au lieu
de cela, la cryptographie à clé publique est généralement utilisée pour authentifier
les données.
Également appelée cryptographie à clé asymétrique (les deux clés sont identiques)
ou cryptographie à clé publique-privée.

cryptographie Voir cryptographie à clé privée.


à clé
publique-privée
cryptographie Voir cryptographie à clé partagée.
à clé
symétrique
Data Voir DES.
Encryption
Standard
DES Data Encryption Standard. Utilise une clé 56 bits pour le chiffrement de bloc de
clé symétrique. DES convient au chiffrement de données en bloc.
La norme DES a déjà subi un piratage (des données chiffrées avec la norme DES
ont déjà été déchiffrées par une tierce partie).

Diameter Base Protocole qui fournit des services d'authentification, d'autorisation et de


comptabilité (AAA) basés sur le protocole RADIUS. Le protocole Diameter offre
la même fonctionnalité que RADIUS, mais avec une fiabilité, une sécurité et une
infrastructure améliorées. Voir également RADIUS.
Diffie-Hellman Méthode à clé publique qui permet de générer une clé symétrique ; deux parties
peuvent échanger publiquement des valeurs et générer la même clé symétrique.
On commence avec le nombre premier p et le générateur g, qui peut être connu
publiquement (en général, ces nombres proviennent d'un groupe Diffie-Hellman
bien connu). Chaque partie sélectionne une valeur privée (a et b) et génère une
valeur publique (g**a mod p) et (g**b mod p). Elles échangent les valeurs
publiques. Chaque partie utilise ensuite sa valeur privée et la valeur publique de
l'autre partie pour générer la même clé symétrique, (g**a)**b mod p et
(g**b)**a mod p, qui sont toutes deux évaluées à g**(a*b) mod p pour
les communications ultérieures.
La méthode Diffie-Hellman doit être combinée à une authentification afin de
prévenir les attaques intermédiaires ou d'emprunt d'identité. Diffie-Hellman peut
par exemple être utilisé avec l'authentification par certificat ou à clé prépartagée.

EAP Extensible Authentication Protocol. Protocole qui offre un cadre pour l'utilisation
de plusieurs méthodes et protocoles d'authentification, y compris les mots de
passe, Kerberos, et les protocoles de stimulation-réponse.
échange de clé Échange de clé par le biais d'un canal de communication sécurisé différent des
hors de portée canaux de communication informatiques normaux, tel qu'une rencontre en face
à face ou un appel téléphonique.

214 Glossaire
Encapsulating Voir ESP.
Security
Payload
entité Personne, système, périphérique ou autre entité.
ESP Encapsulating Security Payload. ESP fait partie de la suite de protocole IPsec. Il
fournit un service de confidentialité (chiffrement) et d'antirelecture. Il doit être
utilisé avec l'authentification, soit avec le champ d'authentification ESP optionnel
(ESP authentifié), soit imbriqué dans un message à en-tête d'authentification. ESP
authentifié procure également une authentification de l'origine des données et
une intégrité sans connexion. Lorsqu'il est utilisé en mode tunnel, ESP assure
également la confidentialité minimale du flux de trafic.
événement Action, par exemple création d'un fichier, ouverture d'un fichier ou connexion
au système.
Extensible Voir EAP.
Authentication
Protocol
filtre Mécanisme permettant de filtrer les objets indésirables, ou paramètres qui
spécifient les objets pour lesquels l'accès est autorisé ou refusé. En général, un
filtre est utilisé pour détecter les paquets réseau indésirables (filtre de paquets).
filtre de paquet Filtre utilisé pour sélectionner ou restreindre des paquets réseau. Les filtres de
paquets spécifient les caractéristiques des paquets réseau. Ils spécifient en général
les adresses IP source et de destination, les protocoles de couches supérieures
(tels que TCP ou UDP) et les numéros de ports TCP ou UDP. Ils peuvent également
définir d'autes champs de paquets, tels que les types d'en-têtes IPv6, les types
de messages de couche supérieure (par exemple les types de messages ICMP)
et les états de connexion TCP.
filtre de Type de filtrage de paquets qui utilise des champs de protocole et des informations
paquets basé d'état de couche supérieure, telles que les états des connexions TCP.
sur l'état
HMAC Hashed Message Authentication Code. Voir également MAC.
hôte forteresse Système informatique qui protège un réseau interne contre les intrus. Voir
également pare-feu et système renforcé.
IKE Le protocole IKE (Internet Key Exchange) fait partie de la suite de protocoles IPsec.
Il intervient avant les échanges de protocole IPSec ESP ou AH afin de déterminer
les services de chiffrement et/ou d'authentification qui seront utilisés. Il gère
également la distribution et la mise à jour des clés de chiffrement symétriques
(partagées) utilisées par ESP et AH. Voir également ESP et AH.
Kerberos Protocole d'authentification réseau conçu pour fournir une authentification
renforcée pour les applications clientes et serveurs. Kerberos permet aux utilisateurs
de s'authentifier sans transmettre de mots de passe non chiffrés sur le réseau.
LDAP Le protocole LDAP fournit un accès aux répertoires par le biais du réseau. Il utilise
(Lightweight une structure de répertoires semblable au service d'annuaire OSI X.500, mais il
Directory stocke les données sous forme de chaînes et utilise la pile réseau TCP/IP plutôt
Access que la pile réseau OSI.
Protocol)

215
Liste de Voir CRL.
révocation de
certificat
MAC Un code MAC (Message Authentication Code) est une balise d'authentification,
également appelée somme de contrôle, obtenue par l'application d'un algorithme
d'authentification, avec une clé secrète, à un message. Les codes MAC étant
calculés et vérifiés avec la même clé, ils ne peuvent être vérifiés que par le
destinataire prévu, contrairement aux signatures numériques.
Les codes HMAC (Hash Function-based MAC) utilisent une ou plusieurs clés avec
une fonction de hachage afin de produire une somme de contrôlée qui est ajoutée
au message. La méthode MD5 d'authentification de message en constitue un
exemple.
Les codes MAC peuvent également être dérivés de codes en bloc. Les données
sont chiffrées dans des blocs de messages à l'aide de DES CBC et le bloc final
du texte chiffré est utilisé comme somme de contrôle. Le code MAC DES-CBC est
une norme américaine et internationale très répandue.

MD5 Message Digest-5. Algorithme d'authentification développé par RSA. MD5 génère
un message chiffré de128 bits à l'aide d'une clé de 128 bits. IPSec tronque le
message à 96 bits.
mot de passe Structure qui renforce la sécurité des mots de passe utilisateur. La structure de
fantôme mot de passe fantôme (spwd) contient des mots de passe utilisateur chiffrés et
d'autres informations utilisées avec la structure passwd. Elle est stockée dans un
fichier qui est généralement lisible uniquement par des utilisateurs privilégiés.
NAT Network Address Translation. Méthode permettant à plusieurs systèmes d'un
réseau internet et privé de partager une adresse IP Internet publique. Une
passerelle NAT remplace (traduit) des adresses IP et des ports internes en adresse
IP publique lors du transfert de paquets du réseau interne vers le réseau Internet,
et effectue la traduction inverse pour l'itinéraire de retour.
objet Ressource système ou réseau telle qu'un système, un fichier, une imprimante, un
terminal ou un enregistrement de base de données. Dans le contexte de
l'autorisation, celle-ci est accordée pour l'opération d'un sujet sur un objet.
opération Mode d'accès spécifique à un ou plusieurs objets (par exemple l'écriture dans
un fichier). Dans le contexte de l'autorisation, celle-ci est accordée pour l'opération
d'un sujet sur un objet.
Organisme de Voir CA.
certification
PAM Pluggable Authentication Module. Cadre d'authentification qui permet aux
administrateurs système de configurer des services pour l'authentification, la
gestion des comptes, la gestion des sessions et la gestion des mots de passe pour
des utilitaires HP-UX tels que l'utilitaire de connexion système.
pare-feu Un ou plusieurs périphériques ou systèmes informatiques utilisés comme barrière
pour assurer la protection d'un réseau contre les utilisateurs indésirables ou les
applications nuisibles. Voir également hôte forteresse et système renforcé.
Perfect Avec Perfect Forward Secrecy, l'exposition d'une clé permet d'accéder uniquement
Forward aux données protégées par cette clé.
Secrecy (PFS)

216 Glossaire
Pluggable Voir PAM.
Authentication
Module
prison chroot Méthode qui limite les fichiers et répertoires accessibles à un processus et aux
utilisateurs de ce processus. Le processus démarre dans un répertoire de base
spécifié (la racine) et ne peut accéder à aucun répertoire ou fichier situé au-dessus
du répertoire racine.
privilège Autorisation d'effectuer une action sur un système informatique.
privilège à Autorisation d'effectuer une opération de bas niveau spécifique (par exemple
granularité autorisation d'exécuter un appel système spécifique).
élevée
RADIUS Le protocole RADIUS (Remote Authentication Dial-In User Service) est largement
utilisé et implémenté pour gérer l'accès aux services réseau. Il définit une norme
pour l'échange d'informations entre un périphérique d'accès réseau et un serveur
d'authentification, autorisation et comptabilité (serveur AAA) en vue d'effectuer
des opérations d'authentification, d'autorisation et de comptabilité. Un serveur
AAA RADIUS peut gérer des profils utilisateur pour l'authentification (vérification
de nom d'utilisateur et de mot de passe), des informations de configuration qui
spécifient le type de service à délivrer, et des stratégies à appliquer qui peuvent
restreindre l'accès utilisateur.
Le protocole RADIUS ne procure que le cadre pour l'échange d'authentification
et peut être utilisé avec de nombreuses méthodes d'authentification.

RBAC Role-Based Access Control (contrôle de l'accès basé sur les rôles). Mécanisme
HP-UX qui procure un accès à granularité élevée aux ressources système, aux
commandes et aux appels système. Les utilisateurs sont affectés à des rôles et des
privilèges d'accès sont accordés aux utilisateurs en fonction de leur rôle.
relation Extension d'une relation d'approbation par le biais d'autres entités approuvées.
d'approbation Si A et B approuvent tous deux C, A et B peuvent s'approuver grâce à une
transitive approbation transitive par le biais de C. Dans une structure hiérarchique, A et B
peuvent établir une relation d'approbation transitive s'ils peuvent établir une
chaîne d'approbation vers une racine commune.
rôle Tâche professionnelle, dans le contexte d'une organisation, avec une sémantique
associée concernant l'autorité et la responsabilité accordées aux utilisateurs
disposant du rôle.
RSA Rivest, Shamir et Adelman. Cryptosystème à clé publique-privée qui peut être
utilisé à des fins de confidentialité (chiffrement) et d'authentification (signatures).
Pour le chiffrement, le système A peut envoyer des données chiffrées avec la clé
publique du système B. Seule la clé privée du système B est capable de déchiffrer
les données. Pour l'authentification, le système A envoie des données avec une
signature numérique, un digest ou un hachage chiffré avec la clé privée du
système A. Pour vérifier la signature, le système B utilise la clé publique du système
A afin de déchiffrer la signature et il compare le hachage ou digest déchiffré à
celui qu'il calcule pour le message.
SASL Simple Authentication and Security Layer. Protocole utilisé pour ajouter des services
d'authentification à des applications réseau basées sur connexion. L'API SASL
procure un cadre flexible qui permet aux programmeurs d'utiliser une interface
commune pour accéder à plusieurs services d'authentification.

217
secure shell Voir SSH.
Secure Sockets Voir SSL.
Layer
Serveur AAA Serveur d'authentification, d'autorisation et de comptabilité
(Authentication/Authorization/Accounting). Un serveur AAA fournit des services
d'authentification, d'autorisation et de comptabilité de l'accès utilisateur au réseau
aux points d'entrée du réseau. HP-UX fournit des serveurs AAA basés sur le
protocole RADIUS et le protocole Diameter Base.
SHA1 Secure Hash Algorithm-1. Algorithme d'authentification qui génère un message
digest de 160 bits à l'aide d'une clé de 160 bits.
signature Les signatures numériques sont une variante des algorithmes de hachage de clés
numérique qui utilisent des paires de clés privées/publiques. L'expéditeur envoie sa clé
privée et les données en tant qu'entrée afin de créer une valeur de signature
numérique.
SSH Secure Shell. Ensemble de services réseau qui fournit des remplacements sécurisés
pour la connexion à distance, le transfert de fichiers et l'exécution de commandes
à distance. SSH procure également des fonctionnalités de tunneling sécurisé, un
transfert de port et un agent SSH assurant la maintenance des clés privées sur le
client.
SSL Secure Sockets Layer. Protocole utilisé pour chiffrer des données réseau. Le
protocole SSL se situe au-dessus du protocole TCP dans la pile de données. Il
utilise des clés publiques-privées pour authentifier des entités et échanger une clé
privée (partagée), puis il utilise la clé privée pour chiffrer les données.
Stratégie IPSec Les stratégies IPSec spécifient les règles en fonction desquelles les données sont
transférées de manière sécurisée. Elles contiennent généralement des informations
de filtre de paquets et une action. Le filtre de paquets est utilisé pour sélectionner
une stratégie pour un paquet et l'action est appliquée aux paquets soumis à la
stratégie.
sujet Utilisateur, hôte, périphérique ou autre entité d'un réseau informatique. Dans le
contexte de l'autorisation, il s'agit de l'initiateur d'une opération sur un objet
exigeant une décision d'autorisation.
système Système informatique avec des fonctionnalités de système d'exploitation, des
renforcé utilisateurs et des applications minimum, utilisé comme barrière pour assurer la
protection d'un réseau contre les utilisateurs indésirables ou les applications
nuisibles. Également appelé hôte forteresse.
VPN Virtual Private Network. Réseau privé au sein d'un réseau public tel qu'Internet.
Un VPN est virtuel car il utilise des tunnels pour créer de manière effective un
réseau logique distinct au sein du réseau physique. Un VPN est privé car les
utilisateurs extérieurs ne peuvent ni voir ni modifier les données transmises. Les
VPN qui utilisent l'authentification de l'identité de l'hôte fournissent également
une protection contre l'emprunt d'adresses IP.

218 Glossaire
Index
sécurisation, 79
Symboles accès par modem
recommandations de sécurité pour la gestion, 55
/etc/d_passwd, fichier
accès par superutilisateur
contrôle de l'accès avec, 56
contrôle, 58
/etc/default/security, 21
/etc/dialups, fichier examen, 59
protection, 58
contrôle de l'accès avec, 56
utilisation de Restricted SMH Builder pour l'accès limité, 59
/etc/ftpd/ftpusers, fichier
accès racine
modification de l'accès avec, 80
obtention, 20
/etc/group, fichier, 202
accès root
/etc/inetd.sec, fichier, 83
contrôle, 58
/etc/pam_user.conf, fichier, 32
examen, 59
/etc/pam.conf, fichier, 32
utilisation de Restricted SMH Builder pour l'accès limité, 59
configuration à l'échelle du système avec, 34
accès utilisateur
/etc/passwd, fichier, 199, 201–202
gestion, 25
compte restreint, 27
Access Control Policy Switch, 159
comptes d'utilisateurs d'applications, 27
interfaces, 159
exemple de compte fictif dans, 43
personnalisation, 180
format, 41
ACL
modification, 40
comparaison de JFS et HFS, 116
récupération, 24
définition, 104
/etc/rbac/aud_filter, 197
définition HFS, 104
/etc/rbac/cmd_priv, 172
définition JFS, 108
entrées, 174
entrées JFS par défaut, 113
/etc/security.dsc, fichier, 46
et NFS, 117
/etc/shadow, fichier de mot de passe fantôme, 41
exemple de modification de liste minimale JFS, 111
/sbin/rc2.d/S760auditing, 200
sauvegarde et récupération de système protégé, 207
/tcb/files/auth/, base de données de mots de passe protégés,
ACL HFS
201–202
commandes et appels compatibles avec, 106
/tcb/files/auth/*/*, 199, 203, 206–207
comparaison avec les listes ACL JFS, 116
/tcb/files/ttys, 206
définition, 104
/tmp, 208
et NFS, 117
/var.adm/userdb, fichier, 47, 73
ACL JFS
/var/adm/inetd.sec, fichier
comparaison avec les listes ACL HFS, 116
configuration, 82
définition, 108
et NFS, 117
A exemple de modification de liste minimale, 111
accès modification avec la commande setacl, 114
accès basé sur l’heure, 204, 206 utilisation d'entrées par défaut, 113
accès basé sur les périphériques, 206 administration réseau, 86
contrôle du terminal, 204 contrôle de la sécurité des fichiers, 120
mot de passe, 204 gestion de domaine administratif, 85
accès à distance administration système
recommandations de sécurité pour la gestion, 55 audit des utilisateurs, 183
accès au système authentification des utilisateurs avec PAM, 31
recommandations de sécurité pour l'accès distant, 55 authentification des utilisateurs durant la connexion, 28
accès au terminal, 204 contrôle de la sécurité des fichiers sur un réseau, 120
accès aux fichiers définition des attributs de sécurité, 45, 72
définition des autorisations d’accès, 101 définition des options de sécurité lors de l'installation, 22
accès aux répertoires gestion de domaine administratif, 85
sécurisation, 101 gestion de l'accès à distance, 55
accès FTP anonyme gestion de l'accès utilisateur, 25

219
gestion des mots de passe, 38 utilisée par SSH, 92
gestion des programmes setuid et setgid, 49 authentification utilisateur
installation de HP-UX de manière sécurisée, 19 avec PAM, 31
installation des correctifs de sécurité, 22 durant la connexion, 28
montage et démontage sécurisés d'un système de fichiers, exemple de connexion PAM, 36
119 auto-audit, programme, 195
prévention des attaques de débordement de tampon de pile, autorisations, 156
52 configuration, 170
protection de l'accès root, 58 objet, 156
protection des terminaux et des stations de travail sans opération, 156
personnel, 53 vérification du fichier de contrôle réseau, 120
recommandations de sauvegarde, 23 vérification pour les fichiers de contrôle réseau, 86
recommandations pour l'audit, 188
sécurisation d'inetd, 82 B
sécurisation des bannières de connexion, 57 bannières de connexion
sécurisation des services Internet, 77 sécurisation, 57
sécurisation du protocole FTP, 78 base de données d'affectation de périphériques
sécurisation du système de fichiers HP-UX, 99 système protégé, 206
utilisation de l'authentification d'amorçage pour prévenir tout base de données de contrôle de terminaux
accès non autorisé, 21 système protégé, 206
violations de sécurité, 20 base de données de mots de passe protégés, 206
AES (Advanced Encryption Standard), 211 /tcb/files/auth/, 201–202
AH (Authentication Header) Bastille (voir HP-UX Bastille)
définition, 211 Bastion Host, 61
altération de fichier batch, 200
repérage et correction avec la commande fsck, 103 bit de protection
amorçage définition, 102
prévention des violations de sécurité durant l'amorçage, 20 btmp, fichier
at, commande, 200 suivi des échecs de connexion avec, 29
attribut de sécurité
définition, 45, 72
audisp, commande C
affichage de la sortie de journal d'audit avec, 194 CA (certificate authority)
audit définition, 212
activation, 184 CA (Certificate Authority)
activation après la récupération, 24 définition, 215
commandes, 184 champ de mot de passe chiffré, 202–203
profil de base, 190 chfn, 202
utilisateurs, 183 chiffrement
authadm, 170 définition, 212, 214, 218
exemples, 171 chmod, commande
syntaxe, 170 effets sur les entrées class, 111
authentification, 201 modification des autorisations d’accès aux fichiers avec, 101
avec l'amorçage, 21 chown, 24, 202, 208
avec PAM, 31 chsh, 202
durant la connexion, 28 clés prépartagées
exemple de connexion PAM, 36 définition, 212–213, 215, 217
utilisée par SSH, 91 cmdprivadm, 171
authentification basée sur l'hôte exemples, 172
et authentification par clé publique, 93 syntaxe, 171
utilisée par SSH, 93 commande
authentification d'amorçage login, 202
utilisation, 21 swlist, 200
authentification PAM compartiments, 123
exemple de connexion, 36 activation, 127
authentification par clé publique création de règles, 131
et authentification basée sur l'hôte, 93 dépannage, 139, 150

220 Index
modification de règles, 131 délai d'expiration de mot de passe, 205
planification d'une structure, 125
règles d'interface réseau, 137 E
règles de limitation de privilège, 138 emprunt d'identité
règles de système de fichiers, 132 définition, 80
règles IPC, 133 protection à l'aide de wrappers TCP, 83
règles réseau, 135 ensemble de fichiers
compte d'utilisateur SecurityMon, 200
restreint, 27 ESP (Encapsulating Security Payload)
compte de groupe définition, 215
gestion, 27 /etc/ftpd/ftpusers, 80
compte fictif /etc/inetd.sec, 83
exemple, 43 /etc/passwd, 24
compte invité événement d'audit
contrôle, 26 type, 191
compte root événement d’audit, 189
protection, 58
compte temporaire
désactivation, 26 F
connexion mobile fbackup, commande, 23
sécurisation, 56 sauvegarde protégée, 207
contrôle accès basé sur l’heure, 206 fichier
contrôle d'accès basé sur les rôles /etc/group, 202
configuration de compartiments, 175 /etc/passwd, 199, 201–202
fichiers de configuration, 160 fichier de contrôle réseau
contrôle d'accès basé sur les rôles HP-UX vérification des autorisations sur, 86, 120
architecture, 161 fichier de périphérique de terminal
audit, 196 protection, 54
commandes, 160 fichier de suivi de connexions, 29
enveloppement, 167 fichier journal
composants, 158 audit, 191
dépannage, 180 fichier journal d'audit, 191
fonctionnement, 162 affichage, 194
pages de manuel, 161 rationalisation des données dans, 195
utilisateur par défaut, 169 remplacement du fichier existant, 193
contrôle d’accès basé sur les périphériques, 206 fichier journal d'audit auxiliaire, 192
correctifs de sécurité fichier journal d'audit principal, 192
installation, 22 fichier spécial de périphérique /dev
crontab, 200 considérations de sécurité pour, 117
Cryptosystème RSA, 217 filtre
définition, 215, 217
fonction
D getdvagent, 206
délai d’expiration getprdfent, 206
délai d'expiration de mot de passe, 205 getprpwent, 206
démon Internet getprtcent, 207
Voir inetd, démon, 81 getpwent, 207
démontage sécurisé d’un système de fichiers, 119 getspwent, 207
DES (Data Encryption Standard), 211, 213–214 putprpwnam, 207
Diffie-Hellman, 214 putpwent, 207
groupe, 214 putspwent, 207
domaine frecover, commande, 23
gestion de domaine administratif, 85 récupération protégée, 207
domaine administratif fsck, commande
gestion, 85 correction des altérations de fichiers avec, 103
durée de vie FTP
délai d'expiration de mot de passe, 205 sécurisation, 78
durée minimale

221
sécurisation de l'accès anonyme, 79 utilisation non interactive, 64
ftpd, serveur, 80 HP-UX, installation
conseils de sécurité postinstallation, 23
G considérations de sécurité, 19
définition des options de sécurité lors de l'installation, 22
générateur de nombres aléatoires, 95
installation des correctifs de sécurité, 22
gestion de l'accès aux fichiers, 99
prévention des violations de sécurité durant l'amorçage, 20
gestion des mots de passe, 38
gestionnaire de session CDE
connexion avec, 28 I
gestionnaire de verrou CDE ID d'audit (aid), 200, 202, 204
configuration, 55 ID de groupe (gid), 202
getacl, commande ID utilisateur (uid), 202, 204
affichage de listes ACL avec, 110 IKE (Internet Key Exchange)
getdvagent, fonction, 206 protocole, 215
getfilexsec, commande, 130, 144 indicateur d’audit, 204
getprdfent fonction, 206 inetd, démon
getprocxsec, commande, 130, 144 présentation, 81
getprpwent, fonction, 206 sécurisation, 82
getprtcent, fonction, 207 wrappers TCP et, 83
getpwent, fonction, 207 installation de correctifs
getspwent, fonction, 207 à l'aide de Software Assistant, 22
GSS-API installation de HP-UX
SSH, 92 conseils de sécurité postinstallation, 23
considérations de sécurité, 19
H définition des options de sécurité lors de l'installation, 22
installation des correctifs de sécurité après, 22
HFS, 104
prévention des violations de sécurité durant l'amorçage, 20
High Performance File System
installation des correctifs de sécurité
Voir HFS, 104
utilisation de Software Assistant, 22
historique
mot de passe, 205
HP-UX Bastille, 61 J
annulation des modifications, 67 JFS, 104
conseils et dépannage, 69 Journaled File System
décalage Voir JFS, 104
accès au fichier de décalage de configuration, 69
comparaison d'états, 62 L
utilisation de bastille_drift, 62 last, commande
fichier de configuration exemples d'utilisation, 30
création, 62, 65 liste de contrôle d'accès
duplication, 62 Voir ACL, 104
fichiers Liste de révocation de certificat (CRL), 213
affichage des fichiers journaux, 66 Logical Volume Manager
emplacement et description, 68 Voir LVM, 118
installation, 62 login, commande, 28, 202
liste de tâches à effectuer lost+found, répertoire, 24, 208
exécution, 64 LVM, 118
utilisation, 67
rapports
accès aux fichiers, 68 M
génération, 62 MAC, 216
suppression, 70 mode mono-utilisateur
téléchargement, 62 amorçage, 20
utilisation montage sécurisé d’un système de fichiers, 119
de manière interactive, 63 mot de passe, 204
de manière non interactive, 64 authentification
utilisation interactive, 63 utilisée par SSH, 93

222 Index
base de données, 199, 201, 203 présentation, 31
/tcb/files/auth/, 201–202 PAM, bibliothèque, 32
caractéristiques d’un bon mot de passe, 39 PAM, module de service, 31
champ chiffré, 202–203 panne de courant, 24, 208
chiffrement, 202 perte de fichiers, 24
délai d'expiration, 201, 204–205 parameter
durée minimale, 205 PASSWORD_HISTORY_DEPTH, 205
délai d’expiration partition de disque
délai d’expiration, 205 considérations de sécurité pour, 118
durée de vie, 205 passwd, commande, 202
entrée exemples d’utilisation, 40
manipulation, 206 password
fantôme, 41 délai d'expiration, 202
fichier PASSWORD_HISTORY_DEPTH parameter, 205
base de données de mots de passe protégés, 199, 201, Perfect Forward Secrecy (PFS)
203 définition, 216
champs, 202 prison chroot, 95
génération, 204 privedit, 179
gestion, 38 options, 179
historique, 205 syntaxe, 179
intégrité, 201 privilèges à granularité élevée, 143
réutilisation, 205 configuration, 173
sécurité, 201 privrun, 176
types, 204 -p, 174
mot de passe fantôme, 41 exemples, 178
mot de passe protégé, 204 opération, 162
options, 176
N syntaxe, 176
processus d'amorçage
NFS, 121
obtention, 20
et ACL, 117
processus de connexion
protection des fichiers montés en mode NFS, 122
explication, 28
sécurisation du client, 122
propriété de fichier
sécurisation du serveur, 121
définition, 101
NIS
protection contre les débordements de tampon de pile, 52
sécurisation des mots de passe stockés dans, 44
protégé, 204
niveau d'exécution
prpwd, 203
contrôle de l'accès avec, 53
putprpwnam, fonction, 207
niveau d’exécution
putpwent, fonction, 207
modification, 53
putspwent, fonction, 207
niveau de sécurité
choix durant l'installation, 22
nom d'utilisateur R
création de noms uniques, 28 récupération
nom d'utilisateur unique recommandations de sécurité pour, 23
importance, 28 Remote Procedure Calls
numéro d’autorisation, 201 Voir RPC, 84
renforcement de la sécurité (voir HP-UX Bastille)
O réutilisation
mot de passe, 205
opérations
roleadm, 168
recommandations pour la création, 165
exemples, 168–169
outil de verrouillage (voir HP-UX Bastille)
syntaxe, 168
rôles
P configuration, 168
PAM groupes, 169
authentification des utilisateurs avec, 31 par défaut, 168
configuration à l'échelle du système, 34 recommandations pour la création, 164

223
root authentification par clé publique, 92
inconvénients, 155 authentification par mot de passe, 93
RPC chiffrement, 87
et wrappers TCP, 84 composants logiciels, 88
rsh, commande exécution, 89
limitation de l'accès système avec, 26 exécution du client scp, 90
exécution du client sftp, 90
S exécution du client ssh, 89
exécution en mode privilégié, 90
sauvegarde
recommandations de sécurité pour, 23 fonctionnalités, 87
GSS-API, 92
système protégé, 199, 207
prise en charge des wrappers TCP, 95
Sec00Tools, niveau de sécurité, 22
sécurisation des sessions distantes, 87
Sec20MngDMZ, niveau de sécurité, 22
strong random number generator, 95
Sec30DMZ, niveau de sécurité, 22
système HP-UX, 94
Secure Shell
technologies associées, 95
Voir SSH, 87
transfert de port, 88
sécurisation des sessions distantes, 87
SSH-1, protocole, 93
sécurité des fichiers
SSH-2, protocole, 93
considérations relatives aux fichiers spéciaux /dev, 117
station de travail
contrôle de l'accès aux fichiers, 99
protection des stations sans personnel, 53
contrôle sur un réseau, 120
stratégie IPSec
protection des fichiers liés aux comptes d'utilisateurs, 102
définition, 218
protection des fichiers montés en mode NFS, 122
strong random number generator, 95
protection des partitions de disques et des volumes logiques,
support de sauvegarde
118
sécurité de, 207
sécurité système
swlist, commande, 200
définition des attributs de sécurité, 45, 72
système de fichiers
sécurité utilisateur
recommandations de sécurité pour le montage et le
gestion, 25
démontage, 119
SecurityMon, ensemble de fichiers, 200
système protégé
sélection et génération, 204
bases de données, 206
serveur d'annuaire LDAP
conversion à partir de, 200
sécurisation des mots de passe stockés sur, 45
conversion en, 199
Services d'accès distant, 77
système, niveau d'exécution
présentation, 77
contrôle de l'accès avec, 53
services Internet, 77
système, niveau d’exécution
Services Internet
modification, 53
présentation, 77
sessions distantes
sécurisation avec SSH, 87 T
set group ID, programme téléphone
Voir setgid, programmes, 49 sécurisation, 56
set user ID, programme terminal
Voir setuid, programmes, 49 configuration du verrouillage d'écran pour, 54
setacl, commande protection des terminaux sans personnel, 53
modification de listes ACL avec, 110 TMOUT, variable
modification de listes ACL JFS avec, 114 configuration, 54
setfilexsec, commande, 129, 144
setgid, programmes, 24, 208 U
gestion, 49 umask, commande
setuid, programmes, 24, 208 modification des autorisations de fichiers par défaut avec,
gestion, 49 101
SIS, 84 userdbset, commande
Software Assistant exemples de définition d'attributs spécifiques aux utilisateurs
utilisation, 22 avec, 48
SSH, 44
authentification, 87, 91

224 Index
V
/var/adm/inetd.sec, 82
vérification des autorisations sur les fichiers de contrôle réseau,
86
verrouillage d'écran
configuration, 54
volume logique
considérations de sécurité pour, 118

W
who, commande
obtention d'informations de connexion utilisateur avec, 30
wrappers TCP
et SSH, 95
protection contre l'emprunt d'identité avec, 83
wtmp, fichier
suivi des connexions réussies avec, 29
WU-FTPD, 80

225

Vous aimerez peut-être aussi