▼
Scroll to page 2
of
294
Bull AIX 5L Guide de sécurité AIX REFERENCE 86 F2 22EG 00 Bull AIX 5L Guide de sécurité AIX Logiciel Octobre 2002 BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE REFERENCE 86 F2 22EG 00 L’avis juridique de copyright ci–après place le présent document sous la protection des lois de Copyright des États–Unis d’Amérique et des autres pays qui prohibent, sans s’y limiter, des actions comme la copie, la distribution, la modification et la création de produits dérivés à partir du présent document. Copyright Bull S.A. 1992, 2002 Imprimé en France Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Une feuille destinée à recevoir vos remarques se trouve à la fin de ce document. Pour commander d’autres exemplaires de ce manuel ou d’autres publications techniques Bull, veuillez utiliser le bon de commande également fourni en fin de manuel. Marques déposées Toutes les marques déposées sont la propriété de leurs titulaires respectifs. AIX est une marque déposée d’IBM Corp. et est utilisée sous licence. UNIX est une marque déposée licenciée exclusivement par Open Group. Les informations contenues dans le présent document peuvent être modifiées sans préavis. Bull S.A. ne pourra être tenu pour responsable des erreurs qu’il peut contenir ni des dommages accessoires ou indirects que son utilisation peut causer. Préface Le présent manuel fournit aux administrateurs système des informations relatives à l’utilisateur et au groupe, au fichier, au système et à la sécurité réseau du système d’exploitation AIX. Il contient des informations relatives à l’exécution de certaines tâches telles que la modification des permissions, la configuration des méthodes d’authentification ainsi que celle de l’environnement de la base TCB (Trusted Computing Base) et de CAPP (Controlled Access Protection Profile) avec les fonctionnalités EAL4+ (Evaluation Assurance Level 4+). Ce manuel contient les parties suivantes : Sécurité d’un système autonome, sécurité réseau et Internet, Annexes. • La première partie, Sécurité d’un système autonome, présente un guide de la sécurité AIX pour les systèmes autonomes. Elle comprend notamment l’installation d’un système autonome avec la base TCB, l’installation des fonctionnalités CAPP/EAL4+, le contrôle de la connexion, l’application des règles adéquates de mots de passe, l’implémentation de mécanismes de sécurité au niveau utilisateur, l’activation de l’option d’audit du système, ainsi que le contrôle de l’accès aux fichiers et répertoires. Cette partie traite également des informations de sécurité relatives à X11, Common Desktop Environment (CDE), LDAP (Lightweight Directory Access Protocol), etc. • La deuxième partie, Sécurité réseau et Internet, fournit des informations concernant la sécurité réseau et Internet. Elle aborde les problèmes concernant la configuration de la sécurité TCP/IP, le contrôle des services réseau, l’audit et le contrôle de la sécurité réseau, la configuration de la sécurité IP, la configuration de réseaux privés virtuels (VPN), la sécurité des e–mails, la sécurité NFS, les services de noms et Kerberos. • La troisième partie contient les annexes, qui se composent des listes de contrôle de la sécurité, des informations relatives aux outils de sécurité, des ressources de sécurité en ligne et des informations de référence concernant les services réseau et les ports de communication. A qui s’adresse ce manuel ? Ce manuel s’adresse aux administrateurs système et aux responsables de la sécurité informatique. Conventions typographiques Les conventions typographiques utilisées sont les suivantes : Préface iii Gras Identifie les commandes, les sous–programmes, les mots clés, les fichiers, les structures, les répertoires, et les autres éléments dont le nom est défini par le système. Identifie également les objets de l’interface graphique, tels que les boutons, les libellés et les icônes sélectionnés par l’utilisateur. Italique Identifier les paramètres dont les noms ou les valeurs doivent être indiqués par l’utilisateur. Espacement fixe Identifier des exemples de données, des exemples de textes similaires à ceux affichés à l’écran, des parties de code similaires à celui que vous serez susceptible de rédiger, des messages système, ou des informations que vous devez saisir. Distinction majuscules/minuscules dans AIX La distinction majuscules/minuscules s’applique à toutes les données entrées dans le système d’exploitation AIX. Par exemple, la commande ls afficher la liste des fichiers. Si vous entrez LS, le système affiche un message d’erreur indiquant que la commande entrée est introuvable. De la même manière, FICHEA, FiChea et fichea sont trois noms de fichiers distincts, même s’ils se trouvent dans le même répertoire. Pour éviter toute effet inattendu, vérifiez systématiquement que vous utilisez la casse appropriée. ISO 9000 Des systèmes homologués fabrication de ce produit. ISO 9000 ont été utilisés pour le développement et la Bibliographie Les publications suivantes contiennent des informations connexes : • AIX 5L Version 5.2 System Management Guide: Operating System and Devices • AIX 5L Version 5.2 System Management Concepts: Operating System and Devices • AIX 5L Version 5.2 System Management Guide: Communications and Networks • AIX 5L Version 5.2 Operating System Installation: Getting Started • AIX 5L Version 5.2 Référence et guide d’installation • AIX 5L Version 5.2 Commands Reference • AIX 5L Version 5.2 Files Reference • AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs • AIX 5L Version 5.2 System User’s Guide: Operating System and Devices • AIX 5L Version 5.2 System User’s Guide: Communications and Networks • AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide • AIX 5L Version 5.2 Guide to Printers and Printing iv Guide de sécurité Table des matières Préface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A qui s’adresse ce manuel ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conventions typographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distinction majuscules/minuscules dans AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ISO 9000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii iii iii iv iv iv Première partie. Sécurité d’un système autonome Chapitre 1. Installation et configuration d’un système sécurisé . . . . . . . . . . . . La base TCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation d’un système avec TCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification de la base TCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Structure du fichier sysck.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la commande tcbck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification des fichiers sécurisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification de l’arborescence du système de fichiers . . . . . . . . . . . . . . . . . . . . Ajout d’un programme sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression d’un programme sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration des options supplémentaires de sécurité . . . . . . . . . . . . . . . . . . . . . Restriction d’accès au terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de la clé SAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration de la clé SAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du système conforme CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . . . . . Installation d’un système CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regroupement de logiciels CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environnement physique d’un système CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . Environnement organisationnel d’un système CAPP/EAL4+ . . . . . . . . . . . . . . . . . Configuration d’un système CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du port et de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Limites de ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sous–système d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise en route d’un système distribué CAPP/EAL4+ . . . . . . . . . . . . . . . . . . . . . . Utilisation de la fonction DACinet pour le contrôle d’accès au réseau en fonction des utilisateurs et des ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation de logiciels supplémentaires sur un système CAPP/EAL4+ . . . . . Fenêtre de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration de la fenêtre de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification du message d’accueil de l’écran de connexion . . . . . . . . . . . . . . . . . Modification de l’écran de connexion CDE (Common Desktop Environment) . . Renforcement des paramètres de connexion par défaut du système . . . . . . . . . Protection de terminaux sans surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application de la déconnexion automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion des problèmes sous X11 et CDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression du fichier /etc/rc.dt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Préface 1-1 1-1 1-1 1-2 1-2 1-3 1-4 1-4 1-4 1-5 1-5 1-5 1-5 1-6 1-7 1-7 1-8 1-8 1-9 1-10 1-11 1-11 1-11 1-13 1-13 1-13 1-14 1-14 1-17 1-17 1-17 1-18 1-19 1-20 1-20 1-20 1-20 1-21 1-21 v vi Précautions à prendre pour éviter le contrôle non autorisé des serveurs X distants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activation et désactivation du contrôle d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . Désactivation des droits utilisateurs sur la commande xhost . . . . . . . . . . . . . . . . . 1-21 1-21 1-21 Chapitre 2. Utilisateurs, rôles et mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . Le compte Root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Désactivation de la connexion root directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rôles administratifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation des rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration et maintenance des rôles à l’aide de SMIT . . . . . . . . . . . . . . . . . . . Comprendre les autorisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes d’autorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comptes utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attributs utilisateur recommandés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle des comptes utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ID de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sécurisation à l’aide de listes de contrôle des accès (ACL) . . . . . . . . . . . . . . . . . . Variable d’environnement PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration d’un accès FTP anonyme avec un compte utilisateur sécurisé . . . . . Comptes utilisateurs spécifiques au système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression de comptes utilisateur par défaut inutiles . . . . . . . . . . . . . . . . . . . . . . Listes de contrôle des accès (ACL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des programmes setuid et setgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits d’accès administratifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits d’accès de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits d’accès étendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de liste de contrôle des accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autorisations d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qu’est–ce qu’un bon mot de passe ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le fichier /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le fichier /etc/passwd File et les environnements réseau . . . . . . . . . . . . . . . . . . . Dissimulation des noms d’utilisateur et mots de passe . . . . . . . . . . . . . . . . . . . . . . Paramétrage des options de mot de passe recommandées . . . . . . . . . . . . . . . . . Extension des restrictions de mot de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Authentification de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ID de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du système de quotas de disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du système de quotas de disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reprise après un dépassement de quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du système de quotas de disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 2-1 2-1 2-2 2-2 2-4 2-4 2-7 2-8 2-8 2-9 2-10 2-10 2-10 2-11 2-15 2-16 2-17 2-18 2-19 2-19 2-19 2-20 2-20 2-21 2-23 2-23 2-24 2-25 2-25 2-25 2-29 2-30 2-30 2-30 2-31 2-31 2-32 Chapitre 3. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sous–système d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Détection des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collecte d’informations sur les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement des informations sur le suivi d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sélection des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du sous–système d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collecte d’informations sur le sous–système d’audit . . . . . . . . . . . . . . . . . . . . . . . . Journalisation des audits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format des enregistrements d’audits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration de la journalisation d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3-1 3-1 3-2 3-2 3-3 3-4 3-4 3-4 3-5 3-5 Guide de sécurité Sélection des événements audités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modes de suivi d’audit du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement des enregistrements d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation du sous–système d’audit pour un rapide contrôle de sécurité . . . . . . Configuration de l’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sélection des événements audités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sélection des classes d’audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sélection du mode de collecte des données d’audit . . . . . . . . . . . . . . . . . . . . . . . . Exemple de contrôle en temps réel des modifications de fichiers . . . . . . . . . . . . . Exemple de scénario de journal d’audit générique . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 3-5 3-8 3-8 3-9 3-11 3-11 3-12 3-12 3-13 Chapitre 4. Utilisation du protocole LDAP du sous–système de sécurité . . . . Configuration d’un serveur d’informations de sécurité LDAP . . . . . . . . . . . . . . . . . . . Configuration d’un client LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion des utilisateurs LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle d’accès par LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audit du serveur d’informations de sécurité LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La commande mksecldap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le démon secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les commandes de gestion LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande start–secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande stop–secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande restart–secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande ls–secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande flush–secldapclntd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande sectoldif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le format de fichier ldap.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format de fichier du mappage des attributs LDAP . . . . . . . . . . . . . . . . . . . . . . . . . Informations connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1 4-1 4-3 4-4 4-5 4-6 4-6 4-6 4-9 4-10 4-11 4-11 4-11 4-12 4-12 4-12 4-13 4-13 4-14 4-16 4-16 Chapitre 5. PKCS #11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coprocesseur de chiffrement 4758 Model 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vérification du coprocesseur de chiffrement 4758 Model 2 pour une utilisation avec le sous-système PKCS #11 . . . . . . . . . . . . . . . . . . . . . . . Configuration du sous-système PKCS #11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialisation du jeton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du PIN du responsable de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . Initialisation du PIN utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reconfiguration du PIN utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du vecteur de contrôle des fonctions PKCS #11 . . . . . . . . . . . . . . . Utilisation de PKCS #11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 5-1 5-1 5-2 5-2 5-2 5-3 5-3 5-3 5-4 Chapitre 6. Service d’authentification de certificats X.509 et infrastructure à clef publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Présentation du service d’authentification de certificats . . . . . . . . . . . . . . . . . . . . . . . Certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Autorités de certification et certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format de stockage des certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Magasins de clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mise en œuvre du service d’authentification de certificats . . . . . . . . . . . . . . . . . . . . . Création de comptes utilisateur PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flux de données d’authentification utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 6-1 6-2 6-2 6-3 6-3 6-3 6-4 6-4 Préface vii Implémentation du serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implémentation du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctionnalités générales du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architecture générale du client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planification du service d’authentification de certificats . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur les certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur les magasins de clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur le registre des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur la configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le fichier acct.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveaux comptes actifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L’utilisateur root et les mots de passe des magasins de clefs . . . . . . . . . . . . . Autres remarques sur le service d’authentification de certificats . . . . . . . . . . . . . . Modules du service d’authentification de certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation et configuration du service d’authentification de certificats . . . . . . . . . . . Installation et configuration du serveur LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation du serveur LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du serveur LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du serveur LDAP pour PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation et configuration du serveur pour le service d’authentification de certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration LDAP du serveur pour le service d’authentification de certificats . Création d’une autorité de certification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création de la clef de signature sécurisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration du client du service d’authentification de certificats . . . . . . . . . . . . Installation de la clef de signature sécurisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edition du fichier acct.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration de l’autorité de certification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le fichier methods.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples des configuration de l’administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un nouveau compte utilisateur PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . Conversion d’un compte utilisateur non–PKI en un compte utilisateur PKI . . Création et ajout d’un certificat d’authentification . . . . . . . . . . . . . . . . . . . . . . . . Modification du mot de passe par défaut du nouveau magasin de clefs . . . . . Gestion d’une clef de signature sécurisée compromise . . . . . . . . . . . . . . . . . . . Gestion d’une clef privée d’utilisateur compromise . . . . . . . . . . . . . . . . . . . . . . . Gestion d’un magasin de clefs ou d’un mot de passe de magasin de clefs compromis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déplacement du magasin de clefs d’un utilisateur ou modification du nom de magasin de clefs d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . Déplacement du magasin de clefs d’un utilisateur ou modification du nom de magasin de clefs d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7. Module d’extension d’authentification (PAM) . . . . . . . . . . . . . . . . . . Bibliothèque PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modules PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier de configuration PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout d’un module PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification du fichier /etc/pam.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activation du débogage PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intégration de PAM avec AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Module PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Module pam_aix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Guide de sécurité 6-4 6-5 6-6 6-6 6-14 6-14 6-14 6-15 6-15 6-15 6-15 6-16 6-16 6-16 6-17 6-18 6-18 6-18 6-19 6-20 6-21 6-22 6-23 6-24 6-24 6-24 6-24 6-25 6-29 6-29 6-29 6-29 6-30 6-30 6-30 6-30 6-31 6-31 6-31 7-1 7-2 7-3 7-4 7-6 7-6 7-6 7-7 7-7 7-8 Chapitre 8. Outils OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation d’OpenSSH avec PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1 8-3 Chapitre 9. Sécurité TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Système de protection du système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle d’accès au réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audit de réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evénements au niveau du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evénements au niveau application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chemin d’accès sécurisé, shell sécurisé et clé SAK . . . . . . . . . . . . . . . . . . . . . . . . Sécurité des commandes TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exécution de commandes à distance (/etc/hosts.equiv) . . . . . . . . . . . . . . . . . . . . . Restrictions d’accès FTP (/etc/ftpusers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Processus sécurisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Base NTCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sécurité des données et protection des informations . . . . . . . . . . . . . . . . . . . . . . . . . Contrôle d’accès aux ports TCP en fonction de l’utilisateur, avec le contrôle d’accès discrétionnaire aux ports Internet . . . . . . . . . . . . . . . . . . . . Contrôle des accès aux services TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemples d’utilisation de DACinet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ports privilégiés pour l’exécution des services locaux . . . . . . . . . . . . . . . . . . . . . . 9-1 9-2 9-2 9-2 9-2 9-2 9-3 9-3 9-6 9-7 9-7 9-8 9-10 9-10 9-11 9-11 9-12 Deuxième partie. Sécurité réseau et Internetz Chapitre 10. Services réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Correspondance des Services réseau avec les ports de communication ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identification des sockets TCP et UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 11. Sécurité IP (Internet Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sécurité IP – Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sécurité IP et système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions IKE (Internet Key Exchange) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liens de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion des clefs et tunnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prise en charge du tunnel IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prise en charge des tunnels manuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de filtrage natif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prise en charge des certificats numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Virtual Private Networks (VPN) et sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation de la sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chargement de la fonction de sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planification de la sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accélération matérielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tunnels / Filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tunnels et liens de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur le tunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres et politique de la gestion des clefs . . . . . . . . . . . . . . . . . . . . . . . . . . Paramètres et politique de la gestion des données . . . . . . . . . . . . . . . . . . . . . . Choix d’un type de tunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation d’IKE avec DHCP ou Dynamically Assigned Addresses (affectation dynamique des adresses) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de XML pour définir un tunnel générique de gestion des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Préface 10-1 10-1 10-4 11-1 11-1 11-1 11-2 11-3 11-3 11-4 11-4 11-5 11-5 11-6 11-6 11-6 11-7 11-7 11-8 11-9 11-11 11-11 11-13 11-14 11-15 11-15 11-15 ix Configuration d’un tunnel d’échange de clefs par Internet (IKE) . . . . . . . . . . . . . . . . Utilisation de Web-based System Manager pour la configuration de tunnels IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de l’assistant de configuration de base . . . . . . . . . . . . . . . . . . . . . . . . Configuration avancée des tunnels IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de l’interface SMIT pour la configuration d’un tunnel IKE . . . . . . . . . . Interface de la ligne de commande pour la configuration d’un tunnel IKE . . . . . . Ressemblances entre IKE et Linux sous AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scénarios de configuration d’un tunnel IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des certificats numériques et du Key Manager . . . . . . . . . . . . . . . . . . . . . . Format des certificats numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur la sécurité des certificats numériques . . . . . . . . . . . . . . . . . . . . . . Autorités d’accréditation et hiérarchies sécurisées . . . . . . . . . . . . . . . . . . . . . . . Listes de révocation des certificats (CRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation des certificats numériques dans les applications Internet . . . . . . . . . . Certificats numériques et demandes de certificats . . . . . . . . . . . . . . . . . . . . . . . . . Utilitaire IBM Key Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un base de données de clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout de certificat numérique root d’une autorité d’accréditation . . . . . . . . . . . Etablissement de paramètres sécurisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suppression de certificat numérique root d’autorité d’accréditation . . . . . . . . . Demande de certificat numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout (Réception) d’un nouveau certificat numérique . . . . . . . . . . . . . . . . . . . . . Suppression de certificat numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification de mot de passe de la base de données . . . . . . . . . . . . . . . . . . . . Création de tunnels IKE avec certificats numériques . . . . . . . . . . . . . . . . . . . . . Configuration des tunnels manuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration des tunnels et des filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un tunnel manuel sur le premier hôte . . . . . . . . . . . . . . . . . . . . . . . . . . . Création d’un tunnel manuel sur le second hôte . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration des filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles de filtre statiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles de filtre générées automatiquement et définies par l’utilisateur . . . . . . . . Règles de filtre prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Masques de sous–réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration Hôte–Pare–feu–Hôte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de journalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Libellés des entrées de zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identification des incidents liés à la sécurité IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Débogage des erreurs au niveau du tunnel manuel . . . . . . . . . . . . . . . . . . . . . . . . Débogage des erreurs au niveau des tunnels IKE . . . . . . . . . . . . . . . . . . . . . . . . . Organigramme des tunnels IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Journalisation IKE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonction de journalisation Parse Payload (analyse de blocs) . . . . . . . . . . . . . . Incidents liés au certificat numérique et au mode de signature . . . . . . . . . . . . Fonctions de suivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ipsecstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations de référence sur la fonction de sécurité IP . . . . . . . . . . . . . . . . . . . . . . . Liste des commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liste des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Guide de sécurité 11-17 11-17 11-17 11-18 11-20 11-20 11-23 11-23 11-24 11-25 11-26 11-27 11-27 11-27 11-28 11-28 11-29 11-30 11-31 11-31 11-32 11-32 11-33 11-34 11-34 11-36 11-36 11-37 11-38 11-39 11-39 11-43 11-44 11-44 11-44 11-45 11-49 11-50 11-50 11-53 11-53 11-54 11-54 11-58 11-61 11-61 11-62 11-62 11-62 Chapitre 12. Sécurité NIS (Network Information Service) et NIS+ . . . . . . . . . . . Méthodes de protection du système d’exploitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . Système de protection NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mandants NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Niveaux de sécurité NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Authentification et données d’identification NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Données d’identification des utilisateurs et des postes . . . . . . . . . . . . . . . . . . . . . . Données d’identification locales et DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Données d’identification DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Données d’identification locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Types d’utilisateurs et types de données d’identification . . . . . . . . . . . . . . . . . . Autorisation et accès NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes d’autorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Propriétaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Monde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classe Personne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Classes d’autorisation et hiérarchie des objets NIS+ . . . . . . . . . . . . . . . . . . . . . Droits d’accès NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Droits d’administrateur et sécurité NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations de référence sur la sécurité NIS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1 12-1 12-2 12-4 12-4 12-5 12-5 12-5 12-5 12-6 12-6 12-7 12-7 12-8 12-8 12-9 12-9 12-9 12-9 12-10 12-11 Chapitre 13. Sécurité NFS (Network File System) . . . . . . . . . . . . . . . . . . . . . . . . . . Confidentialité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chiffrement DES (Data Encryption Standard) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chiffrement par clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Authentification NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chiffrement par clé publique pour NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . Règles d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accord sur l’heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accord sur la clé DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Processus d’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nom des entités réseau pour l’authentification DES . . . . . . . . . . . . . . . . . . . . . . . . . . Fichier /etc/publickey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques sur l’amorçage des systèmes à clé publique . . . . . . . . . . . . . . . . . . . . . . Remarques sur les performances de NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . Administration de NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration de NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exportation d’un système de fichiers via NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . Montage d’un système de fichiers NFS sécurisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1 13-1 13-2 13-2 13-3 13-3 13-3 13-4 13-4 13-4 13-5 13-6 13-6 13-6 13-7 13-7 13-8 13-9 13-10 Chapitre 14. EIM (Enterprise Identity Mapping) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion de plusieurs registres d’utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthodes actuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation de l’EIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-1 14-1 14-1 14-2 Préface xi Troisième partie. Annexes xii Annexe A. Vérification de la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 Annexe B. Sources d’informations sur la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . Sites Web concernant la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Listes de diffusion de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Références de sécurité en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1 B-1 B-1 B-1 Annexe C. Résumé des principaux services système AIX . . . . . . . . . . . . . . . . . . C-1 Annexe D. Résumé des options de service réseau . . . . . . . . . . . . . . . . . . . . . . . . D-1 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X-1 Guide de sécurité Première partie. Sécurité d’un système autonome La présente partie fournit des informations relatives à la sécurité d’un système autonome, quelle que soit la connectivité réseau. Les chapitres qui suivent décrivent la procédure d’installation de votre système lorsque les options de sécurité sont activées, ainsi que les moyens d’empêcher des utilisateurs non autorisés d’accéder au système en configurant la sécurité d’AIX. Sécurité d’un système autonome PART 1 - 1 PART 1 - 2 Guide de sécurité Chapitre 1. Installation et configuration d’un système sécurisé Ce chapitre fournit des informations sur l’installation et la configuration d’un système sécurisé. Il contient les sections suivantes : • La Base informatique sécurisée (TCB), page 1-1 • CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+), page 1-7 • Fenêtre de connexion, page 1-17 • Gestion des problèmes sous X11 et CDE, page 1-21 La base TCB L’administrateur système doit déterminer le niveau de sécurisation qui peut être accordé à un programme donné. Cette détermination prend en compte la valeur des ressources d’information du système en décidant du niveau de confiance nécessaire à l’installation d’un programme avec privilèges. La base informatique sécurisée (TCB) est responsable de l’application des règles de sécurité du système. L’installation et l’utilisation de la base TCB permettent de définir l’accès utilisateur via un chemin d’accès sécurisé, assurant ainsi la communication sécurisée entre les utilisateurs et la base TCB. Les fonctions de la base TCB ne peuvent être activées qu’à l’installation du système d’exploitation. Pour installer la base TCB sur un poste déjà installé, il faudra effectuer une installation avec préservation. L’activation de la TCB donne accès au shell sécurisé, aux processus sécurisés et à la clé SAK (Secure Attention Key). Cette section traite des points suivants : • Installation d’un système avec TCB, page 1-1 • Vérification de la base TCB, page 1-2 • Structure du fichier sysck.cfg, page 1-2 • Utilisation de la commande tcbck, page 1-3 • Configuration des options de sécurité supplémentaires, page 1-5 Installation d’un système avec TCB La base TCB est responsable de l’application des règles de sécurité du système. Tous les matériels de l’ordinateur sont inclus dans la TCB, mais l’administrateur système doit en premier lieu s’inquiéter des composants logiciels du TCB. Si vous installez l’option TCB sur un système, vous activez le chemin et le shell sécurisés ainsi que le contrôle d’intégrité du système (commande tcbck). Ces fonctions ne peuvent être activées que lors de l’installation du BOS (Base Operating System). Si l’option TCB n’est pas sélectionnée lors de l’installation initiale, la commande tcbck est désactivée. Pour activer la commande, il faudra installer à nouveau le système, avec l’option TCB sélectionnée. Pour définir l’option TCB lors de l’installation a BOS installation, sélectionnez Options supplémentaires à partir de l’écran Installation et paramètres. Dans cet écran, la valeur Installation et configuration d’un système sécurisé 1-1 par défaut de Installation TCB est no. Pour activer la base TCB, tapez 2 puis appuyez sur Entrée. Toutes les unités faisant partie de la base TCB, elle contrôle chaque fichier du répertoire /dev. De plus, la base TCB contrôle automatiquement plus de 600 fichiers supplémentaires et stocke les informations critiques les concernant dans le fichier /etc/security/sysck.cfg. Si vous installez la base TCB, sauvegardez ce fichier dès que l’installation est terminée, sur un support amovible comme une bande, un CD ou un disque, puis conservez le support en lieu sûr. Vérification de la base TCB pour lancer l’audit de la sécurité de la base TCB, utilisez la commande tcbck. La sécurité du système d’exploitation est compromise dès lors que les fichiers TCB ne sont pas correctement protégés ou que les fichiers de configuration n’ont pas de valeurs sûres. La commande tcbck lance un audit du fichier /etc/security/sysck.cfg en le lisant. Ce fichier comporte une description de tous les fichiers TCB et de configuration, et de toutes les commandes sécurisées. Le fichier /etc/security/sysck.cfg est en ligne et peut donc être modifié par un pirate informatique. Assurez–vous de créer une copie hors–ligne en lecture seule, après chaque mise à jour de la base TCB. Copiez également ce fichier depuis le support d’archives sur un disque avant d’effectuer tout contrôle. L’installation de la base TCB et l’utilisation de la commande tcbck ne garantit pas que le système fonctionne dans un mode conforme CAPP (Controlled Access Protection Profile) ou EAL4+ (Evaluation Assurance Level 4+). Pour obtenir des informations sur les options CAPP/EAL4+, reportez–vous à la section CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+), page 1-7. Structure du fichier sysck.cfg La commande tcbck lit le fichier /etc/security/sysck.cfg pour définir quels fichiers sont à vérifier. Tout programme sécurisé du système est décrit par une strophe du fichier /etc/security/sysck.cfg. Voici les différents attributs de chaque strophe : 1-2 class Nom d’un groupe de fichiers. Cet attribut permet de vérifier plusieurs fichiers du même nom de classe en indiquant un seul argument à la commande tcbck. Vous pouvez indiquer plusieurs classes (séparées par une virgule). owner ID utilisateur ou nom du propriétaire du fichier. Si la valeur ne correspond pas au propriétaire du fichier, la commande tcbck définit l’ID propriétaire sur cette valeur. group ID de groupe ou nom de groupe du fichier. Si la valeur ne correspond pas au propriétaire du fichier, la commande tcbck définit l’ID propriétaire sur cette valeur. mode Liste de valeurs (séparées par des virgules). Les valeurs acceptées sont SUID, SGID, SVTX et TCB. La dernière valeur doit représenter les autorisations du fichier, sous forme octale ou comme chaîne de 9 caractères. Par exemple 755 ou rwxr–xr–x. Si la valeur ne correspond pas au mode réel du fichier, tcbck applique la valeur correcte. Guide de sécurité links Liste de chemins d’accès (séparés par des virgules) associés à ce fichier. Le cas échéant, tcbck crée le lien de tout chemin d’accès de la liste qui ne serait pas associé au fichier. Sans le paramètre tree, la commande tcbck imprime un message indiquant la présence de liens supplémentaires (mais sans définir leurs noms). Avec le paramètre tree, la commande tcbck imprime également tout nom de chemin d’accès supplémentaire associé au fichier. symlinks Liste liens symboliques vers ce fichier, séparés par des virgules. Le cas échéant, tcbck crée le lien symbolique de tout chemin d’accès de la liste qui ne serait pas un lien symbolique. Avec le paramètre tree, la commande tcbck imprime également tout nom de chemin d’accès supplémentaire représentant un lien symbolique avec le fichier. program Liste de valeurs (séparées par des virgules). La première valeur est le chemin d’accès d’un programme de vérification. Les valeurs supplémentaires sont passées en arguments au programme lorsqu’il est exécuté. Remarque : Le premier argument est soit –y, –n, –p ou –t, selon l’indicateur utilisé avec la commande tcbck. acl Chaîne de texte représentant la liste de contrôle d’accès associée au fichier. Son format doit être le même que celui de la sortie de la commande aclget. Si la chaîne ne correspond pas à l’ACL du fichier, sysck applique cette valeur avec la commande aclput. Remarque : Les attributs SUID, SGID, et SVTX doivent correspondre à ceux spécifiés dans le mode (le cas échéant). source Nom du fichier source à utiliser pour générer une copie avant la vérification. Si la valeur n’est pas renseignée, et s’il s’agit d’un fichier ordinaire, un répertoire ou un tube nommé, une nouvelle version vide de ce fichier est créée (sauf s’il elle existe déjà). Pour les fichiers d’unités, un nouveau fichier spécial du même type d’unité est créé. Si un ou plusieurs attributs manquent dans la strophe du fichier /etc/security/sysck.cfg, la vérification correspondante n’est pas effectuée. Utilisation de la commande tcbck La commande tcbck permet généralement de : • Vérifier l’installation des fichiers relatifs à la sécurité • Vérifier que l’arborescence du système de fichiers ne contient pas de fichiers violant la sécurité • Mettre à jour, ajouter ou supprimer des fichiers sécurisés La commande tcbck présente trois modes d’utilisation : • Normal – non interactif à l’initialisation du système – avec la commande cron • Interactif – en sélectionnant les fichiers et les classes de fichiers voulus • Paranoïde – en enregistrant le fichier sysck.cfg hors ligne et en le restaurant périodiquement pour vérifier la machine Installation et configuration d’un système sécurisé 1-3 La base TCB est dépourvue de protection cryptographique, mais elle utilise la commande UNIX sum pour vérifier ses totaux de contrôle. La base de données TCB peut être définie manuellement pour utiliser une autre commande de somme de contrôle, par exemple md5sum (comprise dans le module RPM textutils sur le CD AIX Toolbox for Linux Applications). Vérification des fichiers sécurisés Pour vérifier tous les fichiers de la base de données tcbck, rendre compte et corriger toutes les erreurs, entrez : tcbck –y ALL Cette action lance la commande tcbck pour vérifier l’installation de chaque fichier de la base de données tcbck décrit dans le fichier /etc/security/sysck.cfg. Pour lancer cette commande automatiquement pendant l’initialisation du système et générer un journal d’erreurs éventuelles, ajoutez la chaîne ci–dessus au fichier /etc/rc. Vérification de l’arborescence du système de fichiers Si vous avez des doutes sur l’intégrité du système de fichiers, vous pouvez lancer à tout moment la commande tcbck pour vérifier l’arborescence. Procédez comme suit : tcbck –t tree Avec le paramètre tree, cette commande vérifie l’installation de tous les fichiers du système (ce qui peut prendre un certain temps). Dans tout fichier trouvé risquant de compromettre la sécurité du système, vous pouvez modifier les attributs suspects. En outre, les vérifications suivantes sont effectuées sur tous les autres fichiers du système de fichiers : • S’il s’agit d’un fichier avec un propriétaire root et avec le bit SetUID défini, ce dernier est effacé. • S’il s’agit d’un fichier exécutable d’un groupe administratif, avec le bit SetGID défini, ce dernier est effacé. • Si l’attribut tcb est défini pour le fichier, il est effacé. • Si le fichier correspond à une unité (fichier spécial caractères ou blocs), il est supprimé. • Si le fichier est un lien supplémentaire avec un chemin d’accès décrit dans /etc/security/sysck.cfg, ce lien est supprimé. • Si le fichier est un lien symbolique avec un chemin d’accès décrit dans /etc/security/sysck.cfg, ce lien est supprimé. Remarque : Toutes les entrées d’unités doivent avoir été ajoutées à /etc/security/sysck.cfg avant l’exécution de la commande tcbck ; sinon, le système devient inutilisable. Pour ajouter des unités sécurisées au fichier /etc/security/sysck.cfg, utilisez l’indicateur –l. Attention : Ne lancez pas l’option tcbck –y tree. Cette option supprime et désactive les unités qui ne sont pas correctement répertoriées dans la base TCB, et peut donc désactiver votre système. Ajout d’un programme sécurisé Pour ajouter un programme spécifique au fichier /etc/security/sysck.cfg, entrez : tcbck –a CheminAccès [attribut=valeur] Seuls les attributs dont les valeurs ne sont pas déduites de l’état courant du fichier sont à spécifier dans la ligne de commande. Tous les noms d’attribut sont répertoriés dans le fichier /etc/security/sysck.cfg. Par exemple, la commande suivante enregistre un nouveau programme root SetUID appelé /usr/bin/setgroups, possédant un lien nommé /usr/bin/getgroups : tcbck –a /usr/bin/setgroups links=/usr/bin/getgroups 1-4 Guide de sécurité Pour ajouter à un audit de sécurité du fichier /usr/bin/abc les utilisateurs administrateurs jfh et jsl, ainsi que le groupe administratif développeurs, entrez : tcbck –a /usr/bin/abc setuids=jfh,jsl setgids=developers Après l’installation d’un programme, vous ne savez pas nécessairement quels nouveaux fichiers sont enregistrés dans le fichier /etc/security/sysck.cfg. La commande suivante permet de les repérer et de les ajouter : tcbck –t tree Elle affiche le nom de tout fichier à enregistrer dans /etc/security/sysck.cfg. Suppression d’un programme sécurisé La suppression d’un fichier nécessite aussi celle de sa description dans le fichier /etc/security/sysck.cfg (si elle existe). Par exemple, si vous supprimez le programme /etc/cvid, la commande suivante entraînera l’affichage d’un message d’erreur : tcbck –y ALL Le message est : 3001–020 Fichier /etc/cvid introuvable. La description de ce programme n’a pas été supprimée de /etc/security/sysck.cfg. Pour la supprimer, entrez la commande suivante : tcbck –d /etc/cvid Configuration des options supplémentaires de sécurité Vous trouverez dans les sections suivantes des informations sur la configuration des options supplémentaires pour la base TCB. Restriction d’accès au terminal Les commandes getty et shell changent le propriétaire du terminal, pour empêcher l’accès au terminal de programmes non sécurisés. Le système d’exploitation permet de configurer l’accès exclusif au terminal. Utilisation de la clé SAK Un chemin d’accès sécurisé des communications est généré par la séquence de touches SAK (Ctrl–X puis Ctrl–R). Pour sa mise en œuvre, tenez compte des éléments suivants : • Lors de la connexion au système Après activation de la clé SAK : – si un nouvel écran de connexion s’affiche, vous disposez d’un chemin d’accès sécurisé. – si l’invite du shell sécurisé s’affiche, l’écran initial de connexion était un programme non autorisé dont le but était peut–être de voler votre mot de passe. Déterminez qui utilise actuellement ce terminal à l’aide de la commande who puis déconnectez–vous. • Lorsque vous souhaitez que la commande que vous avez entrée génère un programme sécurisé. Voici quelques exemples : – en tant qu’utilisateur root. Ne passez en utilisateur root qu’après avoir établi un chemin d’accès sécurisé de communication. Cela empêchera l’exécution de programmes non sécurisés avec des droits d’accès root. – avec les commandes su, passwd et newgrp. N’exécutez ces commandes qu’après établissement d’un accès sécurisé. Attention : Soyez prudent avec SAK, qui tue tous les processus qui tentent d’accéder au terminal et les liens associés (par exemple, /dev/console peut être lié à /dev/tty0). Installation et configuration d’un système sécurisé 1-5 Configuration de la clé SAK Chaque terminal peut être configuré indépendamment pour qu’une pression de SAK sur ce terminal crée un chemin d’accès sécurisé de communications. Ceci est déterminé par l’attribut sak_enabled dans le fichier /etc/security/login.cfg. Si la valeur de cet attribut est true, la clé SAK est activée. Si vous utilisez un port de communication (par exemple, avec la commande uucp), la strophe de ce port, dans le fichier /etc/security/login.cfg comporte la ligne suivante : sak_enabled = false Cette ligne (ou l’absence d’entrée dans cette strophe) désactive la clé SAK de ce terminal. Pour activer SAK sur un terminal, ajoutez la ligne suivante à sa strophe : sak_enabled = true 1-6 Guide de sécurité CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+) Dans AIX 5.2, les administrateurs peuvent installer l’option CAPP et EAL4+ lors de l’installation du système d’exploitation de base (BOS) à partir du CD–ROM. Cette option génère des restrictions sur le logiciel installé en même temps que le BOS, ainsi que sur l’accès au réseau. Cette section traite des points suivants : • Présentation du système conforme CAPP/EAL4+, page 1-7 • Installation d’un système CAPP/EAL4+, page 1-8 • Regroupement de logiciels CAPP/EAL4+, page 1-8 • Environnement physique d’un système CAPP/EAL4+, page 1-9 • Environnement organisationnel d’un système CAPP/EAL4+, page 1-10 • Configuration d’un système CAPP/EAL4+, page 1-11 Présentation du système conforme CAPP/EAL4+ Un système CAPP a été conçu et configuré pour répondre au protocole CAPP (Controlled Access Protection Profile) sur l’évaluation de la sécurité selon des critères communs. Le CAPP définit des critères de fonctionnement identiques au précédent standard TCSEC C2 (également connu comme Orange Book). Un Common Criteria (CC) Evaluated System est un système évalué selon les critères communs de la norme ISO 15408, relative à l’évaluation de l’assurance des produits informatiques. AIX 5.2 peut répondre aux exigences du CAPP et du niveau d’assurance CC EAL4+. La configuration du système répondant à ces règles est appelé un Système CAPP/EAL4+ dans le présent manuel. L’évaluation d’un système selon les CC (critères communs) n’est valide que pour cette configuration (matérielle et logicielle). Toute modification de sa configuration de sécurité annule l’évaluation du système. Cela ne signifie pas nécessairement que la sécurité du système sera affectée, mais que la configuration n’est plus certifiée. Ce chapitre décrit les contraintes qu’un système doit remplir pour répondre au CAPP et aux règles d’évaluation CC. Ni le CAPP ni les CC ne couvrent la totalité des options de configuration de sécurité d’AIX 5.2. Certaines caractéristiques (les modules IPsec ou de vérification de mot de passe sécurisée) en sont absentes, mais permettent d’améliorer la sécurité du système. Le système CAPP/EAL4+ AIX 5.2 comprend le BOS, sur des processeurs POWER 3 et POWER 4 à 64 bits et : • Le LVM (gestionnaire de volumes logiques) et le JFS2 (système de fichiers journalisé amélioré) • Le système X–Windows avec l’interface utilisateur graphique CDE • Les fonctions réseau Telnet, FTP, rlogin et rsh/rcp dans le protocole IPv4 • Le NFS (Network File System) Un système CAPP/EAL4+ est considéré en état de sécurité dans les conditions suivantes : • Si l’audit est configuré et que le système est en mode multi–utilisateurs, alors l’audit doit être opérationnel. • Le système accepte les requêtes de connexion et de services réseau. • Pour un système distribué, les bases de données administratives sont montées par NFS à partir du serveur maître. Installation et configuration d’un système sécurisé 1-7 Pour obtenir les dernières informations concernant le CAPP/EAL4+, consultez le document AIX 5.2 Release Notes. Installation d’un système CAPP/EAL4+ Pour définir les options CAPP/EAL4+ lors d’une installation du BOS, procédez comme suit : 1. Dans l’écran Installation et paramètres, sélectionnez Options supplémentaires. 2. Dans l’écran Options supplémentaires, tapez le numéro correspondant au choix Oui ou Non pour l’option Activation de la technologie CAPP et EAL4+. La valeur par défaut est non. Cette option n’est disponible que sous les conditions suivantes : • La méthode d’installation est définie sur Installation avec remplacement total. • L’anglais est sélectionné. • Le noyau 64 bits est activé. • Le JFS2 est activé. Lorsque l’option Activation de la technologie CAPP et EAL4+ est définie sur oui, l’option Base informatique sécurisée l’est également, et les seuls choix de Bureau disponibles sont NONE (aucun) ou CDE. Si vous effectuez une installation sans invite à l’aide d’un fichier bosinst.data, définissez la zone INSTALL_TYPE sur CC_EVAL et les zones suivantes comme suit : INSTALL_TYPE = CC_EVAL INSTALL_METHOD = overwrite TCB = yes NONE ou CDE DESKTOP = Un système CAPP/EAL4+ peut également s’installer à l’aide de l’environnement NIM (Network Installation Management). Pour installer un poste client CAPP/EAL4+, le poste maître NIM doit être un système CAPP/EAL4+. Bien que les deux puissent se trouver sur le réseau, les systèmes CAPP/EAL4+ ne peuvent communiquer qu’entre eux. Pour installer un client CAPP/EAL4+, une ressource bosinst_data doit être définie et les zones modifiées comme ci–dessus. Regroupement de logiciels CAPP/EAL4+ Lorsque l’option CAPP/EAL4+ est sélectionnée, les contenus du regroupement de l’installation /usr/sys/inst.data/sys_bundles/CC_EVAL.BOS.autoi sont installés. L’option CAPP/EAL4+ permet d’installer les regroupements de logiciels graphiques et de services de documentation. Si vous sélectionnez les options Logiciels graphiques avec CAPP/EAL4+, le contenu du regroupement /usr/sys/inst.data/sys_bundles/CC_EVAL.Graphics.bnd est installé. Si vous sélectionnez les options Logiciels de services de documentation avec CAPP/EAL4+, le contenu du regroupement /usr/sys/inst.data/sys_bundles/CC_EVAL.DocServices.bnd est installé. Dès que les LPP (Programmes sous licence) ont été installés, le système modifie la configuration par défaut pour respecter les règles CAPP/EAL4+. La configuration par défaut est modifiée comme suit : • Suppression de /dev/echo du fichier /etc/pse.conf. • Instanciation d’unités streams. • L’accès aux supports amovibles est réservé aux utilisateurs root. • Suppression des entrées non CC du fichier inetd.conf. • Modification des droits de plusieurs fichiers. • Enregistrement de symlinks dans le fichier sysck.cfg. 1-8 Guide de sécurité • Enregistrement d’unités dans le fichier sysck.cfg. • Définition des attributs de port et utilisateur par défaut. • Configuration de l’application doc_search pour navigateur. • Suppression de httpdlite du fichier inittab. • Suppression de writesrv du fichier inittab. • Suppression de mkatmpvc du fichier inittab. • Suppression de atmsvcd du fichier inittab. • Désactivation de snmpd dans le fichier /etc/rc.tcpip. • Désactivation de hostmibd dans le fichier /etc/rc.tcpip. • Désactivation de snmpmibd dans le fichier /etc/rc.tcpip. • Désactivation de aixmibd dans le fichier /etc/rc.tcpip. • Désactivation de muxatmd dans le fichier /etc/rc.tcpip. • Le port NFS (2049) est doté de privilèges. • Ajout d’événements manquants dans le fichier /etc/security/audit/events. • Vérification du bon fonctionnement de l’interface de bouclage. • Création de synonymes pour /dev/console. • Application forcée des droits de connexion par défaut à un serveur X. • Modification du répertoire /var/docsearch pour permettre une lecture universelle de tous les fichiers. • Ajout de strophes ODM pour définir les droits de console. • Définition des droits 000 pour les ptys de type BSD. • Désactivation des fichiers .netrc. • Ajout du traitement du répertoire patch. Environnement physique d’un système CAPP/EAL4+ Le système CAPP/EAL4+ dispose de règles spécifiques concernant son environnement. Ces règles sont les suivantes : • L’accès physique aux systèmes doit être restreint afin que les administrateurs autorisés soient les seuls à pouvoir en utiliser les consoles. • Le Service Processor n’est pas connecté à un modem. • L’accès physique aux terminaux est limité aux utilisateurs autorisés. • Le réseau physique est sécurisé contre les écoutes et l’usurpation. Lors de communications via des lignes non sécurisées, des mesures de sécurité supplémentaires (comme le chiffrement) sont nécessaires. • La communication n’est pas autorisée avec des systèmes autres que CAPP/EAL4+ AIX 5.2 ou qui n’utilisent pas le même contrôle de gestion. • Seul l’IP version 4 sera utilisé pour communiquer avec des systèmes autres que CAPP/EAL4+ (IPv6 n’ayant pas été évalué). • Les utilisateurs ne doivent pas être autorisés à modifier l’heure du système. Installation et configuration d’un système sécurisé 1-9 Environnement organisationnel d’un système CAPP/EAL4+ Un système CAPP/EAL4+ doit répondre aux règles de procédure et d’organisation suivantes : • Seuls les utilisateurs autorisés à travailler avec les informations du système reçoivent des ID utilisateurs. • Les mots de passe doivent être de très haute qualité (aussi aléatoires que possible et sans lien direct avec l’utilisateur ou l’entreprise). Pour plus d’informations concernant les règles de définition de mots de passe, reportez–vous à la section Mots de passe, page 2-23. • Les mots de passe sont personnels et confidentiels. • Les administrateurs doivent avoir les connaissances suffisantes pour gérer les systèmes dont la sécurité est essentielle. • Ils doivent se conformer aux directives fournies dans la documentation du système, • se connecter avec leur propre ID et utiliser su – pour effectuer l’administration en mode superutilisateur. • Les mots de passe utilisateurs générés par les administrateurs doivent être transmis en toute sécurité. • Les responsables du système doivent établir et mettre en application les procédures nécessaires au fonctionnement sécurisé des systèmes. • Les administrateurs doivent s’assurer que l’accès aux ressources du système sécurisé est protégé par les bits d’autorisation et la liste de contrôle d’accès (ACL) appropriés. • Le réseau physique doit être approuvé par l’entreprise pour le transport des données les plus confidentielles. • Les procédures de maintenance doivent comprendre des diagnostics réguliers. • Les administrateurs doivent disposer de procédures qui assurent un fonctionnement sécurisé et la reprise après une panne système. • La variable d’environnement LIBPATH ne doit pas être modifiée, ce qui risquerait d’autoriser un processus sécurisé de charger une bibliothèque non sécurisée. • Les logiciels de traçage ou de dérivation (tcpdump, trace) ne doivent pas être utilisés sur un système opérationnel. • Les protocoles anonymes tels que HTTP ne serviront que pour des informations publiques (par exemple, la documentation en ligne). • Un système CAPP/EAL4+ n’utilisera que le NFS via TCP. • L’accès aux supports amovibles doit être interdit aux utilisateurs. Les fichiers d’unités doivent être protégés par des bits d’autorisation et des ACL appropriés. • L’administration AIX se fait uniquement avec les droits d’accès root. Les fonctions de délégation d’administration en fonction du rôle ou du groupe, tout comme le mécanisme de privilège d’AIX, sont exclus d’un système CAPP/EAL4+. 1-10 Guide de sécurité Configuration d’un système CAPP/EAL4+ Cette section fournit des informations sur la configuration des sous–systèmes impliqués dans un système CAPP/EAL4+. Administration Les administrateurs doivent se connecter avec leur compte personnel et utiliser la commande su pour devenir l’utilisateur root afin d’administrer le système. Pour empêcher l’identification du mot de passe du compte root, seuls les administrateurs sont autorisés à utiliser la commande su sur ce compte. Veuillez procéder comme suit : 1. Ajoutez une entrée à la strophe root du fichier /etc/security/user : root: admin = true . . . sugroups = SUADMIN 2. Un groupe doit être défini dans le fichier /etc/group avec les ID des administrateurs autorisés : system:!:0:root,paul staff:!:1:invscout,julie bin:!:2:root,bin . . . SUADMIN:!:13:paul Les administrateurs doivent également respecter les procédures suivantes : • Etablir et mettre en application des procédures pour que les matériels, logiciels et firmware qui composent le système distribué, soient partagés, installés et configurés en toute sécurité. • S’assurer que le système est configuré pour que seul l’administrateur puisse y introduire un nouveau logiciel sécurisé. • Mettre en place des procédures pour vérifier que les utilisateurs effacent leur écran avant de se déconnecter des périphériques série (par exemple, terminaux 3151). Configuration du port et de l’utilisateur Les options de configuration AIX des ports et des utilisateurs sont définies pour satisfaire aux règles de l’évaluation. La règle actuelle est que la probabilité de deviner un mot de passe soit au plus 1 sur 1 000 000, et qu’une minute d’essais répétés ne donne qu’une probabilité de 1 sur 100 000. Installation et configuration d’un système sécurisé 1-11 Les valeurs recommandées du fichier /etc/security/user sont les suivantes : default: admin = false login = true su = true daemon = true rlogin = true sugroups = ALL admgroups = ttys = ALL auth1 = SYSTEM auth2 = NONE tpath = nosak umask = 077 expires = 0 SYSTEM = ”compat” logintimes = pwdwarntime = 5 account_locked = false loginretries = 3 histexpire = 52 histsize = 20 minage = 0 maxage = 8 maxexpired = 1 minalpha = 2 minother = 2 minlen = 8 mindiff = 4 maxrepeats = 2 dictionlist = /usr/share/dict/words pwdchecks = dce_export = false root: rlogin = false login = false Les paramètres par défaut du fichier /etc/security/user ne doivent pas être écrasés pas des paramètres d’utilisateurs particuliers. Remarque : login = false dans la strophe root interdit la connexion root directe. Seuls les comptes utilisateurs dotés du droit su pour le compte root pourront se connecter en tant que root. Cependant, un Refus de service contre un système qui envoie des mots de passe utilisateur incorrects peut verrouiller tous les comptes utilisateurs. Cette action peut empêcher tous les utilisateurs (même administrateurs) de se connecter au système. Une fois son compte verrouillé, l’utilisateur ne pourra pas se connecter avant que l’administrateur ne repasse l’attribut unsuccessful_login_count correspondant, dans le fichier /etc/security/lastlog, à une valeur inférieure à l’attribut loginretries. Si tous les comptes administrateurs sont verrouillés, vous devrez redémarrer le système en mode maintenance et lancer la commande chsec. Pour de plus amples informations sur l’utilisation de la commande chsec, reportez–vous à la section Contrôle des comptes utilisateurs, page 2-9. Les valeurs recommandées du fichier /etc/security/login.cfg sont les suivantes : default: sak_enabled = false logintimes = logindisable = 4 logininterval = 60 loginreenable = 30 logindelay = 5 1-12 Guide de sécurité Limites de ressource Lors de la configuration des limites de ressources dans le fichier /etc/security/limits, vérifiez que les limites correspondent aux besoins des processus du système. En particulier, les valeurs pour stack et rss ne doivent jamais être définies sur unlimited. Une pile illimitée risque d’écraser d’autres segments du processus, et une rss illimitée permet à un processus d’utiliser toute la mémoire réelle, pouvant alors créer des problèmes de ressource pour d’autres processus. Les valeurs stack_hard et rss_hard devraient être limitées également. Sous–système d’audit Les procédures suivantes permettent de protéger le sous–système d’audit : • Configurer le sous–système d’audit pour enregistrer toutes les activités de sécurité des utilisateurs. Définir un système de fichiers dédié aux données d’audits, pour s’assurer que l’espace nécessaire à l’audit est disponible et ne sera pas utilisé par d’autres processus. • Protéger les enregistrements d’audits (tels que des suivis d’audit, fichiers bin, et toutes les autres données dans /audit) contre les utilisateurs non–root. • Pour le système CAPP/EAL4+, l’audit en mode bin doit être défini lorsque le sous–système est utilisé. Pour obtenir des informations sur la procédure de définition du sous–système d’audit, reportez–vous à la section Configuration de l’audit, page 3-9. • Le suivi d’audit requiert au moins 20 % de l’espace disque d’un système. • Si l’audit est activé, le paramètre binmode de la strophe start dans /etc/security/audit/config doit avoir pour valeur panic. Le paramètre freespace de la strophe bin doit avoir une valeur au minimum égale à 25 % de l’espace disque alloué au stockage des suivis d’audit. Les paramètres bytethreshold et binsize doivent être définis sur 65536 octets. • Archiver les enregistrements d’audit depuis le système vers un stockage permanent. Configuration réseau La configuration réseau doit utiliser le contrôle d’accès discrétionnaire aux ports Internet (DACinet) pour interdire l’utilisation anonyme des protocoles X (X11) et NFS. Pour de plus amples informations sur la commande dacinet, reportez–vous à la section Contrôle d’accès aux ports TCP en fonction de l’utilisateur, avec le contrôle d’accès discrétionnaire aux ports Internet, page 9-10. La commande dacinet permet d’éviter les situations suivantes : • Empêche un utilisateur de prendre le bureau d’un autre avec X11. • Empêche l’utilisateur d’un poste client de falsifier les requêtes vers un serveur NFS, ce qui lui permettrait de devenir utilisateur root. Généralement, un utilisateur accède à un serveur NFS distant en faisant ses requêtes au Système de fichiers logiques sur l’hôte local, qui transmet ensuite la requête (en tant que root) au serveur distant. En définissant un ACL réservé aux utilisateurs root et obligeant le passage par ce port, il sera impossible d’envoyer directement des requêtes de protocole au serveur NFS distant. Installation et configuration d’un système sécurisé 1-13 Services système Le tableau suivant présente les services système standard, actifs sur le système CAPP/EAL4+ (sans carte graphique). Tableau 1. Services système standard ID utilisateur Commande Description root /init Processus Init root /usr/sbin/syncd 60 Démon sync du système de fichiers root /usr/sbin/srcmstr Démon maître SRC root /usr/sbin/cron Fonction CRON avec support AT root /usr/ccs/bin/shlap64 Démon support de bibliothèque partagée root /usr/sbin/syslogd Démon Syslog root /usr/lib/errdemon Démon AIX error log root /usr/sbin/getty /dev/console getty / TSM root /usr/sbin/portmap Mappeur de port pour NFS et CDE root /usr/sbin/biod 6 Client NFS root /usr/sbin/rpc.lockd Démon de verrou NFS daemon /usr/sbin/rpc.statd Démon stat NFS root /usr/sbin/rpc.mountd Démon de montage NFS root /usr/sbin/nfsd Démon serveur NFS root /usr/sbin/inetd Démon maître Inetd root /usr/sbin/uprintfd Démon print du noyau root /usr/sbin/qdaemon Démon Queuing root /usr/lpp/diagnostics/bin/diagd Diagnostics Mise en route d’un système distribué CAPP/EAL4+ Pour lancer un système distribué conforme au protocole CAPP/EAL4+, tous les utilisateurs doivent avoir des ID identiques sur tous les systèmes. Bien que ceci soit possible grâce à NIS, le niveau de sécurisation est insuffisant pour CAPP/EAL4+. Cette section décrit une configuration distribuée permettant de garantir des ID utilisateurs identiques sur tous les systèmes CAPP/EAL4+. Le système maître conserve les données d’identification et d’authentification (configurations utilisateur et groupe) pour tout le système distribué. Tous les autres systèmes utilisent NFS pour monter ces données. NFS est protégé par DACinet de sorte que seuls les administrateurs aient accès aux ports NFS sur le poste maître. Les données d’authentification sont modifiables par tous les administrateurs à l’aide d’outils tels que SMIT, sur n’importe quel système. Les données modifiées sont celles du poste maître. Toutes les données partagées d’identification et d’authentification proviennent du répertoire /etc/data.shared. Les fichiers standard d’identification et d’authentification sont remplacés par des liens symboliques dans le répertoire /etc/data.shared. 1-14 Guide de sécurité Fichiers partagés du système distribué Dans un système distribué, les fichiers suivants sont partagés. Ils proviennent habituellement du répertoire /etc/security. Tableau 2. Fichiers partagés du système distribué Fichier Description /etc/security/.ids ID utilisateur et groupe suivant disponible /etc/security/.profile Fichier .profile par défaut pour les nouveaux utilisateurs /etc/security/audit/bincmds Commandes d’audit en mode bin pour cet hôte /etc/security/audit/config Configuration d’audit local /etc/security/audit/events Liste des formats et événements des audits /etc/security/audit/objects Liste des objets audités sur cet hôte /etc/security/audit/streamcmds Commandes d’audit en mode stream pour cet hôte /etc/security/environ Variables d’environnement par utilisateur /etc/group Fichier /etc/group /etc/passwd Fichier /etc/passwd /etc/security/group Informations étendues de groupe, du fichier /etc/security/group /etc/hosts Fichier /etc/hosts /etc/security/limits Limites de ressource par utilisateur /etc/security/passwd Mots de passe par utilisateur /etc/security/user Attributs de l’utilisateur par défaut et par utilisateur /etc/security/priv Les ports désignés en tant que privilégiés au démarrage du système sont répertoriés dans le fichier /etc/security/priv /etc/security/services Les ports répertoriés dans le fichier /etc/security/services ne subissent pas de contrôles ACL /etc/security/acl Le fichier /etc/security/acl conserve les définitions ACL du système des services protégés qui seront réactivés à l’amorçage suivant du système, par le fichier /etc/rc.tcpip. Installation et configuration d’un système sécurisé 1-15 Fichiers non–partagés du système distribué Les fichiers suivants, du répertoire /etc/security, ne doivent pas être partagés sur le système distribué, et doivent rester spécifiques à l’hôte : Fichier Description /etc/security/failedlogin Fichier journal pour les échecs de connexion par hôte /etc/security/lastlog Information par utilisateur concernant les dernières connexions correctes et échouées sur cet hôte /etc/security/portlog Information par port concernant les ports verrouillés sur cet hôte /etc/security/login.cfg Caractéristiques de connexion spécifique à l’hôte pour le chemin d’accès sécurisé, shells de connexion, et autres informations relatives à la connexion Les fichiers de sauvegarde des fichiers partagés, générés automatiquement, sont également non–partagés. Ces fichiers ont le même nom que le fichier original, avec un o minuscule ajouté au début. Configuration du système distribué (le système maître) Sur le poste maître, un nouveau volume logique est créé pour contenir le système de fichiers des données d’identification et d’authentification. Ce volume logique est appelé /dev/hd10sec. Il est monté sur le système maître en tant que /etc/data.master. Pour générer les modifications sur le système maître, lancez la commande mkCCadmin avec l’adresse IP et le nom d’hôte du poste maître : mkCCadmin –m –a adresseIP nomhôte Configuration du système distribué (tous les systèmes) Toutes les données à partager sont transférées dans le répertoire /etc/data.shared. Au démarrage, tous les systèmes montent le répertoire /etc/data.master du poste maître sur le répertoire /etc/data.shared. Le maître lui–même utilise un montage de bouclage. Les systèmes client sont configurés avec la commande suivante : mkCCadmin –a adresseIP nomhôte Pour que le poste client utilise un poste maître différent, utilisez la commande chCCadmin. Lorsque qu’un système a été intégré dans le système distribué d’identification et d’authentification, les entrées inittab supplémentaires suivantes sont générées : isCChost Initialise le système en mode CAPP/EAL4+. rcCC Efface tous les ACL DACinet et ouvre uniquement les ports nécessaires au mappeur de port et au NFS. Il monte ensuite le répertoire partagé. rcdacinet Charge les ACL DACinet supplémentaires que l’administrateur pourrait avoir définis. Pensez aux éléments suivants Lors de l’exécution du système distribué : • Les administrateurs doivent s’assurer que les données partagées sont montées avant de modifier les fichiers partagés de configuration, afin de garantir que les données son visibles pour tous les systèmes. • La modification du mot de passe est la seule action administrative permise lorsque le répertoire partagé n’est pas monté. 1-16 Guide de sécurité Utilisation de la fonction DACinet pour le contrôle d’accès au réseau en fonction des utilisateurs et des ports La fonction DACinet permet de limiter l’accès des utilisateurs aux ports TCP. Pour de plus amples informations sur DACinet, reportez–vous à la section Contrôle d’accès aux ports TCP en fonction de l’utilisateur, avec le contrôle d’accès discrétionnaire aux ports Internet, page 9-10. Par exemple, lorsque vous utilisez la fonction DACinet pour limiter à root l’accès au port TCP/25 entrant, seuls les utilisateurs root des hôtes CAPP/EAL4+ peuvent y accéder. Cette situation limite les possibilités d’usurpation d’e–mail par des utilisateurs standard, à l’aide d’une connexion telnet sur le port TCP/25 de la victime. Pour activer les ACL pour les connexions TCP à l’amorçage, le script /etc/rc.dacinet est lancé à partir de /etc/inittab. Il ira lire les définitions dans le fichier /etc/security/acl puis chargera les ACL dans le noyau. Les ports à ne pas protéger avec les ACL doivent être répertoriés dans /etc/security/services. Ce fichier utilise un format identique au fichier /etc/services. Par exemple, pour un sous–réseau 10.1.1.0/24 pour tous les systèmes connectés, les entrées ACL pour limiter l’accès aux utilisateurs root pour X (TCP/6000) dans /etc/security/acl seraient : 6000 10.1.1.0/0xFFFFFF00 u:root Installation de logiciels supplémentaires sur un système CAPP/EAL4+ L’administrateur peut installer des logiciels supplémentaires sur le système CAPP/EAL4+. Si le logiciel n’est pas exécuté par l’utilisateur root ou avec des privilèges root, le système restera néanmoins conforme au protocole CAPP/EAL4+. C’est par exemple le cas pour des applications de bureautique, exécutées uniquement par des utilisateurs courants, sans composants SUID. Par contre, les logiciels installés fonctionnant avec des privilèges root annulent la conformité CAPP/EAL4+. Cela signifie par exemple que les pilotes de l’ancien JFS (système de fichiers journalisé) ne doivent pas être installés puisqu’ils fonctionnent en mode noyau. D’autres démons fonctionnant en root (par exemple, un démon SNMP) annuleront également la conformité CAPP/EAL4+. Un système CAPP/EAL4+ est rarement utilisé dans la configuration qui a été évaluée, particulièrement en environnement commercial. Des services supplémentaires sont généralement nécessaires, et le système de production, bien que basé sur un système évalué, ne répond plus exactement à ses spécifications. Fenêtre de connexion Les pirates informatiques peuvent obtenir des informations importantes à partir de l’écran de connexion AIX par défaut, comme le nom de l’hôte et la version du système d’exploitation. Ces informations peuvent leur permettre de déterminer les méthodes d’intrusion à essayer. Vous modifierez donc les paramètres par défaut de l’écran de connexion, le plus rapidement possible après une installation système. Cette section traite des points suivants : • Modification du message d’accueil de l’écran de connexion, page 1-19 • Modification de l’écran de connexion Common Desktop Environment, page 1-20 • Renforcement des paramètres de connexion par défaut du système, page 1-20 • Protection des terminaux sans surveillance, page 1-20 • Application de la déconnexion automatique, page 1-20 Les bureaux KDE et GNOME partagent quelques règles identiques de sécurité. Pour plus d’information concernant KDE et GNOME, consultez le manuel AIX 5L Version 5.2 Références et guide d’installation. Installation et configuration d’un système sécurisé 1-17 Pour obtenir des informations sur les utilisateurs, les groupes et les mots de passe, reportez–vous au chapitre Utilisateurs, rôles et mots de passe, page 2-1. Configuration de la fenêtre de connexion Pour renforcer la protection du système face aux attaques par identification du mot de passe, vous pouvez configurer la fenêtre de connexion dans le fichier /etc/security/login.cfg de cette manière : 1-18 Attribut S’applique aux PtY (réseau) S’applique aux TTY Valeur recommandée Commentaires sak_enabled O O false La clé SAK est rarement nécessaire. Voir Utilisation de la clé SAK (Secure Attention Key), page 1-5. logintimes N O logindisable N O 4 Désactiver la connexion sur ce terminal après 4 échecs de connexion consécutifs. logininterval N O 60 Le terminal sera désactivé lorsque que le nombre spécifié de tentatives aura été effectué dans les 60 secondes. Guide de sécurité Indiquer ici les heures de connexions autorisées. loginreenable N O 30 Le terminal sera réactivé 30 minutes après une désactivation automatique. logindelay O O 5 Temps en seconde entre les invites de connexion. Il sera multiplié par le nombre d’échecs de connexion, par exemple 5, 10, 15, 20 secondes quand 5 est la valeur initiale. Vous devez noter que ces restrictions de port fonctionnent généralement sur des terminaux de série reliés directement, et non sur des pseudo–terminaux utilisés via des connexions réseau. Vous pouvez indiquer des terminaux explicites dans ce fichier, par exemple : /dev/tty0: logintimes = 0600–2200 logindisable = 5 logininterval = 80 loginreenable = 20 Modification du message d’accueil de l’écran de connexion Pour éviter d’afficher certaines informations sur les écrans de connexion, modifiez le paramètre herald dans le fichier /etc/security/login.cfg. Par défaut, herald contient le message d’accueil qui s’affiche avec l’invite de connexion. Pour le modifier, utilisez la commande chsec ou bien modifiez le fichier directement. La commande chsec est utilisée dans l’exemple suivant pour modifier le paramètre par défaut herald : # chsec –f /etc/security/login.cfg –a default –herald ”L’accès non autorisé est interdit.\n\nlogin: ” Pour de plus amples informations sur la commande chsec, consultez le manuel AIX 5L Version 5.2 Commands Reference, Volume 1. Pour modifier le fichier directement, ouvrez–le /etc/security/login.cfg puis modifiez le paramètre herald de cette manière : default: herald =”L’accès non autorisé est interdit\n\nlogin:” sak_enable = false logintimes = logindisable = 0 logininterval = 0 loginreenable = 0 logindelay = 0 Remarque : Pour renforcer la sécurité du système, attribuez une valeur supérieure à 0 (# > 0) aux variables logindisable et logindelay . Installation et configuration d’un système sécurisé 1-19 Modification de l’écran de connexion Common Desktop Environment Ce problème concerne également les utilisateurs du Common Desktop Environment (CDE). L’écran de connexion CDE affiche également par défaut, le nom d’hôte et la version du système d’exploitation. Pour éviter d’afficher ces informations, modifiez le fichier /usr/dt/config/$LANG/Xresources, où $LANG se réfère à la langue locale installée sur votre poste. Dans notre exemple, supposons que $LANG soit défini sur C, copiez ce fichier dans /etc/dt/config/C/Xresources. Ensuite, ouvrez le fichier /usr/dt/config/C/Xresources puis modifiez–le en supprimant les messages d’accueil qui comportent le nom d’hôte et la version du système d’exploitation. Pour de plus amples informations sur les questions de sécurité du CDE, reportez–vous à la section Gestion des problèmes sous X11 et CDE, page 1-21. Renforcement des paramètres de connexion par défaut du système Editez le fichier /etc/security/login.cfg pour définir les paramètres de connexion par défaut, comme ceux que vous pourriez définir pour un nouvel utilisateur (nombre de tentatives de connexion, réactivation de la connexion et connexion interne). Protection de terminaux sans surveillance Tous les systèmes sont vulnérables si les terminaux connectés sont laissés sans surveillance. Le plus grave étant un administrateur qui abandonne son terminal, connecté sous l’identité de l’utilisateur root. En règle générale, les utilisateurs doivent se déconnecter avant de quitter leur terminal. Un terminal connecté sans surveillance est un risque majeur. La commande lock permet de verrouiller votre terminal. Avec l’interface AIXwindows, utilisez la commande xlock. Application de la déconnexion automatique Un autre sérieux problème de sécurité provient des utilisateurs qui laissent leurs comptes sans surveillance pendant une longue période. Un intrus peut profiter de cette situation pour prendre le contrôle d’un terminal utilisateur, compromettant ainsi la sécurité du système. Pour éviter ce type de risque, vous pouvez activer une déconnexion automatique du système. Pour ce faire, éditez le fichier /etc/security/.profile pour y intégrer une valeur de déconnexion automatique pour all utilisateurs, comme dans l’exemple suivant : TMOUT=600 ; TIMEOUT=600; export readonly TMOUT TIMEOUT Dans cet exemple, 600 est en secondes, soit 10 minutes. Cependant, cette méthode ne fonctionnera qu’à partir du shell. Elle ne fonctionnera pas si l’utilisateur est dans une application, par exemple vi. Même si cette action permet d’appliquer une politique de déconnexion automatique à tous les utilisateurs, il peuvent néanmoins contourner certaines restrictions en modifiant leurs propres fichiers .profile. Pour mettre en œuvre une politique de déconnexion automatique complète, fournissez aux utilisateurs des fichiers .profile appropriés, dépourvus de droits d’écriture. 1-20 Guide de sécurité Gestion des problèmes sous X11 et CDE Cette section traite des vulnérabilités de sécurité du serveur X11 et du Common Desktop Environment (CDE). Suppression du fichier /etc/rc.dt Bien que l’interface utilisateur graphique CDE soit pratique, elle apporte son lot de problèmes de sécurité. Pour cette raison, n’exécutez pas le CDE sur des serveurs qui nécessitent un niveau élevé de sécurité. Le meilleur moyen est de ne pas installer les ensembles de fichiers CDE (dt). Si vous les avez installés sur votre système, nous vous conseillons de les désinstaller, et tout particulièrement le script /etc/rc.dt, qui démarre le CDE. Pour de plus amples informations sur le CDE, consultez le manuel AIX 5L Version 5.2 System Management Guide: Operating System and Devices. Précautions à prendre pour éviter le contrôle non autorisé des serveurs X distants Un problème important de sécurité associé au serveur X11 est une écoute discrète et non autorisée d’un serveur distant. Les commandes xwd et xwud permettent de contrôler l’activité d’un serveur X car elles peuvent capturer la frappe, ce qui permet de connaître les mots de passe et autres données confidentielles. Pour résoudre ce problème, supprimez ces exécutables s’ils ne sont pas indispensables à votre configuration, ou bien limitez ces commandes à un accès root. Les commandes xwd et xwud se trouvent dans l’ensemble de fichiers X11.apps.clients. Si vous devez les conserver, utilisez OpenSSH ou MIT Magic Cookies. Ces applications tierces facilite la prévention des risques créés par l’exécution des commandes xwd et xwud. Pour de plus amples informations sur OpenSSH et MIT Magic Cookies, consultez leurs documentations respectives. Activation et désactivation du contrôle d’accès Le serveur X permet aux hôtes distants d’utiliser la commande xhost + pour se connecter à votre système. Assurez–vous d’indiquer un nom d’hôte à la commande xhost +, car elle désactive le contrôle d’accès du serveur X. Cela permet d’autoriser l’accès à des hôtes spécifiques et facilite le contrôle des attaques potentielles du serveur X. Pour ce faire, lancez la commande xhost : # xhost + nomhôte Pour de plus amples informations sur la commande xhost, consultez AIX Commands Reference, Volume 6. Désactivation des droits utilisateurs sur la commande xhost Une autre manière de s’assurer de l’utilisation de la commande xhost, est de la limiter au superutilisateur. Pour cela, utilisez la commande chmod pour modifier les droits du /usr/bin/X11/xhost à 744. chmod 744/usr/bin/X11/xhost Assurez–vous d’indiquer un nom d’hôte à la commande xhost +, car elle désactive le contrôle d’accès du serveur X. Cela permet d’autoriser l’accès à des hôtes spécifiques et facilite le contrôle des attaques potentielles du serveur X. Si vous n’indiquez aucun nom d’hôte, l’accès sera accordé à tous les hôtes. Installation et configuration d’un système sécurisé 1-21 1-22 Guide de sécurité Chapitre 2. Utilisateurs, rôles et mots de passe Ce chapitre décrit les méthodes de gestion des rôles et utilisateurs AIX. Il traite des points suivants : • Le compte Root, page 2-1 • Rôles administratifs, page 2-2 • Comptes Utilisateurs, page 2-8 • Configuration d’un accès FTP anonyme avec un compte utilisateur sécurisé, page 2-11 • Comptes utilisateurs spécifiques au système, page 2-15 • Listes de contrôle des accès (ACL), page 2-17 • Mots de passe, page 2-23 • Authentification de l’utilisateur, page 2-30 • Présentation du système de quotas de disque, page 2-30 Le compte Root Le compte root dispose d’un accès illimité à tous les programmes, fichiers et ressources d’un système. Le compte root est plus connu sous le nom de superutilisateur. Le superutilisateur est l’utilisateur spécial dans le fichier /etc/passwd, avec un ID utilisateur (UID) de 0. Le nom d’utilisateur root lui est généralement attribué. Ce n’est donc pas le nom d’utilisateur qui rend le compte root si spécial, mais son UID de 0. Ce qui signifie que tout utilisateur possédant un UID de 0 possède les mêmes droits que le superutilisateur. Par ailleurs, le compte root est toujours authentifié au moyen des fichiers locaux de sécurité. Le compte root doit toujours posséder un mot de passe, lequel ne doit jamais être partagé. Un mot de passe doit être attribué au compte root immédiatement après l’installation du système. Seul l’administrateur système doit connaître le mot de passe root. Les administrateurs système ne peuvent utiliser root que pour effectuer des fonctions d’administration exigeant des droits d’accès root. Pour toutes les autres opérations, ils doivent reprendre leur compte utilisateur normal. L’utilisation continue du compte root peut endommager le système car il s’affranchit de nombreuses sécurités. Désactivation de la connexion root directe Une des méthodes courantes d’attaque par des pirates informatiques est d’obtenir le mot de passe du superutilisateur, ou root. Pour éviter ce type d’attaque, vous pouvez désactiver l’accès direct à votre ID root et ensuite demander à vos administrateurs système qu’ils obtiennent des droits d’accès superutilisateur à l’aide de la commande su –. Outre le fait de supprimer l’utilisateur root comme point d’attaque, la suppression de l’accès root direct vous permet de contrôler quel utilisateur a obtenu un accès superutilisateur, ainsi que la durée de son action. Pour ce faire, vous pouvez consulter le fichier /var/adm/sulog. Vous pouvez aussi activer la fonction d’audit du système, qui rendra compte de ce type d’activité. Pour désactiver l’accès distant à la connexion pour votre utilisateur root, modifiez le fichier /etc/security/user. Indiquez false pour rlogin dans l’entrée de root. Avant de désactiver la connexion root distante, réfléchissez aux situations qui empêcheraient un administrateur système de se connecter sous un ID utilisateur non–root. Par exemple, si le système de fichiers principal est saturé, l’utilisateur ne pourra alors pas Utilisateurs, rôles et mots de passe 2-1 se connecter. Si la connexion root distante est désactivée, et que l’utilisateur qui pouvait se connecter au compte root par su – a son système de fichiers principal saturé, root ne pourra jamais prendre le contrôle du système. Pour éviter ce problème, les administrateurs système peuvent se créer leurs propres systèmes de fichiers principaux disposant d’une capacité supérieure au système de fichiers standard. Pour obtenir plus d’informations sur le contrôle de la connexion root, reportez–vous aux sections Administration, page 1-11 et Configuration du port et de l’utilisateur, page 1-11. Rôles administratifs Vous pouvez attribuer certains des droits d’accès root à des utilisateurs non–root. Les diverses tâches root disposent d’autorisations distinctes, groupées par rôles. Ce sont ces rôles qui peuvent être attribués à divers utilisateurs. Cette section traite des points suivants : • Présentation des rôles, page 2-2 • Configuration et maintenance des rôles à l’aide de l’outil SMIT, page 2-4 • Comprendre les autorisations, page 2-4. Présentation des rôles Les rôles sont des autorisations qui permettent à un utilisateur d’exécuter des fonctions qui normalement exigerait des droits d’accès root. Voici la liste des rôles possibles : 2-2 Ajout et suppression d’utilisateurs Permet à tout utilisateur de tenir ce rôle root. Il peut ajouter et supprimer des utilisateurs, modifier les informations ou classes d’audit, gérer des groupes et modifier des mots de passe. Toute personne qui administre les utilisateurs doit être dans le groupe security. Modification du mot de passe des utilisateurs Permet à un utilisateur de modifier les mots de passe. Gestion des rôles Permet à un utilisateur de créer, modifier, supprimer et répertorier les rôles. L’utilisateur doit être dans le groupe security. Sauvegarde et restauration Permet à un utilisateur de sauvegarder et restaurer des systèmes de fichiers et des répertoires. Ce rôle a besoin d’autorisations pour pouvoir activer la fonction sauvegarde et restauration du système. Sauvegarde uniquement Ne permet à un utilisateur que de sauvegarder des systèmes de fichiers et des répertoires. Cet utilisateur doit posséder l’autorisation adéquate pour pouvoir activer la sauvegarde du système. Guide de sécurité Exécution de diagnostics Permet à un utilisateur ou un technicien de maintenance d’exécuter des diagnostics et de diagnostiquer des tâches. L’utilisateur doit avoir l’option system comme groupe principal, ainsi qu’un ensemble de groupes comprenant shutdown. Remarque : Les utilisateurs du rôle Exécution de diagnostics peuvent modifier la configuration du système, mettre à jour le microcode, etc. Les utilisateurs de ce rôle doivent bien en comprendre le niveau de responsabilité. Arrêt du système Permet à un utilisateur d’arrêter, de redémarrer ou de suspendre un système. Utilisateurs, rôles et mots de passe 2-3 Configuration et maintenance des rôles à l’aide de SMIT Des raccourcis SMIT (voir tableau ci-après) sont disponibles pour la mise en œuvre et la maintenance des rôles. Tableau 5. Définition et maintenance des rôles Tâche Raccourci SMIT Ajout d’un rôle smit mkrole Modification des caractéristiques d’un rôle smit chrole Affichage des caractéristiques d’un rôle smit lsrole Retrait d’un rôle smit rmrole Liste des rôles smit lsrole Comprendre les autorisations Les autorisations sont les attributs des droits d’accès d’un utilisateur. Elles permettent à un utilisateur d’exécuter certaines tâches. Par exemple, l’autorisation UserAdmin permettra d’utiliser la commande mkuser pour créer un utilisateur administratif. Un utilisateur ne disposant pas de ces droits ne peut pas procéder à cette création. Il existe deux types d’autorisation : Autorisation principale Permet d’exécuter une commande spécifique. Par exemple, l’autorisation RoleAdmin est une autorisation principale permettant à l’administrateur d’un utilisateur d’exécuter la commande chrole. Sans cette autorisation, la commande s’interrompt sans avoir modifié les définitions du rôle. Modificateur d’autorisation Augmente les droits d’un utilisateur. Par exemple, l’autorisation UserAdmin augmente les capacités d’un administrateur appartenant au groupe security. Sans cette autorisation, la commande mkuser ne crée que des utilisateurs non administratifs. Avec cette autorisation, la commande mkuser crée également des utilisateurs administratifs. Correspondance entre les autorisations et les fonctions : Backup Effectue une sauvegarde du système. La commande suivante utilise l’autorisation Backup : Backup Diagnostics Sauvegarde des fichiers et des systèmes de fichiers. L’administrateur de l’utilisateur doit posséder l’autorisation Backup. Permet à un utilisateur d’exécuter des diagnostics. Ce droit d’accès est également obligatoire pour exécuter des tâches de diagnostic directement depuis la ligne de commande. La commande suivante utilise l’autorisation Diagnostics : diag Exécute des diagnostics sur des ressources sélectionnées. Si l’administrateur de l’utilisateur ne possède pas de droits d’accès Diagnostics, la commande ne s’exécute pas. GroupAdmin Exécute les fonctions de l’utilisateur root sur les données du groupe. Les commandes suivantes utilisent l’autorisation GroupAdmin : chgroup 2-4 Guide de sécurité Modifie les informations d’un groupe. Si l’utilisateur ne possède pas d’autorisation GroupAdmin, il ne peut modifier que les informations d’un groupe non administratif. chgrpmem Administre tous les groupes. Si l’administrateur d’un groupe ne possède pas d’autorisation GroupAdmin, il ne peut modifier que l’appartenance au groupe qu’il gère ou définit un utilisateur du groupe security pour gérer un groupe non administratif. chsec Modifie les données d’un groupe administratif dans les fichiers /etc/group et /etc/security/group. L’utilisateur peut également modifier les valeurs de strophe par défaut. Si l’utilisateur ne possède pas d’autorisation GroupAdmin, il ne peut modifier que les données d’un groupe non administratif dans les fichiers /etc/group et /etc/security/group. mkgroup Crée un groupe. Si l’utilisateur ne possède pas d’autorisation GroupAdmin, il ne peut créer que des groupes non administratifs. rmgroup Supprime un groupe. Si l’utilisateur ne possède pas d’autorisation GroupAdmin, il ne peut supprimer que des groupes non administratifs. ListAuditClasses Affiche la liste des classes d’audit valides. L’administrateur utilisant cette autorisation n’a pas besoin d’être l’utilisateur root ou de faire partie du groupe audit. Le raccourci smit mkuser ou smit chuser affiche la liste des classes d’audit disponibles pour créer ou modifier un utilisateur. Entrez la liste des classes d’audit dans la zone Classes d’AUDIT. PasswdAdmin Exécute les fonctions de l’utilisateur root sur les données des mots de passe. Les commandes suivantes utilisent l’autorisation PasswdAdmin : chsec Modifie les attributs lastupdate et flags de tous les utilisateurs. Sans l’autorisation PasswdAdmin, la commande chsec ne permet à l’administrateur que de modifier les attributs lastupdate et flags des utilisateurs non administratifs. lssec Affiche les attributs lastupdate et flags de tous les utilisateurs. Sans l’autorisation PasswdAdmin, la commande lssec ne permet à l’administrateur que d’afficher les attributs lastupdate et flags des utilisateurs non administratifs. pwdadm Modifie le mot de passe de tous les utilisateurs. L’administrateur doit être dans le groupe security. PasswdManageExécute l’administration des mots de passe des utilisateurs non administratifs. La commande suivante utilise l’autorisation PasswdManage : pwdadm UserAdmin Modifie le mot de passe d’un utilisateur non administratif. L’administrateur doit être dans le groupe security ou posséder l’autorisation PasswdManage. Exécute les fonctions de l’utilisateur root sur les données de l’utilisateur. Seuls les utilisateurs disposant de l’autorisation UserAdmin peuvent modifier les informations du rôle d’un utilisateur. Cette autorisation ne permet pas d’accéder ou de modifier les informations d’audit d’un utilisateur. Les commandes suivantes utilisent l’autorisation UserAdmin : chfn Modifie la zone informations générales (gecos) d’un utilisateur. Si l’utilisateur ne possède pas d’autorisation UserAdmin mais figure dans le groupe security, il peut modifier la zone gecos de tous les Utilisateurs, rôles et mots de passe 2-5 utilisateurs non administratifs. Par ailleurs, les utilisateurs ne peuvent modifier que leur propre zone gecos. chsec Modifie les données des utilisateurs administratifs dans les fichiers /etc/passwd, /etc/security/environ, /etc/security/lastlog, /etc/security/limits et /etc/security/user contenant l’attribut des rôles. L’administrateur peut également modifier les valeurs de strophe par défaut et le fichier /usr/lib/security/mkuser.default, à l’exception des attributs auditclasses. chuser Modifie les informations des utilisateurs, sauf l’attribut auditclasses. Si l’utilisateur ne possède pas d’autorisation UserAdmin, il ne peut modifier que les informations d’un utilisateur non administratif, à l’exception des attributs rôles et auditclasses. mkuser Crée un utilisateur, excepté pour l’attribut auditclasses. Si l’utilisateur ne possède pas d’autorisation UserAdmin, il ne peut créer que des utilisateurs non administratifs, excepté pour les attributs rôles et auditclasses. rmuser Supprime un utilisateur. Si l’administrateur ne possède pas d’autorisation UserAdmin, il ne peut supprimer que des utilisateurs non administratifs. UserAudit Permet à l’utilisateur de modifier des informations d’audit. Les commandes suivantes utilisent l’autorisation UserAudit : chsec Modifie l’attribut auditclasses du fichier mkuser.default pour les utilisateurs non administratifs. Si l’utilisateur possède une autorisation UserAdmin, il peut également modifier l’attribut auditclasses du fichier mkuser.default, pour les utilisateurs administratifs et non administratifs. chuser Modifie l’attribut auditclasses d’un utilisateur non administratif. Si l’administrateur possède une autorisation UserAdmin, il peut également modifier l’attribut auditclasses de tous les utilisateurs. lsuser Affiche l’attribut auditclasses d’un utilisateur non administratif s’il s’agit de l’utilisateur root ou s’il fait partie du groupe security. Si l’utilisateur possède une autorisation UserAdmin, il peut également afficher l’attribut auditclasses de tous les utilisateurs. mkuser Crée un nouvel utilisateur et permet à l’administrateur d’attribuer l’attribut auditclasses d’un utilisateur non administratif. Si l’utilisateur possède une autorisation UserAdmin, il peut également modifier l’attribut auditclasses de tous les utilisateurs. RoleAdmin Exécute les fonctions de l’utilisateur root sur les données du rôle. Les commandes suivantes utilisent l’autorisation RoleAdmin : chrole Modifie un rôle. Si l’administrateur ne possède pas d’autorisation RoleAdmin, la commande n’a pas d’effet. lsrole Affiche un rôle. mkrole Crée un rôle. Si l’administrateur ne possède pas d’autorisation RoleAdmin, la commande se termine. rmrole Supprime un rôle. Si l’administrateur ne possède pas d’autorisation RoleAdmin, la commande se termine. Restore Exécute une restauration du système. La commande suivante utilise l’autorisation Restore : 2-6 Guide de sécurité Restore Restaure des fichiers sauvegardés. L’administrateur doit posséder une autorisation Restore. Liste des commandes d’autorisation Voici la liste des commandes et des autorisations dont elles font usage. Commande Permissions Autorisations chfn 2555 root.security UserAdmin chuser 4550 root.security UserAdmin, UserAudit diag 0550 root.system Diagnostics lsuser 4555 root.security UserAudit, UserAdmin mkuser 4550 root.security UserAdmin, UserAudit rmuser 4550 root.security UserAdmin chgroup 4550 root.security GroupAdmin lsgroup 0555 root.security mkgroup 4550 root.security GroupAdmin rmgroup 4550 root.security GroupAdmin chgrpmem 2555 root.security GroupAdmin pwdadm 4555 root.security PasswdManage, PasswdAdmin passwd 4555 root.security chsec 4550 root.security UserAdmin, GroupAdmin, PasswdAdmin, UserAudit lssec 0550 root.security PasswdAdmin chrole 4550 root.security RoleAdmin lsrole 0550 root.security mkrole 4550 root.security RoleAdmin rmrole 4550 root.security RoleAdmin backup 4555 root.system Backup restore 4555 root.system Restore Utilisateurs, rôles et mots de passe 2-7 Comptes utilisateur • Attributs utilisateur recommandés, page 2-8 • Contrôle des comptes utilisateur, page 2-9 • ID de connexion, page 2-10 • Sécurisation à l’aide de listes de contrôle des accès (ACL), page 2-10 • Variable d’environnement PATH, page 2-10 Attributs utilisateur recommandés La gestion des utilisateurs consiste à créer des utilisateurs et des groupes, et à définir leurs attributs. L’un des principaux attributs est la méthode d’authentification. Les utilisateurs sont les principaux agents du système. Leurs attributs contrôlent leurs droits d’accès, environnement, méthode d’authentification, et la façon, le moment et l’emplacement où leurs comptes sont accessibles. Les groupes sont des ensembles d’utilisateurs pouvant partager les mêmes droits d’accès à des ressources protégées. Un groupe, défini par un ID, est composé de membres et d’administrateurs. Le créateur du groupe est généralement le premier administrateur. De nombreux attributs peuvent être définis pour chaque compte utilisateur, y compris les attributs de mot de passe et de connexion. Pour obtenir une liste des attributs pouvant être définis, consultez la section Présentation du système de quotas de disque, page 2-30. Les attributs suivants sont recommandés : • Chaque utilisateur doit disposer d’un ID utilisateur unique. Les outils de gestion de comptes et mesures de sécurité ne fonctionnent que si chaque utilisateur dispose de son propre ID. • Attribuez aux utilisateurs des noms permettant de les identifier facilement sur le système. L’idéal est de choisir leurs noms réels, car la plupart des systèmes de messagerie utilisent l’ID utilisateur pour référencer le message entrant. • Ajoutez, modifiez et supprimez des utilisateurs à l’aide du Web-based System Manager ou de l’interface SMIT. Bien que vous puissiez exécuter toutes ces tâches depuis la ligne de commandes, ces interfaces permettent d’éviter certaines erreurs. • N’attribuez pas de mot de passe à un compte utilisateur avant que l’utilisateur ne soit prêt à se connecter au système. Si le champ mot de passe a pour valeur un * (astérisque) dans le fichier /etc/passwd, les informations sur les comptes sont conservées, mais il est impossible de se connecter à ce compte. • Ne modifiez pas les ID utilisateur définis par le système, nécessaires à son bon fonctionnement. Ces ID utilisateur sont énumérés dans le fichier /etc/passwd. • En général, n’attribuez au paramètre admin la valeur true pour aucun ID utilisateur. Seul l’utilisateur root peut modifier les attributs des utilisateurs, et possède admin=true dans le fichier /etc/security/user. Le système d’exploitation prend en charge les attributs utilisateur standard habituels des fichiers /etc/passwd et /etc/group, tels que : 2-8 Informations d’authentification Définit le mot de passe Données d’identification Indique l’identifiant de l’utilisateur et les ID du groupe principal et des groupes complémentaires Environnement Indique l’environnement de shell et d’accueil. Guide de sécurité Contrôle des comptes utilisateur Un ensemble d’attributs est associé à chaque compte utilisateur. Ces attributs sont créés avec des valeurs par défaut lorsqu’un utilisateur est créé avec la commande mkuser. Ils peuvent être modifiés par la commande chuser. Vous trouverez ci–dessous la liste des attributs qui ne sont pas utilisés pour contrôler des aspects non liés à la qualité du mot de passe : account_locked Pour qu’un compte soit explicitement verrouillé, attribuez la valeur true à cet attribut. Sa valeur par défaut est false admin Avec la valeur true, cet utilisateur ne peut modifier son mot de passe. Seul l’administrateur peut le modifier. admgroups Répertorie les groupes pour lesquels l’utilisateur a des droits d’administrateur. Il peut ajouter ou supprimer des membres de ces groupes. auth1 Méthode d’authentification utilisée pour permettre l’accès des utilisateurs. Généralement, il a pour valeur SYSTEM, qui utilisera alors les méthodes les plus récentes. auth2 Méthode utilisée une fois l’utilisateur authentifié par la méthode spécifiée dans auth1. Elle ne peut pas bloquer l’accès au système. Généralement, sa valeur est NONE. daemon Ce paramètre booléen indique si l’utilisateur est autorisé à lancer des démons ou sous–systèmes à l’aide de la commande startsrc. Limite également l’utilisation de cron et at. login Indique si l’utilisateur a la possibilité d’établir une connexion. logintimes Limite les périodes d’accès d’un utilisateur. Par exemple, un utilisateur peut n’avoir accès au système que durant les heures de bureau. registry Indique le registre des utilisateurs. Il peut servir à indiquer au système des informations sur les utilisateurs contenues dans les différents registres, tels que NIS, LDAP or Kerberos. rlogin Indique si l’utilisateur a la possibilité d’établir une connexion via rlogin ou telnet. su Indique si d’autres utilisateurs peuvent passer sur cet ID à l’aide de la commande su. sugroups Indique quels groupes sont autorisés à passer sur cet ID ttys Limite certains comptes à des zones physiques sécurisées expires Gère les comptes d’étudiants ou d’invités ; permet aussi de désactiver des comptes temporairement loginretries Indique le nombre maximum d’échecs de connexion successifs avant le verrouillage de l’ID utilisateur par le système. Les échecs de connexion sont consignés dans /etc/security/lastlog. umask Indique l’umask initial de l’utilisateur L’ensemble des attributs utilisateur est défini dans les fichiers /etc/security/user, /etc/security/limits, /etc/security/audit/config et /etc/security/lastlog. La valeur utilisée par défaut lors de la création d’un utilisateur à l’aide de la commande mkuser est indiquée dans le fichier /usr/lib/security/mkuser.default. Seules les options qui remplacent les valeurs par défaut dans les strophes default de /etc/security/user et /etc/securtiy/limits, ainsi que les classes d’audit, doivent être spécifiées dans le fichier mkuser.default. Certains de ces attributs contrôlent la façon dont un utilisateur peut se connecter, et peuvent être configurés pour verrouiller automatiquement le compte utilisateur (empêcher les connexions suivantes) dans certaines conditions. Utilisateurs, rôles et mots de passe 2-9 Une fois le compte utilisateur verrouillé par le système, l’utilisateur ne peut plus se connecter avant que l’administrateur système ne réinitialise son attribut unsuccessful_login_count dans le fichier /etc/security/lastlog, à une valeur soit inférieure au nombre maximum d’échecs de connexion. Il faut pour cela utiliser la commande chsec suivante : chsec –f /etc/security/lastlog –s nomutilisateur –a unsuccessful_login_count=0 La commande chsec permettra de modifier les valeurs par défaut dans la strophe default du fichier de sécurité approprié, tel que /etc/security/user ou /etc/security/limits. De nombreuses valeurs par défaut sont définies comme comportement standard. Pour spécifier explicitement des attributs définis à chaque création d’utilisateur, modifiez l’entrée user dans /usr/lib/security/mkuser.default. Pour des informations sur les attributs de mot de passe étendus, consultez la section Mots de passe, page 2-23. ID de connexion Le système d’exploitation identifie les utilisateurs grâce à leur ID de connexion. Cet ID permet au système de suivre toutes les actions d’un utilisateur. Après la connexion d’un utilisateur, mais avant l’exécution de son programme initial, le système affecte l’ID de connexion du processus à l’ID utilisateur trouvé dans la base de données. Tous les processus suivants au cours de la session de connexion sont référencés par cet ID. Ces références permettent le suivi des activités exécutées par cet ID de connexion. Au cours de la session, l’utilisateur peut réinitialiser l’ID utilisateur effectif, l’ID utilisateur réel, l’ID de groupe effectif, l’ID de groupe réel, et les autres ID de groupe, mais il ne peut pas modifier l’ID de connexion. Sécurisation à l’aide de listes de contrôle des accès (ACL) Pour atteindre un niveau de sécurité système convenable, élaborez une politique de sécurité cohérente pour la gestion de tous les comptes utilisateur. La liste de contrôle des accès (ACL) est la méthode de sécurité la plus courante. Pour des informations sur les ACL et l’élaboration d’une politique de sécurité, consultez dans ce manuel la section sur les ACL. Variable d’environnement PATH La variable d’environnement PATH est importante pour la sécurité. Elle indique les répertoires dans lesquels une commande doit être recherchée. Pour l’ensemble du système, la valeur par défaut de PATH est indiquée dans le fichier /etc/profile. Chaque utilisateur dispose normalement d’une valeur PATH dans son fichier $HOME/.profile. La valeur PATH du fichier .profile remplace la valeur PATH du système ou lui ajoute des répertoires. Les modifications non autorisées à la variable d’environnement PATH peuvent permettre à un utilisateur connecté de tromper d’autres utilisateurs (y compris les utilisateurs root). Les programmes trompeurs (ou programmes Cheval de Troie) remplacent les commandes du système puis interceptent les informations destinées à cette commande, telles que les mots de passe. Par exemple, si un utilisateur modifie la valeur PATH de façon à ce que le système commence par rechercher le répertoire /tmp lorsqu’une commande est lancée, et qu’il place dans le répertoire /tmp un programme nommé su qui demande le mot de passe root comme le fait la commande su, alors le programme /tmp/su envoie le mot de passe root à cet utilisateur et appelle la commande su réelle avant de se fermer. Dans ce cas, tout utilisateur root ayant utilisé la commande su révélerait le mot de passe root sans même s’en rendre compte. Ceci n’est qu’un exemple de méthode d’acquisition d’informations confidentielles par la modification des valeurs PATH. 2-10 Guide de sécurité Toutefois, une procédure simple suffit pour éviter des problèmes liés à la variable d’environnement PATH : • Lorsque vous avez un doute, appelez une commande par le nom de chemin complet. Lorsque vous entrez un nom de chemin entier, la variable d’environnement PATH est ignorée. • Ne placez jamais le répertoire en cours (indiqué par. (point)) dans la valeur PATH indiquée pour l’utilisateur root. Ne permettez jamais la spécification du répertoire en cours dans /etc/profile. • L’utilisateur root doit avoir sa propre spécification PATH dans son .profile privé. Généralement, la spécification dans /etc/profile répertorie les éléments minimum standard pour tous les utilisateurs, alors que l’utilisateur root peut avoir besoin de plus ou de moins de répertoires que la valeur par défaut. • Prévenez les autres utilisateurs de ne pas modifier leurs fichiers .profile sans avoir consulté l’administrateur système. Autrement, un utilisateur pourrait apporter des modifications qui permettraient un accès non souhaité. Les droits d’un fichier .profile d’utilisateur doivent être définis sur 740. • Les administrateurs système ne doivent pas utiliser la commande su pour obtenir le privilège root depuis une session utilisateur, car la valeur PATH de l’utilisateur indiquée dans le fichier .profile est alors effective. Les utilisateurs peuvent définir leurs fichiers .profile comme bon leur semble. Les administrateurs système doivent se connecter au poste de l’utilisateur en tant que root, ou mieux, avec leur propre ID, et utiliser la commande suivante : /usr/bin/su – root Ceci assure d’utiliser l’environnement root au cours de la session. Si un administrateur système travaille en tant que root dans une autre session utilisateur, il doit alors indiquer des chemins d’accès complets au cours de la session. • Protégez la variable d’environnement IFS (input field separator) contre les modifications dans le fichier /etc/profile. Méfiez–vous de tout utilisateur qui modifie la variable IFS dans le fichier .profile. Elle peut servir à modifier la valeur PATH. Configuration d’un accès FTP anonyme avec un compte utilisateur sécurisé Le présent scénario configure un accès ftp anonyme avec un compte utilisateur sécurisé, à l’aide de l’interface de ligne de commandes et d’un script. Remarque : Ce scénario ne peut pas être utilisé sur un système équipé de CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+). 1. Vérifiez que l’ensemble de fichiers bos.net.tcp.client est installé sur votre système, à l’aide de la commande : lslpp –L | grep bos.net.tcp.client Si vous ne recevez aucune sortie, l’ensemble de fichiers n’est pas installé. Pour plus d’informations sur son installation, reportez–vous au manuel AIX 5L Version 5.2 – Références et guide d’installation. 2. Vérifiez que vous disposez d’au moins 8 Mo d’espace libre dans le répertoire /home du système : df –k /home Le script de l’étape 4 ci–dessous, nécessite au moins 8 Mo d’espace libre dans le répertoire /home pour installer les fichiers et répertoires nécessaires. Si vous devez Utilisateurs, rôles et mots de passe 2-11 augmenter l’espace disponible, reportez–vous au manuel AIX 5L Version 5.2 – System Management Guide: Operating System and Devices. 3. Avec les droits d’accès root, allez dans le répertoire /usr/samples/tcpip. Par exemple : cd /usr/samples/tcpip 4. Pour configurer le compte, exécutez le script suivant : ./anon.ftp 5. Lorsque l’invite Are you sure you want to modify /home/ftp? apparaît, entrez yes. Le résultat affiché sera semblable au suivant : Added Made Made Made Made Made Made user anonymous. /home/ftp/bin directory. /home/ftp/etc directory. /home/ftp/pub directory. /home/ftp/lib directory. /home/ftp/dev/null entry. /home/ftp/usr/lpp/msg/en_US directory. 6. Passez dans le répertoire /home/ftp. Par exemple : cd /home/ftp 7. Créez un sous–répertoire home, en entrant : mkdir home 8. Changez les droits d’accès du répertoire /home/ftp/home en drwxr–xr–x, en entrant : chmod 755 home 9. Passez dans le répertoire /home/ftp/etc, en entrant : cd /home/ftp/etc 10.Créez le sous–répertoire objrepos, en entrant : mkdir objrepos 11. Changez les droits d’accès du répertoire /home/ftp/etc/objrepos en drwxrwxr–x, en entrant : chmod 775 objrepos 12.Changez le propriétaire et le groupe du répertoire /home/ftp/etc/objrepos en utilisateur root et groupe système, en entrant : chown root:system objrepos 13.Créez un sous–répertoire security, en entrant : mkdir security 14.Changez les droits d’accès du répertoire / home/ftp/etc/security en drwxr–x–––, en entrant : chmod 750 security 15.Changez le propriétaire et le groupe du répertoire /home/ftp/etc/security en utilisateur root et groupe de sécurité, en entrant : chown root:security security 16.Passez dans le répertoire / home/ftp/etc/security, en entrant : cd security 17.Ajoutez un utilisateur à l’aide du raccourci SMIT suivant : smit mkuser Dans le présent scénario, nous ajoutons l’utilisateur test. 2-12 Guide de sécurité 18.Dans les zones SMIT, entrez les valeurs suivantes : NOM utilisateur ADMINISTRATEUR ? GROUPE principal ENSEMBLE de groupes Un autre utilisateur peut UTILISER SU ? répertoire HOME [test] true [staff] [staff] true [/home/test] Après avoir entré vos modifications, appuyez sur Entrée pour créer l’utilisateur. A la fin du processus SMIT, quittez SMIT. 19.Créez un mot de passe pour l’utilisateur à l’aide de la commande suivante : passwd test A l’invite, entrez le mot de passe voulu. Vous devez le saisir une deuxième fois pour confirmation. 20.Passez dans le répertoire /home/ftp/etc, en entrant : cd /home/ftp/etc 21.Copiez le fichier /etc/passwd en /home/ftp/etc/passwd à l’aide de la commande suivante : cp /etc/passwd /home/ftp/etc/passwd 22.Avec l’éditeur de votre choix, éditez le fichier /home/ftp/etc/passwd. Par exemple : vi passwd 23.Supprimez toutes les lignes du contenu copié, sauf celles concernant les utilisateurs root, ftp et test. Après modification, le contenu du fichier doit être semblable à ce qui suit : root:!:0:0::/:/bin/ksh ftp:*:226:1::/home/ftp:/usr/bin/ksh test:!:228:1::/home/test:/usr/bin/ksh 24.Enregistrez vos modifications et quittez l’éditeur. 25.Changez les droits d’accès du fichier /home/ftp/etc/passwd en –rw–r––r––, en entrant : chmod 644 passwd 26.Changez le propriétaire et le groupe du répertoire /home/ftp/etc/passwd en utilisateur root et groupe de sécurité, en entrant : chown root:security passwd 27.Copiez le contenu du fichier /etc/security/passwd vers /home/ftp/etc/security/passwd, à l’aide de la commande suivante : cp /etc/security/passwd /home/ftp/etc/security/passwd 28.Avec l’éditeur de votre choix, éditez le fichier /home/ftp/etc/security/passwd. Par exemple : vi ./security/passwd 29.Supprimez toutes les strophes du contenu copié, sauf celle concernant l’utilisateur test. 30.Supprimez la ligne flags = ADMCHG de la strophe de l’utilisateur test. Après modification, le contenu du fichier doit être semblable à ce qui suit : test: password = 2HaAYgpDZX3Tw lastupdate = 990633278 31.Enregistrez vos modifications et quittez l’éditeur. 32.Changez les droits d’accès du fichier /home/ftp/etc/security/passwd en –rw–––––––, en entrant : Utilisateurs, rôles et mots de passe 2-13 chmod 600 ./security/passwd 33.Changez le propriétaire et le groupe du répertoire /home/ftp/etc/ security/passwd en utilisateur root et groupe de sécurité, en entrant : chown root:security ./security/passwd 34.Avec l’éditeur de votre choix, éditez le fichier /home/ftp/etc/security/group. Par exemple : vi ./security/group 35.Ajoutez les lignes suivantes au fichier : system:*:0: staff:*:1:test 36.Enregistrez vos modifications et quittez l’éditeur. 37.A l’aide des commandes suivantes, copiez le contenu approprié dans le répertoire /home/ftp/etc/objrepos : cp /etc/objrepos/CuAt ./objrepos cp /etc/objrepos/CuAt.vc ./objrepos cp /etc/objrepos/CuDep ./objrepos cp /etc/objrepos/CuDv ./objrepos cp /etc/objrepos/CuDvDr ./objrepos cp /etc/objrepos/CuVPD ./objrepos cp /etc/objrepos/Pd* ./objrepos 38.Passez dans le répertoire /home/ftp/home, en entrant : cd ../home 39.Créez un nouveau répertoire personnel pour votre utilisateur, en entrant : mkdir test Il s’agira du répertoire de travail du nouvel utilisateur ftp. 40.Changez le propriétaire et le groupe du répertoire /home/ftp/home/test en utilisateur test et en groupe système, en entrant : chown test:staff test 41.Changez les droits d’accès du fichier /home/ftp/home/test en –rwx––––––, en entrant : chmod 700 test A ce stade, une sous–connexion ftp est configurée sur votre machine. Vous pouvez la tester grâce à la procédure ci–après : 1. Avec ftp, connectez–vous à l’hôte sur lequel vous avez créé l’utilisateur test. Par exemple : ftp MyHost 2. Connectez–vous en tant qu’utilisateur anonymous. Lorsque vous êtes invité à spécifier un mot de passe, appuyez sur Entrée. 3. Basculez sur le nouvel utilisateur test, à l’aide de la commande suivante : user test A l’invite de mot de passe, utilisez celui que vous avez créé à l’étape 19 ci–dessus. 4. Servez–vous de la commande pwd pour vérifier que le répertoire personnel de l’utilisateur existe. Par exemple : ftp> pwd /home/test /home/test apparaît alors comme sous–répertoire ftp. En fait, le nom du chemin d’accès complet sur l’hôte est /home/ftp/home/test. 2-14 Guide de sécurité Comptes utilisateurs spécifiques au système AIX fournit un ensemble par défaut de comptes utilisateur spécifiques au système, qui évite à l’utilisateur root et au système de détenir tous les fichiers et systèmes de fichiers du système d’exploitation. Attention : Soyez prudent lors de la suppression d’un compte utilisateur spécifique au système. Vous pouvez désactiver un compte en insérant un astérisque (*) au début de la ligne correspondante du fichier /etc/security/passwd. Faites attention à ne pas désactiver le compte root. Si vous supprimez des comptes utilisateur spécifiques au système ou désactivez le compte root, le système d’exploitation ne fonctionnera pas. Les comptes suivants sont prédéfinis dans le système d’exploitation : root Le compte utilisateur root, UID 0, parfois appelé superutilisateur, qui permet d’exécuter les tâches de maintenance et de résoudre les problèmes du système. daemon Ce compte utilisateur sert uniquement à détenir et exécuter les processus serveur du système et les fichiers associés. Ce compte garantit que ces processus s’exécutent avec les droits appropriés d’accès aux fichiers. bin Le compte utilisateur bin détient généralement les fichiers exécutables pour la plupart des commandes utilisateur. Son rôle principal est d’aider à répartir la propriété des répertoires et fichiers système importants, afin que tout ne soit pas détenu uniquement par les comptes utilisateur root et sys. sys L’utilisateur sys détient le point de montage par défaut du cache DFS (Distributed File Service), qui doit exister préalablement à l’installation et à la configuration du DFS sur un client. Le répertoire /usr/sys sert également à stocker les images d’installation. adm Le compte utilisateur adm détient deux fonctions système de base : 1. Diagnostics, dont les outils sont stockés dans le répertoire /usr/sbin/perf/diag_tool. 2. Comptabilité, dont les outils sont stockés dans les répertoires suivants : – /usr/sbin/acct – /usr/lib/acct – /var/adm – /var/adm/acct/fiscal – /var/adm/acct/nite – /var/adm/acct/sum nobody Le compte utilisateur nobody est utilisé par le produit NFS (Network File System) pour permettre les impressions à distance. Ce compte permet à un programme d’accorder un accès root temporaire aux utilisateurs root. Par exemple, avant d’activer RPC sécurisé ou NFS sécurisé, contrôlez la clé /etc/public sur le serveur NIS maître pour vérifier si un utilisateur ne s’est pas vu attribuer une clé publique et une clé secrète. En tant qu’utilisateur root, vous pouvez créer une entrée dans la base de données pour chaque utilisateur sans affectation, en entrant : newkey –u nomutilisateur Vous pouvez aussi créer une entrée dans la base de données pour le compte utilisateur nobody, chaque utilisateur pourra alors exécuter le programme chkey pour créer ses propres entrées dans la base de données, sans se connecter en tant que root. Utilisateurs, rôles et mots de passe 2-15 Suppression de comptes utilisateur par défaut inutiles Lors de l’installation du système d’exploitation, plusieurs ID utilisateur et de groupe sont créés. Selon les applications exécutées sur votre système et selon l’emplacement de votre système sur le réseau, certains de ces ID utilisateur et de groupe peuvent devenir des éléments vulnérables qui nuisent à la sécurité. Si ces ID utilisateur et de groupe ne sont pas nécessaires, vous pouvez les retirer pour minimiser les risques. Le tableau suivant répertorie les ID utilisateur par défaut que vous pouvez le plus souvent supprimer : Tableau 6. ID utilisateur par défaut que vous pourrez souvent supprimer. ID utilisateur Description uucp, nuucp Détenteur de fichiers cachés utilisés par le protocole uucp. Le compte utilisateur uucp est utilisé pour le programme de copie UNIX–to–UNIX, lequel est un groupe de commandes, programmes, et fichiers, présent sur la plupart des systèmes UNIX, et permettant de communiquer avec un autre système UNIX via une ligne dédiée ou une ligne téléphonique. lpd Détenteur de fichiers utilisés par le sous–système d’impression imnadm Moteur de recherche IMN (utilisé par Documentation Library Search) guest Permet l’accès aux utilisateurs qui n’ont normalement pas accès aux comptes Le tableau suivant répertorie les ID de groupe que vous pouvez peut–être supprimer : Tableau 7. ID de groupe que vous pouvez peut–être supprimer. ID de groupe Description uucp Groupe auquel appartiennent les utilisateurs nuucp uucpand printq Groupe auquel appartient l’utilisateur lpd imnadm Groupe auquel appartient l’utilisateur imnadm Analysez votre système pour déterminer quels ID ne sont pas nécessaires. Il se peut que d’autres ID utilisateur ou de groupe ne soient pas nécessaires. Avant de commencer à exploiter votre système, effectuez une évaluation complète des ID disponibles. 2-16 Guide de sécurité Listes de contrôle des accès (ACL) Le contrôle des accès est assuré par des ressources protégées, qui déterminent qui est habilité à accéder à ces ressources. Le système d’exploitation permet le contrôle discrétionnaire et l’accès sélectif: Le propriétaire d’une ressource d’informations peut accorder aux autres utilisateurs des droits d’accès en lecture ou en écriture à cette ressource. Un utilisateur autorisé à accéder à un objet peut créer des copies de cet objet et accorder à un tiers l’accès à ce nouvel objet. Par contre, seul le propriétaire de l’objet peur accorder à un tiers l’accès à l’objet d’origine. Le propriétaire d’un objet et l’utilisateur root sont les seuls utilisateurs autorisés à modifier les droits d’accès à un objet. Les utilisateurs disposent de droits d’accès de type utilisateur sur les seuls objets qui leur appartiennent. D’une façon générale, les utilisateurs se voient octroyer les droits de leur groupe ou les droits par défaut sur une ressource. La principale tâche au niveau de l’administration du contrôle des accès est de définir les membres des groupes, l’appartenance à un groupe déterminant de fait l’accès aux fichiers du système (autres que ceux créés par l’utilisateur). Les ACL améliorent la qualité des contrôles d’accès aux fichiers, en créant des droits étendus, qui modifient les droits de base attribués aux individus et aux groupes. Par le biais de ces droits étendus, vous pouvez autoriser ou interdire l’accès à un fichier sans modifier les droits de base. Le contrôle d’accès comporte également la gestion des ressources protégées avec les programmes setuid et setgid et l’étiquetage des copies. Le système d’exploitation prend en charge plusieurs types de ressources de données ou objets. Ces objets permettent aux processus utilisateur de stocker ou de communiquer des données. Les principaux types d’objets sont les suivants : • Fichiers et répertoires (servant au stockage de données), • Tubes nommés, files d’attente de messages, segments de mémoire partagée et sémaphores (servant au transfert de données entre processus). Un propriétaire, un groupe et un mode sont associés à chaque objet. Le mode définit les droits d’accès du propriétaire, du groupe et des autres utilisateurs. Voici les attributs de contrôle d’accès direct pour les différents types d’objets : Utilisateurs, rôles et mots de passe 2-17 Owner Le propriétaire d’un objet spécifique contrôle ses attributs d’accès discrétionnaire. Les attributs du propriétaire sont affectés à l’ID utilisateur effectif du processus créé. Pour les objets système de fichiers, les attributs de contrôle d’accès direct d’un propriétaire ne peuvent être modifiés sans privilège root. Pour les objets SVIPC (System V InterProcess Communication), le propriétaire peut être modifié par le créateur ou par le propriétaire. Le créateur associé à ces objets possède les mêmes droits que le propriétaire (y compris l’autorisation d’accès). Le créateur ne peut être modifié, même avec les privilèges root. Group Les objets SVIPC sont initialisés à l’ID groupe effectif du processus créé. Pour les objets système de fichiers, les attributs de contrôle d’accès direct sont initialisés à l’ID groupe effectif du processus créé ou à l’ID groupe du répertoire parent (ceci est défini par l’indicateur héritage du groupe du répertoire parent). Le propriétaire d’un objet peut modifier le groupe ; le nouveau groupe est obligatoirement l’ID groupe effectif du processus créé ou l’ID groupe du répertoire parent. Le propriétaire d’un objet peut modifier le groupe ; le nouveau groupe est obligatoirement l’ID groupe effectif ou l’ID groupe supplémentaire du processus courant du propriétaire. Comme indiqué plus haut, les objets SVIPC ont un groupe de création associé qui ne peut être modifié et partage l’autorisation d’accès du groupe objet. Remarque : Une liste de contrôle des accès ne peut pas excéder une page mémoire (environ 4096 octets). Les listes de contrôle des accès sont maintenues par les commandes aclget, acledit et aclput. La commande chmod en mode numérique (avec notation octale) peut définir des droits d’accès et des attributs de base. La sous–routine chmod, appelée par la commande, désactive les droits d’accès étendus. Donc, si vous utilisez le mode numérique de la commande chmod sur un fichier doté d’une liste ACL, les droits étendus sont désactivés. Le mode symbolique de la commande chmod ne désactive pas ces droits. Pour en savoir plus sur ces modes, reportez–vous à la commande chmod. Utilisation des programmes setuid et setgid Le mécanisme de bits d’autorisation permet le contrôle d’accès effectif des ressources dans la plupart des situations. Pour un contrôle plus précis, le système d’exploitation propose les programmes setuid et setgid. La plupart des programmes sont exécutés avec les droits d’accès utilisateur et groupe de l’utilisateur qui les a appelés. Les propriétaires de programmes peuvent associer les droits d’accès de l’utilisateur qui a appelé ces programmes en transformant ces derniers en programmes setuid ou setgid, c’est–à–dire en définissant dans leur zone d’autorisation le bit setuid ou setgid. Quand le processus exécute le programme, il obtient les droits d’accès du propriétaire du programme. Un programme setuid s’exécute avec les droits d’accès de son propriétaire, tandis qu’un programme setgid a les droits d’accès de son groupe ; les deux bits peuvent être définis en fonction du mécanisme d’autorisation. Bien que les droits d’accès supplémentaires soient attribués au processus, ils sont contrôlés par le programme qui les possède. Ainsi, setuid et setgid permettent les contrôles d’accès programmés par l’utilisateur dans lesquels les droits d’accès sont attribués indirectement. Le programme fonctionne comme un sous–système sécurisé, surveillant les droits d’accès utilisateur. setuid et setgid sont très efficaces, mais peuvent mettre la sécurité en danger s’ils ne sont pas soigneusement mis en œuvre. Notamment, le programme ne doit jamais renvoyer le 2-18 Guide de sécurité contrôle à l’utilisateur s’il détient toujours les droits d’accès de son propriétaire, ce qui permettrait à l’utilisateur d’utiliser sans restriction les droits du propriétaire. Remarque : Pour des raisons de sécurité, le système d’exploitation interdit les appels setuid ou setgid depuis un script shell. Droits d’accès administratifs Le système d’exploitation fournit des droits d’accès privilégiés pour la gestion du système. Les privilèges système sont fondés sur les ID utilisateur et groupe. Sont reconnus privilégiés les utilisateurs dont l’ID utilisateur ou groupe effectif est défini à 0. Les processus avec un ID utilisateur effectif à 0 sont des processus réputés utilisateur root qui peuvent : • Lire ou écrire tout objet • Appeler toute fonction système • Effectuer certains contrôles de sous–système avec les programmes setuidroot. Il existe deux types de privilèges pour l’administration du système : le privilège de la commande su et celui du programme setuid–root. Avec la commande su, tous les programmes appelés fonctionnent comme des processus utilisateur root ; elle permet une gestion souple du système, mais n’est pas particulièrement sûre. Passer un programme en programme setuid–root signifie que le programme appartient à un utilisateur root avec le bit setuid défini. Un programme setuid–root offre des fonctions administratives à tout utilisateur sans compromettre la sécurité ; le privilège n’est pas directement accordé à l’utilisateur, il est encapsulé dans le programme. Encapsuler toutes les fonctions administratives nécessaires dans des programmes setuid–root n’est pas un procédé particulièrement simple, mais il est sûr. Droits d’accès de base Les droits de base sont constitués des droits d’accès attribués normalement au propriétaire du fichier, au groupe associé et aux autres utilisateurs. Il s’agit des droits d’accès : en lecture (r), en écriture (w) et en exécution/recherche(x). Dans une liste de contrôle des accès, les droits de base sont au format suivant, le paramètre Mode étant exprimé sous la forme rwx (un tiret indiquant l’absence de droit) : droit d’accès de base owner(nom): Mode group(groupe): Mode others: Mode Attributs Trois attributs peuvent être ajoutés à une liste de contrôle des accès: setuid (SUID) Le bit de mode Set–user–ID. Cet attribut définit les ID utilisateur enregistré et effectif du processus, avec l’ID du propriétaire du fichier exécuté. setgid (SGID) Le bit de mode Set–group–ID. Cet attribut définit les ID de groupe enregistré et effectif du processus avec l’ID de groupe du fichier exécuté. savetext (SVTX) Indique que seuls les propriétaires de fichiers peuvent créer ou supprimer des liens entre fichiers, dans le répertoire indiqué. Ces attributs sont ajoutés au format suivant : attributs : SUID, SGID, SVTX Utilisateurs, rôles et mots de passe 2-19 Droits d’accès étendus Les droits étendus sont un moyen pour le propriétaire d’un fichier d’affiner les droits d’accès à ce fichier. Ils permettent de modifier les droits de base (utilisateur, groupe et autres) en accordant, en supprimant ou en spécifiant des droits spécifiques pour des individus, des groupes ou des combinaisons de groupes. Les droits d’accès sont modifiés à l’aide de mots clés. Les mots clés permit, deny et specify sont définis comme suit : permit Accorde à l’utilisateur ou au groupe le droit spécifié sur le fichier deny Retire à l’utilisateur ou au groupe le droit spécifié sur le fichier specify Définit précisément les droits de l’utilisateur ou du groupe sur le fichier Si un droit est refusé à un utilisateur par le biais de deny ou de specify, ce refus ne peut être rétabli par aucune autre entrée. La liste de contrôle des accès (ACL) doit être activée (mot clé enabled) pour que les droits étendus prennent effet. La valeur par défaut est disabled. Dans une liste ACL, les droits étendus apparaissent sous la forme : droits d’accès étendus enabled | disabled permit Mode InfoUtil...: deny Mode InfoUtil...: specify Mode InfoUtil...: Placez chacune des entrées permit, deny et specify sur une ligne distincte. Le paramètre Mode est sous la forme rwx (un tiret indiquant l’absence de droit). Le paramètre InfoUtil est sous la forme u:NomUtilisateur ou g:NomGroupe, ou encore par une combinaison séparée par une virgule de u:NomUtilisateur et g:NomGroupe. Remarque : Si vous spécifiez plusieurs noms dans une entrée, elle ne peut être utilisée dans une décision de contrôle d’accès, un processus n’ayant qu’un seul ID utilisateur. Exemple de liste de contrôle des accès Voici un exemple d’ACL : attributes: SUID base permissions: owner(frank): rw– group(system): r–x others: ––– extended permissions: enabled permit rw– u:dhs deny r–– u:chas, g:system specify r–– u:john, g:gateway, g:mail permit rw– g:account, g:finance Voici la signification des différents éléments de cette liste : • La première ligne indique que le bit setuid est activé. • La deuxième ligne, qui introduit les droits de base, est facultative. • Les trois lignes suivantes précisent ces droits. Les noms du propriétaire et du groupe (entre parenthèses) sont donnés à titre d’information : les modifier n’a pas d’incidence sur le propriétaire réel du fichier, pas plus que sur le groupe auquel appartient le fichier. Seules les commandes chown et chgrp permettent de modifier ces attributs. • La ligne suivante, qui introduit les droits étendus, est facultative. • La ligne suivante indique que les droits étendus qui suivent sont activés. 2-20 Guide de sécurité • Les quatre dernières lignes correspondent aux droits étendus : la première accorde à l’utilisateur dhs l’accès en lecture (r) et en écriture (w) au fichier. • La deuxième interdit l’accès en lecture (r) à l’utilisateur chas lorsqu’il est membre du groupe system. • La troisième accorde à l’utilisateur john l’accès en lecture (r) tant qu’il est membre des deux groupes gateway et mail. S’il n’appartient pas à ces deux groupes, l’accès lui est refusé. • La dernière ligne, enfin, accorde à tout utilisateur membre des deux groupes account et finance l’accès en lecture (r) et en écriture (w). Remarque : Plusieurs entrées étendues peuvent s’appliquer à un processus qui demande l’accès à un objet contrôlé, les entrées restrictives ont la priorité sur les modes permissifs. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande acledit dans le manuel AIX 5L Version 5.2 Commands Reference. Autorisations d’accès Le propriétaire de la ressource d’informations est responsable de la gestion des droits d’accès. Les ressources sont protégées par des bits d’accès, intégrés au mode de l’objet. Ces bits définissent les droits du propriétaire de l’objet, ceux du groupe correspondant et ceux de la classe par défaut autres. Le système d’exploitation gère trois droits d’accès (lecture, écriture et exécution), qui peuvent être accordés séparément. Lorsqu’un utilisateur se connecte à un compte (via une commande login ou su), les ID utilisateur et groupe attribués au compte sont associés aux processus de cet utilisateur et en déterminent les droits d’accès. Ces ID déterminent les droits d’accès du processus. Pour les fichiers, les répertoires, les tubes nommés, et les unités (fichiers spéciaux), les accès sont définis comme suit : • Pour chaque entrée (ACE) de la liste de contrôle des accès (ACL), la liste des identificateurs est comparée aux identificateurs du processus. Si elles sont identiques, le processus se voit attribuer les droits et les interdits définis pour cette entrée. Les correspondances logiques pour les droits comme pour les interdits sont calculées pour chaque entrée concernée de l’ACL. Si le processus demandeur ne correspond à aucune entrée de l’ACL, il se voit attribuer les droits associés à l’entrée par défaut. • Si le droit d’accès demandé est autorisé (inclus dans l’union des droits) et non interdit (inclus dans l’union des interdits), l’accès est accordé. Sinon, il est refusé. Un processus doté de l’ID utilisateur 0 est dit processus utilisateur root. Ces processus ont généralement tous les droits. Mais si un processus root demande le droit d’exécution sur un programme, celui–ci ne lui est accordé que s’il est détenu par au moins un utilisateur. La liste des identificateurs d’une ACL correspond à un processus si tous ses identificateurs correspondent à l’identificateur effectif – de même type – du processus demandeur. Un identificateur de type USER correspond à un processus s’il est identique à l’ID utilisateur effectif du processus. Un identificateur de type GROUP correspond s’il est identique à l’ID groupe effectif du processus ou à l’un des ID des groupes complémentaires. Ainsi, une ACE avec la liste d’identificateurs suivante : USER:fred, GROUP:philosophers, GROUP:software_programmer correspondra au processus dont l’ID utilisateur est fred et l’ensemble de groupes : philosophers, philanthropists, software_programmer, doc_design mais pas au processus dont l’ID utilisateur est fred avec l’ensemble de groupes : philosophers, iconoclasts, hardware_developer, graphic_design Notez qu’une ACE avec la liste suivante correspond aux deux processus : USER:fred, GROUP:philosophers Utilisateurs, rôles et mots de passe 2-21 En d’autres termes, la liste d’identificateurs de l’ACE fonctionne comme un ensemble de conditions, à respecter pour que l’accès spécifié soit accordé. Tous les contrôles d’accès pour ces objets sont effectués au niveau de l’appel système, au moment du premier accès aux objets. Dans la mesure où l’accès aux objets SVIPC n’est pas nominatif, les contrôles sont effectués à chaque accès. Pour les objets avec noms de systèmes de fichiers, il est nécessaire de pouvoir résoudre le nom de l’objet réel. Les noms sont résolus de façon relative (au répertoire de travail du processus) ou absolue (par rapport au répertoire root du processus). Toute résolution de nom commence par la recherche de l’un de ces deux éléments. Le mécanisme de contrôle d’accès discrétionnaire assure un contrôle effectif de l’accès aux ressources ainsi qu’une protection distincte de la confidentialité et de l’intégrité des informations. Les mécanismes de contrôle gérés par le propriétaire ne sont effectifs que s’ils sont définis par les utilisateurs. Tous les utilisateurs doivent maîtriser le mécanisme d’octroi et de refus de droits d’accès. 2-22 Guide de sécurité Mots de passe Deviner les mots de passe est l’une des méthodes d’attaque les plus répandues. Il est donc essentiel de contrôler et surveiller votre politique de gestion des mots de passe. AIX intègre des mécanismes qui vous aideront à appliquer une politique de mots de passe plus efficace, telle que la définition de valeurs pour les données suivantes : • Nombres minimum et maximum de semaines écoulées avant et après la modification d’un mot de passe • Longueur minimum d’un mot de passe • Nombre minimum de caractères alphabétiques pouvant être utilisés lors de la sélection d’un mot de passe Cette section traite la façon dont AIX conserve et gère les mots de passe, et indique comment mettre en place une politique de mots de passe efficace. Les sujets traités dans cette section sont : • Qu’est–ce qu’un bon mot de passe ?, page 2-23 • Le fichier /etc/passwd, page 2-24 • Le fichier /etc/passwd et les environnements réseau, page 2-25 • Dissimulation des noms d’utilisateur et mots de passe, page 2-25 • Paramétrage des options de mot de passe recommandées, page 2-25 • Extension des restrictions de mot de passe, page 2-29 Qu’est–ce qu’un bon mot de passe ? Les mots de passe sont la première ligne de défense contre l’accès non autorisé aux systèmes. Pour être efficaces, ils doivent répondent aux critères suivants : • Un mélange de lettres en minuscules et majuscules. • Ils comportent des caractères alphabétiques, numériques ou de ponctuation. Il est aussi possible d’utiliser certains caractères tels que ~!@#$%^&*()–_=+[]{}|\;:’”,.?/<espace>. • Ils ne sont écrits nulle part. • Ils sont composés de sept à huit caractères, en cas d’utilisation du fichier /etc/security/passwd (d’autres règles d’authentification qui utilisent des registres, comme LDAP, autorisent des mots de passe plus longs). • Ne figurent pas dans les dictionnaires. • Ne sont pas des suites de lettres du clavier, telles que azerty. • Ne sont pas des mots réels ou suites de lettres connus, épelés à l’envers. • Ne contiennent aucune information sur vous–même, votre famille ou vos amis. • Ne ressemblent pas au précédent mot de passe • Peuvent être saisis rapidement, pour ne pas être identifiés par une personne à côté de vous. Vous pouvez également définir des règles plus strictes, interdisant l’utilisation dans les mots de passe de termes UNIX standard pouvant être devinés. Cette fonction utilise dictionlist, qui nécessite l’installation préalable des ensembles de fichiers bos.data et bos.txt. Pour mettre en place dictionlist, modifiez la ligne qui suit dans le fichier /etc/security/users : dictionlist = /usr/share/dict/words Utilisateurs, rôles et mots de passe 2-23 Le fichier /usr/share/dict/words fait appel à dictionlist pour empêcher l’utilisation des termes UNIX standard en tant que mot de passe. Le fichier /etc/passwd Habituellement, le fichier /etc/passwd est utilisé pour garder la trace de tous les utilisateurs enregistrés ayant accès au système. Le fichier /etc/passwd utilise le caractère ”:” comme séparateur. Il contient les informations suivantes : • nom d’utilisateur • mot de passe chiffré • ID utilisateur (UID) • ID du groupe de l’utilisateur (GID) • nom complet de l’utilisateur (GECOS) • répertoire personnel de l’utilisateur • shell de connexion Voici un exemple de fichier /etc/passwd : root:!:0:0::/:/usr/bin/ksh daemon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/var/adm: uucp:!:5:5::/usr/lib/uucp: guest:!:100:100::/home/guest: nobody:!:4294967294:4294967294::/: lpd:!:9:4294967294::/: lp:*:11:11::/var/spool/lp:/bin/false invscout:*:200:1::/var/adm/invscout:/usr/bin/ksh nuucp:*:6:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico imnadm:*:188:188::/home/imnadm:/usr/bin/ksh paul:!:201:1::/home/paul:/usr/bin/ksh jdoe:*:202:1:John Doe:/home/jdoe:/usr/bin/ksh Au contraire d’UNIX, qui conserve les mots de passe chiffrés dans le fichier /etc/password, AIX les enregistre par défaut dans le fichier /etc/security/password, lisible uniquement par le superutilisateur. AIX utilise le mot de passe classé dans /etc/passwd pour déterminer si un mot de passe existe ou si le compte est bloqué. Le fichier /etc/passwd doit être accessible en lecture par tous les utilisateurs, et accessible en écriture uniquement par l’utilisateur root (qui en est le propriétaire). Ceci est déterminé par –rw–r––r––. Si un ID utilisateur a un mot de passe, la zone de mot de passe contiendra un ! (point d’exclamation). Dans le cas contraire, la zone de mot de passe contiendra un * (astérisque). Les mots de passe chiffrés sont conservés dans le fichier /etc/security/passwd. L’exemple qui suit montre les quatre dernières entrées du fichier /etc/security/passwd, correspondant aux entrées du fichier /etc/passwd mentionné précédemment. guest: password = * nobody: password = * lpd: password = * paul: password = eacVScDKri4s6 lastupdate = 1026394230 flags = ADMCHG Notez qu’aucune entrée ne figure dans le fichier /etc/security/passwd pour l’ID utilisateur jdoe, car il n’a aucun mot de passe défini dans le fichier /etc/passwd. 2-24 Guide de sécurité Vous pouvez contrôler la cohérence du fichier /etc/passwd à l’aide de la commande pwdck. Elle vérifie la justesse des informations relatives aux mots de passe dans les fichiers de la base de données utilisateurs, en contrôlant les définitions de tous les utilisateurs ou des utilisateurs indiqués. Le fichier /etc/passwd File et les environnements réseau Dans un environnement réseau, chaque utilisateur doit posséder un compte sur chacun des systèmes pour y avoir accès. En principe, l’utilisateur a donc une entrée dans le fichier /etc/passwd de chaque système. Toutefois, en environnement distribué, il n’est pas facile de vérifier que chaque système a le même fichier /etc/passwd. Pour résoudre ce problème, plusieurs méthodes ont été développées afin de rendre les informations du fichier /etc/passwd disponibles sur le réseau : • Système d’informations réseau (NIS) • NIS+ Ces deux méthodes sont traitées dans le chapitre NIS. Dissimulation des noms d’utilisateur et mots de passe Pour atteindre un niveau de sécurité supérieur, assurez–vous que les ID utilisateur et mots de passe ne sont pas visibles sur le système. Les fichiers .netrc contiennent les ID utilisateurs et mots de passe. Ces fichiers ne sont pas protégés par chiffrement ou codage : leur contenu est affiché en clair. Pour trouver ces fichiers, lancez la commande suivante : # find ‘awk –F: ’{print $6}’ /etc/passwd‘ –name .netrc –ls Après avoir localisé les fichiers, supprimez–les. Un moyen plus efficace d’enregistrer des mots de passe consiste à installer Kerberos. Paramétrage des options de mot de passe recommandées Seule la formation des utilisateurs peut permettre une gestion efficace des mots de passe. Pour une meilleure sécurité, le système d’exploitation propose des fonctions configurables de restriction des mots de passe. Elles permettent à l’administrateur de contrôler les mots de passe choisis par les utilisateurs, et d’imposer leur modification régulière. Les options de mot de passe et les attributs étendus d’utilisateur résident dans le fichier /etc/security/user. Ce fichier ASCII contient des strophes d’attributs pour les utilisateurs. Ces restrictions sont appliquées à chaque définition d’un nouveau mot de passe utilisateur. Toutes les restrictions de mot de passe sont définies au cas par cas. En conservant les restrictions dans la strophe par défaut du fichier /etc/security/user, les mêmes restrictions sont appliquées à tous les utilisateurs. Pour maintenir une sécurité efficace, tous les mots de passe doivent être protégés de la même façon. Le système d’exploitation procure également aux administrateurs une méthode permettant d’étendre les restrictions de mot de passe. L’attribut pwdchecks du fichier /etc/security/user, permet d’ajouter de nouvelles sous–routines (ou méthodes) au code de restriction de mot de passe. Des politiques de site peuvent donc être ajoutées et appliquées par le système d’exploitation. Reportez–vous à Extension des restrictions de mot de passe, page 2-29 Application rationnelle des restrictions de mot de passe. La mise en place de mesures trop restrictives peut au contraire diminuer la sécurité des mots de passe : un nombre de caractères trop limité permet de les deviner plus facilement, et imposer des mots de passe compliqués difficiles à mémoriser incitera les utilisateurs à les noter. Enfin, la sécurité des mots de passe dépend des utilisateurs. La meilleure politique consiste à imposer des restrictions simples, à donner des directives claires et à contrôler régulièrement l’absence de doublons. Le tableau suivant indique les valeurs recommandées pour certains attributs de sécurité liés aux mots de passe utilisateur, dans le fichier /etc/security/user. Utilisateurs, rôles et mots de passe 2-25 Tableau 8. Valeurs des attributs de sécurité recommandées pour les mots de passe utilisateur. 2-26 Attribut Description Valeur recommandée dictionlist Vérifie que les mots de passe n’incluent pas de termes UNIX. /usr/share/dict/ words histexpire Nombre de semaines avant de pouvoir réutiliser le mot de passe. 26 0 histsize Nombre de répétitions permises du mot de passe. 20 0 50 maxage Nombre maximum de semaines avant de devoir modifier le mot de passe. 8 0 52 maxexpired Nombre maximum de semaines après maxage pendant lesquelles un utilisateur peut modifier son mot de passe expiré. (Root en est dispensé.) 2 –1 52 maxrepeats Nombre maximum de caractères pouvant être répétés dans les mots de passe. 2 8 8 Guide de sécurité Valeur par défaut N/A Remarque Valeur maximale 1 N/A 260 Remarque 2 minage Nombre minimum de semaines avant de pouvoir modifier un mot de passe. Cette valeur doit être égale à zéro, à moins que les administrateurs ne puissent être joints à tout moment pour réinitialiser un mot de passe récemment modifié et compromis par accident. 0 0 52 minalpha Nombre minimum de caractères alphabétiques dans un mot de passe. 2 0 8 mindiff Nombre minimum de caractères uniques devant figurer dans un mot de passe. 4 0 8 minlen Longueur minimum du mot de passe. 6 (8 pour l’utilisateur root) 0 8 minother Nombre minimum de caractères non–alphabétiq ues devant figurer dans un mot de passe. 2 0 8 Utilisateurs, rôles et mots de passe 2-27 pwdwarntime Nombre de jours avant que le système n’émette un avertissement indiquant que la modification du mot de passe est nécessaire. pwdchecks Cette entrée ajoute à la commande passwd un code personnalisé chargé du contrôle de la qualité du mot de passe. 5 N/A N/A Pour plus d’informations, reportez–vous à la section Extension des restrictions de mot de passe, page 2-29. N/A N/A Remarques : 1. N/A signifie Non applicable. 2. Un maximum de 50 mots de passe sont mémorisés. Pour utiliser CAPP et EAL4+ (Controlled Access Protection Profile et Evaluation Assurance Level 4+) sur votre système, appliquez les valeurs recommandées à la section Configuration du port et de l’utilisateur, page 1-11. Si un traitement de texte est installé sur le système, l’administrateur peut utiliser le fichier /usr/share/dict/words comme fichier dictionnaire dictionlist. Dans ce cas, il définira l’attribut minother sur 0. En effet, la plupart des mots du dictionnaire ne satisfont pas la condition définie par l’attribut minother, le fait de définir cet attribut sur 1 ou plus élimine la grande majorité des mots du dictionnaire. La longueur minimale d’un mot de passe du système est définie par le maximum de la somme de l’attribut minother avec l’attribut minlen ou l’attribut minalpha. Le mot de passe ne doit pas dépasser 8 caractères. La valeur de l’attribut minalpha plus celle de l’attribut minother ne doit jamais être supérieure à huit. Si la valeur de minalpha plus celle de minother est supérieure à huit, la valeur de l’attribut minother est réduite à huit moins la valeur de l’attribut minalpha. Si les attributs histexpire et histsize sont définis, le système mémorise le nombre de mots de passe requis pour satisfaire les deux conditions, dans la limite système de 50 mots de passe par utilisateur. Les mots de passe vides ne sont pas mémorisés. Vous pouvez modifier le fichier /etc/security/user pour inclure toute valeur par défaut à utiliser pour administrer les mots de passe utilisateur. Une autre solution consiste à modifier les valeurs d’attribut à l’aide de la commande chuser. Avec ce fichier, vous pouvez également utiliser les commandes mkuser, lsuser, et rmuser. La commande mkuser crée dans le fichier /etc/security/user une entrée pour chaque nouvel utilisateur, et initialise ses attributs avec ceux qui ont été définis dans le fichier /usr/lib/security/mkuser.default. Pour afficher les attributs et leurs valeurs, utilisez la commande lsuser. Pour supprimer un utilisateur, utilisez la commande rmuser. 2-28 Guide de sécurité Extension des restrictions de mot de passe Les administrateurs système peuvent étendre les règles utilisées par le programme de mots de passe pour accepter et rejeter les mots de passe (restrictions de composition de mot de passe) afin de les adapter à chaque site. Les restrictions sont étendues grâce à l’ajout de sous–routines, nommées méthodes, qui sont appelées lors d’une modification de mot de passe. L’attribut pwdchecks du fichier /etc/security/user indique les méthodes appelées. Le document AIX 5L Version 5.2 Technical Reference décrit l’interface de sous–routine pwdrestrict_method, à laquelle les méthodes de restriction de mot de passe spécifiées doivent se conformer. Pour étendre correctement les restrictions de composition de mot de passe, l’administrateur système doit utiliser cette interface lorsqu’il écrit une méthode de restriction. Prenez beaucoup de précautions lorsque vous étendez des restrictions de composition de mot de passe. Ces extensions affectent directement les commandes login, passwd et su, ainsi que les autres programmes. Un code malveillant ou défectueux peut facilement nuire à la sécurité d’un système. Utilisez uniquement un code fiable. Utilisateurs, rôles et mots de passe 2-29 Authentification de l’utilisateur Identification et authentification déterminent l’identité d’un utilisateur. Chaque utilisateur doit se connecter au système. Il indique le nom d’utilisateur d’un compte et éventuellement un mot de passe (sur un système sécurisé, tous les comptes non affectés d’un mot de passe doivent être invalidés). Si le mot de passe est correct, l’utilisateur accède au compte correspondant et dispose des droits et des privilèges associés. Les fichiers /etc/passwd et /etc/security/passwd gèrent les mots de passe utilisateur. D’autres méthodes d’authentification sont intégrées au système au moyen de l’attribut SYSTEM qui figure dans /etc/security/user. Par exemple, l’environnement DCE (Distributed Computing Environment) exige une authentification par mot de passe mais valide les mots de passe d’une façon différente du modèle utilisé dans / etc/passwd et /etc/security/passwd. Les utilisateurs qui s’authentifient via DCE doivent avoir leur strophe du fichier /etc/security/user définie sur SYSTEM=DCE. Les autres valeurs de l’attribut SYSTEM sont compat, files et NONE. compat est utilisé lorsque la résolution de nom (et l’authentification qui en résulte) suit la base de données locale. Si aucune résolution n’est trouvée, une tentative est effectuée sur la base de données NIS (Network Information Service). files indique que seuls les fichiers locaux doivent être utilisés lors de l’authentification. Enfin, NONE désactive l’authentification par méthode. Pour désactiver toutes les authentifications, NONE doit apparaître dans les lignes SYSTEM et auth1 de la strophe de l’utilisateur. Vous pouvez définir d’autres valeurs valides de l’attribut SYSTEM dans /usr/lib/security/methods.cfg. Remarque : L’utilisateur root est toujours authentifié au moyen des fichiers de sécurité local system. L’attribut SYSTEM de l’utilisateur root est défini sur SYSTEM = ”compat” dans /etc/security/user. Reportez–vous au document AIX 5L Version 5.2 System User’s Guide: Operating System and Devices, pour plus d’informations sur la protection des mots de passe. ID de connexion Tous les événements d’audit enregistrés pour cet utilisateur portent cet ID. Vous pouvez les examiner lorsque vous générez des enregistrements d’audit. Reportez–vous au document AIX 5L Version 5.2 System User’s Guide: Operating System and Devices pour plus d’informations sur les ID de connexion. Présentation du système de quotas de disque Le système de quotas de disque permet aux administrateurs de contrôler le nombre de fichiers et de blocs de données pouvant être alloués à des utilisateurs ou groupes. Les sections qui suivent apportent des informations complémentaires sur le système de quotas de disque, son implémentation et son utilisation : 2-30 • Présentation du système de quotas de disque, page 2-31 • Reprise après un dépassement de quota, page 2-31 • Configuration du système de quotas de disque, page 2-32 Guide de sécurité Présentation du système de quotas de disque Le système de quotas de disque, basé sur le système Berkeley, constitue un moyen efficace de contrôler l’utilisation de l’espace disque. Le système de quotas peut être défini pour des utilisateurs individuels ou des groupes, et géré pour chaque système de fichiers journalisé. Le système de quotas de disque détermine des seuils basés sur les paramètres qui suivent, et modifiables à l’aide de la commande edquota : • Seuils d’avertissement d’un utilisateur ou d’un groupe • Seuils obligatoires d’un utilisateur ou d’un groupe • Période de tolérance du quota Le seuil d’avertissement définit le nombre de blocs de disques de 1 Ko ou de fichiers que l’utilisateur ne doit pas dépasser. Le seuil obligatoire définit le nombre maximum de blocs de disques ou de fichiers que l’utilisateur peut cumuler dans la limite des quotas disque établis. La période de tolérance de quota permet à l’utilisateur de dépasser le seuil d’avertissement pendant une courte période (la valeur par défaut est d’une semaine). Si l’utilisateur ne parvient pas à réduire son utilisation sous le seuil d’avertissement pendant la période indiquée, le système interprétera le seuil d’avertissement comme l’allocation maximum permise, et aucun espace disque supplémentaire ne sera alloué à l’utilisateur. L’utilisateur peut supprimer cette condition en supprimant un nombre suffisant de fichiers pour passer sous le seuil d’avertissement. Le système de quotas de disque enregistre le suivi des quotas utilisateur et de groupe dans les fichiers quota.user et quota.group, dans les répertoires root des systèmes de fichiers soumis aux quotas. Ces fichiers sont créés avec les commandes quotacheck et edquota et peuvent être lus avec les commandes de quota. Reprise après un dépassement de quota Vous pouvez appliquer les méthodes qui suivent pour réduire l’utilisation des systèmes de fichiers lorsque vous avez dépassé les seuils de quota : • Arrêtez le processus en cours à l’origine du dépassement de seuil, supprimez les fichiers inutiles pour passer sous le seuil autorisé et relancez le programme qui a échoué. • Si vous exécutez un éditeur tel que vi, utilisez la séquence d’échappement du shell pour contrôler l’espace réservé aux fichiers, supprimez les fichiers inutiles et reprenez la tâche sans perdre le fichier modifié. Si vous utilisez les shells C ou Korn, une autre méthode consiste à arrêter temporairement l’éditeur à l’aide de la séquence de touches Ctrl–Z, à exécuter les commandes sur le système de fichiers, et à revenir en exécutant la commande d’avant–plan fg. • Enregistrez temporairement le fichier dans un système de fichiers n’ayant pas dépassé le quota autorisé, supprimez les fichiers inutiles et replacez le fichier dans le système d’origine. Utilisateurs, rôles et mots de passe 2-31 Configuration du système de quotas de disque En principe, seuls les systèmes de fichiers qui contiennent des fichiers et répertoires personnels sont soumis aux quotas de disque. Vous devez envisager d’utiliser un système de quotas de disque dans les conditions suivantes : • L’espace disque de votre système est limité. • Vous souhaitez que vos systèmes de fichiers bénéficient d’un niveau de sécurité supérieur. • Vous utilisez le disque de façon intensive, à l’exemple des universités. Si ces conditions ne s’appliquent pas à votre environnement, vous ne souhaiterez peut–être pas limiter l’utilisation du disque via un système de quotas. Les quotas ne sont applicables qu’aux systèmes de fichiers journalisés. Remarque : N’établissez pas de quotas de disque pour le système de fichiers /tmp. Pour paramétrer le système de quotas de disque, appliquez la procédure suivante : 1. Connectez–vous en tant qu’utilisateur root. 2. Choisissez les systèmes de fichiers auxquels appliquer les quotas. Remarque : N’appliquez pas de quota au système de fichiers /tmp, nombre d’éditeurs et d’utilitaires système créant des fichiers temporaires dans /tmp. 3. Avec la commande chfs, ajoutez les attributs de configuration userquota et groupquota au fichier /etc/filesystems. L’exemple suivant utilise la commande chfs pour activer les quotas utilisateur sur le système de fichiers /home: chfs –a ”quota = userquota” /home Pour activer les quotas utilisateur et groupe dans le système de fichiers /home, entrez : chfs –a ”quota = userquota,groupquota” /home Dans le fichier /etc/filesystems, l’entrée correspondante ressemble à : /home: dev vfs log mount check quota options = = = = = = = /dev/hd1 jfs /dev/hd8 true true userquota,groupquota rw 4. La désignation d’autres noms de fichier de quotas disque est facultative. Les noms de fichiers quota.user et quota.group sont les noms par défaut situés dans les répertoires root des systèmes de fichiers soumis aux quotas. En outre, vous pouvez spécifier d’autres noms ou répertoires pour ces fichiers de quotas avec les attributs userquota et groupquota du fichier /etc/filesystems. L’exemple suivant illustre l’application de quotas utilisateur et groupe au système de fichiers /home avec la commande chfs, et nomme les fichiers de quotas myquota.user et myquota.group : chfs –a ”userquota = /home/myquota.user” –a ”groupquota = /home /myquota.group” /home 2-32 Guide de sécurité Dans le fichier /etc/filesystems, l’entrée correspondante ressemble à : /home: dev vfs log mount check quota userquota groupquota options = = = = = = = = = /dev/hd1 jfs /dev/hd8 true true userquota,groupquota /home/myquota.user /home/myquota.group rw 5. Si ce n’est pas déjà fait, montez les systèmes de fichiers spécifiés. 6. Définissez les limites de quota souhaitées pour chaque utilisateur ou groupe. Utilisez la commande edquota pour créer le seuil d’avertissement et le seuil obligatoire de chaque utilisateur ou groupe, ainsi que l’espace disque autorisé et le nombre maximum de fichiers. L’exemple suivant illustre les limites de quota pour l’utilisateur davec : Quotas for user davec: /home: blocks in use: 30, limits (soft = 100, hard = 150) inodes in use: 73, limits (soft = 200, hard = 250) davec a utilisé 30 Ko sur les 100 Ko autorisés. Sur les 200 fichiers autorisés, davec en a créé 73. Il dispose de 50 Ko de tampons et de 50 fichiers pour le stockage temporaire. Quand vous définissez des quotas disque pour plusieurs utilisateurs, utilisez l’indicateur –p avec la commande edquota pour dupliquer les quotas pour un autre utilisateur. Pour dupliquer les quotas de l’utilisateur davec pour l’utilisateur nanc, entrez : edquota –p davec nanc 7. Activez le système de quotas avec la commande quotaon. Accompagnée de l’indicateur –a, la commande quotaon active les quotas pour le système de fichiers précisé, ou pour tous les systèmes de fichiers soumis aux quotas (comme indiqué dans le fichier /etc/filesystems). 8. Utilisez la commande quotacheck pour vérifier la cohérence entre les fichiers de quotas et l’utilisation en cours du disque. Remarque : Cette procédure est recommandée à chaque activation initiale de quotas sur un système de fichiers et après redémarrage du système. Pour activer la vérification et les quotas au démarrage du système, ajoutez les lignes suivantes à la fin du fichier /etc/rc : echo ” Enabling filesystem quotas ” /usr/sbin/quotacheck –a /usr/sbin/quotaon –a Utilisateurs, rôles et mots de passe 2-33 2-34 Guide de sécurité Chapitre 3. Audit Le sous–système d’audit permet à l’administrateur système d’enregistrer des informations de sécurité, qui peuvent être analysées pour détecter des violations potentielles ou effectives de la politique de sécurité. Cette section traite des points suivants : • Sous–système d’audit, page 3-1 • Sélection des événements, page 3-3 • Configuration du sous–système d’audit, page 3-4 • Configuration de la journalisation d’audit, page 3-5 • Configuration de l’audit, page 3-9 Sous–système d’audit Les fonctions du sous–système d’audit sont les suivantes : • Détection des événements, page 3-1 • Collecte d’informations sur les événements, page 3-2 • Traitement des informations de suivi d’audit, page 3-2 L’administrateur système peut utiliser l’une de ces fonctions pour la configuration. Détection des événements La détection des événements est répartie au sein de la base TCB (Trusted Computing Base), dans le noyau (code d’état de superviseur) et dans les programmes sécurisés (code d’état d’utilisateur). Un événement auditable correspond à toute occurrence relative à la sécurité dans le système. Une occurrence relative à la sécurité correspond à toute modification de l’état de sécurité du système, toute tentative de violation ou violation réelle du contrôle d’accès du système ou des politiques de sécurité de gestion de compte, ou des deux. Les programmes et les modules de noyau qui détectent des événements auditables sont responsables de leur enregistrement dans le journal d’audit du système, qui s’exécute dans le noyau et est accessible via une sous–routine (pour l’audit des programmes sécurisés) ou un appel de procédure de noyau (pour l’audit d’état du superviseur). Les informations recueillies comprennent le nom de l’événement auditable, le succès ou l’échec de l’événement, et toute autre information spécifique à l’événement et relative à l’audit de sécurité. La configuration de la détection des événements consiste à activer et désactiver la détection, et à indiquer les événements à auditer et les utilisateurs concernés. Pour activer la détection, utilisez la commande audit, qui active ou désactive le sous–système d’audit. Le fichier /etc/security/audit/config contient les événements et utilisateurs traités par le sous–système. Audit 3-1 Collecte d’informations sur les événements Le recueil d’informations comprend la journalisation des événements auditables sélectionnés. Cette fonction est exécutée par le journal d’audit du noyau, qui fournit un appel système et une interface d’appel de procédure interne au noyau qui enregistre les événements auditables. Le journal d’audit est responsable de l’élaboration de l’enregistrement d’audit complet, composé de l’en–tête, qui contient des informations communes à tous les événements (nom de l’événement, utilisateur responsable, heure et état de retour), et du suivi, qui contient les informations spécifiques à l’événement. Le journal d’audit ajoute chaque enregistrement au suivi d’audit du noyau, qui peut être écrit dans les modes suivants : Mode BIN Le suivi est écrit sous forme de fichiers alternés, dans un but de sécurité et de stockage à long terme. Mode STREAM Le suivi est écrit dans un tampon circulaire lu de façon synchrone par une pseudo–unité d’audit. Le mode STREAM assure une réponse immédiate. La collecte des informations peut être configurée du côté de l’enregistrement des événements comme pour le traitement du suivi. L’enregistrement des événements peut être sélectionné par utilisateur. A chaque utilisateur correspond un ensemble d’événements d’audit, consignés dans le suivi lorsqu’ils se produisent. Côté traitement, les modes sont configurables individuellement, afin que l’administrateur puisse choisir le traitement le mieux adapté à l’environnement. De plus, l’audit en mode BIN peut être configuré pour générer une alerte au cas où l’espace du système de fichiers disponible pour le suivi devienne insuffisant. Traitement des informations sur le suivi d’audit Le système d’exploitation fournit plusieurs options de traitement du suivi d’audit du noyau. Le suivi en mode BIN peut être compressé, filtré, et/ou formaté avant d’être archivé, le cas échéant. La compression se fait par codage Huffman. Le filtrage se fait par une sélection des enregistrements d’audit de type SQL, à l’aide de la commande auditselect, ce qui permet un affichage et une rétention sélectifs du suivi d’audit. Le formatage des enregistrements du suivi d’audit permet d’examiner le suivi, de générer des rapports de sécurité réguliers, et d’imprimer un document de suivi d’audit. Le suivi d’audit en mode STREAM peut être contrôlé en temps réel, pour détecter immédiatement les menaces. La configuration de ces options se fait à l’aide de programmes distincts pouvant être appelés en tant que processus démons pour filtrer les suivis en mode BIN ou STREAM, bien que certains des programmes de filtrage soient mieux adaptés à un mode donné. 3-2 Guide de sécurité Sélection des événements L’ensemble des événements auditables du système définit les occurrences pouvant faire l’objet d’un audit, ainsi que la finesse de l’audit fourni. Les événements auditables doivent regrouper les événements de sécurité du système, tels que définis précédemment. Le niveau de détail utilisé dans la définition des événements auditables doit assurer l’équilibre entre un manque de détail, qui complique pour l’administrateur la compréhension des informations sélectionnées, et un excès de détails, qui entraîne le recueil de nombreuses informations inutiles. La définition des événements exploite les similitudes entre événements détectés. Un événement détecté correspond à une instance d’événement auditable. Par exemple, un événement donné peut être détecté à plusieurs emplacements. Le principe est que les événements détectés ayant les mêmes propriétés de sécurité sont sélectionnés comme un même événement auditable. La liste suivante répertorie les événements de politique de sécurité : • Evénements sujet – Création de processus – Suppression de processus – Définition des attributs de sécurité des sujets : ID utilisateur, ID de groupe – Groupe de processus, terminal de contrôle • Evénements objet – Création d’objets – Suppression d’objets – Ouverture d’objet (y compris les processus comme objets) – Fermeture d’objet (y compris les processus comme objets) – Définition des attributs de sécurité des objets : propriétaire, groupe, ACL • Evénements import/export – Import ou export d’un objet • Evénements de gestion de comptes – Ajout d’un utilisateur, modification des attributs des utilisateurs dans la base de mots de passe – Ajout d’un groupe, modification des attributs de groupes dans la base de groupes – Connexion utilisateur – Déconnexion utilisateur – Modification des informations d’authentification de l’utilisateur – Configuration du terminal de chemins d’accès sécurisés – Configuration de l’authentification – Gestion des audits : sélection des événements de suivi d’audit, activation, désactivation, définition des classes d’audit des utilisateurs • Evénements généraux de gestion système – Utilisation de privilèges – Configuration du système de fichiers – Définition et configuration des unités Audit 3-3 – Définition des paramètres de configuration du système – IPL (chargement initial) et fermeture corrects du système – Configuration RAS – Autres configurations du système • Violations (potentielles) de sécurité – Refus de droits d’accès – Echecs de privilèges – Pannes et erreurs système détectées par diagnostic – Tentatives de modification de la TCB Configuration du sous–système d’audit Le sous–système d’audit possède une variable d’état global qui indique s’il est activé. De plus, chaque processus possède une variable d’état local qui indique si le sous–système d’audit doit enregistrer des informations sur ce processus. Ces deux variables déterminent si des événements sont détectés par les modules et programmes de la base TCB (Trusted Computing Base). La désactivation de l’audit de la base TCB pour un processus donné permet à ce processus de réaliser son propre audit en respectant la politique de gestion de comptes du système. La fait de permettre à un programme sécurisé de s’auto–auditer assure un recueil d’informations plus efficace. Collecte d’informations sur le sous–système d’audit Le recueil d’informations concerne les modes sélection des événements et suivi d’audit du noyau. Il est effectué par une routine du noyau qui fournit les interfaces nécessaires à la journalisation des informations, utilisées par les composants de la base TCB qui détectent les événements auditables, et les interfaces de configuration, utilisées par le sous–système d’audit pour contrôler la routine de journalisation des audits. Journalisation des audits Les événements auditables sont journalisés par les interfaces suivantes : l’état utilisateur et l’état superviseur. La partie état utilisateur de la TCB utilise les sous–routines auditlog ou auditwrite, tandis que la partie état superviseur de la TCB utilise un ensemble d’appels de procédures du noyau. Pour chaque enregistrement, le journal des événements d’audit place un en–tête d’audit devant les informations spécifiques à l’événement. Cet en–tête indique l’utilisateur et le processus pour lesquels l’événement est audité, ainsi que l’heure de l’événement. Le code qui détecte l’événement indique le type d’événement et le code de retour ou l’état, et peut fournir des informations spécifiques à l’événement (le suivi). Les informations spécifiques à l’événement comprennent les noms d’objets (par exemple, les fichiers dont l’accès est refusé ou les tty utilisés lors des échecs de connexion), les paramètres de sous–routines, et les autres informations modifiées. Les événements sont définis par symboles plutôt que par numéros. Ceci réduit les risques de noms identiques, sans utiliser de méthode d’enregistrement des événements. Comme les sous–routines sont auditables et que la définition du noyau extensible n’a pas de numéro SVC (switched virtual circuit) fixe, il est difficile d’enregistrer des événements par numéro. Il faudrait pour cela corriger ces numéros à chaque extension ou redéfinition de l’interface du noyau. 3-4 Guide de sécurité Format des enregistrements d’audits Les enregistrements d’audit comprennent un en–tête commun, qui précède les suivis d’audit spécifiques à l’événement de l’enregistrement. Les structures des en–têtes sont définies dans le fichier /usr/include/sys/audit.h. Le format des informations dans le suivi d’audit est spécifique à chaque événement, et indiqué dans le fichier /etc/security/audit/events. Les informations de l’en–tête sont généralement recueillies par la routine de journalisation, pour garantir qu’elles correspondent aux informations des suivis d’audit fournies par le code qui détecte l’événement. Le journal d’audit ne connaît absolument pas la structure ni la sémantique des suivis d’audit. Par exemple, lorsque la commande login détecte un échec de connexion, elle enregistre cet événement avec le terminal sur lequel il s’est produit, et l’écrit dans le suivi d’audit à l’aide de la sous–routine auditlog. Le composant noyau du journal d’audit enregistre des informations spécifiques (ID utilisateur, ID de processus, heure) dans un en–tête qu’il ajoute aux autres informations. L’appelant renseigne uniquement les champs nom de l’événement et résultat de l’en–tête. Configuration de la journalisation d’audit Le journal d’audit est responsable de l’élaboration de l’enregistrement complet de l’audit. Vous devez sélectionner les événements d’audit à journaliser. Sélection des événements audités La sélection des événements audités comprend les types suivants : Audit par processus Pour définir efficacement les événements de processus, le système d’exploitation permet à l’administrateur système de définir des classes d’audit. Une classe d’audit est un sous–ensemble des événements d’audit du système. Ces classes regroupements de manière logique et pratique des événements d’audit de base. Pour chaque utilisateur du système, l’administrateur définit un ensemble de classes d’audit qui déterminent les événements de base à enregistrer. Chaque processus exécuté par un utilisateur est référencé par ses classes d’audit. Audit par objet Le système d’exploitation assure l’audit des accès aux objets par nom, c’est à dire l’audit d’objets spécifiques (normalement des fichiers). L’audit d’objets par nom évite de devoir auditer tous les accès aux objets pour couvrir ceux qui sont pertinents. De plus, le mode d’audit peut être spécifié, afin que seuls les accès du mode indiqué (read/write/execute) soient enregistrés. Modes de suivi d’audit du noyau La journalisation du noyau peut utiliser les modes BIN ou STREAM pour définir l’emplacement d’écriture du suivi d’audit. En mode BIN, le journal d’audit du noyau doit disposer (avant le début de l’audit) d’au moins un descripteur de ficher où les enregistrements seront placés. Le mode BIN écrit les enregistrements dans des fichiers alternés. Au début de l’audit, le noyau reçoit deux descripteurs de fichiers et une taille bin maximale recommandée. Il suspend le processus d’appel et lance l’écriture des enregistrements dans le premier descripteur de fichier. Lorsque la taille du premier fichier atteint son maximum, et si le Audit 3-5 deuxième descripteur de fichier est valide, il passe sur le deuxième fichier et réactive le processus d’appel. Le noyau poursuit l’écriture dans le deuxième fichier jusqu’à ce qu’il reçoive un nouvel appel avec un descripteur de fichier valide. Si à ce moment le deuxième fichier est plein, il retourne sur le premier, et le processus d’appel repart immédiatement. Sinon, le processus d’appel est suspendu, et le noyau poursuit l’écriture d’enregistrements dans le deuxième fichier jusqu’à ce qu’il soit plein. Le traitement se poursuit de la même manière jusqu’à la désactivation de l’audit. Reportez–vous à la figure suivante illustrant le mode BIN : Figure 1. Fonctionnement du mode d’audit BIN. Cette illustration présente le fonctionnement du mode d’audit BIN. Le mécanisme de casiers (ou fichiers) alternés permet de garantir que le sous–système d’audit dispose toujours d’un emplacement d’écriture lors du traitement des enregistrements d’audit. Lorsque le sous–système d’audit change de casier, il vide le précédent dans le fichier trace. Lorsqu’il faut de nouveau changer de casier, le premier est disponible. Ce mode dissocie le stockage et l’analyse des données de leur génération. Généralement, le programme auditcat sert à lire les données du casier dans lequel le noyau n’est pas en train d’écrire. Pour s’assurer que le système dispose toujours d’espace disponible pour le suivi d’audit (le résultat du programme auditcat), le paramètre freespace peut être indiqué dans le fichier /etc/security/audit/config. Si le système dispose de moins d’espace que le nombre de blocs de 512 octets spécifiés, il génère un message syslog. Si l’audit est activé, la paramètre binmode de la strophe start dans /etc/security/audit/config doit avoir pour valeur panic. Le paramètre freespace de la strophe bin doit avoir une valeur au minimum égale à 25 % de l’espace disque dédié au stockage des suivis d’audit. Les paramètres bytethreshold et binsize doivent tous deux être définis sur 65536 octets. 3-6 Guide de sécurité En mode STREAM, le noyau écrit les enregistrements dans un tampon circulaire. Une fois que le noyau atteint la fin du tampon, il continue simplement au début. Les processus lisent les informations via une pseudo–unité nommée /dev/audit. Lorsqu’un processus ouvre cette unité, un nouveau canal est créé pour ce processus. Eventuellement, les événements à lire sur le canal peuvent être indiqués comme liste des classes d’audit. Reportez–vous à la figure suivante illustrant le mode STREAM : Figure 2. Fonctionnement du mode d’audit STREAM. Cette illustration présente le fonctionnement du mode d’audit STREAM. Le but principal du mode STREAM est de permettre la lecture permanente du suivi d’audit, très utile pour contrôler les menaces en temps réel. Il sert également à créer un suivi écrit immédiatement, évitant toute altération qui pourrait se produire en cas de stockage sur un support inscriptible. Une autre méthode d’utilisation du mode STREAM est d’écrire les données d’audit dans un programme qui stocke les informations d’audit sur un système distant, permettant un traitement central en temps quasi–réel, tout en protégeant les informations d’audit contre une altération sur l’hôte qui les a émises. Audit 3-7 Traitement des enregistrements d’audit Les commandes auditselect, auditpr et auditmerge permettent de traiter les enregistrements d’audit en mode BIN ou STREAM. Elles fonctionnent comme des filtres, et peuvent donc être utilisés avec des pipes, ce qui est particulièrement pratique pour les audits en mode STREAM. auditselect Permet de sélectionner des enregistrements d’audits spécifiques avec des instructions de type SQL. Par exemple, pour ne sélectionner que des événements exec() générés par l’utilisateur afx, saisissez la commande suivante : auditselect –e ”login==afx && event==PROC_Execute” auditpr Permet de convertir les enregistrements d’audit binaires en un format plus lisible La quantité d’informations affichée dépend des indicateurs spécifiés sur la ligne de commandes. Pour obtenir toutes les informations disponibles, utilisez auditpr de la façon suivante : auditpr –v –hhelrtRpPTc Lorsque l’indicateur –v est indiqué, le suivi d’audit, qui est une chaîne spécifique à l’événement (voir le fichier /etc/security/audit/events), s’affiche en sus des informations d’audit standard fournies par le noyau pour chaque événement. auditmerge Utilisé pour fusionner des suivis d’audit binaires. Cela est particulièrement utile pour combiner des suivis d’audit de plusieurs systèmes. La commande auditmerge prend les noms des suivis de la ligne de commandes, et envoie le suivi binaire fusionné à STDOUT. Il faut donc encore utiliser auditpr pour le rendre lisible. Par exemple, auditmerge et auditptr peuvent être utilisés de la façon suivante : auditmerge trail.system1 trail.system2 | auditpr –v –hhelrRtpc Utilisation du sous–système d’audit pour un rapide contrôle de sécurité La commande watch permet de contrôler un programme suspect sans configurer le sous–système d’audit. Elle enregistre l’événement requis ou tous les événements générés par ce programme. Par exemple, utilisez la commande suivante pour voir tous les événements FILE_Open lors de l’exécution de vi /etc/hosts : watch –eFILE_Open –o /tmp/vi.watch vi /etc/hosts Le fichier /tmp/vi.watch contiendra tous les événements FILE_Open pour la session d’édition. 3-8 Guide de sécurité Configuration de l’audit La procédure suivante présente les étapes de configuration d’un sous–système d’audit. Pour plus d’informations, consultez les fichiers de configuration mentionnés pour ces étapes. 1. Sélectionnez des activités système (événements) à auditer parmi la liste du fichier /etc/security/audit/events. Si vous avez ajouté des événements d’audit aux applications ou extensions du noyau, vous devez ajouter les nouveaux événements au fichier. – Vous pouvez ajouter un événement dans ce fichier si votre programme comporte le code d’enregistrement associé (au moyen des sous–routines auditwrite ou auditlog), ou si ce code est dans une extension de noyau (par le biais des services noyau audit_svcstart, audit_svcbcopy et audit_svcfinis). – Assurez–vous que les instructions de formatage des nouveaux événements d’audit figurent dans le fichier /etc/security/audit/events. Ces indications permettent à la commande auditpr d’écrire un suivi d’audit au moment du formatage des enregistrements d’audit. 2. Regroupez les événements d’audit sélectionnés en ensembles d’éléments similaires appelés classes d’audit. Définissez ces classes d’audit dans la strophe des classes du fichier /etc/security/audit/config. 3. Affectez les classes d’audit aux utilisateurs et les événements d’audit aux fichiers (objets) à auditer, comme suit : – Pour attribuer des classes d’audit à un utilisateur donné, ajoutez une ligne dans la strophe des utilisateurs dans /etc/security/audit/config. Pour affecter des classes d’audit à un utilisateur, vous pouvez utiliser la commande chuser. – Pour affecter des événements d’audit à un objet (données ou fichier exécutable), ajoutez une strophe à ce fichier dans /etc/security/audit/objects. – Vous pouvez aussi définir des classes d’audit par défaut pour de nouveaux utilisateurs en modifiant /usr/lib/security/mkuser.default. Ce fichier contient les attributs utilisateur servant à générer les nouveaux ID utilisateur. Par exemple, utilisez la classe d’audit general pour tous les nouveaux ID utilisateur, comme suit : user: auditclasses = general pgrp = staff groups = staff shell = /usr/bin/ksh home = /home/$USER Pour obtenir tous les événements d’audit, spécifiez la classe ALL. Cela générera une immense quantité de données même sur un système dont l’activité est modérée. Il est généralement plus pratique de limiter le nombre d’événements enregistrés. Audit 3-9 4. Dans le fichier /etc/security/audit/config, configurez le type de collecte de données souhaité : BIN et/ou STREAM. Assurez–vous que les données d’audit n’entrent pas en concurrence avec d’autres données en termes d’espace de fichiers, en utilisant pour elles un système de fichiers séparé. Vous serez ainsi assuré de disposer de suffisamment d’espace pour les données d’audit. Configurez comme suit le type de collecte de données : – Pour configurer la méthode BIN : a. Définissez binmode = on dans la strophe start. b. Modifiez la strophe binmode pour configurer les casiers et le suivi, et indiquez le chemin d’accès au fichier qui contient les commandes de traitement binmode. Le fichier par défaut des commandes de traitement est /etc/security/audit/bincmds. c. Vérifiez que les casiers d’audit sont suffisamment grands et définissez freespace en conséquence pour obtenir une alerte si le système de fichiers se remplit. d. Ajoutez les commandes shell de traitement des casiers d’audit dans un tube d’audit du fichier /etc/security/audit/bincmds. – Pour utiliser la méthode STREAM a. Définissez streammode = on dans la strophe start. b. Modifiez la strophe streammode pour indiquer le chemin d’accès au fichier qui contient les commandes de traitement streammode. Le fichier par défaut qui contient ces informations est /etc/security/audit/streamcmds. c. Ajoutez les commandes shell de traitement des enregistrements continus dans un tube d’audit du fichier /etc/security/audit/streamcmds. 5. Une fois les modifications nécessaires apportées aux fichiers de configuration, activez le sous–système d’audit au moyen de la commande audit start. 6. Utilisez la commande audit query pour afficher les événements et objets audités. 7. Utilisez la commande audit shutdown pour désactiver à nouveau le sous–système d’audit. 3-10 Guide de sécurité Sélection des événements audités L’objectif d’un audit est de détecter des activités risquant de compromettre la sécurité du système. Les opérations suivantes, effectuées par un utilisateur non autorisé, constituent une violation de la sécurité du système et sont auditables : • Valider des opérations dans la base TCB • Authentifier des utilisateurs • Accéder au système • Modifier la configuration du système • Circonvenir le système d’audit • Initialiser le système • Installer des programmes • Modifier des comptes • Transférer des informations Le système d’audit ne dispose pas d’ensemble par défaut des événements à auditer. Vous devez sélectionner des événements ou classes d’événements en fonction de vos besoins. Pour auditer une activité, il est indispensable d’identifier la commande ou le processus à l’origine de l’événement et de s’assurer que cet événement est répertorié dans /etc/security/audit/events. Vous devez ensuite inclure l’événement dans la classe appropriée du fichier /etc/security/audit/config ou dans la strophe d’objets de /etc/security/audit/objects. Reportez–vous au fichier /etc/security/audit/events de votre système pour la liste des événements d’audit et les instructions de formatage du suivi. Reportez–vous à la commande auditpr pour une description des formats d’événements d’audit (écriture et exploitation). Une fois les événements à auditer sélectionnés, vous devez regrouper les événements similaires en classes d’audit. Ensuite, les classes d’audit sont affectées aux utilisateurs. Sélection des classes d’audit Vous pouvez simplifier l’affectation des événements d’audit aux utilisateurs en regroupant les événements identiques en classes d’audit. Ces classes sont définies dans la strophe des classes du fichier /etc/security/audit/config. Voici quelques classes courantes : general Evénements d’ordre général modifiant l’état du système et l’authentification des utilisateurs. Audit des tentatives de circonvenir les contrôles d’accès au système. objects Accès en écriture aux fichiers de configuration de la sécurité. kernel Les événements de la classe noyau sont générés par les fonctions de gestion des processus du noyau. Voici un exemple de strophe du fichier /etc/security/audit/config : classes: general = USER_SU,PASSWORD_Change,FILE_Unlink,FILE_Link,FILE_Rename system = USER_Change,GROUP_Change,USER_Create,GROUP_Create init = USER_Login,USER_Logout Audit 3-11 Sélection du mode de collecte des données d’audit La méthode à retenir dépend de la façon dont vous exploiterez les données d’audit. Si vous souhaitez stocker sur le long terme un volume important des données collectées, le mode BIN est préconisé. Si vous traitez les données au fur et à mesure de leur collecte, utilisez le mode STREAM. Vous pouvez aussi sélectionner les deux méthodes. Collecte Bin Stockage à long terme d’un important suivi d’audit. Les enregistrements d’audit sont écrits dans un fichier servant de casier temporaire. Quand ce fichier est saturé, le démon auditbin traite les données tandis que le sous–système d’audit écrit vers un autre fichier casier, puis les enregistrements sont stockés dans un fichier de suivi d’audit. Collecte Stream Permet le traitement des données d’audit en même temps qu’elles sont recueillies. Les enregistrements d’audit sont inscrits dans un tampon circulaire du noyau et récupérés en lisant /dev/audit. Ces enregistrements peuvent être affichés, imprimés et/ou convertis pour être compatibles avec le mode bin (avec la commande auditcat). Exemple de contrôle en temps réel des modifications de fichiers L’exemple suivant permet de contrôler en temps réel l’accès à des fichiers critiques : 1. Dressez la liste des fichiers dont les modifications sont à contrôler, par exemple tous les fichiers dans /etc et configurez–les pour les événements FILE_Write dans le fichier objects : find /etc –type f | awk ’{printf(”%s:\n\tw = FILE_Write\n\n”,$1)}’ >> /etc/security/audit/objects 2. Choisissez le mode Stream pour établir la liste de toutes les écritures sur fichiers. Cet exemple répertorie toutes les écritures sur fichiers sur la console. En environnement de production, vous souhaiterez peut–être disposer d’un back–end qui envoie les événements vers un système de détection des intrusions. Le fichier /etc/security/audit/streamcmds est similaire à l’exemple suivant : /usr/sbin/auditstream | /usr/sbin/auditselect –e ”event == FILE_Write” | auditpr –hhelpPRtTc –v > /dev/console & 3. Choisissez le mode STREAM dans /etc/security/audit/config, ajoutez une classe pour les événements d’écriture sur fichiers et configurez tous les utilisateurs à auditer avec cette classe : start: binmode = off streammode = on stream: cmds = /etc/security/audit/streamcmds classes: filemon = FILE_write users: root = filemon afx = filemon ... 4. Exécutez maintenant audit start. Tous les événements FILE_Write apparaissent sur la console. 3-12 Guide de sécurité Exemple de scénario de journal d’audit générique Dans cet exemple, on considère qu’un administrateur système veut utiliser le sous–système d’audit pour contrôler un vaste système multi–utilisateur. Aucune intégration directe vers un IDS n’est effectuée. Tous les enregistrements d’audits seront contrôlés manuellement. Seuls quelques événements d’audit essentiels sont enregistrés, afin que la quantité de données générée reste possible à traiter. Les événements d’audit pris en compte pour la sélection d’événements sont les suivants : FILE_Write Pour analyser toutes les écritures sur les fichiers de configuration. Cet événement sera utilisé avec tous les fichiers de l’arborescence /etc. PROC_SetUserIDs Toutes les modifications d’ID utilisateur AUD_Bin_Def Configuration des casiers d’audit USER_SU Commande su PASSWORD_Change Commande passwd AUD_Lost_Rec Notification en cas de perte d’enregistrements CRON_JobAdd Nouvelle tâche cron AT_JobAdd Nouvelle tâche at USER_Login Toutes les connexions PORT_Locked Tous les verrouillages de terminaux pour cause de nombreux échecs L’exemple suivant montre comment générer un journal d’audit générique : 1. Dressez la liste des fichiers critiques dont les modifications sont à contrôler, par exemple tous les fichiers dans /etc et configurez–les pour les événements FILE_Write dans le fichier objects : find /etc –type f | awk ’{printf(”%s:\n\tw = FILE_Write\n\n”,$1)}’ >> /etc/security/audit/objects 2. Utilisez la commande auditcat pour configurer l’audit en mode BIN. Le fichier /etc/security/audit/bincmds est similaire à l’exemple suivant : /usr/sbin/auditcat –p –o $trail $bin 3. Modifiez le fichier /etc/security/audit/config et ajoutez une classe pour les événements intéressants. Dressez la liste des utilisateurs et affectez–leur la classe custom. Audit 3-13 start: binmode = on streammode = off bin: cmds = /etc/security/audit/bincmds trail = /audit/trail bin1 = /audit/bin1 bin2 = /audit/bin2 binsize = 100000 freespace = 100000 classes: custom = FILE_Write,PROC_SetUser,AUD_Bin_Def,AUD_Lost_Rec,USER_SU, \ PASSWORD_Change,CRON_JobAdd,AT_JobAdd,USER_Login,PORT_Locked users: root = custom afx = custom ... 4. Ajoutez la classe d’audit custom au fichier /usr/lib/security/mkuser.default, afin que les nouveaux ID aient automatiquement le bon appel d’audit : user: auditclasses = custom pgrp = staff groups = staff shell = /usr/bin/ksh home = /home/$USER 5. Créez un nouveau système de fichiers nommé /audit à l’aide de SMIT ou de la commande crfs. Il doit être assez grand pour contenir les deux casiers et un grand suivi d’audit. 6. Exécutez maintenant audit start et observez/audit. Vous devez d’abord voir apparaître deux fichiers casiers et un fichier de suivi trail vide. Après utilisation du système, le fichier de suivi doit contenir des enregistrements d’audit, lisibles à l’aide de la commande auditpr –hhelpPRtTc –v | more Cet exemple n’utilise que peu d’événements. Pour tous les utiliser, spécifiez le nom de classe ALL pour tous les utilisateurs. Vous obtiendrez de grandes quantités de données. Vous souhaiterez peut–être ajouter tous les événements liés aux modifications d’utilisateurs et de droits à votre classe custom. 3-14 Guide de sécurité Chapitre 4. Utilisation du protocole LDAP du sous–système de sécurité Le protocole LDAP (Light Directory Access Protocol) définit une méthode standard pour accéder à des informations dans un répertoire (une base de données) et de les mettre à jour, localement ou à distance, dans un modèle client–serveur. La méthode LDAP est utilisée par un cluster d’hôtes pour permettre une authentification centralisée de la sécurité ainsi que l’accès à des informations sur les utilisateurs et les groupes. Dans un environnement de cluster, cette fonctionnalité permet d’utiliser les mêmes informations d’authentification, d’utilisateur et de groupe dans tout l’environnement. L’exploitation LDAP du sous–système de sécurité est implémentée en tant que module de chargement d’authentification LDAP. De par sa conception, elle est similaire aux autres modules de chargement tels que NIS, DCE et Kerberos 5. Ces modules sont définis dans le fichier /usr/lib/security/methods.cfg. Le module de chargement d’authentification LDAP est implémenté à bas niveau, par les bibliothèques. Une fois ce module activé pour donner des informations sur les utilisateurs et les groupes, la plupart des API de haut niveau, des commandes et des outils de gestion de systèmes fonctionnent de manière habituelle. L’indicateur –R sert pour que la plupart des commandes de haut niveau puissent utiliser différents modules de chargement. Par exemple, la commande suivante créera depuis un poste client un utilisateur LDAP nommé joe : mkuser –R LDAP joe Le système client vérifie si l’utilisateur est un utilisateur LDAP par le biais de son attribut SYSTEM dans le fichier /etc/security/user. Si cet attribut est défini sur LDAP, cet utilisateur ne peut s’authentifier que par le biais de LDAP. Si l’attribut SYSTEM de la strophe par défaut est défini sur LDAP, tous les utilisateurs dont l’attribut SYSTEM n’est pas défini sont considérés comme étant des utilisateurs LDAP. Le mot–clé LDAP peut être utilisé avec d’autres valeurs d’attribut SYSTEM comme indiqué dans la section Authentification de l’utilisateur, page 2-30. Le système client communique avec le serveur par l’intermédiaire du démon secldapclntd. Le démon accepte les requêtes des applications (par les API de bibliothèque), émet une requête vers le serveur LDAP et renvoie les données à l’application. Il est également chargé de la mise en antémémoire. Configuration d’un serveur d’informations de sécurité LDAP Pour configurer un système comme serveur d’informations de sécurité LDAP pour l’authentification, les utilisateurs et les groupes, les modules LDAP serveur et client doivent être installés. Le serveur LDAP doit être configuré comme client et comme serveur. Il nécessite également une base de données DB2. Si Secure Socket Layer (SSL) est nécessaire, le GSKit doit être installé. L’administrateur système doit créer une clé à l’aide de la commande ikeyman. Le certificat de la clé du serveur doit être transmis aux clients. La commande mksecldap peut être utilisée pour configurer un serveur d’informations de sécurité LDAP. Elle configure une base de données appelée ldapdb2, y écrit les informations sur les utilisateurs et sur les groupes obtenues de l’hôte local, et définit le nom spécifique et le mot de passe de l’administrateur du serveur LDAP. Elle peut également configurer SSL pour la communication client/serveur. mksecldap charge ensuite un plug–in serveur (libsecldap.a) et démarre le processus du serveur LDAP (slapd). La commande mksecldap ajoute également une entrée au fichier /etc/inittab pour lancer le serveur LDAP à chaque redémarrage. Toute la configuration du serveur LDAP est effectuée à l’aide de la commande mksecldap, qui met à jour les fichiers slapd.conf (SecureWay (R) Directory version 3.1) ou slapd32.conf (SecureWay Directory version 3.2). Il n’est pas nécessaire de configurer l’interface de gestion Web de LDAP. Utilisation du protocole LDAP du sous–système de sécurité 4-1 Tous les utilisateurs et les groupes du local system sont transférés vers le serveur LDAP lors de sa configuration. Pour cette étape, choisissez l’un des schémas LDAP suivants : Schéma AIX spécifique Comprend les classes d’objets aixAccount et aixAccessGroup. Ce schéma apporte un ensemble complet d’attributs pour les utilisateurs et les groupes AIX. Schéma NIS (RFC 2307) Comprend posixAccount et le compte posixGroup ; il est utilisé par les répertoires de certains éditeurs. Ce schéma ne définit qu’une petite partie des attributs utilisés par AIX. Schéma NIS avec support AIX complet Comprend les classes d’objets posixAccount et posixGroup, ainsi que les classes aixAusAccount et aixAusGroup. Ces dernières fournissent les attributs utilisés par AIX qui ne sont pas définis par le schéma NIS. Il est recommandé de configurer le serveur LDAP à l’aide du schéma NIS avec support AIX complet, sauf si vous devez utiliser un schéma LDAP particulier pour des raisons de compatibilité avec d’autres serveurs LDAP. Toutes les informations sur les utilisateurs et les groupes sont stockées dans une même arborescence (suffixe) AIX. Le suffixe par défaut est ”cn=aixsecdb”. La commande mksecldap accepte un suffixe fourni par l’utilisateur avec l’indicateur –d. Si le premier nom spécifique relatif (Relative Distinguished Name, RDN) du suffixe fourni par l’utilisateur n’est pas ”cn=aixsecdb”, mksecldap précède ce suffixe par ”cn=aixsecdb”. Cette arborescence AIX est protégée par une liste de contrôle d’accès (ACL). Pour accéder à l’arborescence AIX, un client doit établir une liaison en tant qu’administrateur du serveur LDAP. La commande mksecldap fonctionne même si un serveur LDAP a été configuré pour d’autres utilisations (pour des informations de page bleue par exemple). Dans ce cas, mksecldap ajoute l’arborescence AIX et la remplit avec les informations sur la sécurité AIX dans la base de données existante. Cette arborescence est spécifiquement protégée par une ACL. Le serveur LDAP fonctionne normalement, et sert également de serveur de sécurité LDAP AIX. Remarque : Il est conseillé de sauvegarder la base de données avant d’exécuter la commande mdsecldap et de configurer le serveur de sécurité pour l’utilisation partagée de la base de données. Une fois le serveur d’informations de sécurité LDAP configuré, il doit également être configuré en tant que client pour permettre la gestion des utilisateurs et des groupes LDAP ainsi que la connexion au serveur des utilisateurs LDAP. Si la configuration du serveur d’informations de sécurité LDAP échoue, vous pouvez l’annuler par la commande mksecldap avec l’indicateur –U. Le fichier slapd.conf (ou slapd32.conf) redevient alors tel qu’il était avant la configuration. Vous utiliserez la commande mksecldap avec l’indicateur –U après une tentative infructueuse de configuration, et avant d’essayer à nouveau la commande mksecldap. Sinon, des informations peuvent rester dans le fichier de configuration et faire échouer la configuration suivante. Pour des raisons de sécurité, l’option annulation ne modifie ni la base de données ni ses données, car cette base peut avoir existé avant l’exécution de la commande mksecldap. Vous devez supprimer manuellement toute base de données créée par la commande mksecldap. Si des données ont été ajoutées à une base de données préexistante par la commande mksecldap, vous devez décider des mesures à prendre pour corriger la tentative de configuration. A partir de la version 5.2 d’AIX, il est également possible de configurer le serveur LDAP à l’aide de la commande mknisldap. Elle configure le serveur de la même façon que la commande mksecldap et transfère les autres données NIS, ainsi que les utilisateurs et les groupes, vers le serveur LDAP. Pour en savoir plus sur la configuration d’un serveur d’informations de sécurité LDAP, reportez–vous à la commande mksecldap. 4-2 Guide de sécurité Configuration d’un client LDAP Le module client LDAP doit être installé sur chaque client. Si SSL est nécessaire, le GSKit doit être installé, une clé doit être créée et le certificat de la clé SSL du serveur LDAP doit être ajouté à cette clé. La commande mksecldap peut être utilisée pour configurer le client. Pour que ce client contacte le serveur d’informations de sécurité LDAP, le nom du serveur doit être indiqué pendant la configuration. Le nom de domaine et le mot de passe de l’administrateur du serveur sont également nécessaires pour que le client accède à l’arborescence AIX sur le serveur. La commande mksecldap sauvegarde le nom de domaine et le mot de passe de l’administrateur du serveur, le nom du serveur, le nom de domaine de l’arborescence AIX, ainsi que le chemin et le mot de passe de la clé SSL dans le fichier /etc/security/ldap/ldap.cfg. Plusieurs serveurs peuvent être fournis à la commande mksecldap pendant la configuration du client. Dans ce cas, le client contacte les serveurs dans l’ordre indiqué et se connecte au premier serveur avec lequel il réussit à établir une liaison. Si la connexion entre le client et le serveur est défaillante, une requête de reconnexion est tentée à l’aide de la même logique. Le modèle de sécurité LDAP n’assure pas la référence. Il est important que les serveurs dupliqués restent synchronisés. Le client communique avec le serveur d’informations de sécurité LDAP par le biais d’un démon côté client (secldapclntd). Si le module de chargement LDAP est activé sur ce client, les commandes de haut niveau finissent par trouver ce démon par le biais des API. Le démon interroge le serveur et renvoie les informations à celui qui les a demandées. D’autres options d’optimisation peuvent être passées à la commande mksecldap pendant la configuration du client, comme le nombre de routines utilisées par le démon, la capacité de l’entrée cache et le délai d’expiration de cache. Ces options sont réservées aux utilisateurs expérimentés. Pour la plupart des environnements, les valeurs par défaut sont suffisantes. Une liste d’utilisateurs (séparés par des virgules) peut être fournie à la commande mksecldap pendant la configuration du client. Les attributs SYSTEM de ces utilisateurs sont définis sur LDAP. Ces utilisateurs ne peuvent ensuite s’authentifier que par le biais du module de chargement LDAP. Pour éviter les ID utilisateur en double dans la base de données LDAP, la commande mksecldap n’ajoute pas ces utilisateurs au serveur d’informations de sécurité LDAP. Pour créer ces utilisateurs sur un serveur LDAP, il est recommandé d’utiliser la commande mkuser avec l’indicateur –R LDAP. Dans les étapes finales de la configuration du client, la commande mksecldap lance le démon côté client et ajoute une entrée dans le fichier /etc/inittab pour que le démon soit lancé à chaque redémarrage. Vous pouvez vérifier si la configuration a réussi en consultant le processus secldapclntd. Du moment que le serveur d’informations de sécurité LDAP est configuré et fonctionne, ce démon s’exécutera si la configuration a réussi. Utilisation du protocole LDAP du sous–système de sécurité 4-3 Gestion des utilisateurs LDAP Vous pouvez gérer des utilisateurs et des groupes sur un serveur d’informations de sécurité LDAP à partir de n’importe quel client LDAP et de commandes de haut niveau. En ajoutant l’indicateur –R à la plupart de ces commandes, vous pouvez gérer des utilisateurs et des groupes à l’aide de LDAP ainsi que d’autres modules de chargement d’authentification tels que DCE, NIS et Kerberos 5. Pour obtenir plus d’informations sur l’utilisation de l’indicateur –R, reportez–vous à chaque commande de gestion d’utilisateurs ou de groupes. Pour permettre à un utilisateur de s’authentifier par le biais de LDAP, utilisez la commande chuser pour définir sur LDAP son attribut SYSTEM. En définissant l’attribut SYSTEM selon la syntaxe définie, un utilisateur peut être authentifié par plusieurs modules de chargement (compat et LDAP par exemple). Pour obtenir plus d’informations sur les méthodes d’authentification, reportez–vous à la section Authentification de l’utilisateur, page 2-30 et à la syntaxe de l’attribut SYSTEM définie dans le fichier /etc/security/user. Un utilisateur peut devenir un utilisateur LDAP au moment de la configuration du client en exécutant la commande mksecldap avec l’indicateur –u sous l’une des formes suivantes : 1. mksecldap –c –u user1,user2,..., où user1,user2,... est la liste des utilisateurs. Ces utilisateurs peuvent être définis localement ou à distance, avec LDAP. L’attribut SYSTEM a pour valeur LDAP dans chacune des strophes d’utilisateurs ci–dessus dans le fichier /etc/security/user. Ces utilisateurs ne seront authentifiés que par LDAP. Les utilisateurs de cette liste doivent exister sur le serveur d’informations de sécurité LDAP, sinon ils ne peuvent pas se connecter à partir de cet hôte. Lancez la commande chuser pour modifier l’attribut SYSTEM et permettre l’authentification par plusieurs méthodes (locale et LDAP par exemple). 2. ”mksecldap –c –u ALL”. Cette commande donne à l’attribut SYSTEM la valeur LDAP, dans chaque strophe utilisateur du fichier /etc/security/user, pour tous les utilisateurs définis localement. Tous ces utilisateurs ne s’authentifient que par LDAP. Les utilisateurs définis localement doivent exister sur le serveur d’informations de sécurité LDAP, sinon ils ne peuvent pas se connecter à partir de cet hôte. Un utilisateur défini sur le serveur LDAP, mais pas localement, ne peut pas se connecter à partir de cet hôte. Pour permettre à un utilisateur défini à distance avec LDAP de se connecter à partir de cet hôte, lancez la commande chuser pour donner à l’attribut SYSTEM de cet utilisateur la valeur LDAP. Vous pouvez également permettre à tous les utilisateurs LDAP, qu’ils soient définis localement ou pas, de s’authentifier par le biais de LDAP sur un hôte local en modifiant la strophe “par défaut” du fichier /etc/security/user et utiliser la valeur ”LDAP”. Tous les utilisateurs dont la valeur de l’attribut SYSTEM n’est pas définie suivront celui défini dans la strophe par défaut. Par exemple, si la strophe par défaut est ”SYSTEM = ”compat””, passer à ”SYSTEM = ”compat OR LDAP”” authentifiera ces utilisateurs par AIX ou LDAP. La modification de la strophe par défaut en ”SYSTEM = ”LDAP”” impose à ces utilisateurs de s’authentifier par LDAP. Les utilisateurs pour lesquels l’attribut SYSTEM est défini ne sont pas affectés par la strophe par défaut. 4-4 Guide de sécurité Contrôle d’accès par LDAP AIX fournit à un système un contrôle d’accès à un hôte (connexion) au niveau utilisateur. Les administrateurs peuvent configurer les utilisateurs LDAP pour se connecter à un système AIX en définissant leur attribut SYSTEM sur LDAP. L’attribut SYSTEM se trouve dans le fichier /etc/security/user. La commande chuser peut être utilisée pour définir sa valeur, comme dans l’exemple suivant : # chuser –R LDAP SYSTEM=LDAP registry=LDAP foo Remarque : Avec ce type de contrôle, ne définissez pas la valeur par défaut de l’attribut SYSTEM sur LDAP, car cela autoriserait tous les utilisateurs à se connecter au système. L’attribut LDAP ainsi défini autorise l’utilisateur foo à se connecter au système. Le registre est également défini sur LDAP, ce qui permet au processus de connexion de consigner toutes les tentatives de connexion à LDAP de foo, et autorise également toutes les tâches de gestion des utilisateurs effectuées via LDAP. Pour autoriser la connexion en fonction des utilisateurs, l’administrateur doit effectuer cette configuration sur chacun des systèmes clients. Avec AIX 5.2, l’accès des utilisateurs LDAP peut désormais être limité à certains systèmes clients LDAP. Cette fonction permet la gestion centralisée des contrôles d’accès. Les administrateurs ont la possibilité de créer deux listes de contrôle d’accès pour chaque utilisateur : une liste d’accès accordés et une liste d’accès refusés. Ces deux attributs sont enregistrés avec le compte utilisateur, sur le serveur LDAP. L’utilisateur est donc autorisé à accéder aux systèmes ou réseaux répertoriés dans la liste d’accès accordés, tandis que l’accès aux systèmes et réseaux spécifiés dans la liste d’accès refusés lui est interdit. Si un système apparaît dans les deux listes, son accès est refusé à l’utilisateur. La liste d’accès accordés se définit par la commande mkuser, lors de la création du compte utilisateur, ou par la commande chuser si l’utilisateur existe déjà. Pour des raisons de compatibilité, si aucune de ces listes n’existent pour un utilisateur, l’accès à tous les systèmes clients LDAP lui est accordé par défaut. Pour bénéficier de la fonction de contrôle d’accès, il est donc fortement recommandé de mettre à niveau tous les systèmes clients LDAP vers AIX 5.2 (ou supérieur), afin que les listes d’accès accordés et refusés soient appliquées. Voici des exemples de définition de listes d’accès accordés et refusés : # mkuser –R LDAP hostsallowedlogin=host1,host2 foo L’utilisateur foo est créé, et il n’est autorisé à se connecter qu’à host1 et host2. # mkuser –R LDAP hostsdeniedlogin=host2 foo L’utilisateur foo est créé ; il est autorisé à se connecter à tous les systèmes clients LDAP, hormis host2. # chuser –R LDAP hostsallowedlogin=192.9.200.1 foo L’utilisateur foo est ici autorisé à se connecter au système client dont l’adresse est 192.9.200.1. # chuser –R LDAP hostsallowedlogin=192.9.200/24 \ hostsdeniedlogin=192.9.200.1 foo L’utilisateur foo est autorisé à se connecter à tout client appartenant au sous–réseau 192.9.200/24, excepté celui qui a pour adresse 192.9.200.1. Pour en savoir plus, reportez–vous à la commande chuser. Utilisation du protocole LDAP du sous–système de sécurité 4-5 Audit du serveur d’informations de sécurité LDAP SecureWay Directory version 3.2 offre une fonctionnalité d’enregistrement des audits serveur. Une fois activé, ce plug–in d’audit enregistre les activités du serveur LDAP dans un fichier journal. Pour plus d’informations sur ce plug–in, reportez–vous au manuel Packaging Guide for LPP Installation dans la documentation LDAP. Une fonction d’audit de serveur d’informations de sécurité LDAP a été mise en place dans AIX versions 5.1 et ultérieures, le plug–in d’audit de sécurité LDAP. Elle est indépendante du service d’audit par défaut de SecureWay Directory. Il est donc possible d’activer l’un ou l’autre sous–système d’audit, ou les deux. Le plug–in d’audit d’AIX n’enregistre que les événements qui mettent à jour ou demandent des informations sur la sécurité d’AIX sur un serveur LDAP. Il fonctionne dans le cadre d’audit du système AIX. Pour accepter LDAP, les événements audit suivants sont compris dans le fichier /etc/security/audit/event : • LDAP_Bind • LDAP_Unbind • LDAP_Add • LDAP_Delete • LDAP_Modify • LDAP_Modifydn • LDAP_Search La définition de classe d’audit ldapserver est également créée dans le fichier /etc/security/audit/config qui contient tous les événements cités ci–dessus. Pour que le serveur d’informations de sécurité LDAP subisse un audit, ajoutez la ligne suivante à chaque strophe d’utilisateur dans le fichier /etc/security/audit/config : ldap = ldapserver comme le plug–in d’audit du serveur d’informations de sécurité LDAP est implémenté dans le cadre de l’audit du système AIX, il fait partie de ce sous–système. Vous pouvez activer ou désactiver l’audit du serveur d’informations de sécurité LDAP à l’aide de commandes audit du système, comme audit start (démarrer l’audit) ou audit shutdown (arrêter l’audit). Tous les enregistrements d’audit sont ajoutés aux traces d’audit du système, qui peuvent être consultées à l’aide de la commande auditpr. Pour en savoir plus, reportez–vous à Audit, page 3-1. Commandes LDAP La commande mksecldap La commande mksecldap peut servir à configurer des serveurs et des clients SecureWay Directory pour la gestion des données de sécurité et des authentifications. Elle doit être exécutée sur le serveur, ainsi que sur tous les clients. Remarques : 1. les options clients (indicateur –c ) et serveur (indicateur –s) ne peuvent être utilisées en même temps. Au cours de la configuration d’un serveur, la commande mksecldap doit être exécutée deux fois. La première pour configurer le serveur, la deuxième pour configurer le client. 2. Pour AIX 3.2 et supérieur, le fichier de configuration de SecureWay Directory server est /etc/slapd32.conf. AIX 5.2 n’est compatible qu’avec SecureWay Directory 3.2 et plus. Pour la configuration du serveur, assurez–vous que l’ensemble de fichiers ldap.server est bien installé. L’ensemble de fichiers ldap.client et le logiciel DB2 sont automatiquement 4-6 Guide de sécurité installés lors de l’installation de l’ensemble de fichiers ldap.server. Il n’est pas nécessaire de préconfigurer DB2 pour exécuter cette commande lors de la configuration d’un serveur LDAP. La commande mksecldap effectue les opérations suivantes : 1. Création d’une instance DB2, nommée par défaut ldapdb2. 2. Création d’une base de données DB2, nommée par défaut ldapdb2. S’il existe déjà une base de données, la commande mksecldap omettra ces deux premières étapes (c’est le cas si le serveur LDAP a déjà été configuré pour un autre usage). La commande mksecldap utilisera alors la base de données existante pour stocker les données utilisateur/groupe AIX. 3. Création du DN de l’arborescence (suffixe) AIX. Si aucun DN de base n’est fourni dans la ligne de commande, le suffixe utilisé par défaut est cn=aixdata et les données utilisateur/groupe sont placées dans le DN cn=aixsecdb,cn=aixdata. Il est conseillé de conserver ces paramètres. Dans le cas contraire, la commande mksecldap utilise le DN spécifié par l’utilisateur, et y ajoute le préfixe cn=aixdata pour en faire le suffixe. Ce mécanisme est présenté dans le tableau ci–dessous. Entre parenthèses figure le DN fourni par l’utilisateur en ligne de commande. DN de ligne de CMD : [o=ibm] suffixe : cn=aixdata[,o=ibm] DN sécurité : cn=aixsecdb,cn=aixdata[,o=ibm] DN utilisateur : ou=aixuser,cn=aixsecdb,cn=aixdata[,o=ibm] DN groupe : ou=aixgroup,cn=aixsecdb,cn=aixdata[,o=ibm] Si le serveur LDAP a déjà été configuré localement, la commande mksecldap recherche le mot clé cn=aixsecdb parmi les suffixes définis dans le fichier de configuration slapd32.conf et dans la base de données. Si elle le trouve, elle considère qu’elle a déjà été exécutée et se termine, sans effectuer les étapes de configuration du DN de base et de migration des utilisateurs/groupes. Si la commande mksecldap ne trouve le mot clé cn=aixsecdb ni parmi les suffixes, ni dans la base de données, elle recherche le mot clé cn=aixdata. cn=aixdata est un DN de base commun à plusieurs composants AIX LDAP. Si la commande trouve ce mot clé, elle le compare avec le DN fourni par l’utilisateur. S’ils sont identiques, les utilisateurs/groupes seront classés sous cn=aixsecdb,cn=aixdata,[DNutilisateur]. S’ils diffèrent, la commande mksecldap émet un message d’erreur indiquant qu’il existe un DN cn=aixdata,... et ne transfère pas les utilisateurs/groupes sous le DN fourni par l’utilisateur. Vous pouvez alors utiliser le DN cn=aixdata,... existant, en lançant de nouveau la commande mksecldap avec lui. Utilisation du protocole LDAP du sous–système de sécurité 4-7 4. Migration des données figurant dans les fichiers de la base de données de sécurité locale vers la base de données LDAP. La commande mksecldap transfère les utilisateurs/groupes à l’aide de l’un des trois schémas LDAP suivants, en fonction de l’option –S : – AIX : schéma AIX (classes d’objets aixaccount et aixaccessgroup) – RFC2307 : schéma RFC 2307 (classes d’objets posixaccount, shadowaccount et posixgroup) – RFC2307AIX : schéma RFC 2307 avec support AIX complet ( classes d’objets posixaccount, shadowaccount et posixgroup, plus les classes aixauxaccount et aixauxgroup). Attention : Les systèmes configurés comme clients LDAP et sous AIX 4.3 ou AIX 5.1, ne pourront travailler qu’avec des serveurs utilisant le schéma AIX. Aucun échange ne sera possible avec des serveurs LDAP de type RFC2307 ou RFC2307AIX. 5. Définition du DN et du mot de passe administrateur du serveur LDAP. Cette combinaison nom/mot de passe est également utilisée pour le contrôle de l’accès à l’arborescence AIX. 6. Configuration de SSL (Secure Socket Layer) pour sécuriser le transfert des données entre le serveur et les clients. Pour cette opération, le GSKIT doit être installé. Remarque : pour utiliser cette option, la clé SSL doit être créée avant de lancer la commande mksecldap. Sinon, le serveur sera peut–être dans l’impossibilité de démarrer. 7. Installation du plug–in de serveur LDAP /usr/ccs/lib/libsecldapaudit.a. Ce plug–in assure la fonction d’audit AIX du serveur LDAP. 8. Démarrage/redémarrage du serveur LDAP après toutes les opérations ci–dessus. 9. Ajout du processus serveur LDAP ( slapd) à /etc/inittab pour relancer le serveur LDAP après chaque redémarrage du serveur. 10.Annulation, à l’aide de l’option –U, de la modification précédente du fichier de configuration du serveur. Lorsque vous exécutez la commande mksecldap pour la première fois, elle enregistre deux copies du fichier de configuration de serveur slapd32.conf. L’une sous le nom /etc/security/ldap/slap32.conf.save.orig et l’autre comme /etc/ security/ldap/slapd32.conf.save. Lors des exécutions suivantes de mksecldap, le fichier slapd32.conf courant est uniquement enregistré sous /etc/security/ldap/slapd32.conf.save. L’option annulation restaure le fichier /etc/slapd32.conf de configuration du serveur avec la copie enregistrée sous /etc/security/ ldap/slapd32.conf.save. Remarque : Remarque : l’option d’annulation ne s’applique qu’au fichier de configuration du serveur. Elle n’a aucun effet sur la base de données. Toute la configuration LDAP est enregistrée dans le fichier /etc/slapd32.conf de configuration du serveur LDAP. Avant de configurer le client, assurez–vous que le serveur LDAP a été configuré et qu’il fonctionne. La commande mksecldap effectue les opérations suivantes lors de la configuration d’un client : 1. Enregistrement du nom d’hôte du ou des serveurs LDAP. 2. Enregistrement du DN de base utilisateur et du DN de base groupe du serveur. En l’absence de l’option –d, mksecldap recherche sur le serveur LDAP les classes d’objets aixaccount, aixaccessgroup, posixaccount, posixgroup et aixauxaccount, pour définir les DN de base. Si le serveur comporte plusieurs bases utilisateur/groupe, vous devez fournir un RDN à l’option –d afin que la commande mksecldap puisse définir les DN de base en fonction de ceux contenus dans le RDN. 4-8 Guide de sécurité Si mksecldap trouve la classe d’objets posixaccount au cours de la configuration du client, elle recherche également sur le serveur, puis enregistre, les DN de base des entités suivantes : hôtes, réseaux, services, groupes réseaux, protocoles et RPC. 3. Identification du type de schéma utilisé par le serveur LDAP : schéma AIX spécifique, schéma RFC 2307 ou schéma RFC 2307 avec support AIX complet (voir les classes d’objet répertoriées à l’étape 2). Elle définit en conséquence les classes d’objets et les mappes d’attributs dans le fichier /etc/security/ldap/ ldap.cfg. La commande mksecldap ne reconnaît que ces types de schéma. Les clients doivent donc être configurés manuellement. 4. Configuration de SSL pour sécuriser le transfert des données entre l’hôte et le serveur LDAP. Pour cette étape, la clé et le mot de passe SSL doivent avoir été préalablement créés. De plus, le serveur doit être configuré pour utiliser SSL pour que le SSL du client fonctionne. 5. Enregistrement du DN et du mot de passe administrateur du serveur LDAP. La combinaison DN/mot de passe doit être identique à celle indiquée au cours de la configuration du serveur. 6. Définition de la taille du cache en nombre d’entrées utilisées par le démon du côté client. Les valeurs vont de 100 à 10 000 pour les utilisateurs, et de 10 à 1 000 pour les groupes. La valeur par défaut est 1 000 pour les utilisateurs et 100 pour les groupes. 7. Définition du délai d’expiration du cache pour le démon du côté client. Les valeurs admises vont de 60 à 3 600 secondes. La valeur par défaut est de 300 secondes. La valeur 0 désactive la mise en cache. 8. Définition du nombre de processus utilisés par le démon du côté client. La valeur doit être comprise entre 1 et 1 000. La valeur par défaut est 10. 9. Définition de l’intervalle (en secondes) entre deux vérifications du statut du serveur LDAP par le démon client. Les valeurs admises vont de 60 à 3 600 secondes. La valeur par défaut est 300. 10.Peut définir une liste des utilisateurs, ou tous les utilisateurs, pour qu’ils utilisent LDAP, en modifiant la ligne SYSTEM du fichier /etc/security/user. Pour en savoir plus sur l’activation de la connexion LDAP, reportez–vous à la remarque ci–dessous. 11. Démarrage du processus de démon client (secldapclntd). 12.Ajout du processus de démon côté client à /etc/inittab pour qu’il démarre après chaque redémarrage du serveur. 13.Annulation, à l’aide de l’option –U, de la précédente modification du fichier de configuration /etc/security/ldap/ldap.cfg. Remarque : Les données de configuration du client sont stockées dans le fichier /etc/security/ldap/ldap.cfg. Définir SYSTEM sur LDAP dans la strophe par défaut de /etc/security/user n’autorise que les utilisateurs LDAP à se connecter au système. Définir SYSTEM sur LDAP ou compat permet à la fois aux utilisateurs LDAP et aux utilisateurs locaux de se connecter au système. Exemples 1. Pour configurer un serveur LDAP de schéma AIX spécifique pour les utilisateurs et les groupes, saisissez : mksecldap –s –a cn=admin –p adminpwd –S aix Le serveur LDAP se voit attribuer cn=admin comme DN administrateur, et adminpwd comme mot de passe. Les données utilisateur et groupe sont transférées des fichiers locaux vers le suffixe par défaut cn=aixdata. 2. Pour configurer un serveur LDAP avec un autre DN de base que la valeur par défaut, et utilisant SSL, saisissez : Utilisation du protocole LDAP du sous–système de sécurité 4-9 mksecldap –s –a cn=admin –p adminpwd –d o=mycompany,c=us –S rfc2307 \ –k /usr/ldap/serverkey.kdb –w keypwd Le serveur LDAP se voit attribuer cn=admin comme DN administrateur et adminpwd comme mot de passe. Les données utilisateur et groupe sont transférées des fichiers locaux vers le suffixe cn=aix–data,o=mycompany,c=us. Le serveur LDAP utilise SSL pour ses communications avec la clé stockée sous /usr/ldap/serverkey.kdb. Le mot de passe de la clé, keypwd, doit également être indiqué. Les utilisateurs et les groupes sont migrés avec le schéma RFC 2307. 3. Pour annuler la configuration d’un serveur : mksecldap –s –U Cette commande annule la configuration précédemment enregistrée dans le fichier de configuration de serveur /etc/slapd32.conf. Pour des raisons de sécurité, aucune base de données et aucune entrée créée par une précédente configuration n’est supprimée. Si des bases de données ou des entrées sont devenues inutiles, supprimez–les manuellement. 4. Pour configurer un client pour qu’il utilise les serveurs LDAP server1.ibm.com et server2.ibm.com, saisissez : mksecldap –c –a cn=admin –p adminpwd –h server1.ibm.com,server2.ibm.com Le DN et le mot de passe administrateur du serveur LDAP doivent être fournis au client pour lui permettre de s’authentifier. La commande mksecldap contacte le serveur LDAP pour connaître son type de schéma, puis configure le client en conséquence. En l’absence de l’option –d dans la ligne de commande, le DIT du serveur est entièrement parcouru pour trouver les DN de base utilisateur et groupe. 5. Pour configurer le client pour qu’il communique avec le serveur LDAP server3.ibm.com en utilisant SSL, saisissez : mksecldap –c –a cn=admin –p adminpwd –h server3.ibm.com –d o=mycompany,c=us –k /usr/ldap/clientkey.kdb –w keypwd –u user1,user2 La configuration du client LDAP est similaire à celle du point 4, avec en plus l’utilisation de SSL. La commande mksecldap recherche les DN de base utilisateur et groupe dans le RDN o=mycompany,c=us. Les comptes user1 et user2 sont configurés pour s’authentifier via LDAP. Remarque : L’option –u ALL permet à tous les utilisateurs LDAP de se connecter à ce client. 6. Pour annuler la configuration d’un client : mksecldap –c –U Cette commande annule la configuration précédemment enregistrée dans le fichier /etc/security/ldap/ldap.cfg. Elle n’annule pas les entrées SYSTEM=LDAP et registry=LDAP du fichier /etc/security/user. Pour plus de détails sur la commande mksecldap, reportez–vous à mksecldap dans le manuel AIX 5L Version 5.2 Commands Reference. Le démon secldapclntd Le démon secldapclntd reçoit des requêtes de la part des modules de chargement LDAP, les transmet au serveur d’informations de sécurité LDAP, puis renvoie les résultats au module de chargement LDAP. Pendant le démarrage, il lit les informations de configuration du fichier /etc/security/ldap/ldap.cfg, s’authentifie auprès du serveur d’informations de sécurité LDAP avec le DN et le mot de passe administrateur du serveur, puis établit une connexion entre l’hôte local et le serveur. Si plusieurs serveurs sont indiqués dans le fichier /etc/security/ldap/ldap.cfg, le démon secldapclntd se connecte à tous ces serveurs. Toutefois, il ne communique qu’avec un seul serveur à la fois. Si le serveur avec lequel il est en communication ne fonctionne plus, le démon secldapclntd détecte cette panne et s’adresse automatiquement à un autre 4-10 Guide de sécurité serveur disponible. Le démon est également capable de détecter qu’un serveur est de nouveau disponible, auquel cas il rétablit la connexion avec celui–ci, sans pour autant interrompre la communication en cours. Pour cette fonction de détection automatique, le démon secldapclntd procède périodiquement à la vérification de tous les serveurs. L’intervalle entre deux vérifications est fixé par défaut à 300 secondes. Il peut être modifié lors du démarrage du démon à l’aide de la ligne de commande, ou en ajustant les valeurs correspondantes dans le fichier /etc/ security/ldap/ldap.cfg. Le démon secldapclntd tente de se connecter aux serveurs LDAP lors du démarrage. S’il ne parvient pas à se connecter à un serveur, il se met en sommeil et fait une nouvelle tentative 30 secondes plus tard. Cette procédure est répétée deux fois. Si elle échoue, le processus du démon secldapclntd se termine. Le démon secldapclntd est un programme à plusieurs unités d’exécution. Par défaut, le démon utilise 10 processus. Le nombre de processus peut être ajusté par l’administrateur pour améliorer les performances du système. Dans ce même objectif, le démon secldapclntd met en cache les informations récupérées sur le serveur d’informations de sécurité LDAP. Si les données demandées sont disponibles dans le cache et n’ont pas expiré, le démon les utilise pour répondre au demandeur. Sinon, il envoie une requête au serveur d’informations de sécurité LDAP. Le nombre d’entrées du cache va de 100 à 10 000 pour les utilisateurs (1 000 par défaut), et de 10 à 1 000 pour les groupes (100 par défaut). Le délai d’expiration du cache (TTL) peut aller de 60 secondes à 1 heure (60*60 = 3 600 secondes). Par défaut, il est de 300 secondes. Un délai de 0 désactive la mise en cache. Exemples 1. Pour démarrer le démon secldapclntd, saisissez : /usr/sbin/secldapclntd 2. Pour démarrer le démon secldapclntd avec l’utilisation de 20 unités d’exécution et un délai d’expiration du cache de 600 secondes, tapez : /usr/sbin/secldapclntd –p 20 –t 600 Il est recommandé de démarrer le démon secldapclntd à l’aide de la commande start–secldapclntd. Il est également recommandé d’indiquer ces valeurs dans le fichier /etc/security/ldap/ldap.cfg, de façon à ce qu’elles soient prises en compte à chaque démarrage du processus secldapclntd. Pour plus de détails sur le démon secldapclntd, reportez–vous à secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Les commandes de gestion LDAP Commande start–secldapclntd La commande start–secldapclntd lance le démon secldapclntd s’il n’est pas en cours d’exécution. S’il fonctionne déjà, elle n’a aucun effet. Le script supprime aussi les enregistrements du mappeur de port (le cas échéant) relatifs aux processus précédents du démon secldapclntd avant chaque nouveau démarrage. Ceci évite tout échec de démarrage du démon dû à une erreur d’enregistrement dans le mappeur de port. Exemples 1. Pour démarrer le démon secldapclntd, saisissez : /usr/sbin/start–secldapclntd 2. Pour démarrer le démon secldapclntd avec l’utilisation de 20 unités d’exécution et un délai d’expiration du cache de 600 secondes, tapez /usr/sbin/start–secldapclntd –p 20 –t 600 Utilisation du protocole LDAP du sous–système de sécurité 4-11 Il est recommandé d’indiquer ces valeurs dans le fichier /etc/security/ldap/ldap.cfg, de façon à ce qu’elles soient prises en compte à chaque démarrage du processus secldapclntd. Pour plus de détails sur la commande start–secldapclntd, reportez–vous à start–secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Commande stop–secldapclntd La commande stop–secldapclntd arrête le démon secldapclntd en cours d’exécution. S’il ne fonctionne pas, elle retourne une erreur. Exemple Pour arrêter un processus de démon secldapclntd, tapez : /usr/sbin/stop–secldapclntd Pour plus de détails sur la commande stop–secldapclntd, reportez–vous à stop–secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Commande restart–secldapclntd Le script restart–secldapclntd arrête le démon secldapclntd s’il fonctionne, puis le redémarre. Si le démon ne fonctionne pas, il se contente de le démarrer. Exemples 1. Pour redémarrer le démon secldapclntd, saisissez : /usr/sbin/restart–secldapclntd 2. Pour redémarrer secldapclntd avec 30 unités d’exécution et un délai d’expiration du cache de 500 secondes, tapez : /usr/sbin/restart–secldapclntd –p 30 –t 500 Pour plus de détails sur la commande restart–secldapclntd, reportez–vous à restart–secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Commande ls–secldapclntd La commande ls–secldapclntd affiche l’état du démon secldapclntd. Les informations suivantes sont retournées : • Le serveur LDAP auquel s’adresse le démon secldapclntd • Le numéro du port du serveur LDAP • La version du protocole LDAP utilisée • Le DN de base utilisateur • Le DN de base groupe • Le DN de base du système (ID) • La taille du cache utilisateur • L’occupation du cache utilisateur • La taille du cache groupe • L’occupation du cache groupe • Le délai d’expiration du cache (durée de vie) • La fréquence des interrogation émises par secldapclntd à destination du serveur LDAP • Le nombre d’unités d’exécution utilisés par le démon secldapclntd • La classe d’objets utilisateur utilisée par le serveur LDAP • La classe d’objets groupe utilisée par le serveur LDAP 4-12 Guide de sécurité Exemple 1. Pour afficher l’état du démon secldapclntd, saisissez : /usr/sbin/ls–secldapclntd Pour plus de détails sur la commande ls–secldapclntd, reportez–vous à ls–secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Commande flush–secldapclntd La commande flush–secldapclntd nettoie le cache pour le processus du démon secldapclntd. Exemple 1. Pour nettoyer le cache du démon secldapclntd, saisissez : /usr/sbin/flush–secldapclntd Pour plus de détails sur la commande flush–secldapclntd, reportez–vous à flush–secldapclntd dans le manuel AIX 5L Version 5.2 Commands Reference. Commande sectoldif La commande sectoldif accède aux utilisateurs et aux groupes définis localement et envoie le résultat au format ldif vers stdout. S’il est redirigé vers un fichier, le résultat peut être ajouté au serveur LDAP à l’aide de la commande ldapadd ou de la commande db2ldif. L’option –S précise le type de schéma utilisé pour la sortie ldif. La commande sectoldif accepte trois types de schéma : • AIX : schéma AIX (classes d’objets aixaccount et aixaccessgroup) • RFC2307 : schéma RFC 2307 (classes d’objets posixaccount, shadowaccount et posixgroup) • RFC2307AIX : schéma RFC 2307 avec support AIX complet ( classes d’objets posixaccount, shadowaccount et posixgroup, plus les classes aixauxaccount et aixauxgroup) Pendant la configuration du serveur LDAP, la commande mksecldap appelle la commande sectoldif pour effectuer la migration des utilisateurs et des groupes. Il convient d’être particulièrement vigilant lors d’une migration d’utilisateurs et de groupes effectuée depuis d’autres systèmes vers le serveur LDAP en utilisant la sortie de sectoldif. En effet, les commandes ldapadd et db2ldif vérifient le nom des entrées lors d’un ajout (nom de l’utilisateur ou du groupe), mais pas leurs ID numériques. La migration d’utilisateurs et de groupes effectuée à partir de la sortie de sectoldif et pour plusieurs systèmes peut aboutir à plusieurs comptes dotés du même ID numérique, ce qui constitue une violation de sécurité. Exemples 1. Pour lister tous les utilisateurs et les groupes définis localement, tapez la commande suivante : sectoldif –d cn=aixsecdb,cn=aixdata –S rfc2307aix Cette commande envoie tous les utilisateurs et les groupes définis localement vers stdout, au format ldif. Les entrées utilisateurs et groupes sont représentées selon le schéma de type RFC2307AIX. Le DN de base est défini sur cn=aixsecdb, cn=aixdata. 2. Pour n’afficher qu’un seul utilisateur défini localement, ici foo, tapez : sectoldif –d cn=aixsecdb,cn=aixdata –u foo L’utilisateur foo défini localement est envoyé vers stdout, au format ldif. En l’absence de l’option –S, le schéma par défaut AIX est utilisé pour présenter la sortie ldif. Utilisation du protocole LDAP du sous–système de sécurité 4-13 Pour plus de détails sur la commande sectoldif, reportez–vous à sectoldif dans le manuel AIX 5L Version 5.2 Commands Reference. Le format de fichier ldap.cfg Le fichier /etc/security/ldap/ldap.cfg contient les informations nécessaires au démarrage et au bon fonctionnement du démon secldapclntd, ainsi que des informations permettant d’ajuster ses performances. Il est mis à jour par la commande mksecldap lors de la configuration du client. Les champs suivants peuvent apparaître dans le fichier /etc/security/ldap/ldap.cfg : 4-14 ldapservers Indique la liste des serveurs d’informations de sécurité LDAP (séparés par des virgules). Ces serveurs peuvent être soit des serveurs primaires, soit des serveurs primaires dupliqués. ldapadmin Indique le DN administrateur des serveurs d’informations de sécurité LDAP. ldapadmpwd Indique le mot de passe du DN administrateur. useSSL Indique s’il faut utiliser une communication SSL. Les valeurs possibles sont ON et OFF. La valeur par défaut est OFF. Remarque : Pour activer cette fonction, vous aurez besoin d’une clé SSL et de son mot de passe. ldapsslkeyf Indique le chemin complet de la clé SSL. ldapsslkeypwd Indique le mot de passe de la clé SSL. Remarque : Mettez cette ligne en commentaire pour utiliser le mot de passe sécurisé (stash password). Le fichier stash de mot de passe doit se trouver dans le même répertoire que celui de la clé SSL et porter le même nom, mais avec l’extension .sth au lieu de.kdb. userattrmappath Indique le chemin d’accès à la mappe d’attributs utilisateurs AIX LDAP. groupattrmappath Indique le chemin d’accès à la mappe d’attributs groupes AIX LDAP. idattrmappath Indique le chemin d’accès à la mappe d’attributs des ID AIX LDAP. Ces ID sont utilisés par la commande mkuser lors de la création des utilisateurs LDAP. userbasedn Définit le DN de base utilisateur. groupbasedn Définit le DN de base groupe. idbasedn Définit le DN de base des ID. hostbasedn Définit le DN de base de l’hôte. servicebasedn Indique le DN de base du service. protocolbasedn Définit le DN de base du protocole. networkbasedn Définit le DN de base du réseau. Guide de sécurité netgroupbasedn Définit le DN de base du groupe réseau. rpcbasedn Définit le DN de base RPC. userclasses Définit les classes d’objets utilisées pour les entrées utilisateurs. groupclasses Définit les classes d’objets utilisées pour les entrées groupes. ldapversion Définit la version du protocole du serveur LDAP. La valeur par défaut est 3. ldapport Définit le port sur lequel écoute le serveur LDAP. La valeur par défaut est 389. ldapsslport Définit le port SSL sur lequel écoute le serveur LDAP. La valeur par défaut est 636. followaliase Indique s’il faut suivre les alias. Les valeurs possibles sont NEVER, SEARCHING, FINDING et ALWAYS. La valeur par défaut est NEVER. usercachesize Précise la taille du cache utilisateur. Les valeurs vont de 100 à 10 000 entrées. La valeur par défaut est 1 000. groupcachesize Précise la taille du cache groupe. Les valeurs vont de 10 à 1 000 entrées. La valeur par défaut est 100. cachetimeout Indique la durée de vie (TTL) du cache. Les valeurs admises vont de 60 à 3 600 secondes. La valeur par défaut est 300. La valeur 0 désactive la mise en cache. heartbeatinterval Définit l’intervalle (en secondes) entre deux vérifications par le client du statut du serveur LDAP. Les valeurs admises vont de 60 à 3 600 secondes. La valeur par défaut est 300. numberofthread Définit le nombre d’unités d’exécution utilisés par le démon secldapclntd. Les valeurs admises vont de 1 à 1 000. La valeur par défaut est 10. Pour plus de détails sur le fichier /etc/security/ldap/ldap.cfg, reportez–vous à /etc/security/ldap/ldap.cfg dans le manuel AIX 5L Version 5.2 Files Reference. Utilisation du protocole LDAP du sous–système de sécurité 4-15 Format de fichier du mappage des attributs LDAP Ces fichiers de mappage sont utilisés par le module /usr/lib/security/LDAP et le démon secldapclntd pour convertir les noms des attributs AIX en noms d’attributs LDAP. Chaque entrée dans le fichier de mappage correspond à la traduction d’un attribut. Chaque entrée comporte quatre champs séparés par des espaces : AIX_Attribute_Name AIX_Attribute_Type LDAP_Attribute_Name LDAP_Value_Type AIX_Attribute_Name Indique le nom de l’attribut AIX. AIX_Attribute_Type Indique le type de l’attribut AIX. Les valeurs admises sont SEC_CHAR, SEC_INT, SEC_LIST et SEC_BOOL. LDAP_Attribute_Name Indique le nom de l’attribut LDAP. LDAP_Value_Type Indique le type de valeur LDAP. s indique une valeur unique et m des valeurs multiples. Pour plus de détails sur le format de fichier de mappage des attributs, reportez–vous à LDAP attribute mapping file format dans le manuel AIX 5L Version 5.2 Files Reference. Informations connexes Commandes mksecldap, start–secldapclntd, stop–secldapclntd, restart–secldapclntd, ls–secldapclntd, sectoldif et flush–secldapclntd. Démon secldapclntd. Fichier /etc/security/ldap/ldap.cfg. Format de fichier de mappage des attributs LDAP. 4-16 Guide de sécurité Chapitre 5. PKCS #11 Grâce au sous-système PKCS #11, les applications disposent d’un moyen d’accéder aux unités matérielles (jetons) qui est indépendant de ces unités. Le contenu de ce chapitre est conforme à la Version 2.01 de la norme PKCS #11. Ce sous-système a été implémenté à l’aide des composants suivants : • Un démon gestionnaire de connecteurs (pkcsslotd), qui fournit au sous-système des informations sur l’état des unités matérielles disponibles. Ce démon est démarré automatiquement lors de l’installation ou du redémarrage du système. • Un objet API partagé (/usr/lib/pkcs11/pkcs11_API.so) est fourni comme interface générique des cartes pour lesquelles PKCS #11 a été implémentée. • Une bibliothèque pour chaque carte, qui fournit le support PKCS #11 spécifique. Cette conception étagée permet à l’utilisateur d’utiliser de nouvelles unités PKCS #11 lorsqu’elles sont disponibles sans avoir à recompiler des applications existantes. Ce chapitre traite des points suivants : • Coprocesseur de chiffrement 4758 Model 2, page 5-1 • Configuration du sous-système PKCS #11, page 5-2 • Utilisation de PKCS #11, page 5-4 Coprocesseur de chiffrement 4758 Model 2 Le coprocesseur de chiffrement 4758 Model 2 sécurise l’environnement informatique. Avant de tenter de configurer le sous-système PKCS #11, vérifiez que la carte a été correctement configurée avec un microcode compatible. Vérification du coprocesseur de chiffrement 4758 Model 2 pour une utilisation avec le sous-système PKCS #11 Le sous-système PKCS #11 détecte automatiquement lors de l’installation et du redémarrage les cartes acceptant les appels PKCS #11. C’est pourquoi un coprocesseur de chiffrement 4758 Model 2 qui n’est pas correctement configuré ne sera pas accessible depuis l’interface PKCS #11 et les appels envoyés échoueront. Procédez comme suit pour vérifier si votre carte est correctement configurée : 1. Assurez-vous que le logiciel de la carte est correctement installé à l’aide de la commande suivante : lsdev –Cc adapter | grep crypt Si le coprocesseur de chiffrement IBM 4758 Model 2 ne s’affiche pas dans la liste des résultats, vérifiez que la carte est correctement insérée et que le logiciel de prise en charge est correctement installé. 2. Vérifiez que le firmware approprié a été chargé sur la carte à l’aide de l’utilitaire csufclu : csufclu /tmp/l ST device_number_minor Vérifiez que l’Image Segment 3 montre l’application PKCS #11 chargée. Si ce n’est pas le cas, consultez la documentation de la carte pour obtenir les dernières informations relatives au microcode et à l’installation. Remarque : Si cet utilitaire n’est pas disponible, il faudra installer le logiciel de prise en charge. PKCS #11 5-1 Configuration du sous-système PKCS #11 Le sous-système PKCS #11 détecte automatiquement les unités compatibles. Toutefois, pour utiliser ces unités, certaines applications ont besoin d’une configuration initiale. Ces tâches sont les suivantes : • Initialisation du jeton, page 5-2 • Configuration du PIN de l’agent de sécurité, page 5-2 • Initialisation du PIN utilisateur, page 5-3 Vous pouvez effectuer ces tâches via l’API (en écrivant une application PKCS #11) ou à l’aide de l’interface SMIT. Les options SMIT de PKCS #11 sont accessibles via le sous-système Gestion du PKCS11 depuis le menu principal SMIT, ou à l’aide du raccourci smit pkcs11. Initialisation du jeton Chaque carte ou jeton PKCS #11 doit être initialisé avant de pouvoir être utilisé. Cette procédure implique la définition d’un libellé unique pour le jeton. Ce libellé permet aux applications d’identifier le jeton par un numéro d’ordre unique. Par conséquent, les libellés ne doivent pas être répétés. Toutefois, l’API ne vérifie pas si les libellés sont réutilisés ou non. Cette initialisation peut se faire par une application PKCS #11, ou par l’administrateur du système avec l’interface SMIT. Si votre jeton dispose d’un PIN du responsable de sécurité, la valeur par défaut est 87654321. Pour garantir la sécurité du sous-système PKCS #11, cette valeur doit être modifiée après l’initialisation. Pour initialiser le jeton : 1. Affichez l’écran de gestion du jeton en tapant smit pkcs11. 2. Sélectionnez Initialiser un jeton. 3. Sélectionnez une carte PKCS #11 dans la liste de celles prises en charge. 4. Appuyez sur Entrée pour confirmer votre choix. Remarque : Cette action effacera toutes informations figurant sur le jeton. 5. Entrez le PIN du responsable de sécurité (SO PIN) et un libellé unique du jeton. Si le PIN correct est entré, la carte sera initialisée ou réinitialisée une fois l’exécution de la commande terminée. Configuration du PIN du responsable de sécurité Si votre jeton dispose d’un SO PIN, vous pouvez en modifier la valeur par défaut, comme suit : 1. Tapez smit pkcs11. 2. Sélectionnez Configurer le PIN du responsable de sécurité. 3. Sélectionnez la carte initialisée pour laquelle vous voulez configurer le SO PIN. 4. Entrez le SO PIN courant et un nouveau PIN. 5. Vérifiez le nouveau PIN. 5-2 Guide de sécurité Initialisation du PIN utilisateur Une fois le jeton initialisé, vous devrez peut–être configurer le PIN utilisateur pour permettre aux applications d’accéder aux objets du jeton. Consultez la documentation spécifique à votre unité pour déterminer si elle nécessite la connexion d’un utilisateur avant de pouvoir accéder aux objets. Pour initialiser le PIN utilisateur : 1. Affichez l’écran de gestion du jeton en tapant smit pkcs11. 2. Sélectionnez Initialiser le PIN utilisateur. 3. Sélectionnez une carte PKCS #11 dans la liste. 4. Entrez le SO PIN et le PIN utilisateur. 5. Vérifiez le PIN utilisateur. 6. Après vérification, le PIN utilisateur sera modifié. Reconfiguration du PIN utilisateur Pour reconfigurer le PIN utilisateur, vous pouvez réinitialiser le PIN à l’aide du SO PIN ou définir le PIN utilisateur à l’aide de celui existant. Pour ce faire : 1. Affichez l’écran de gestion du jeton en tapant smit pkcs11. 2. Sélectionnez Définir le PIN utilisateur. 3. Sélectionnez la carte initialisée pour laquelle vous voulez configurer le PIN utilisateur. 4. Entrez le PIN utilisateur courant et un nouveau PIN. 5. Vérifiez le nouveau PIN utilisateur. Configuration du vecteur de contrôle des fonctions PKCS #11 Votre jeton n’assurera peut–être pas le chiffrement avancé sans charger un vecteur de contrôle des fonctions. Veuillez consulter la documentation de votre unité pour déterminer si votre jeton a besoin d’un vecteur de contrôle des fonctions et où le placer. Si un vecteur de contrôle des fonctions est nécessaire, vous devez posséder un fichier de clés. Pour charger le vecteur de contrôle des fonctions : 1. Affichez l’écran de gestion du jeton en tapant smit pkcs11. 2. Sélectionnez Configurer le vecteur de contrôle des fonctions. 3. Sélectionnez le connecteur PKCS #11 du jeton. 4. Entrez le chemin menant au fichier du vecteur de contrôle des fonctions. PKCS #11 5-3 Utilisation de PKCS #11 Pour qu’une application puisse utiliser le sous-système PKCS #11, le démon gestionnaire d’emplacements du sous- doit être actif, et l’application doit charger l’objet d’API partagé. Le gestionnaire d’emplacements est généralement lancé au démarrage par inittab, avec le script /etc/rc.pkcs11. Ce script vérifie les cartes du système avant de lancer le démon de gestionnaire d’emplacements. Par conséquent, ce démon n’est pas disponible avant que l’utilisateur ne soit connecté au système. Une fois le démon lancé, le sous-système intègre toutes les modifications apportées au nombre et aux types de cartes prises en charge, sans aucune intervention de l’administrateur système. L’API peut être chargée en faisant un link de l’objet au moment de l’exécution ou en utilisant une résolution différée de symboles. Par exemple, une application peut obtenir la liste des fonctions PKCS #11 de la manière suivante : d CK_RV (*pf_init)(); void *d; CK_FUNCTION_LIST *functs; d = dlopen(e, RTLD_NOW); if ( d == NULL ) { return FALSE; } pfoo = (CK_RV (*)())dlsym(d, ”C_GetFunctionList”); if (pfoo == NULL) { return FALSE; } rc = pf_init(&functs); 5-4 Guide de sécurité Chapitre 6. Service d’authentification de certificats X.509 et infrastructure à clef publique Le Service d’authentification des certificats permet au système d’exploitation AIX 5.2 d’authentifier les utilisateurs à l’aide de certificats X.509 d’infrastructure à clef publique (PKI, Public Key Infrastructure), et d’associer ces certificats à des processus pour confirmer l’identité d’un utilisateur. Pour ce faire, il utilise LAMF (Loadable Authentication Module Framework), le même mécanisme d’extension AIX utilisé pour les méthodes d’authentification DCE, Kerberos et autres. Cette section traite des points suivants : • Présentation du service d’authentification de certificats, page 6-1 • Mise en œuvre du service d’authentification de certificats, page 6-3 • Planification du service d’authentification de certificats, page 6-14 • Modules du service d’authentification de certificats, page 6-17 • Installation et configuration du service d’authentification de certificats, page 6-18 Présentation du service d’authentification de certificats Chaque compte utilisateur participant à une authentification PKI possède un certificat PKI unique. En association avec un mot de passe, ce certificat authentifie l’utilisateur lors de sa connexion. Les certificats PKI reposent sur le système de clef publique/clef privée. Ce système utilise deux clefs non symétriques pour chiffrer et déchiffrer les données. Les données chiffrées à l’aide d’une clef ne peuvent être déchiffrées qu’avec l’autre clef. L’utilisateur conserve la clef privée et l’enregistre dans un magasin de clefs privé, et publie l’autre clef, la clef publique, sous la forme d’un certificat. Les certificats sont généralement conservés sur un serveur LDAP (Lightweight Directory Access Protocol), soit pour une utilisation interne à l’entreprise, soit sur Internet pour une utilisation dans le monde entier. Pour que John puisse envoyer des données déchiffrables uniquement par Kathy, le certificat publié pour Kathy fournira à John la clef publique nécessaire pour chiffrer les données, qui pourront alors être envoyées à Kathy. Kathy déchiffrera les données envoyées par John à l’aide de sa clef privée, conservée dans son magasin de clefs privé. Ce système est également utilisé pour les signatures numériques. Pour envoyer à John des données validées par sa signature numérique, Kathy devra utiliser sa clef privée. John utilisera la clef publique contenue dans le certificat publié de Kathy pour vérifier la signature numérique attachée aux données. Dans les deux cas, la clef privée de Kathy est conservée dans un magasin de clefs privé. Il existe divers types de magasin de clefs privés, par exemple des fichiers ou des smart cards, mais tous protègent toutes les clefs privées au moyen de mots de passe ou de numéros PIN (Personal Identification Numbers). Ils assurent généralement le stockage de plusieurs clefs privées ainsi que de certificats et d’objets PKI. Les utilisateurs disposent habituellement de leurs propres magasins de clefs. Le service d’authentification de certificats utilise les signatures numériques pour authentifier un utilisateur lors de la connexion. Il repère le magasin de clefs et le certificat de l’utilisateur en fonction de son nom de compte, utilise le mot de passe de l’utilisateur pour trouver dans le magasin la clef privée correspondant au certificat, signe les données avec cette clef privée, et utilise la clef publique de l’utilisateur contenu dans le certificat pour vérifier la signature. Une fois l’utilisateur authentifié, le système enregistre le certificat en mémoire Service d’authentification de certificats X.509 et infrastructure à clef publique 6-1 protégée et l’associe à chaque processus créé par l’utilisateur. Cette association en mémoire permet l’accès rapide au certificat de l’utilisateur pour tous les processus qu’il possède, ainsi que pour ceux détenus par le noyau du système d’exploitation. Certificats Pour comprendre le service d’authentification des certificats, vous devez posséder quelques connaissances sur les certificats, leurs formats et la gestion de leur cycle de vie. Les certificats sont des objets standardisés conformes à la norme X.509, dont X.509v3 est la toute dernière version. Les certificats sont créés, signés et émis par une autorité de certification (CA), la plupart du temps un logiciel qui accepte et traite les demandes de certificats. Il existe plusieurs attributs de certificats. Certains d’entre eux sont obligatoires, d’autres sont facultatifs. Voici les attributs de certificats les plus couramment utilisés et traités dans ce document : • Version des certificats – Le numéro de version X.509 (1, 2 ou 3). • Numéro de série – Un numéro unique, qui différencie un certificat parmi tous ceux qui ont été émis par la même autorité de certification. • Nom de l’émetteur – Le nom de l’autorité de certification qui a émis le certificat. • Période de validité – La date d’activation et d’expiration du certificat. • Clef publique – La clef publique. • Utilisateur DN – Nom du propriétaire du certificat. • E–mail du nom d’utilisateur supplémentaire – Adresse e–mail du propriétaire. • URI du nom d’utilisateur supplémentaire – L’URI/URL du site Web du propriétaire. Chaque certificat possède un numéro de version, qui indique à quelle version de la norme X.509 il est conforme. Chaque certificat possède un numéro de série unique qui le différencie de tous les autres certificats émis par la même autorité de certification. Le numéro de série n’est unique que pour l’autorité de certification émettrice. Le nom d’émetteur du certificat identifie l’autorité de certification émettrice. Les certificats ne sont valides qu’entre deux dates spécifiées : la date “ Pas avant ” et la date “ Pas après ”. Les certificats peuvent donc être créés avant leur date de début de validité. La durée de vie d’un certificat est en moyenne de 3 mois à 5 ans. L’utilisateur DN indique le propriétaire du certificat, dans un format de dénomination spécial, le Nom spécifique (Distinguished Name, DN). Un DN peut indiquer le pays, l’entreprise, la ville, l’état, le nom du propriétaire et d’autres attributs associés au demandeur (généralement une personne, mais pas seulement). L’e–mail du nom d’utilisateur supplémentaire indique l’adresse e–mail du propriétaire, et l’URI du nom d’utilisateur supplémentaire permet d’indiquer l’URI/URL du site Web du propriétaire. Autorités de certification et certificats Les autorités de certification émettent, enregistrent et généralement publient les certificats. La publication des certificats se fait souvent sur un serveur LDAP, puisque LDAP offre à tous un accès facile aux données d’une communauté. Les autorités de certification assurent également la révocation des certificats et la gestion des listes de révocation de certificats (CRL). La révocation d’un certificat consiste à publier le fait qu’il n’est plus valide, pour des raisons autres que l’expiration de sa période de validité. Comme de nombreuses ces copies des certificats peuvent être conservées et utilisées indépendamment du contrôle de l’autorité de certification émettrice, les autorités de certification publient une liste des certificats révoqués dans une CRL, de sorte que des entités extérieures puisse interroger la liste. Il est alors de leur responsabilité de s’assurer que le certificat est valide, en comparant la copie du certificat à la CRL de l’autorité de certification émettrice. Une autorité de certification ne peut révoquer que des certificats qu’elle crée ou émet. Elle ne peut pas révoquer des certificats émis par d’autres autorités de certification. 6-2 Guide de sécurité Voici quelques raisons administratives justifiant la révocation d’un certificat : • Sécurité compromise de la clef privée du certificat. • Le propriétaire du certificat a quitté l’entreprise. • Sécurité compromise de l’autorité de certification. Les autorités de certification disposent également de leur propre certificat d’identification. Elles peuvent ainsi s’identifier entre elles, par exemple dans une communication pair à pair (chaînes de sécurité, etc.). De nombreuses autorités de certification utilisent le CMP (Certificate Management Protocol) pour demander et révoquer des certificats. Ce protocole dispose de plusieurs méthodes pour établir une connexion sécurisée entre un client (également appelé Entité de fin) et l’autorité de certification, mais tous les clients et autorités n’acceptent pas toutes les méthodes. L’une des méthodes courantes nécessite l’utilisation d’un numéro de référence et d’un mot de passe reconnus par l’autorité de certification pour chaque création de certificat ou demande de révocation. D’autres informations telles qu’un certificat spécial reconnu par l’autorité de certification peuvent également être requises. Les demandes de révocation peuvent nécessiter la clef privée associée au certificat à révoquer. Même si le CMP permet de créer des certificats et d’effectuer des demandes de révocation, il ne prend pas en charge les requêtes CRL. Les CRL sont généralement accessibles via des méthodes hors bande. Les CRL sont fréquemment publiées sur des serveurs LDAP, ce qui permet aux applications de les y récupérer pour les examiner. Une autre nouvelle méthode est le protocole OCSP (Online Certification Status Protocol), mais il n’est pas encore accepté par toutes les autorités de certification. Les autorités de certification sont généralement contrôlées par des organisations gouvernementales ou des entreprises privées de confiance qui visent à assurer la correspondance entre le certificat émis et la personne qui a demandé l’émission. L’expression émission d’un certificat implique la création d’un certificat, elle diffère donc d’une demande de copie d’un certificat publié. Format de stockage des certificats Le format de stockage le plus courant est ASN.1 (Abstract Syntax Notation version 1) ; il utilise les DER (Distinguished Encoding Rules). Il est donc appelé format DER. Magasins de clefs Un magasin de clefs (parfois appelé ensemble de clefs) contient les clefs privées d’un utilisateur correspondant aux clefs publiques de leurs certificats. Un libellé unique est attribué à chaque clef privée, généralement par l’utilisateur, pour faciliter l’identification. Les magasins de clefs sont protégés par un mot de passe, qui doit être saisi avant de pouvoir accéder aux clefs ou en ajouter. Les utilisateurs possèdent généralement leurs propres magasins de clefs. Il existe plusieurs formes de magasins de clefs, par exemple : smart cards, magasin sous LDAP, magasin sur fichier, etc. Les méthodes utilisées pour y accéder varient également, ainsi que les formats utilisés pour enregistrer les clefs privées. Le service d’authentification des certificats n’accepte que les magasins de clefs sur fichier. Mise en œuvre du service d’authentification de certificats Le service d’authentification de certificats fonctionne dans un modèle client/serveur. Le côté serveur consiste en une autorité de certification (CA) pour créer et conserver des certificats X.509 version 3 et des listes de révocation de certificats (CRL). (une seule autorité de certification est généralement utilisée pour l’ensemble de l’organisation.) Le côté client contient le logiciel (commandes, bibliothèques, modules de chargement et fichiers de configuration) requis par chaque système participant à une authentification PKI. Les modules d’installation du serveur sont cas.server, ceux du client sont cas.client. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-3 Création de comptes utilisateur PKI Pour créer un compte utilisateur PKI, utilisez la commande AIX mkuser. Une fois créé, chaque compte dispose d’un certificat et d’un magasin de clefs privé. (vous pouvez également transformer des comptes existants en comptes PKI, mais des étapes supplémentaires sont nécessaires.) L’administrateur fournit à chaque nouvel utilisateur le mot de passe du magasin de clefs, afin qu’il puisse se connecter au système et modifier le mot de passe de son magasin de clefs. Flux de données d’authentification utilisateur Cette section décrit comment authentifier un utilisateur PKI. Les utilisateurs peuvent associer plusieurs certificats à leurs comptes. Une valeur d’indicateur unique définie par l’utilisateur facilite l’identification de chaque certificat, mais il n’est possible de spécifier qu’un seul certificat d’authentification. Le service d’authentification de certificats utilise l’attribut auth_cert pour connaître le certificat d’authentification de chaque utilisateur. La valeur de l’attribut auth_cert correspond à la valeur de l’indicateur du certificat. Les certificats, indicateurs, emplacements de magasin de clefs correspondants, libellés de clef correspondants et autres informations connexes sont conservés sous LDAP pour chaque utilisateur. La combinaison de l’indicateur et du nom de l’utilisateur permet au service d’authentification de certificats de trouver le certificat sur le serveur LDAP. Pour plus d’informations sur la couche LDAP PKI, consultez Couche LDAP PKI (stockage des certificats), page 6-7. Lors de la connexion, les utilisateurs donnent un nom d’utilisateur et un mot de passe. A partir du nom, le système récupère l’attribut auth_cert de l’utilisateur, puis l’indicateur du certificat d’authentification. En associant le nom d’utilisateur et l’indicateur, le système récupère sur le serveur LDAP le certificat, l’emplacement du magasin de clefs et le libellé de clef correspondant de l’utilisateur. Il vérifie la période de validité indiquée dans le certificat pour déterminer s’il a expiré ou n’a pas encore atteint sa date d’activation. Le système extrait ensuite la clef privée de l’utilisateur à l’aide de l’emplacement du magasin de clefs, du libellé de clef et du mot de passe fourni. Une fois la clef privée récupérée, le système vérifie que la clef privée et le certificat correspondent à l’aide d’un processus de signature interne. Si c’est le cas, l’utilisateur a réussi l’étape d’authentification PKI de la procédure de connexion. (ce qui ne signifie pas qu’il est connecté. Plusieurs autres vérifications sont effectuées par le système AIX sur un compte utilisateur avant d’autoriser l’accès au système.) Pour utiliser un certificat comme certificat d’authentification, vous devez le signer à l’aide d’une clef de signature sécurisée. La signature est enregistrée sous LDAP avec le certificat, pour référence ultérieure. Cette mise en œuvre exige qu’un certificat possède une signature avant de pouvoir attribuer l’indicateur à auth_cert. Le processus d’authentification ne compare pas un certificat à une CRL. Cela s’explique par des raisons de performance (il faut du temps pour obtenir et examiner les CRL qui peuvent être temporairement indisponibles), mais également par les délais de publication des CRL (les autorités de certification peuvent nécessiter une heure ou plus pour indiquer la révocation d’un certificat révoqué dans une CRL, ce qui fait de la révocation de certificats une alternative limitée à la désactivation d’un compte utilisateur). Noter également que l’authentification ne nécessite pas d’autorité de certification. La majorité du travail est effectuée en local par le service d’authentification de certificats, à l’exception de l’extraction des données enregistrées sur le serveur LDAP. Implémentation du serveur Le côté serveur du service d’authentification de certificats implémente une autorité de certification écrite en Java, et contient une autorité d’inscription (Registration Authority, RA) ainsi que des fonctionnalités d’auto–audit. Il publie des certificats et des CRL qu’il crée sur un serveur LDAP. Vous pouvez configurer cette autorité de certification via un ensemble de fichiers de configuration (fichiers de propriété Java). Il contient l’application administrative runpki, dont les sous-commandes permettent entre autres de démarrer et d’arrêter le 6-4 Guide de sécurité serveur, et il prend également en charge le CMP pour créer et révoquer des certificats. L’autorité de certification a besoin de Java 1.3.1, de DB2 7.1 et de Directory 4.1. En raison des exigences de DB2, l’autorité de certification doit fonctionner sous un compte utilisateur différent de l’utilisateur root. Les commandes serveur suivantes permettent d’installer et de gérer le composant cas.server : mksecpki Utilisée lors de l’installation pour configurer les composants du serveur PKI AIX. Entre autres tâches, elle crée un compte utilisateur pour l’autorité de certification. runpki Permet à l’administrateur système de démarrer le serveur. Si les démons JavaPKI sont en cours de fonctionnement, ils doivent tout d’abord être arrêtés. La commande runpki lance le démon en arrière-plan à l’aide de la combinaison des indicateurs lb. Si les démons doivent être démarrés en mode interactif, l’administrateur peut modifier la commande runpki et utiliser l’indicateur l au lieu des indicateurs lb. runpki doit être lancée après l’exécution d’une opération su – sur le compte utilisateur sous lequel l’autorité de certification est en cours de fonctionnement. La commande est située dans le répertoire javapki sous le répertoire principal du compte utilisateur de l’autorité de certification. (la commande mksecpki crée le compte utilisateur de l’autorité de certification.) Par exemple, si le compte utilisateur de l’autorité de certification est pkiinst, entrez les commandes suivantes avec les droits root : 1. su – pkiinst 2. cd javapki 3. runpki Implémentation du client Le côté client du service d’authentification de certificats implémente les fonctions d’authentification, d’administration et de gestion des certificats de l’utilisateur. Une fois installé et configuré sur un système, le service d’authentification de certificats s’intègre aux fonctions existantes d’administration et d’authentification de l’utilisateur (comme les commandes mkuser, chuser, passwd et login) à l’aide du LAMF AIX (Loadable Authentication Module Framework). Il apporte également plusieurs commandes, bibliothèques et fichiers de configuration pour aider à gérer les magasins de clefs et les certificats de l’utilisateur. Le service d’authentification de certificats peut être utilisé en association avec la base de données LDAP AIX ou bien la base de données composée de fichiers pour enregistrer des attributs AIX standard. Le service d’authentification de certificats utilise toujours un serveur LDAP pour conserver les certificats utilisateur, même en cas d’utilisation d’une base de données composée de fichiers. Pour connaître les limitations d’utilisation d’une base de données composée de fichiers, consultez Planification du service d’authentification de certificats, page 6-14. Le côté client du service d’authentification de certificats contient le logiciel le plus orienté utilisateur. Pour cette raison, les sections suivantes décrivent comment le service d’authentification de certificats conserve et utilise les données nécessaires à l’authentification PKI. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-5 Fonctionnalités générales du client La liste suivante décrit certaines des fonctionnalités générales du service d’authentification de certificats : • Authentification utilisateur via les certificats PKI • Commandes permettant de gérer les magasins de clefs et les certificats de l’utilisateur • Prise en charge de plusieurs certificats par utilisateur • Prise en charge simultané de plusieurs autorités de certification • Intégration aux commandes existantes d’administration et authentification AIX (par exemple, login, passwd, mkuser) • Génération de certificats au moment de la création de l’utilisateur ou ajout de certificats après la création de l’utilisateur • Travaille avec une base de données utilisateur LDAP ou la base de données utilisateur sur fichiers standard AIX • Algorithmes et tailles de clef configurables • Association de certificats avec les PAG (Process Authentication Groups). Architecture générale du client L’architecture client du service d’authentification de certificats utilise une approche en couches et comprend les composants suivants : • Démon Java, page 6-6 • Couche de gestion du service, page 6-6 • Couche LDAP PKI (stockage des certificats), page 6-7 • La bibliothèque libpki.a, page 6-7 • Couche LAMF (Loadable Authentication Module Framework), page 6-8 • Commandes du client, page 6-8 • Commandes Pag (Process Authentication Group), page 6-9 • Commandes d’administration de l’utilisateur, page 6-9 • Fichiers de configuration, page 6-10 Démon Java Le côté client s’appuie sur un démon Java utilisant le logiciel de sécurité JCE. Ce démon gère les magasins de clefs utilisateur, crée des paires de clef, effectue les communications CMP et propose toutes les fonctions de hachage et de chiffrement. Les API des modules PKI de prestataires de service n’étant pas standardisées pour les applications C, une API appelée Couche de gestion de service (Service Management Layer, SML) propose aux démons et programmes une interface normalisée. Couche de gestion de service (SML) Le service SML du démon Java s’appelle /usr/lib/security/pki/JSML.sml. SML assure la création de certificats, ainsi que la création et la gestion de magasins de clefs, mais ne gère pas le stockage des certificats, lequel est assuré par le couche LDAP PKI. Stockage de clef privée via SML Le démon Java utilise les fichiers du magasin de clefs au format PKCS#12 pour stocker les clefs des utilisateurs. Ces magasins sont protégés par un seul mot de passe, utilisé pour chiffrer toutes les clefs du magasin. L’emplacement d’un magasin de clefs est indiqué comme une URI. Par défaut, le service d’authentification de certificats conserve les fichiers du magasin de clefs dans le répertoire /var/pki/security/keys. 6-6 Guide de sécurité Les magasins de clefs et leurs fichiers sont généralement limités en taille. La Couche SML fournit l’API permettant de gérer les magasins de clefs. Le service d’authentification de certificats ne gère que les magasins de clefs sur fichiers. Il n’accepte ni les smart cards ni les magasins de clefs LDAP. Vous pouvez accepter des visiteurs en plaçant les magasins de clefs sur fichiers dans un système de fichiers partagé, sur le même point de montage pour tous les systèmes. Couche LDAP PKI (stockage de certificats) Le service d’authentification de certificats stocke les certificats et autres informations relatives dans LDAP via la Couche LDAP PKI, pour chaque utilisateur. Ce service conserve les associations de certificats sur un serveur LDAP, pour chaque utilisateur. Plusieurs certificats peuvent être associés à un même compte utilisateur. Chaque association possède un indicateur unique spécifié par l’utilisateur pour faciliter l’identification et la recherche. Le service d’authentification de certificats utilise la combinaison du nom de l’utilisateur et de l’indicateur pour repérer l’association de certificats d’un utilisateur dans LDAP. Pour optimiser les performances et l’espace disque, le service d’authentification de certificats peut sauvegarder la totalité du certificat sous LDAP ou simplement une référence URI de ce certificat. Si vous utilisez une référence URI au lieu d’un certificat, le service d’authentification de certificats demande à la référence de fournir le certificat concerné. Les références sont le plus souvent utilisées en association avec une autorité de certification qui publie ses certificats sur un serveur LDAP. Les types de référence URI couramment acceptées par le service d’authentification de certificats sont des références LDAP. Le service d’authentification de certificats stocke les certificats au format DER et demande aux références URI de se reporter aux certificats au format DER. Le service d’authentification conserve également le type et l’emplacement du magasin de clefs et libellé de clef de chaque certificat, dans le même enregistrement que celui de l’association de certificats sur le serveur LDAP. Les utilisateurs peuvent ainsi disposer de plusieurs magasins de clefs, et le service d’authentification de certificats peut détecter plus rapidement la clef privée associée à un certificat. Pour gérer des visiteurs, il faut qu’un magasin de clefs se trouve au même endroit sur tous les systèmes. Le service d’authentification de certificats gère l’attribut auth_cert dans LDAP pour chaque utilisateur. Cet attribut spécifie l’indicateur du certificat utilisé pour l’authentification. Toutes les informations LDAP peuvent être consultées par les utilisateurs, à l’exception de l’attribut auth_cert qui est limité au compte LDAP ldappkiadmin. Puisque l’utilisateur root a accès au mot de passe LDAP ldappkiadmin via le fichier acct.cfg, les applications fonctionnant avec l’UID de root peuvent accéder à l’attribut auth_cert. (ceci s’applique à l’accès à l’URI de référence, pas aux données référencées par la valeur de cette URI. En général, ces données sont publiques.) L’API assurant le gestion du stockage des certificats figure dans la bibliothèque libpki.a. La bibliothèque libpki.a Outre sa fonction de centralisation des API SML et de Couche LDAP PKI, le bibliothèque libpki.a héberge plusieurs sous-routines. Les API contenues dans la bibliothèque ont les actions suivantes : • Gestion des nouveaux fichiers de configuration • Accès aux attributs spécifiques des certificats • Association de plusieurs fonctions de couche basse en fonctions de niveau supérieur • Sont communes aux services SML Remarque : Les API ne sont pas publiées. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-7 Couche LAMF (Loadable Authentication Module Framework) Outre les API SML et LDAP PKI, la couche LAMF (Loadable Authentication Module Framework) figure dans la bibliothèque. LAMF fournit des applications d’administration utilisateur et d’authentification AIX avec les API correspondantes, indépendamment du mécanisme sous-jacent (par exemple, Kerberos, LDAP, DCE, fichiers). LAMF utilise les API SML et LDAP PKI pour implémenter l’authentification PKI. Pour ce faire, il utilise des modules de chargement qui mappent l’API du LAMF vers différentes technologies d’authentification/base de données. Les commandes telles que login, telnet, passwd, mkuser et bien d’autres utilisent l’API du LAMF pour implémenter leurs fonctions ; par conséquent, elles acceptent automatiquement de nouvelles technologies d’authentification et de base de données dès l’ajout des nouveaux modules de chargement correspondants. Le service d’authentification de certificats ajoute au système un nouveau module de chargement LAMF appelé /usr/lib/security/PKI. Ce module doit être ajouté par l’administrateur système dans le fichier /usr/lib/security/methods.cfg, avant d’utiliser PKI pour l’authentification. Il doit également être associé à un type de base de données (par exemple, LDAP) dans le fichier methods.cfg avant de pouvoir être utilisé pour l’authentification. Vous trouverez un exemple du fichier methods.cfg contenant le module LAMF et la définition de la base de données à la section Le fichier methods.cfg, page 6-29. Une fois les définitions ajoutées à methods.cfg, l’administrateur peut configurer les attributs utilisateur registry et SYSTEM (définis dans le fichier /etc/security/user) sur la ou les nouvelles valeurs de strophe pour l’authentification PKI. Commandes du client Les commandes sont situées au–dessus de toutes les couches d’API (LAMF, LDAP PKI et SML). Outre les commandes AIX standard d’authentification et d’administration utilisateur pour le service d’authentification de certificats (via LAMF), il existe plusieurs commandes spécifiques à ce service. Ces commandes aident l’utilisateur à gérer les certificats et les magasins de clefs. Vous trouverez ci-dessous une liste de ces commandes accompagnée d’une brève description. certadd Ajoute un certificat au compte utilisateur dans LDAP et vérifie si le certificat est révoqué. certcreate Crée un certificat. certdelete Supprime un certificat du compte de l’utilisateur (i.e., de LDAP). certget Extrait un certificat du compte de l’utilisateur (i.e., de LDAP). certlink Ajoute dans LDAP un lien vers un certificat existant dans un référentiel distant du compte de l’utilisateur, et vérifie si le certificat est révoqué. certlist Affiche la liste des certificats associés au compte de l’utilisateur figurant dans LDAP. certrevoke Révoque un certificat. certverify Vérifie que la clef privée correspond au certificat et effectue une signature sécurisée. keyadd Ajoute un objet à un magasin de clefs. keydelete Supprime un objet d’un magasin de clefs. keylist Affiche la liste des objets d’un magasin de clefs. keypasswd Modifie le mot de passe d’un magasin de clefs. Pour de plus amples informations sur ces commandes, consultez le manuel AIX 5L Version 5.2 Commands Reference. 6-8 Guide de sécurité Commandes PAG (Process Authentication Group) Les commandes PAG (Process Authentication Group) sont nouvelles dans AIX. Les commandes PAG sont des éléments de données qui associent des données d’authentification utilisateur à des processus. Pour le service d’authentification de certificats, si le mécanisme PAG est activé, le certificat d’authentification de l’utilisateur est associé à son shell de connexion. Le PAG se propage à chaque processus fils créé par le shell. Pour pouvoir proposer cette fonctionnalité, le PAG nécessite l’activation du démon /usr/sbin/certdaemon. Par défaut, ce mécanisme n’est pas activé. Son activation n’est pas nécessaire au service d’authentification de certificats, mais ce dernier l’utilise s’il est activé. Pour activer le démon certdaemon, ajoutez la ligne suivante au fichier /etc/inittab : certdaemon:2:wait:/usr/sbin/certdaemon Vous trouverez ci-dessous une liste des commandes PAG accompagnée d’une brève description : paginit Authentifie un utilisateur et crée une association PAG. paglist Affiche une liste des informations d’authentification associées au processus courant. pagdel Supprime les associations PAG existantes dans les références du processus courant. Pour de plus amples informations sur ces commandes, consultez le manuel AIX 5L Version 5.2 Commands Reference. Commandes d’administration utilisateur Comme pour l’authentification utilisateur, le service d’authentification de certificats s’intègre aux fonctions AIX d’administration utilisateur via le LAMF AIX. Les commandes telles que chuser, lsuser, mkuser et passwd utilisent l’API du LAMF. Par conséquent, elles acceptent automatiquement de nouvelles technologies d’authentification et de base de données dès l’ajout au système de nouveaux modules de chargement. Les sous-sections suivantes décrivent plus en détail la façon dont l’authentification PKI affecte les commandes d’administration utilisateur. Les commandes suivantes sont concernées par le processus d’authentification PKI : chuser Permet à l’administrateur de modifier l’attribut utilisateur auth_cert. Cet attribut spécifie la valeur de l’indicateur du certificat utilisé pour l’authentification. Pour pouvoir utiliser le certificat comme certificat d’authentification, vous devez le signer à l’aide de la clef de signature sécurisée. (les attributs de certificat, les attributs de stockage de certificat et les attributs de magasin de clefs ne sont pas accessibles via cette commande.) lsuser Affiche la valeur de l’attribut auth_cert de l’utilisateur, ainsi que les attributs de certificats répertoriés ci-dessous. L’attribut auth_cert indique la valeur de l’indicateur du certificat utilisé pour l’authentification. (les autres attributs de certificat, attributs de stockage de certificat et attributs de magasin de clefs ne sont pas accessibles via cette commande.) Les attributs de certificat répertoriés par la commande lsuser sont les suivants : subject–DN Le nom spécifique de l’utilisateur. subject–alt–name L’e–mail du nom supplémentaire de l’utilisateur. valid–after La date à laquelle le certificat de l’utilisateur devient valide. valid–until La date à laquelle le certificat de l’utilisateur n’est plus valide. issuer Le nom spécifique de l’émetteur. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-9 mkuser Génère un certificat au moment de la création de l’utilisateur. Un administrateur peut utiliser mkuser pour générer un certificat lors de la création d’utilisateurs ne possédant pas encore de certificat d’authentification. Eventuellement, si un utilisateur possède déjà un certificat d’authentification, mais pas de compte utilisateur, l’administrateur peut créer le compte sans générer de certificat et l’ajouter (ainsi que le magasin de clefs) ultérieurement. La valeur par défaut de cette option est indiquée par l’attribut cert de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. Plusieurs valeurs par défaut sont nécessaires lors de la génération automatique d’un certificat d’authentification pour un utilisateur à l’aide la commande mkuser. La plupart sont indiquées dans la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. La strophe newuser assure un contrôle administratif de ces valeurs par défaut. Voici quelques-unes de ces valeurs par défaut : . CA . Valeur de l’attribut auth_cert . Emplacement du magasin de clefs . Mot de passe du magasin de clefs . Libellé de clef privée . Nom de domaine du champ E–mail du nom d’utilisateur supplémentaire Il existe une différence entre créer un compte utilisateur PKI ou non–PKI. Pour créer un compte utilisateur PKI, il vous faut un mot de passe pour chiffrer la clef privée, si la commande mkuser génère un certificat d’authentification pour ce compte. Mais la commande mkuser n’étant pas interactive, elle obtient donc le mot de passe du fichier policy.cfg et l’utilise comme mot de passe du magasin de clefs (le mot de passe de la clef privée) ; vous pouvez donc accéder au compte immédiatement après sa création. Lorsque vous créez un compte utilisateur non–PKI, la commande mkuser configure le mot de passe sur une valeur non valide, ce qui empêche l’accès. passwd Cette commande modifie le mot de passe du magasin de clefs de l’utilisateur lorsqu’il est utilisé sur un compte utilisateur PKI. Elle oblige à utiliser les règles de restriction du mot de passe indiquées dans le fichier /etc/security/user, l’attribut des indicateurs figurant dans le fichier /etc/security/passwd ainsi que toutes les règles requises par le prestataire de service PKI. Les magasins de clefs sur fichiers chiffrant leurs clefs privées à l’aide du mot de passe de l’utilisateur, l’utilisateur root ne peut pas réinitialiser le mot de passe d’un magasin de clefs sur fichiers s’il ne connaît pas le mot de passe courant du magasin. En cas d’oubli du mot de passe par un utilisateur, l’utilisateur root ne pourra pas le réinitialiser sauf si root le connaît. Si le mot de passe est inconnu, il faudra probablement créer un nouveau magasin de clefs et de nouveaux certificats pour l’utilisateur. Fichiers de configuration Le service d’authentification de certificats utilise des fichiers de configuration pour configurer le côté client : acct.cfg, ca.cfg et policy.cfg. L’interface SMIT gère ces fichiers de configuration. Vous trouverez dans les sections suivantes des informations sur les fichiers de configuration. 6-10 Guide de sécurité Le fichier acct.cfg Le fichier acct.cfg contient des strophes CA et LDAP. Les strophes CA contiennent des informations confidentielles ne devant pas figurer dans le fichier ca.cfg accessible au public, comme par exemple, des mots de passe et des numéros de référence du CMP. Les strophes LDAP contiennent des informations LDAP confidentielles interdites au public, comme par exemple, des mots de passe et des noms administratifs LDAP PKI. Pour chaque strophe CA du fichier ca.cfg, le fichier acct.cfg doit contenir une strophe CA de nom identique, chaque nom de strophe CA doit être unique. Les strophes LDAP sont toutes appelées ldap, ce qui explique pourquoi une strophe CA ne peut pas s’appeler ldap. De même, aucune strophe ne peut s’appeler default. Il doit y avoir une strophe LDAP, et également au moins une strophe CA appelée local. Les strophes CA contiennent les attributs suivants : capasswd Indique le mot de passe CMP de CA. La longueur du mot de passe est définie par la CA. carefnum Indique le numéro de référence CMP de la CA. keylabel Indique le libellé de la clef privée dans le magasin de clefs sécurisé utilisé pour signer les demandes de certificats. keypasswd Indique le mot de passe du magasin de clefs sécurisé. rvpasswd Indique le mot de passe de révocation utilisé pour le CMP. La longueur du mot de passe est définie par la CA rvrefnum Indique le numéro de référence de la révocation utilisé pour le CMP. La strophe LDAP contient les attributs suivants : ldappkiadmin Indique le nom de compte du serveur LDAP affiché dans la liste ldapservers. ldappkiadmpwd Indique le mot de passe du compte du serveur LDAP. ldapservers Indique le nom du serveur LDAP. ldapsuffix Indique les attributs DN ajoutés au certificat DN d’un utilisateur par la commande mkuser. Voici un exemple de fichier acct.cfg : local: carefnum = 12345678 capasswd = password1234 rvrefnum = 9478371 rvpasswd = password4321 keylabel = ”Trusted Key” keypasswd = joshua ldap: ldappkiadmin = ”cn=admin” ldappkiadmpwd = secret ldapservers = ”ldap.server.austin.ibm.com” ldapsuffix = ”ou=aix,cn=us” Pour de plus amples informations, consultez le manuel AIX 5L Version 5.2 Files Reference. Le fichier ca.cfg Le fichier ca.cfg est constitué de strophes CA. Elles contiennent des informations CA publiques utilisées par le service d’authentification de certificats pour générer des demandes de certificats et des demandes de révocation de certificats. Pour chaque strophe CA du fichier ca.cfg, le fichier acct.cfg doit contenir une strophe CA du même nom. Chaque nom de strophe CA figurant dans le fichier ca.cfg doit être unique. Il doit y avoir au moins une strophe appelée local. Il ne doit y avoir aucune strophe appelée ldap ou default. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-11 Les strophes CA contiennent les attributs suivants : algorithm Indique l’algorithme de clef publique (par exemple, RSA). crl Indique l’URI de la CRL pour la CA. dn Indique le DN de base utilisé lors de la création des certificats. keysize Indique la taille de clef minimale en bits. program Indique le nom de fichier du module de service PKI. retries Indique le nombre de tentatives de contact avec la CA. server Indique l’URI de la CA. signinghash Indique l’algorithme de hachage utilisé pour signer les certificats (par exemple, MD5). trustedkey Indique le magasin de clefs sécurisé contenant la clef de signature sécurisée utilisée pour signer les certificats d’authentification. url Indique la valeur par défaut de l’URI du nom d’utilisateur supplémentaire. La strophe CA par défaut est appelée local. Voici un exemple de fichier ca.cfg : local: program = /usr/lib/security/pki/JSML.sml trustedkey = file:/usr/lib/security/pki/trusted.p15 server = ”cmp://9.53.230.186:1077” crl = ”ldap://dracula.austin.ibm.com/o=aix,c=us” dn = ”o=aix,c=us” url = ”http://www.ibm.com/” algorithm = RSA keysize = 512 retries = 5 signinghash = MD5 Pour de plus amples informations, consultez le manuel AIX 5L Version 5.2 Files Reference. Le fichier policy.cfg Le fichier policy.cfg est composé de quatre strophes : newuser, storage, crl et comm. Ces strophes modifient le comportement de certaines commandes d’administration du système. La commande mkuser utilise la strophe newuser. La commande certlink utilise la strophe storage. Les commandes certadd et certlink utilisent les strophes comm et crl. La strophe newuser contient les attributs suivants : 6-12 ca Indique la CA utilisée par la commande mkuser lors de la génération d’un certificat. cert Indique si la commande mkuser va par défaut générer un nouveau (new) certificat ou non (get). domain Indique la partie domaine de la valeur E–mail du nom d’utilisateur supplémentaire du certificat utilisée par la commande mkuser lors de la génération d’un certificat. keysize Indique la taille minimale en bits de la clef de chiffrement utilisée par la commande mkuser lors de la génération d’un certificat. keystore Indique l’URI du magasin de clefs utilisée par la commande mkuser lors de la génération d’un certificat. keyusage Indique la valeur d’usage de la clef du certificat utilisée par la commande mkuser lors de la génération d’un certificat. label Indique le libellé de la clef privée utilisée par la commande mkuser lors de la génération d’un certificat. Guide de sécurité passwd Indique le mot de passe du magasin de clefs utilisé par la commande mkuser lors de la génération d’un certificat. subalturi Indique la valeur de l’URI du nom d’utilisateur supplémentaire utilisée par la commande mkuser lors de la génération d’un certificat. tag Indique la valeur de l’indicateur auth_cert utilisée par la commande mkuser lors de la création d’un utilisateur si cert = new. validity Indique la valeur de la période de validité du certificat utilisée par la commande mkuser lors de la génération d’un certificat. version Indique le numéro de version du certificat à créer. La valeur 3 est la seule valeur prise en charge. La strophe storage contient les attributs suivants : replicate Indique si la commande certlink sauvegarde une copie du certificat (yes) ou simplement le lien (no). La strophe crl contient l’attribut check, qui indique si les commandes certadd et certlink doivent vérifier la CRL (yes) ou non (no). La strophe comm contient l’attribut timeout qui indique le délai d’attente en secondes utilisé par certadd et certlink lors d’une demande d’informations sur un certificat à l’aide du protocole HTTP (par exemple, extraction de CRL). Voici un exemple de fichier policy.cfg : newuser: cert = new ca = local passwd = pki version = ”3” keysize = 512 keystore = ”file:/var/pki/security/keys” validity = 86400 storage: replicate = no crl: check = yes comm: timeout = 10 Pour de plus amples informations, consultez le manuel AIX 5L Version 5.2 Files Reference. Evénements du journal d’audit Le client du service d’authentification de certificats génère les événements du journal d’audit suivants : • CERT_Create • CERT_Add • CERT_Link • CERT_Delete • CERT_Get • CERT_List • CERT_Revoke • CERT_Verify • KEY_Password • KEY_List Service d’authentification de certificats X.509 et infrastructure à clef publique 6-13 • KEY_Add • KEY_Delete Evénements de trace Le client du service d’authentification de certificats génère plusieurs nouveaux événements de trace, dans la plage 3B7 – 3B8. Planification du service d’authentification de certificats Le Service d’authentification des certificats est disponible à partir d’AIX 5.2. Les configurations logicielles minimales requises sont un serveur DB2, un serveur Directory et un serveur de service d’authentification de certificats. Vous pouvez les installer sur un seul système ou sur plusieurs. Chaque entreprise doit choisir l’environnement qui lui convient le mieux. Cette section présente des informations sur la planification du service d’authentification de certificats, notamment : • Remarques sur les certificats, page 6-14 • Remarques sur les magasins de clefs, page 6-14 • Remarques sur le registre des utilisateurs, page 6-15 • Remarques sur la configuration, page 6-15 • Remarques sur la sécurité, page 6-15 • Autres remarques sur le service d’authentification de certificats, page 6-16 Remarques sur les certificats Le service d’authentification de certificats gère les certificats X.509 version 3. Il accepte également plusieurs attributs de certificat de la version 3, mais pas tous. Pour connaître la liste des attributs de certificats pris en charge, reportez-vous à la commande certcreate et au fichier ca.cfg. Le service d’authentification de certificats gère une partie de l’ensemble de caractères Teletex. Il n’accepte que le Teletex 7 bits (sous-ensemble ASCII). Remarques sur les magasins de clefs Le service d’authentification des certificats gère les fichiers de magasin de clefs. Les types de magasins de clefs smart cards, LDAP et autres ne sont pas pris en charge. Par défaut, les magasins de clefs utilisateur sont conservés dans le système de fichiers local sous le répertoire /var/pki/security/keys. Les magasins de clefs étant en local sur le système, ils ne sont pas accessibles aux autres systèmes ; par conséquent, l’authentification utilisateur sera limitée au système sur lequel figure le magasin de clefs de l’utilisateur. Pour gérer des visiteurs, vous pouvez copier le magasin de clefs de l’utilisateur vers le même emplacement local et avec le même nom de magasin de clefs sur les autres systèmes, ou bien placer les magasins de clefs sur un système de fichiers distribué. Remarque : 6-14 Guide de sécurité Vous devez faire attention à ce que les droits d’accès au magasin de clefs de l’utilisateur ne soient pas modifiés. (dans AIX, chaque certificat sur LDAP contient le chemin d’accès vers le magasin de clefs privé contenant la clef privée du certificat. Le magasin de clefs doit figurer à l’endroit du chemin d’accès indiqué dans LDAP pour pouvoir servir à l’authentification.) Remarques sur le registre des utilisateurs Le service d’authentification des certificats utilise un registre LDAP des utilisateurs. LDAP est également le type de registre utilisateur conseillé pour une utilisation avec le service d’authentification de certificats. Le service d’authentification des certificats gère également un registre des utilisateurs sur fichier. L’administrateur doit imposer certaines restrictions pour que la PKI sur fichiers puisse fonctionner. Les comptes utilisateur possédant le même nom sur différents systèmes participant à l’authentification PKI doivent faire référence au même compte. Par exemple, l’utilisateur Bob sur le système A et l’utilisateur Bob sur le système B doivent faire référence au même utilisateur Bob. Cela s’explique du fait que le service d’authentification de certificats utilise LDAP pour stocker les informations sur les certificats pour chaque utilisateur. Le nom d’utilisateur est utilisé comme clef d’indexation pour accéder à ces informations. Les registres sur fichier étant en local sur chaque système et LDAP commun à tous les systèmes, les noms d’utilisateur sur tous les systèmes participant à l’authentification PKI doivent correspondre aux noms d’utilisateur uniques dans l’espace de nom LDAP. Si l’utilisateur Bob du système A est différent de l’utilisateur Bob du système B, soit un seul des utilisateurs Bob peut participer à l’authentification PKI, ou bien chaque compte Bob doit utiliser un serveur/espace de nom LDAP différent. Remarques sur la configuration Pour simplifier la configuration, vous pourrez conserver les trois fichiers de configuration (acct.cfg, ca.cfg et policy.cfg) sur un système de fichiers distribué à l’aide de liens symboliques, pour ne pas avoir à les modifier sur chaque système. Conservez les paramètres de contrôle d’accès appropriés sur ces fichiers. C’est une situation qui peut diminuer votre sécurité, car les informations contenues par ces fichiers vont circuler sur le réseau. Remarques sur la sécurité Le fichier acct.cfg Le fichier acct.cfg contient les numéros de référence et les mots de passe de chaque CA (consultez les descriptions des attributs carefnum, capasswd, rvrefnum et rvpasswd pour acct.cfg). Ces valeurs sont utilisées uniquement pour les communications CMP avec la CA lors de la création ou de la révocation d’un certificat. En cas de sécurité compromise, l’individu à l’origine de cette situation pourrait créer ou révoquer des certificats comme bon lui semble. Pour limiter ce risque, vous ne devez appliquer la restriction de création ou de révocation de certificats qu’à un petit nombre de systèmes. Les valeurs des attributs carefnum et capasswd ne sont requises que sur les systèmes sur lesquels les certificats sont créés (via les commandes certcreate ou mkuser). Ce qui peut imposer de limiter de la création de compte utilisateur au même ensemble de systèmes. Remarque : La commande mkuser peut être configurée pour créer automatiquement un certificat lors de la création d’un utilisateur ou bien créer un compte sans lui associer de certificat, auquel cas l’administrateur devra créer et ajouter ce certificat ultérieurement. De même, les valeurs des attributs rvrefnum et rvpasswd ne sont requises que sur les systèmes sur lesquels les certificats doivent être révoqués (via la commande certrevoke). Le fichier acct.cfg contient également des informations sur chacune des clefs de signature sécurisée (consultez les descriptions des attributs keylabel et keypasswd pour le fichier acct.cfg). Ces valeurs sont utilisées uniquement dans le cadre d’opérations spéciales de vérification des certificats. En cas de sécurité compromise, l’individu à l’origine de cette situation pourrait créer des certificats vérifiés. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-15 Pour limiter ce risque, vous ne devez accorder la vérification de certificats qu’à un petit nombre de systèmes. Les valeurs des attributs keylabel et keypasswd du fichier acct.cfg ainsi que la valeur de l’attribut trustedkey du fichier ca.cfg ne sont requises que sur les systèmes sur lesquels la vérification de certificats est nécessaire. Autrement dit, sur les systèmes sur lesquels les commandes mkuser (avec la fonction de création automatique de certificats activée) et certverify sont nécessaires. Nouveaux comptes actifs Lorsque vous créez un compte utilisateur PKI, si l’attribut cert de la strophe newuser contenue dans le fichier policy.cfg est défini sur new, la commande mkuser crée un compte PKI actif ainsi qu’un mot de passe et un certificat. Le mot de passe de ce compte est indiqué par l’attribut passwd dans la strophe newuser. Les magasins de clefs exigent en effet un mot de passe pour stocker les clefs privées. Cette méthode est différente des autres types de création de compte utilisateur pour lesquels l’administrateur doit d’abord créer le compte, puis définir le mot de passe avant de pouvoir activer le compte. L’utilisateur root et les mots de passe des magasins de clefs Contrairement à d’autres types de compte pour lesquels l’utilisateur root peut modifier le mot de passe d’un compte sans le connaître, les comptes PKI ne le permettent pas. En effet, les mots de passe des comptes servent à chiffrer les magasins de clefs et ils sont nécessaires pour pouvoir les déchiffrer. Si les utilisateurs oublient leurs mots de passe, vous devez émettre de nouveaux certificats et créer de nouveaux magasins de clefs. Autres remarques sur le service d’authentification de certificats Voici quelques remarques à prendre en compte lors de la planification du service d’authentification de certificats : • Le service d’authentification de certificats contient sa propre autorité de certification (CA). Il ne prend pas en charge d’autres autorités de certification. • Plus la taille de la clef est importante, plus il faut de temps pour générer des paires de clefs et chiffrer les données. Le chiffrement matériel n’est pas pris en charge. • Le service d’authentification de certificats utilise Directory for LDAP. Il ne gère pas d’autres implémentations LDAP. • Le service d’authentification de certificats utilise DB2 comme base de données. Il n’accepte pas d’autres bases de données. • Le service d’authentification de certificats impose que toutes les commandes, bibliothèques et démons soient dans un environnement Unicode. 6-16 Guide de sécurité Modules du service d’authentification de certificats Tableau 9. Modules du service d’authentification de certificats Nom du module Ensemble de fichiers Contenu Dépendances cas.server cas.server.rte Autorité de certification (AC) • AIX 5.2 Installation Manuelle • Java131 (livré avec les supports de base AIX) • Extensions de sécurité Java131 (livré avec Expansion Pack) • Serveur Directory (LDAP) • DB2 7.1 cas.client cas.client.rte Manuelle • Commandes Cert • Module de chargement d’authentificati on PKI • libpki.a • Module SML • Fichiers de configuration • Démon Java • AIX 5.2 • Java131 (livré avec les supports de base AIX) • Extensions de sécurité Java131 (livré avec Expansion Pack) • Client Directory (LDAP) • PAG (implicite) cas.msg cas.msg.[lang].cli Catalogues de ent messages cas.client Manuelle bos bos.security.rte Non applicable Installé avec le noyau Démon et commandes PAG Le module cas.server contient la CA et s’installe dans les répertoires /usr/cas/server et /usr/cas/client. Une entreprise n’utilise généralement qu’une seule CA, et par ailleurs, ce module est installé manuellement. Ce module exige l’installation préalable du serveur Directory, db2_07_01.client, Java131.rte et Java131.ext.security. Le module Java131.rte est installé par défaut lorsque le système d’exploitation AIX 5.2 est installé, mais les autres modules sont installés manuellement. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-17 Pour que le module db2_07_01.client fonctionne, le module db2_07_01.server doit être installé sur un système du réseau. Le module cas.client contient les fichiers requis pour tous les systèmes clients prenant en charge le service d’authentification de certificats. Sans ce module, un système ne peut pas participer à l’authentification PKI AIX. Installation et configuration du service d’authentification de certificats L’installation du service d’authentification de certificats consiste à exécuter les procédures suivantes : • Installation et configuration du serveur LDAP, page 6-18 • Installation et configuration du serveur pour le service d’authentification de certificats, page 6-21 • Configuration LDAP du serveur pour le service d’authentification de certificats, page 6-22 • Configuration du client pour le service d’authentification de certificats, page 6-24 • Exemples de configuration de l’administration, page 6-29 Installation et configuration du serveur LDAP Les scénarios possible pour l’installation et la configuration de LDAP pour les données des certificats de l’utilisateur PKI sont les suivants. 1. Si le serveur LDAP n’est pas installé, exécutez les procédures suivantes : a. Installation du serveur LDAP, page 6-18 b. Configuration du serveur LDAP, page 6-19 c. Configuration du serveur LDAP pour PKI, page 6-20 2. Si le serveur LDAP est installé et configuré, mais pas pour PKI, effectuez la Configuration du serveur LDAP pour PKI, page 6-20. Installation du serveur LDAP Vous trouverez des instructions détaillées relatives à l’installation du serveur Directory dans la documentation du produit contenue dans l’ensemble de fichiers ldap.html.en_US.config. Une fois l’ensemble de fichiers ldap.html.en_US.config installé, vous pouvez afficher la documentation à l’aide d’un navigateur Web à l’URL suivante : file:/usr/ldap/web/C/getting_started.htm. La procédure d’installation du serveur LDAP est la suivante : 1. Connectez-vous en tant qu’utilisateur root. 2. Insérez le volume 1 des CD du système d’exploitation de base d’AIX dans le lecteur de CD–ROM. 3. Entrez smitty install_latest sur la ligne de commandes et appuyez sur Entrée 4. Sélectionnez Installer logiciels 5. Sélectionnez l’unité ou le répertoire contenant le logiciel serveur Directory puis appuyez sur Entrée. 6. Utilisez la touche F4 pour afficher la liste des modules dans la zone Logiciels à installer. 7. Sélectionnez le module ldap.server puis appuyez sur Entrée. 6-18 Guide de sécurité 8. Vérifiez que l’option Installation AUTOMATIQUE des logiciels dépendants est définie sur YES, puis appuyez sur Entrée. Cette option installera les ensembles de fichiers du client et du serveur LDAP ainsi que les ensembles de fichiers de la base de données DB2. Les ensembles de fichiers installés sont les suivants : – ldap.client.adt (SDK du client Directory) – ldap.client.dmt (DMT du client Directory) – ldap.client.java (Java du client Directory) – ldap.client.rte (Environnement d’exécution du client Directory) – ldap.server.rte (Environnement d’exécution du serveur Directory) – ldap.server.admin (Serveur Directory) – ldap.server.cfg (Configuration du serveur Directory) – ldap.server.com (Cadre du serveur Directory) – db2_07_01.* (Environnement d’exécution DB2 et ensembles de fichiers associés) Le module DB2, db2_07_01.jdbc, doit également être installé. Le module DB2 db2_07_01.jdbc se trouve sur le CD Expansion Pack. Utilisez la procédure d’installation affichée dans la liste ci-dessus pour installer le module db2_07_01.jdbc. Configuration du serveur LDAP Une fois les ensembles de fichiers LDAP et DB2 installés, vous devez configurer le serveur LDAP. Même si vous pouvez effectuer la configuration via la ligne de commandes et l’édition de fichiers, il est conseillé d’utiliser l’administrateur web LDAP. Cet outil nécessite un serveur web. Le serveur web Apache se trouve sur le CD AIX Toolbox for LINUX Applications. Utilisez l’interface SMIT ou la commande geninstall pour installer le serveur web Apache. Vous pouvez également utiliser d’autres serveurs web, consultez la documentation LDAP pour plus de détails. Vous trouverez des instructions détaillées relatives à la configuration LDAP dans la documentation HTML du produit. Voici une description succincte des étapes de configuration : 1. Utilisez ldapcfg pour définir le mot de passe et le DN de l’administrateur pour la base de données LDAP. L’administrateur est l’utilisateur root de la base de données LDAP. Pour configurer un DN administrateur de cn=admin avec le mot de passe secret, entrez : # ldapcfg –u cn=admin –p secret Le mot de passe et le DN vous seront demandés ultérieurement lors de la configuration de chaque client. Le DN et le mot de passe seront utilisés comme attributs ldappkiadmin et ldappkiadmpwd pour une strophe ldap dans le ficher acct.cfg. 2. Configurez l’outil de l’administrateur web en utilisant l’emplacement du fichier de configuration du serveur web : # ldapcfg –s apache –f /etc/apache/httpd.conf 3. Redémarrez le serveur web. Pour le serveur Apache, utilisez la commande : # /usr/local/bin/apachectl restart 4. Accédez à l’administrateur web à l’aide de l’URL http:// hostname/ldap. Connectez-vous ensuite à l’aide du mot de passe et du DN de l’administrateur LDAP configurés à l’étape 2. 5. A l’aide de l’outil de l’administrateur web, suivez les directives pour configurer la base de données DB2 et redémarrez le serveur LDAP. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-19 Configuration du serveur LDAP pour PKI Le service d’authentification de certificats exige deux arborescences distinctes du répertoire LDAP. L’une est utilisée par l’autorité de certification pour publier des certificats et des CRL. L’autre est utilisée par les clients pour stocker et extraire des données PKI pour chaque utilisateur. Les étapes suivantes configurent l’arborescence du répertoire LDAP utilisée pour le stockage et l’extraction des données PKI de chaque utilisateur. 1. Ajout d’une entrée de suffixe pour la configuration LDAP. Le suffixe par défaut des données PKI est cn=aixdata. Il place les données du certificat PKI en-dessous du suffixe par défaut de toutes les données AIX. Le répertoire root par défaut pour les données PKI est ou=pkidata,cn=aixdata. Toutes les données PKI sont placées à cet endroit. – Suffixe des données PKI cn=aixdata Suffixe commun pour toutes les données AIX. Il existe peut–être déjà si le serveur LDAP est utilisé pour d’autres données AIX. Vous pouvez ajouter l’entrée de configuration du suffixe via l’outil de l’administrateur web, ou en éditant directement le fichier de configuration du serveur LDAP. Pour ajouter l’entrée de configuration du suffixe à l’aide de l’administrateur Web, procédez comme suit : a. Sélectionnez Paramètres dans le menu de gauche. b. Sélectionnez Suffixes. c. Entrez le suffixe nécessaire pour les données PKI, puis cliquez sur le bouton Mettre à jour. d. Une fois le suffixe ajouté, redémarrez le serveur LDAP. Pour ajouter l’entrée de configuration du suffixe en éditant le fichier de configuration du serveur LDAP, procédez comme suit : a. Dans le fichier /usr/ldap/etc/slapd32.conf, repérez la ligne contenant ibm–slapdSuffix: cn=localhost Il s’agit du suffixe système par défaut. b. Ajoutez l’entrée ibm–slapdSuffix nécessaire pour les données PKI. Par exemple, vous pouvez ajouter une entrée de suffixe comme celle qui suit : ibm–slapdSuffix: cn=aixdata c. Sauvegardez les modifications apportées au fichier de configuration. d. Redémarrez le serveur LDAP. 2. Ajout des Entrées suffixe, répertoire Root et base de données ACL pour les données PKI. Le répertoire root des données est le point dans la structure du répertoire LDAP sous lequel se trouvent toutes les données PKI. L’ACL est la Liste de contrôle d’accès du répertoire Root des données qui définit les règles d’accès pour toutes les données PKI. Le fichier pkiconfig.ldif fourni permet d’ajouter les entrées suffix, root et ACL à la base de données. Ajoutez tout d’abord les entrées suffixe et base de données root, ainsi que le mot de passe de l’administrateur des données PKI. La première partie du fichier ajoute les entrées suffixe par défaut à la base de données et définit le mot de passe : 6-20 Guide de sécurité dn: cn=aixdata objectclass: top objectclass: container cn: aixdata dn: ou=pkidata,cn=aixdata objectclass: organizationalUnit ou: cert userPassword: <<password>> Modifiez le fichier pkiconfig.ldif et remplacez la chaîne <<password>> après l’attribut userPassword par le mot de passe pour votre administrateur de données PKI. Les valeurs de DN et de userPassword seront requises ultérieurement lors de la configuration de chaque client. Le DN ( ou=pkidata,cn=aixdata ) et la valeur du password seront utilisés pour les attributs ldappkiadmin et ldappkiadmpwd dans une strophe ldap du fichier acct.cfg. Le seconde partie du fichier modifie le propriétaire et ajoute l’ACL des données PKI : dn: ou=pkidata,cn=aixdata changetype: modify add: entryOwner entryOwner: access–id:ou=pkidata,cn=aixdata ownerPropagate: true dn: ou=pkidata,cn=aixdata changetype: modify add: aclEntry aclEntry: group:cn=anybody:normal:grant:rsc:normal:deny:w aclEntry: group:cn=anybody:sensitive:grant:rsc:sensitive:deny:w aclEntry: group:cn=anybody:critical:grant:rsc:critical:deny:w aclEntry: group:cn=anybody:object:deny:ad aclPropagate: true Remarque : N’effectuez AUCUNE modification sur les paramètres de l’ACL. Cela pourrait effectivement compromettre l’intégrité de votre implémentation PKI. Vous pouvez modifier le fichier pkiconfig.ldif pour utiliser un suffixe autre que celui par défaut, ce qui n’est toutefois conseillé qu’aux administrateurs LDAP expérimentés. Vous pouvez alors appliquer le fichier ldif à la base de données à l’aide de la commande ldapadd suivante. Remplacez les valeurs des options –D et –w par le mot de passe et le DN de votre administrateur LDAP local, comme suit : # ldapadd –c –D cn=admin –w secret –f pkiconfig.ldif 3. Redémarrage du serveur LDAP. Redémarrez le serveur LDAP à l’aide de l’outil de l’administrateur web, ou en utilisant la commande kill et en redémarrant le processus slapd. Installation et configuration du serveur pour le service d’authentification de certificats Pour installer et configurer le service d’authentification de certificats, procédez comme suit : 1. Installez les ensembles de fichiers de sécurité Java (Java131.ext.security.*) à partir du CD Expansion Pack. Les modules requis sont les suivants : – Java131.ext.security.cmp–us (Gestion des certificats Java) – Java131.ext.security.jce–us (Extension du chiffrement Java) – Java131.ext.security.jsse–us (Extension de socket Java sécurisée) – Java131.ext.security.pkcs–us (Chiffrement à clef publique Java) 2. Déplacez le fichier ibmjcaprovider.jar dans un autre répertoire que /usr/java131/jre/lib/ext. Ce fichier est incompatible avec les ensembles de fichier de Service d’authentification de certificats X.509 et infrastructure à clef publique 6-21 sécurité Java et doit être déplacé pour que le service d’authentification de certificats puisse fonctionner correctement. 3. Installez l’ensemble de fichiers du serveur pour le service d’authentification de certificats (cas.server.rte) à partir du CD Expansion Pack. Configuration LDAP du serveur pour le service d’authentification de certificats Pour configurer le serveur du service d’authentification de certificats de sorte qu’il travaille avec LDAP, effectuez les étapes suivantes : 1. Si vous ne l’avez pas déjà installé, installez le module client Directory sur le système prenant en charge le module cas.server. 2. Si vous ne l’avez pas déjà configuré, configurez le client Directory client comme suit : # ldapcfg –l /home/ldapdb2 –u ”cn=admin” –p secret –s apache \ –f /usr/local/apache/conf/httpd.conf La commande de configuration ci-dessus considère que le serveur Web est le serveur Apache. 3. Ajoutez le suffixe suivant au fichier slapd.conf : ibm–slapdSuffix: o=aix,c=us Vous pouvez indiquer un nom spécifique différent à la place de o=aix,c=us. 4. Exécutez la commande slapd : # /usr/bin/slapd –f /etc/slapd32.conf 5. Ajoutez les classes d’objet, comme suit : # ldapmodify –D cn=admin –w secret –f setup.ldif où setup.ldif contient les éléments suivants : dn: cn=schema changetype: modify add: objectClasses objectClasses: ( 2.5.6.21 NAME ’pkiuser’ DESC ’auxiliary class for non–CA certificate owners’ SUP top AUXILIARY MAY userCertificate ) dn: cn=schema changetype: modify add: objectClasses objectClasses: ( 2.5.6.22 NAME ’pkiCA’ DESC ’class for Cartification Authorities’ SUP top AUXILIARY MAY ( authorityRevocationList $ caCertificate $ certificateRevocationList $ crossCertificatePair ) ) dn:cn=schema changetype: modify replace: attributetypes attributetypes: ( 2.5.4.39 NAME ( ’certificateRevocationList’ ’certificateRevocationList;binary’ ) DESC ’ ’ SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE–VALUE ) replace:ibmattributetypes ibmattributetypes:( 2.5.4.39 DBNAME ( ’certRevocationLst’ ’certRevocationLst’ ) ACCESS–CLASS NORMAL) 6. Ajoutez les entrées : # ldapadd –D cn=admin –w secret –f addentries.ldif où addentries.ldif contient les éléments suivants : 6-22 Guide de sécurité dn: o=aix,c=us changetype: add objectclass: organization objectclass: top objectclass: pkiCA o: aix Remarque : Les modèles de fichiers addentries.ldif et setup.ldif sont fournis dans le module cas.server. 7. Arrêtez puis démarrez le démon slapd. Création d’une autorité de certification Créez l’autorité de certification comme suit : 1. Créez un fichier de référence. Le fichier de référence contient une ou plusieurs paires de mots de passe et de numéros de référence pour la création de certificat. Chaque paire indique les informations d’authentification acceptées par le serveur du service d’authentification de certificats lorsqu’un client de ce service tente de s’authentifier auprès du serveur lors de la création d’un certificat (généralement à l’aide du protocole CMP). Le format du fichier est un numéro de référence suivi d’un mot de passe, tous deux sur des lignes distinctes. Par exemple : 12345678 password1234 87654321 password4321 où 12345678 et 87654321 sont les numéros de référence, et password1234 et password4321 sont leurs mots de passe respectifs. Les lignes vides ne sont pas autorisées. Les caractères espace ne doivent pas précéder ou suivre des mots de passe ou des numéros de référence. Le fichier doit contenir au moins un mot de passe et un numéro de référence. Vous trouverez un exemple de fichier dans /usr/cas/server/iafile. Il vous faudra faire référence à ces valeurs à chaque configuration de client. 2. Configurez l’autorité de certification à l’aide de la commande mksecpki comme suit : # mksecpki –u pkiuser –f /usr/cas/server/iafile –p 1077 –H ldap.cert.mydomain.com \ –D cn=admin –w secret –i o=aix,c=us Vous trouverez ci-dessous des informations sur les indicateurs mksecpki : –u Indique un nom de compte utilisateur sur lequel le serveur du service d’authentification de certificats sera installé. –f Indique le fichier de référence créé dans l’étape précédente. –p Indique un numéro de port pour le serveur LDAP. –H Indique le nom d’hôte ou l’adresse IP du serveur LDAP. –D Indique le nom commun de l’administrateur LDAP. –w Indique le mot de passe de l’administration LDAP. –i Indique la branche LDAP sur laquelle se trouve les données des certificats utilisateur. La commande mksecpki génère automatiquement la clef de signature sécurisée avec le libellé de clef TrustedKey, le mot de passe du compte utilisateur de l’autorité de certification, et la place dans le fichier de magasin de clefs /usr/lib/security/pki/trusted.pkcs12. Vous n’avez pas besoin d’exécuter les étapes de Création de la clef de signature sécurisée, page 6-24, à moins d’avoir à générer plusieurs clefs ou de vouloir une clef de signature sécurisée avec un libellé de clef et/ou un mot de passe différent. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-23 Création de la clef de signature sécurisée La commande mksecpki génère automatiquement une clef de signature sécurisée avec le libellé de clef de TrustedKey, le mot de passe du compte utilisateur de l’autorité de certification, et la place dans le fichier de magasin de clefs /usr/lib/security/pki/trusted.pkcs12. Si vous devez générer une ou plusieurs nouvelles clefs de signature sécurisée, vous trouverez dans cette section les étapes adéquates pour une telle opération. Tous les clients du service d’authentification de certificats sur lesquels la création ou la révocation de certificats sont autorisées exigent une clef de signature sécurisée pour signer le certificat d’authentification de l’utilisateur. La clef est sauvegardée dans un magasin de clefs distinct et accessible à tous les systèmes sur lesquels des certificats peuvent être créés. Tous les systèmes peuvent utiliser une clef unique ou, pour une approche plus sécurisée, vous pouvez créer et distribuer plusieurs clefs. Pour créer une clef sécurisée, utilisez la commande /usr/java131/bin/keytool. Utilisez un nom de fichier non utilisé. La commande keytool vous invite à entrer le mot de passe d’une clef ou d’un magasin de clefs. Ces deux mots de passe peuvent être identiques pour permettre au service d’authentification de certificats d’accéder à la clef dans le magasin. Exécutez la commande keytool comme suit : keytool –genkey –dname ‘cn=trusted key’ –alias ‘TrustedKey’ –keyalg RSA \ filename .pkcs12 –storetype pkcs12ks –keystore Dans cet exemple, le libellé de clef sécurisée est TrustedKey et le mot de passe du magasin de clefs sécurisé est fourni par l’utilisateur. Notez bien ces valeurs car vous en aurez besoin lors de la configuration des clients du service d’authentification de certificats. Lorsque vous configurez un client de service d’authentification de certificats, les attributs keylabel et keypasswd du fichier acct.cfg devront être respectivement définis sur le libellé de clef sécurisé et le mot de passe du magasin de clefs sécurisé. Pour des raisons de sécurité, assurez-vous que le fichier du magasin de clefs (filename.pkcs12 ) est protégé en lecture et en écriture. Seul l’utilisateur root doit avoir accès à ce fichier. La clef sécurisée doit être le seul objet du magasin de clefs. Configuration du client du service d’authentification de certificats Il existe de nombreuses options de configuration sur le client du service d’authentification de certificats. Les sections suivantes proposent la procédure de configuration requise pour chaque système participant à l’authentification PKI. Installation de la clef de signature sécurisée Copiez le magasin de clefs sécurisé contenant la clef de signature sécurisée sur le système local. Pour plus d’informations sur la création de la clef de signature sécurisée, consultez Création de la clef de signature sécurisée, page 6-24. L’emplacement par défaut du magasin de clefs sécurisé est dans le répertoire /usr/lib/security/pki. Pour des raisons de sécurité, assurez-vous que le fichier du magasin de clefs est protégé en lecture et en écriture. Seul l’utilisateur root doit avoir accès à ce fichier. Edition du fichier acct.cfg Supprimez toutes les strophes ldap pouvant exister dans le fichier /usr/lib/security/pki/acct.cfg à l’aide d’un éditeur de texte comme vi. 6-24 Guide de sécurité Configuration de l’autorité de certification Le compte de l’autorité de certification locale doit au moins être configuré. Par défaut, il existe mais vous devez le modifier pour qu’il corresponde à votre environnement. Le service d’authentification de certificats peut utiliser plusieurs autorités de certification pour un seul système via les fichiers de configuration en strophes. local, le nom par défaut de la strophe de l’autorité de certification, est utilisé lorsqu’une autorité de certification n’est pas spécifiée par l’utilisateur ou le logiciel. Tous les systèmes doivent disposer d’une telle strophe local valide, dans les fichiers de configuration appropriés du service d’authentification de certificats. Une seule autorité de certification peut disposer du nom de strophe local. Toutes les autres autorités de certification doivent posséder un nom de strophe unique. Les noms de strophe de l’autorité de certification ne peuvent pas être ldap ou default. Les sections suivantes vous guident dans les écrans de configuration de l’outil SMIT pour configurer l’autorité de certification locale. Modification / Affichage d’une autorité de certification 1. Lancez l’outil SMIT PKI, comme suit : smitty pki 2. Sélectionnez Modification / Affichage d’une autorité de certification. 3. Tapez local pour Nom de l’autorité de certification puis appuyez sur entrée. 4. Configurez la zone Nom du module de service sur /usr/lib/security/pki/JSML.sml. Il s’agit de la valeur par défaut du module de chargement SML. Cette zone mappe vers l’attribut program du fichier /usr/lib/security/pki/ca.cfg. 5. Ignorez la zone Chemin d’accès du certificat de l’autorité de certification. Cette zone mappe vers l’attribut certfile du fichier /usr/lib/security/pki/ca.cfg. 6. Configurez la zone Chemin d’accès à la clef sécurisée de l’autorité de certification sur une URI correspondant à l’emplacement du magasin de clefs sécurisé sur le système local. Seuls les magasins de clefs sur fichiers sont pris en charge. L’emplacement habituel du magasin de clefs sécurisé est le répertoire /usr/lib/security/pki. (Consultez Installation de la clef de signature sécurisée, page 6-24.) Cette zone mappe vers l’attribut trustedkey du fichier /usr/lib/security/pki/ca.cfg. 7. Configurez la zone URI du serveur de l’autorité de certification sur une URI correspondant à l’emplacement de l’autorité de certification (cmp://myserver:1077). Cette zone mappe vers l’attribut server du fichier /usr/lib/security/pki/ca.cfg. 8. Ignorez la zone Point de distribution du certificat. Cette zone mappe vers l’attribut cdp du fichier /usr/lib/security/pki/ca.cfg. 9. Configurez la zone URI de la liste de révocation des certificats (CRL). Cette zone indique l’URI, et doit être définie sur l’emplacement de la liste de révocation des certificats de cette autorité de certification. Il s’agit généralement d’une URI LDAP, par exemple : ldap://crlserver/o= XYZ ,c= us Cette zone mappe vers l’attribut crl du fichier /usr/lib/security/pki/ca.cfg. 10.La zone Nom spécifique du certificat par défaut indique le DN de base utilisé lors de la création de certificats (par exemple, o= XYZ,c= us ). Cette zone n’est pas obligatoire. Cette zone mappe vers l’attribut dn du fichier /usr/lib/security/pki/ca.cfg. 11. La zone URI du nom d’utilisateur supplémentaire par défaut du certificat indique l’URI correspondante utilisée lors de la création de certificats si elle n’a pas été fournie au moment de la création. Cette zone n’est pas obligatoire. Cette zone mappe vers l’attribut url du fichier /usr/lib/security/pki/ca.cfg. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-25 12.La zone Algorithme de clef publique indique l’algorithme utilisé lors de la création d’un certificat. Au choix, RSA ou DSA. Si aucun n’est spécifié, le système prend comme valeur par défaut RSA. Cette zone mappe vers l’attribut algorithm du fichier /usr/lib/security/pki/ca.cfg. 13.La zone Taille de la clef publique (en bits) indique la taille en bits de l’algorithme de la clef publique. Cette zone est en bits, et non en octets, et cette valeur peut être arrondie à la valeur supérieure par le mécanisme de clef publique en cours afin d’utiliser la taille suivante en octets. (l’arrondi est utilisé pour les nombres de bits qui ne sont pas des multiples entiers de 8). Voici quelques exemples, 512, 1024 et 2048. Si cette zone n’est pas renseignée, le système prend comme valeur par défaut 1024 bits. Cette zone mappe vers l’attribut keysize du fichier /usr/lib/security/pki/ca.cfg. 14.La zone Nombre MAX. de nouvelle tentative de communication indique le nombre de tentatives du système pour contacter l’autorité de certification (lors de la création ou la révocation d’un certificat) avant abandon. Le système prend comme valeur par défaut le nombre de 5 tentatives. Cette zone mappe vers l’attribut retries du fichier /usr/lib/security/pki/ca.cfg. 15.La zone Algorithme de hachage pour signature indique l’algorithme de hachage utilisé lors de la signature d’un certificat d’authentification. Au choix, MD2, MD5 ou SHA1. Le système prend comme valeur par défaut MD5. Cette zone mappe vers l’attribut signinghash du fichier /usr/lib/security/pki/ca.cfg. 16.Appuyez sur Entrée pour valider les modifications. Modification / Affichage des comptes d’une autorité de certification 1. Lancez l’outil SMIT PKI, comme suit : smitty pki 2. Sélectionnez Modification / Affichage des comptes d’une autorité de certification. 3. Tapez local dans la zone Nom de l’autorité de certification puis appuyez sur entrée. 4. La zone Numéro de référence de création d’un certificat indique le numéro de référence utilisé pour créer un certificat. Le numéro de référence de création doit comporter au moins 7 chiffres. Le numéro de référence est défini par l’autorité de certification. (consultez Création de l’autorité de certification, page 6-23.) Cette zone mappe vers l’attribut carefnum du fichier /usr/lib/security/pki/acct.cfg. 5. La zone Mot de passe de création d’un certificat indique le mot de passe utilisé pour créer un certificat. La longueur de ce mot de passe doit être d’au moins 12 caractères de type alphanumériques ASCII 7 bits. Le mot de passe de création est défini dans l’autorité de certification et il doit être associé au numéro de référence de création mentionné ci-dessus. (consultez Création de l’autorité de certification, page 6-23.) Cette zone mappe vers l’attribut capasswd du fichier /usr/lib/security/pki/acct.cfg. 6. La zone Numéro de référence de révocation d’un certificat indique le numéro de référence utilisé pour révoquer un certificat. Le numéro de référence de création doit comporter au moins 7 chiffres. Le numéro de référence de révocation est envoyé à l’autorité de certification qui l’associe au certificat lors de chaque création. Pour révoquer un certificat, le même numéro de référence de révocation (et mot de passe de révocation) que celui envoyé lors de la création doit être envoyé lors de la révocation du certificat. Cette zone mappe vers l’attribut rvrefnum du fichier /usr/lib/security/pki/acct.cfg. 6-26 Guide de sécurité 7. La zone Mot de passe de révocation d’un certificat indique le mot de passe de référence utilisé pour révoquer un certificat. La longueur de ce mot de passe doit être d’au moins 12 caractères de type alphanumériques ASCII 7 bits Le mot de passe de révocation est envoyé à l’autorité de certification qui l’associe au certificat lors de chaque création. Pour révoquer un certificat, le même mot de passe de révocation (et numéro de référence de révocation) que celui envoyé lors de la création doit être envoyé lors de la révocation du certificat. Cette zone mappe vers l’attribut rvpasswd du fichier /usr/lib/security/pki/acct.cfg. 8. La zone Libellé de clef sécurisé indique le libellé (parfois appelé alias) de la clef de signature sécurisée située dans le magasin de clefs sécurisé. La valeur du libellé de la clef sécurisé est tirée de Création de la clef de signature sécurisée, page 6-24. Cette zone mappe vers l’attribut keylabel du fichier /usr/lib/security/pki/acct.cfg. 9. La zone Mot de passe de la clef sécurisée indique le mot de passe de la clef de signature sécurisée située dans le magasin de clefs sécurisé. La valeur du mot de passe de la clef sécurisé est tirée de Création de la clef de signature sécurisée, page 6-24. Cette zone mappe vers l’attribut keypasswd du fichier /usr/lib/security/pki/acct.cfg. 10.Appuyez sur Entrée pour valider les modifications. Ajout du compte LDAP pour l’autorité de certification 1. Lancez l’outil SMIT PKI, comme suit : smitty pki 2. Sélectionnez Ajout d’un compte LDAP. 3. La zone Nom de l’utilisateur administratif indique le DN du compte administratif LDAP. Le nom de l’utilisateur administratif du compte LDAP de l’autorité de certification est le même que celui utilisé dans Configuration du serveur LDAP, page 6-19 et Configuration LDAP du serveur pour le service d’authentification de certificats, page 6-22. La valeur doit être cn=admin. Elle permet au client de communiquer avec le serveur LDAP lors de l’accès aux données LDAP de l’autorité de certification. Cette zone mappe vers l’attribut ldappkiadmin du fichier /usr/lib/security/pki/acct.cfg. Par exemple : ldappkiadmin = ”cn=admin” 4. La zone Mot de passe administratif indique le mot de passe du compte administratif LDAP. Le mot de passe administratif est le même que celui utilisé dans Configuration du serveur LDAP, page 6-19 et Configuration LDAP du serveur pour le service d’authentification de certificats, page 6-22. Cette zone mappe vers l’attribut ldappkiadmpwd du fichier /usr/lib/security/pki/acct.cfg. Par exemple : ldappkiadmpwd = secret 5. La zone Nom du serveur indique le nom du serveur LDAP et doit être définie dans chaque strophe LDAP. La valeur est un nom de serveur LDAP unique. Cette zone mappe vers l’attribut ldapservers du fichier /usr/lib/security/pki/acct.cfg. Par exemple : ldapservers = ldapserver.mydomain.com 6. La zone Suffixe indique le suffixe DN de l’arborescence du répertoire sur lequel se trouvent les données. Le suffixe correspond à la valeur de l’attribut ibm–slapdSuffix utilisé dans Configuration LDAP du serveur pour le service d’authentification de certificats, page 6-22. Cet attribut doit être défini dans chaque strophe LDAP. Cette zone mappe vers l’attribut ldapsuffix du fichier /usr/lib/security/pki/acct.cfg. Par exemple : ldapsuffix = ”ou=aix,cn=us” 7. Appuyez sur Entrée pour valider les modifications. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-27 Ajout de PKI pour chaque compte utilisateur LDAP Exécutez les mêmes étapes que décrites dans Ajout du compte LDAP de l’autorité de certification, page 6-27, sauf que vous utilisez les valeurs utilisées dans l’étape Ajout des entrées de base de données ACL et suffixe PKI de Configuration du serveur LDAP pour PKI, page 6-20. Utilisez les valeurs suivantes : • Nom de l’utilisateur administratif ( ou=pkidata,cn=aixdata ), • Mot de passe administratif ( password ), • Nom du serveur ( spécifique au site ), • Suffixe ( ou=pkidata,cn=aixdata ). Appuyez sur Entrée pour valider les modifications. Modification / Affichage de la politique 1. Lancez l’outil SMIT PKI, comme suit : smitty pki 2. Sélectionnez Modification / Affichage de la politique. • La zone Création de certificats pour de nouveaux utilisateurs indique si la commande mkuser génère un certificat et un magasin de clefs pour le nouvel utilisateur (new), ou si l’administrateur fournit un certificat et un magasin de clefs une fois l’utilisateur créé (get). Cette zone mappe vers l’attribut cert de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Nom de l’autorité de certification indique l’autorité de certification utilisée par la commande mkuser lors de la génération d’un certificat. La valeur de cette zone doit correspondre au nom d’une strophe figurant dans le fichier ca.cfg ; par exemple, local. Cette zone mappe vers l’attribut ca de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Mot de passe utilisateur initial indique le mot de passe utilisé par la commande mkuser lors de la création du magasin de clefs d’un utilisateur. Cette zone mappe vers l’attribut passwd de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Version du certificat indique la version utilisée par la commande mkuser lors de la génération d’un certificat. Actuellement, la seule valeur prise en charge est 3, ce qui correspond à X.509v3. Cette zone mappe vers l’attribut version de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Taille de la clef publique indique la taille (en bits) de la clef publique utilisée par la commande mkuser lors de la génération d’un certificat. Cette zone mappe vers l’attribut keysize de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Emplacement du magasin de clefs indique le format URI du répertoire du magasin de clefs utilisé par la commande mkuser lors de la création d’un magasin de clefs. Cette zone mappe vers l’attribut keystore de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Période de validité indique la période de validité du certificat utilisée par la commande mkuser lors de la génération d’un certificat. La période validité demandée peut ou non être honorée par l’autorité de certification lors de la création du certificat. Cette période peut être indiquée en secondes, jours ou années. Si vous ne proposez qu’un seul nombre, on considère qu’il s’agit de secondes. Si la lettre d suit immédiatement le nombre, on considère qu’il s’agit de jours. Si la lettre y suit immédiatement le nombre, on considère qu’il s’agit d’années. Voici des exemples : – 1y (pour 1 an) – 30d (pour 30 jours) 6-28 Guide de sécurité – 2592000 (pour 30 jours en secondes). Cette zone mappe vers l’attribut validity de la strophe newuser du fichier /usr/lib/security/pki/policy.cfg. • La zone Réplication de certificats non locaux indique si la commande certlink sauvegarde une copie d’un certificat (yes) ou juste le lien vers ce certificat (no). Cette zone mappe vers l’attribut replicate de la strophe storage du fichier /usr/lib/security/pki/policy.cfg. • La zone Vérification des listes de révocation de certificats indique si les commandes certadd et certlink vérifient (yes) ou non (no) la CRL avant d’exécuter leurs tâches. Cette zone mappe vers l’attribut check de la strophe crl du fichier /usr/lib/security/pki/policy.cfg. • La zone Délai de communication par défaut indique le délai en secondes utilisée par les commandes certadd et certlink lors de la demande d’informations sur des certificats à l’aide du HTTP (par exemple, extraction des CRL). Cette zone mappe vers l’attribut timeout de la strophe comm du fichier /usr/lib/security/pki/policy.cfg. Le fichier methods.cfg Le fichier methods.cfg indique les définitions de la grammaire d’authentification utilisée par les attributs registry et SYSTEM. C’est là que la grammaire d’authentification de PKILDAP (pour PKI utilisant LDAP) et FPKI (fichiers PKI) doit être définie et ajoutée par l’administrateur système. Vous trouverez ci-dessous une définition methods.cfg type. Les noms des strophes PKI, LDAP et PKILDAP sont des noms arbitraires qui peuvent être modifiés par l’administrateur. Ces noms des strophes sont utilisées tout au long de cette section. PKI: program = /usr/lib/security/PKI options = authonly LDAP: program = /usr/lib/security/LDAP PKILDAP: options = auth=PKI,db=LDAP Pour prendre en charge des utilisateurs visiteurs, utilisez les mêmes noms de strophe methods.cfg et valeurs d’attribut sur tous les systèmes assurant cette option. Exemples des configuration de l’administration Création d’un nouveau compte utilisateur PKI Pour créer un nouveau compte utilisateur PKI, utilisez la commande mkuser et le nom de strophe /usr/lib/security/methods.cfg approprié (PKILDAP). Selon les attributs du fichier /usr/lib/security/pki/policy.cfg, la commande mkuser peut créer automatiquement un certificat pour l’utilisateur. Voici un exemple de commande mkuser qui crée le compte utilisateur bob : mkuser –R PKILDAP SYSTEM=”PKILDAP” registry=PKILDAP bob Conversion d’un compte utilisateur non–PKI en un compte utilisateur PKI Il existe deux façons pour convertir un compte utilisateur non–PKI en un compte utilisateur PKI. La première permet à l’administrateur du système d’accéder au magasin de clefs privé de l’utilisateur initial, ce qui peut ne pas être autorisé dans un environnement donné, et c’est la méthode la plus rapide. La seconde exige l’interaction entre l’utilisateur et l’administrateur du système, ce qui peut prendre plus de temps à configurer. Ces deux exemples utilisent les hypothèses suivantes : • cas.server et cas.client sont déjà installés, configurés et en cours de fonctionnement. • PKILDAP est défini dans methods.cfg comme indiqué dans Le fichier methods.cfg, page 6-29. Service d’authentification de certificats X.509 et infrastructure à clef publique 6-29 Exemple 1 : Avec l’autorité root, l’administrateur du système peut exécuter les commandes suivantes pour le compte utilisateur bob : certcreate –f cert1.der –l auth_lbl1 cn=bob bob # Créez et sauvegardez cert dans cert1.der. certadd –f cert1.der –l auth_lbl1 auth_tag1 bob # Ajoutez cert dans LDAP en tant que auth_tag1. certverify auth_tag1 bob # Vérifiez et signez cert dans LDAP. chuser SYSTEM=”PKILDAP” registry=PKILDAP bob # Modifiez le type de compte en PKILDAP. chuser –R PKILDAP auth_cert=auth_tag1 bob # Configurez le certificat auth de l’utilisateur. Modifiez ensuite le mot de passe du magasin de clefs de l’utilisateur bob à l’aide de la commande keypasswd. Exemple 2 : L’utilisateur bob doit exécuter les 3 premières commandes de l’exemple 1 ci-dessus ( certcreate, certadd, certverify ) pour créer son propre certificat et magasin de clefs. L’administrateur du système doit ensuite exécuter les deux dernières commandes chuser de l’exemple 1 ci-dessus. Création et ajout d’un certificat d’authentification Si un utilisateur PKI demande un nouveau certificat d’authentification, l’utilisateur peut créer un nouveau certificat et demander à l’administrateur du système d’en faire un certificat d’authentification. L’exemple ci-dessous montre la création d’un certificat par l’utilisateur bob, puis sa conversion par l’administrateur du système en un certificat d’authentification. # Connexion en tant que compte utilisateur bob : certcreate –f cert1.der –l auth_lbl1 cn=bob # Créez et sauvegardez cert dans cert1.der. certadd –f cert1.der –l auth_lbl1 auth_tag1 # Ajoutez cert dans LDAP en tant que auth_tag1. certverify auth_tag1 # Vérifiez et signez le cert dans LDAP. # En tant qu’administrateur du système : chuser –R PKILDAP auth_cert=auth_tag1 bob # Configurez le certificat auth de l’utilisateur. Modification du mot de passe par défaut du nouveau magasin de clefs Pour modifier le mot de passe utilisé pour créer les magasins de clefs des nouveaux utilisateurs PKI, éditez la valeur de l’attribut passwd de la strophe newuser dans le fichier /usr/lib/security/pki/policy.cfg. Gestion d’une clef de signature sécurisée compromise Le fichier qui contient la clef de signature sécurisée doit être remplacé et les certificats d’authentification de l’utilisateur doivent être de nouveau signés. Gestion d’une clef privée d’utilisateur compromise Si la clef privée d’un utilisateur est compromise, l’utilisateur ou l’administrateur doit révoquer le certificat au moyen du code de raison approprié, les autres utilisateurs utilisant la clef publique doivent en être informés et, selon l’utilisation de cette clef privée/publique, un nouveau certificat doit être émis. Si le certificat a été utilisé comme certificat d’authentification, un autre certificat (soit le nouveau, soit un certificat existant non promis détenu par l’utilisateur) doit être ajouté comme nouveau certificat d’authentification. 6-30 Guide de sécurité Gestion d’un magasin de clefs ou d’un mot de passe de magasin de clefs compromis Modifiez le mot de passe du magasin de clefs. Révoquez tous les certificats utilisateur. Créez de nouveaux certificats pour l’utilisateur, y compris un nouveau certificat d’authentification. Les clefs privées compromises peuvent toujours servir à l’utilisateur pour accéder à des données chiffrées auparavant. Déplacement du magasin de clefs d’un utilisateur ou modification du nom de magasin de clefs d’un utilisateur Si la clef privée d’un utilisateur est compromise, l’utilisateur ou l’administrateur doit révoquer le certificat au moyen du code de raison approprié, les autres utilisateurs utilisant la clef publique doivent en être informés et, selon la fonction de la clef privée et publique, un nouveau certificat doit être émis. Si le certificat a été utilisé comme certificat d’authentification, un autre certificat (soit le nouveau, soit un certificat existant non promis détenu par l’utilisateur) doit être ajouté comme nouveau certificat d’authentification. Déplacement du magasin de clefs d’un utilisateur ou modification du nom de magasin de clefs d’un utilisateur Chaque certificat utilisateur conservé dans LDAP contient l’emplacement du magasin de clefs de la clef privée correspondante. Déplacer le magasin de clefs d’un utilisateur d’un répertoire à un autre ou modifier le nom du magasin de clefs impose de modifier le nom et l’emplacement du magasin de clefs LDAP associé aux certificats de l’utilisateur. Si l’utilisateur possède plusieurs magasins de clefs, vous devez faire particulièrement attention à ne modifier que les informations LDAP des certificats concernés par cette modification. Pour déplacer un magasin de clefs de /var/pki/security/keys/user1.p12 vers /var/pki/security1/keys/user1.p12 : # En tant que root... cp /var/pki/security/keys/user1.p12 /var/pki/security1/keys/user1.p12 # Récupérez une liste de tous les certificats associés à cet utilisateur. certlist ALL user1 # # # # # # # Pour chaque certificat associé au magasin de clefs, procédez comme suit : A) Récupérez le libellé de la clef privée du certificat et son statut “ vérifié ”. B) Récupérez le certificat dans LDAP. C) Remplacez le certificat dans LDAP à l’aide du même libellé de clef privée, sans le raccourci du nouveau magasin de clefs. D) Si le certificat a été vérifié au préalable, il doit être à nouveau vérifié. (l’étape D exige le mot de passe du magasin de clefs.) # Exemple de modification d’un seul certificat. # Considérons que : # nomutilisateur : user1 # cert tag : tag1 # key label : label1 # Récupérez le libellé de la clef privée du certificat. certlist –a label tag1 user1 # Récupérez le certificat dans LDAP et placez-le dans le fichier cert.der. certget –f cert.der tag1 user1 # Remplacez le certificat dans LDAP. certadd –r –f cert.der –p /var/pki/security1/keys/user1.p12 –l label1 tag1 user1 # Faites une nouvelle vérification du certificat précédemment vérifié. # (vous devez connaître le mot de passe du magasin de clefs.) certverify tag1 user1 Service d’authentification de certificats X.509 et infrastructure à clef publique 6-31 6-32 Guide de sécurité Chapitre 7. Module d’extension d’authentification (PAM) La structure PAM (pluggable authentication module) permet d’incorporer plusieurs mécanismes d’authentification à un système à l’aide de modules d’extension. Les applications compatibles PAM peuvent bénéficier d’extensions sans devoir être modifiées. Cette souplesse permet aux administrateurs d’effectuer les tâches suivantes : • Sélectionner tout service d’authentification du système pour une application • Utiliser plusieurs mécanismes d’authentification pour un service donné • Ajouter de nouveaux modules de services d’authentification sans modifier les applications • Utiliser un mot de passe entré précédemment pour l’authentification avec plusieurs modules La structure PAM est composée d’une bibliothèque, de modules d’extension et d’un fichier de configuration. La bibliothèque PAM met en œuvre l’API PAM et sert à gérer les transactions PAM et à invoquer la SPI (service programming interface) PAM définie dans les modules d’extension. Les modules d’extension sont chargés dynamiquement par la bibliothèque, en fonction du service invoquant et de son entrée dans le fichier de configuration. Le succès dépend du module d’extension ainsi que du comportement défini pour le service. Le concept de succession permet de configurer un service d’authentification utilisant plusieurs méthodes. Le cas échéant, des modules peuvent être configurés pour utiliser un mot de passe entré précédemment plutôt que pour demander une entrée supplémentaire. L’illustration suivante montre l’interaction entre les applications, la bibliothèque PAM, le fichier de configuration et les modules PAM. Les applications PAM fictives (pam_login, pam_su, et pam_passwd) invoquent l’API PAM dans la bibliothèque PAM. La bibliothèque détermine le module à charger en fonction de l’entrée de l’application dans le fichier de configuration, et appelle la SPI PAM dans le module. Le module PAM fournit une fonction de conversation qui assure ses communications avec la bibliothèque. Le succès ou l’échec du module et le comportement défini dans le fichier de configuration déterminent ensuite s’il faut charger un autre module. Si tel est la cas, le processus se poursuit. Autrement, les données sont retournées à l’application. Module d’extension d’authentification (PAM) 7-1 Figure 3. Structure et entités PAM Cette illustration montre comment des commandes d’applications fictives utilisent la bibliothèque PAM pour accéder aux modules PAM souhaités. Bibliothèque PAM La bibliothèque PAM, /usr/lib/libpam.a, contient l’API PAM qui sert d’interface commune à toutes les applications PAM et contrôle le chargement des modules. Les modules sont chargés par la bibliothèque PAM en fonction du comportement de succession défini dans le fichier /etc/pam.conf. Les fonctions suivantes de l’API PAM invoquent la SPI PAM correspondante fournie par un module PAM. Par exemple, l’API pam_authenticate invoque la SPI pam_sm_authenticate dans un module PAM. • pam_authenticate • pam_setcred • pam_acct_mgmt • pam_open_session • pam_close_session • pam_chauthtok La bibliothèque PAM fournit aussi des fonctions permettant à une application d’invoquer des modules PAM et de leur envoyer des informations. Les API suivantes de la structure PAM sont mises en œuvre dans AIX : 7-2 pam_start Lancement d’une session PAM pam_end Fermeture d’une session PAM Guide de sécurité pam_get_data Récupération de données spécifiques au module pam_set_data Définition de données spécifiques au module pam_get_item Récupération d’informations de PAM communes pam_set_item Définition d’informations de PAM communes pam_get_user Récupération d’un nom d’utilisateur pam_strerror Obtention d’un message d’erreur standard PAM Modules PAM Les modules PAM permettent d’utiliser sur un système plusieurs mécanismes d’authentification, collectivement ou indépendamment. Un module PAM donné doit mettre en œuvre au moins l’un des quatre types de modules. Les types de modules sont décrits ci–dessous, accompagnés des SPI PAM requises pour se conformer au type de module. Modules d’authentification Authentifient les utilisateurs et définissent, rafraîchissent ou détruisent les données d’identification. Ces modules identifient l’utilisateur en fonction de son authentification et de ses données d’identification. Fonctions des modules d’authentification : . pam_sm_authenticate . pam_sm_setcred Modules de gestion de comptes Déterminent la validité du compte utilisateur et des accès suivants, après l’identification par le module d’authentification. Les vérifications effectuées par ces modules incluent généralement des restrictions de mot de passe et d’expiration de compte. Fonction du module de gestion de comptes : . pam_sm_acct_mgmt Modules de gestion de sessions Lancent et mettent fin aux sessions utilisateur. Vous pouvez aussi bénéficier d’un audit de sessions. Fonctions du module de gestion de sessions : . pam_sm_open_session . pam_sm_close_session Modules de gestion des mots de passe Ils modifient les mots de passe et gèrent les attributs liés. Fonction du module de gestion des mots de passe : . pam_sm_chauthtok Module d’extension d’authentification (PAM) 7-3 Fichier de configuration PAM Le fichier de configuration /etc/pam.conf contient des entrées de service pour chaque type de module PAM et sert à acheminer des services via un chemin d’accès défini. Les entrées du fichier se composent des zones suivantes, délimitées par des espaces : service_name module_type control_flag module_path module_options Où : service_name Indique le nom du service. Le mot clé OTHER définit le module par défaut à utiliser pour les applications non spécifiées dans une entrée. module_type Désigne le type de module pour le service. Les types de module valides sont auth, account, session et password. control_flag Désigne le comportement de succession du module. Les indicateurs de contrôle compatibles sont requis (required), suffisant (sufficient), ou facultatif (optional). module_path Désigne le chemin d’accès vers l’objet de la bibliothèque qui met en œuvre la fonctionnalité du service. Les entrées de module_path doivent commencer au répertoire root ( / ). Si l’entrée ne commence pas par /, alors /usr/lib/security est ajouté au début du nom de fichier. module_options Répertorie des options qui peuvent être transmises aux modules de services. Les valeurs de cette zone dépendent des options prises en charge par le module défini dans la zone module_path . Toutes les zones ci–dessus sont nécessaires pour chaque entrée à l’exception de la zone module_options, qui est facultative. Les entrées incorrectes ou comportant des valeurs non valides pour les zones module_type ou control_flag sont ignorées par la bibliothèque PAM. Les entrées comportant un dièse (#) au début de la ligne sont également ignorées car mises en commentaire. La succession est mise en œuvre dans le fichier de configuration par la création de plusieurs entrées avec la même zone module_type. Les modules sont invoqués dans l’ordre dans lequel ils apparaissent dans le fichier, le dernier résultat étant déterminé par la zone control_flag spécifiée pour chaque entrée. Les valeurs acceptées pour la zone control_flag et leur comportement dans la suite sont décrits ci–dessous : 7-4 Guide de sécurité required Tous les modules obligatoires d’une suite doivent être présents pour obtenir un résultat positif. Si l’un d’eux échoue, tous les modules obligatoires de la suite seront essayés, mais la première erreur d’un module obligatoire sera retournée. sufficient Si un module marqué ainsi est correct, et si aucun module obligatoire ou suffisant précédent n’a échoué, tous les modules restants dans la suite sont ignorés. optional Si aucun module de la suite n’est obligatoire et si aucun module suffisant n’a enregistré un succès, au moins l’un des modules facultatifs doit fournir un succès pour le service. Si un autre module de la suite enregistre un succès, l’échec d’un module facultatif est ignoré. Voici un exemple de fichier /etc/pam.conf qui pourrait être utilisé sur un système sur lequel d’autres modules PAM sont installés : # # Fichier de configuration PAM /etc/pam.conf # # Gestion des authentifications login auth required /usr/lib/security/pam_aix login auth required /usr/lib/security/pam_verify login auth optional /usr/lib/security/pam_test su auth sufficient /usr/lib/security/pam_aix su auth required /usr/lib/security/pam_verify OTHER auth required /usr/lib/security/pam_aix # Gestion des comptes OTHER account required /usr/lib/security/pam_aix # Gestion de sessions OTHER session required /usr/lib/security/pam_aix # Gestion des mots de passe OTHER password required /usr/lib/security/pam_aix use_first_pass Le fichier de configuration exemple contient trois entrées pour le service de connexion. Une fois les éléments obligatoires pam_aix et pam_verify spécifiés, l’utilisateur doit entrer deux mots de passe pour s’authentifier, et ces deux mots de passe doivent être corrects. La troisième entrée pour le module pam_test est facultative et son succès ou son échec n’affecteront pas la capacité de l’utilisateur à se connecter. L’option use_first_pass du module pam_test permet d’utiliser un mot de passe entré précédemment plutôt que de devoir en entrer un nouveau. La commande su se comporte de telle sorte que si pam_aix est correct, l’authentification est effectuée. Si pam_aix échoue, pam_verify doit effectuer une authentification correcte. L’utilisation du mot de passe OTHER comme nom de service permet de définir une valeur par défaut pour tout autre service non déclaré explicitement dans le fichier de configuration. La définition d’une valeur par défaut garantit que chaque cas pour un type de module donné sera couvert par au moins un module. Module d’extension d’authentification (PAM) 7-5 Ajout d’un module PAM Pour ajouter un module PAM, effectuez la procédure ci–dessous : 1. Installez le module dans le répertoire /usr/lib/security. 2. Définissez la propriété du fichier sur root et les droits sur 555. La bibliothèque PAM ne charge aucun module autre que ceux possédés par l’utilisateur root. 3. Mettez à jour le fichier de configuration /etc/pam.conf pour inclure le module dans les entrées des noms de services désirés. 4. Vérifiez que les services concernés fonctionnent correctement. Ne vous déconnectez pas du système avant d’avoir effectué un test de connexion. Modification du fichier /etc/pam.conf Lors de toute modification du fichier de configuration /etc/pam.conf, pensez aux éléments suivants : • AIX ne fournit pas de fichier /etc/pam.conf par défaut, donc le fichier doit être créé avant l’utilisation de PAM. Lorsque vous créez le fichier, définissez la propriété du fichier sur root et les droits de base sur 644. Le fichier peut alors être modifié manuellement par l’utilisateur root. • Déterminez le module par défaut à utiliser pour chaque type de module puis utilisez le mot clé OTHER pour ne pas avoir à indiquer le module pour chaque service. • Lisez la documentation fournie avec chaque module choisi, et déterminez les indicateurs de contrôle et options pris en charge, ainsi que leur effet. • Classez les modules et indicateurs de contrôle avec soin. Souvenez–vous du comportement des indicateurs de contrôle obligatoires, suffisants et facultatifs dans les successions de modules. Remarque : Une mauvaise configuration du fichier de configuration PAM peut empêcher toute connexion au système. Une fois le fichier modifié, testez systématiquement les applications concernées avant de vous déconnecter du système. Pour récupérer un système auquel il est impossible de se connecter, amorcez–le en mode maintenance et corrigez le fichier de configuration /etc/pam.conf. Activation du débogage PAM La bibliothèque PAM peut fournir des informations de débogage durant son fonctionnement. Une fois le système activé pour le recueil de sorties de débogage, les informations collectées permettent de suivre les appels à l’API PAM et de localiser les points de panne de la configuration PAM actuelle. Pour activer les sorties de débogage PAM, procédez comme suit : 1. Créez un fichier vide dans /etc/pam_debug. La bibliothèque PAM contrôle l’existence du fichier /etc/pam_debug, et active la sortie syslog. 2. Modifiez le fichier /etc/syslog.conf pour inclure les entrées nécessaires pour les niveaux de messages souhaités. 3. Relancez le démon syslogd afin que la nouvelle configuration soit reconnue. 4. Une fois l’application PAM redémarrée, les messages de débogage seront recueillis dans le fichier défini dans le fichier de configuration /etc/syslog.conf. 7-6 Guide de sécurité Intégration de PAM avec AIX L’intégration de PAM avec AIX nécessite l’utilisation d’un module d’authentification compatible avec AIX, PAM, et d’un module pam_aix. Ces modules offrent plusieurs voies d’intégration de PAM : • L’accès à PAM depuis les services de sécurité AIX est assuré par le module PAM • L’accès depuis une application PAM aux services de sécurité AIX est fourni par les modules PAM (pam_aix) Module PAM Les services de sécurité AIX peuvent être configurés pour appeler les modules PAM à l’aide de la structure de modules d’authentification existante compatible avec AIX. Lorsque le fichier /usr/lib/security/methods.cfg est configuré correctement, le module de chargement PAM achemine les services de sécurité AIX (passwd, login, etc) vers la bibliothèque PAM. La bibliothèque PAM contrôle le fichier /etc/pam.conf pour déterminer quel module PAM utiliser, puis pour exécuter l’appel de SPI PAM correspondant. Les valeurs retournées par PAM sont converties en codes d’erreur AIX et retournées au programme appelant. Figure 4. Chemin du service de sécurité AIX vers le module PAM. Cette illustration indique le chemin emprunté par un service de sécurité AIX lorsque PAM est configuré correctement. Les modules PAM indiqués (pam_krb, pam_ldap et pam_dce) sont des exemples de solutions tierces. PAM est un simple module de chargement uniquement chargé de l’authentification et installé dans le répertoire /usr/lib/security. Le module PAM doit être associé à une base de données pour former un module de chargement composé. L’exemple suivant indique les strophes pouvant être ajoutées au fichier methods.cfg pour former un module PAM composé avec une base de données nommée files. Le mot clé BUILTIN pour l’attribut db désignera la base de données en tant que fichiers UNIX. Module d’extension d’authentification (PAM) 7-7 PAM: program = /usr/lib/security/PAM PAMfiles: options = auth=PAM,db=BUILTIN L’option –R permet alors de créer et modifier les utilisateurs à l’aide des commandes de gestion, et en définissant l’attribut SYSTEM lors de la création d’un utilisateur. mkuser –R PAMfiles SYSTEM=PAMfiles registry=PAMfiles pamuser Cette action indiquera aux appels suivants aux services de sécurité AIX (login, passwd, etc) d’utiliser le module de chargement PAM pour l’authentification. Dans cet exemple, la base de données files a servi pour générer le module composé, mais d’autres bases de données peuvent aussi être utilisées, si elles sont installées, comme LDAP. La création d’utilisateurs définie précédemment entraînera le mappage suivant de la sécurité AIX en appels d’API PAM : AIX ===== authenticate chpass passwdexpired passwdrestrictions ––> ––> ––> ––> PAM API ========= pam_authenticate pam_chauthtok pam_acct_mgmt No comparable mapping exists, success returned La personnalisation du fichier /etc/pam.conf permet de diriger les appels d’API PAM vers le module PAM souhaité pour authentification. La succession peut être mise en œuvre pour obtenir un mécanisme d’authentification plus sophistiqué. Les données appelées par un service de sécurité AIX sont transmises à PAM via la fonction pam_set_item car il n’est pas possible de remplir la boîte de dialogue depuis PAM. Les modules PAM écrits pour intégration avec le module PAM devraient récupérer toutes les données à l’aide d’appels pam_get_item et ne devraient pas essayer de demander à l’utilisateur d’entrer des données, car le service de sécurité s’en charge. La détection des boucles permet de repérer de possibles erreurs de configuration qui feraient que le service de sécurité AIX serait acheminé vers PAM, puis un module PAM tenterait d’appeler le service de sécurité AIX pour exécuter l’opération. La détection de cette boucle entraînera l’échec immédiat de l’opération souhaitée. Remarque : Le fichier /etc/pam.conf ne doit PAS être configuré pour utiliser le module pam_aix lors de l’utilisation de l’intégration PAM depuis un service de sécurité AIX vers un module PAM, car cela créerait une boucle. Module pam_aix Le module pam_aix est un module PAM qui permet aux applications activées par PAM d’accéder aux services de sécurité AIX en fournissant les interfaces qui appellent les services AIX équivalents lorsqu’ils existent. Ces services sont alors exécutés par un module d’authentification compatible, ou par la fonction AIX builtin, selon la définition des utilisateurs et la configuration correspondante dans methods.cfg. Tous les codes d’erreur générés lors de l’exécution d’un service AIX sont convertis en codes PAM correspondants. Figure 5. Chemin de l’application PAM vers le sous–système de sécurité AIX. Cette illustration montre le chemin suivi par un appel d’API d’une application PAM si le fichier /etc/pam.conf est configuré pour l’utilisation du module pam_aix. L’intégration permet l’authentification des utilisateurs par tout module d’authentification chargeable (DCE, LDAP, ou KRB5) ou dans les fichiers UNIX (compat). 7-8 Guide de sécurité Le module pam_aix est installé dans le répertoire /usr/lib/security. L’intégration du module pam_aix nécessite la configuration du fichier /etc/pam.conf. La succession est toujours disponible, mais il a été choisi de ne pas la représenter dans cet exemple simple du fichier /etc/pam.conf : # # Gestion de l’authentification # OTHER auth required /usr/lib/security/pam_aix # # Gestion des comptes # OTHER account required /usr/lib/security/pam_aix # # Gestion des sessions # OTHER session required /usr/lib/security/pam_aix # # Gestion des mots de passe # OTHER password required /usr/lib/security/pam_aix Le module pam_aix prend en charge les fonctions SPI pam_sm_authenticate, pam_sm_chauthok et pam_sm_acct_mgmt. Les SPI pam_sm_setcred, pam_sm_open_session et pam_sm_close_session sont aussi prises en charge dans le module pam_aix, mais elles retournent simplement des invocations PAM_SUCCESS. Module d’extension d’authentification (PAM) 7-9 Voici un exemple de correspondance des appels SPI PAM au sous–système de sécurité AIX : PAM SPI ========= pam_sm_authenticate pam_sm_chauthtok ––> ––> AIX ===== authenticate passwdexpired, chpass Note: passwdexpired is only checked if the PAM_CHANGE_EXPIRED_AUTHTOK flag is passed in. pam_sm_acct_mgmt pam_sm_setcred PAM_SUCCESS returned pam_sm_open_session PAM_SUCCESS returned pam_sm_close_session PAM_SUCCESS returned ––> ––> loginrestrictions, passwdexpired No comparable mapping exists, ––> No comparable mapping exists, ––> No comparable mapping exists, Les données destinées à être transmises au sous–système de sécurité AIX peuvent être définies à l’aide de la fonction pam_set_item avant d’utiliser le module, ou le module pam_aix demandera les données si elles n’existent pas encore. 7-10 Guide de sécurité Chapitre 8. Outils OpenSSH Les outils OpenSSH prennent en charge les protocoles SSH1 et SSH2. Ils offrent des fonctions de shell là où le trafic réseau est chiffré et authentifié. OpenSSH s’appuie sur l’architecture client–serveur. OpenSSH exécute le démon sshd sur l’hôte AIX et attend la connexion des clients. Il assure l’authentification et le chiffrement des canaux avec les paires de clés publique et privée pour garantir des connexions réseau sécurisées et une authentification en fonction de l’hôte. Pour en savoir plus sur OpenSSH, reportez–vous au site suivant : http://www.openssh.org Il contient les informations de la page man sur les commandes OpenSSH. Pour plus d’informations sur OpenSSH sous AIX, reportez–vous au site suivant, qui propose les nouveaux modules de format installp pour AIX 5L : http://oss.software.ibm.com/developerworks/projects/opensshi Cette section explique comment installer et configurer OpenSSH sous AIX. OpenSSH est fourni dans le Bonus Pack AIX 5.2. Cette version de OpenSSH est compilée et regroupée en modules installp à l’aide du niveau openssh–3.4p1 de code source. Le programme OpenSSH contenu sur le CD–ROM du Bonus Pack est soumis aux conditions de licence de l’IPLA (International Program License Agreement) pour les programmes non garantis. OpenSSH est également disponible pour AIX 4.3.3 dans plusieurs modules RPM, fournis sur le CD AIX toolbox for Linux applications. Avant d’installer les modules OpenSSH installp, vous devez installer le logiciel OpenSSL (Open Secure Sockets Layer). OpenSSL contient la bibliothèque chiffrée. OpenSSL est disponible en modules RPM avec le CD AIX toolbox for Linux applications. Les modules d’installation comprennent les pages man et les ensembles de fichiers de messages traduits. 1. Installez le module RPM OpenSSL à l’aide de la commande geninstall : # geninstall –d/dev/cd0 R:openssl–0.9.6e Le résultat affiché sera semblable au suivant : SUCCESSES ––––––––– openssl–0.9.6e–1 2. Installez ensuite les modules OpenSSH installp à l’aide de la commande geninstall : # geninstall –I”Y” –d/dev/cd0 I:openssh.base Utilisez l’indicateur Y pour accepter l’accord de licence OpenSSH. Le résultat affiché sera semblable au suivant : Outils OpenSSH 8-1 Récapitulatif de l’installation –––––––––––––––––––– Name Level Part Event Result ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– –––– openssh.base.client 3.4.0.5200 USR APPLY SUCCESS openssh.base.server 3.4.0.5200 USR APPLY SUCCESS openssh.base.client 3.4.0.5200 ROOT APPLY SUCCESS openssh.base.server 3.4.0.5200 ROOT APPLY SUCCESS Vous pouvez aussi utiliser le raccourci SMIT install_software pour installer OpenSSL et OpenSSH. La procédure précédente installe les fichiers binaires OpenSSH suivants : ssh Similaire aux programmes client rlogin et rsh ssh–agent Un agent pouvant stocker des clés privées ssh–add Outil pour ajouter des clés à ssh–agent sftp Equivalent de FTP utilisé par les protocoles SSH1 et SSH2 scp Programme de copie de fichiers similaire à rcp ssh–keygen Outil de génération de clés ssh–keyscan Utilitaire de recueil de clés publiques depuis plusieurs hôtes ssh–keysign Utilitaire d’authentification en fonction de l’hôte sshd Démon de connection sftp–server Sous–système serveur SFTP (lancé automatiquement par le démon sshd) Les informations générales suivantes concernent OpenSSH : • Le répertoire /etc/ssh/ssh_config contient le démon sshd et les fichiers de configuration pour la commande ssh. • Le répertoire /usr/openssh contient le fichier readme et le fichier texte de licence open–source OpenSSH original. • Le démon sshd est contrôlé par AIX SRC. Les commandes suivantes permettent de lancer, arrêter et afficher le statut du démon : startsrc –s sshd stopsrc –s sshd lssrc –s sshd OU startsrc –g ssh OU stopsrc –g ssh OU lssrc –s ssh (groupe) Les commandes suivantes permettent également de lancer et d’arrêter le démon : /etc/rc .d/rc2.d/Ksshd start OU /etc/rc.d/rc2.d/Ssshd start /etc/rc.d/rc2.d/Ksshd stop OU /etc/rc.d/rc2.d/Ssshd stop 8-2 Guide de sécurité • Lorsque l’ensemble de fichiers serveur OpenSSH est installé, une entrée est ajoutée au répertoire /etc/rc.d/rc2.d. Une entrée dans inittab permet d’exécuter des processus de niveau 2 (l2:2:wait:/etc/rc.d/rc 2), afin que le démon sshd démarre automatiquement à l’amorçage. Pour empêcher le démon de démarrer à l’amorçage, retirez les fichiers /etc/rc.d/rc2.d/Ksshd et /etc/rc.d/rc2.d/Ssshd. • OpenSSH consigne des informations dans SYSLOG. • Le document Managing AIX Server Farms, disponible sur le site suivant, apporte des informations sur la configuration de OpenSSH sous AIX : http://www.redbooks.ibm.com Utilisation d’OpenSSH avec PAM A partir d’AIX 5.2, OpenSSH est compilé pour accepter PAM (Pluggable Authentication Module). PAM est une méthode d’authentification des utilisateurs. Il apporte un mécanisme adaptable d’authentification des utilisateurs AIX en permettant l’ajout d’un module écrit par l’utilisateur au processus de connexion. Un utilisateur peut rédiger son propre module ou utiliser le module pam_aix d’AIX. Le module pam_aix fournit des interfaces avec les services de sécurité AIX. Voici un exemple de fichier de configuration /etc/pam.conf utilisant le module PAM pam_aix, mais d’autres modules installés sur le système peuvent être utilisés. Créez le fichier /etc/pam.conf contenant les informations suivantes : sshd OTHER sshd OTHER sshd OTHER sshd OTHER auth auth account account password password session session required required required required required required required required /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix /usr/lib/security/pam_aix Outils OpenSSH 8-3 8-4 Guide de sécurité Chapitre 9. Sécurité TCP/IP Si vous avez installé TCP/IP (Transmission Control Protocol/Internet Protocol) et NFS (Network File System), vous pouvez configurer votre système afin de communiquer via un réseau. Ce guide ne décrit pas les concepts TCP/IP de base, mais des sujets liés à la sécurité dans TCP/IP. Pour des informations sur l’installation et la configuration initiale de TCP/IP, consultez le chapitre Transmission Control Protocol/Internet Protocol (TCP/IP) du manuel AIX 5L Version 5.2 System Management Guide: Communications and Networks. Pour diverses raisons, l’administrateur système doit assurer un certain niveau de protection. Le niveau de sécurité peut relever de la politique d’entreprise. Un système peut aussi devoir accéder à des systèmes publics, et de ce fait doit être étroitement contrôlé. Ces niveaux de sécurité peuvent s’appliquer au réseau, au système d’exploitation, aux applications, et même aux programmes développés par l’administrateur. Ce chapitre décrit le dispositif de sécurité fourni avec TCP/IP, en mode standard et sécurisé, et développe certaines notions de sécurité propres à l’environnement réseau. Une fois TCP/IP et NFS installés, utilisez Web-based System Manager ou le raccourci SMIT tcpip pour configurer le système. Ce chapitre traite des points suivants : • Système de protection du système d’exploitation, page 9-2 • Sécurité des commandes TCP/IP, page 9-3 • Processus sécurisés, page 9-7 • La Base informatique réseau sécurisée (NTCB), page 9-8 • Sécurité des données et protection des informations, page 9-10 • Contrôle d’accès aux ports TCP en fonction de l’utilisateur, avec le contrôle d’accès discrétionnaire aux ports Internet, page 9-10 Sécurité TCP/IP 9-1 Système de protection du système d’exploitation La plupart des fonctions de protection proposées pour TCP/IP sont calquées sur celles du système d’exploitation. En voici les grandes lignes. Contrôle d’accès au réseau Le dispositif de sécurité appliqué au réseau prolonge celui du système d’exploitation : • L’authentification de l’utilisateur s’opère au niveau de l’hôte distant via un nom d’utilisateur un mot de passe et (tout comme lors de la connexion au système local). Les commandes TCP/IP sécurisées, telles que ftp, rexec et telnet, subissent les mêmes contraintes et contrôles que celles du systèmes d’exploitation. • L’authentification de connexion vise à contrôler l’identité et l’adresse IP de l’hôte distant. Ainsi, tout risque d’usurpation d’identité par un hôte distant est évité. • La protection des échanges permet d’importer/exporter des données à un niveau de sécurité spécifique, entre des cartes réseau dotées de droits et de protections identiques. Par exemple des données confidentielles ne peuvent circuler qu’entre cartes du niveau de protection correspondant. Audit de réseau L’audit de réseau est réalisé par TCP/IP via le sous–système d’audit qui s’applique aux routines de réseau noyau et aux applications. Il consigne toutes les actions relatives à la sécurité et à l’utilisateur qui les effectue. L’audit s’applique aux événement suivants : Evénements au niveau du noyau • Changement de configuration • Changement d’ID hôte • Changement de route • Connexion • Création d’une prise (socket) • Exportation d’objets • Importation d’objets Evénements au niveau application • Accès au réseau • Changement de configuration • Changement d’ID hôte • Changement de route statique • Configuration du courrier • Connexion • Exportation de données • Importation de données • Ecriture de courrier dans un fichier Toute création et suppression d’objets subit un audit de la part du système d’exploitation. Les enregistrements d’audit au niveau application interrompent et relancent l’audit pour éviter leur enregistrement par l’audit du noyau. 9-2 Guide de sécurité Chemin d’accès sécurisé, shell sécurisé et clé SAK Le système d’exploitation prévoit un chemin d’accès sécurisé pour empêcher tout programme non autorisé de lire des données à partir d’un terminal utilisateur. Ce chemin est utilisé pour les communications confidentielles avec le système (par exemple, pour la modification de mots de passe ou l’entrée en communication). Un shell sécurisé (tsh) est également proposé, qui n’exécute que les programmes sécurisés, testés et contrôlés comme tels. TCP/IP prend tous ces dispositifs en charge, de même que la clé SAK ( Secure Attention Key) dont le rôle est de mettre en place l’environnement pour une communication sécurisée entre vous et le système. La clé SAK locale est accessible dès l’utilisation de TCP/IP. Par ailleurs, la commande telnet donne accès à une clé SAK distante. La clé SAK locale offre les mêmes fonctions sous telnet et sous d’autres programmes du système : elle met fin au processus telnet et à tout autre processus associé au terminal qui exécutait telnet. Toutefois, sous telnet, vous pouvez envoyer une demande de chemin d’accès sécurisé au système distant via la commande telnet send sak (en mode commande telnet). Vous pouvez aussi définir une seule clé pour l’émission d’une requête SAK à l’aide de la commande telnet set sak. Pour plus d’informations sur la base TCB, consultez le chapitre La base TCB, page 1-1. Sécurité des commandes TCP/IP Certaines commandes TCP/IP ont pour but de fournir un environnement sécurisé durant le fonctionnement. Il s’agit de ftp, rexec et telnet. ftp concerne les transferts de données. rexec s’applique à l’exécution des commandes sur un hôte étranger. telnet a trait à la connexion sur un hôte étranger. Les commandes ftp, rexec et telnet n’assurent la sécurité que pendant leur exécution. C’est–à–dire qu’elles ne définissent pas d’environnement sécurisé pour l’exécution d’autres commandes. Pour protéger votre système lors de l’exécution d’autres opérations, faites appel à la commande securetcpip. Cette commande permet de protéger le système en désactivant les applications et démons non sécurisés et en vous permettant d’activer la sécurisation de votre protocole IP. Les commandes ftp, rexec, securetcpip et telnet fournissent les garanties suivantes : Sécurité TCP/IP 9-3 ftp La commande ftp fournit un environnement sécurisé pour le transfert de fichiers. Lorsqu’un utilisateur lance la commande ftp vers un hôte étranger, il est invité à fournir un ID de connexion. Un ID de connexion par défaut s’affiche : l’ID de connexion en cours de l’utilisateur sur l’hôte local. L’utilisateur doit fournir un mot de passe pour l’hôte distant. Le processus de connexion automatique recherche, dans le fichier $HOME/.netrc de l’utilisateur local, l’ID et le mot de passe à soumettre à l’hôte étranger. Pour plus de sécurité, les droits d’accès au fichier $HOME/.netrc doivent être fixés à 600 (lecture et écriture réservées au propriétaire). A défaut, la connexion automatique échoue. Remarque : Le fichier .netrc impose de stocker les mots de passe dans un fichier non chiffré. C’est pourquoi la connexion automatique par ftp n’est pas disponible si le système est configuré avec securetcpip. Pour la réactiver, supprimez la commande ftp de la strophe tcpip du fichier /etc/security/config. Le transfert de fichiers via ftp suppose deux connexions TCP/IP : une pour le protocole et une pour le transfert des données. La connexion au protocole, principale, est une connexion fiable car établie sur des ports de communication fiables. La connexion secondaire, dédiée au transfert des données proprement dit, doit être établie sur les mêmes hôtes local et distant que la première (condition vérifiée sur chacun des hôtes). Faute de quoi, la commande ftp émet un message d’erreur indiquant que la connexion n’a pas été authentifiée, puis s’arrête. Ce contrôle vise à éviter qu’un hôte tiers n’intercepte des données qui ne lui sont pas destinées. 9-4 Guide de sécurité rexec La commande rexec s’applique à l’exécution des commandes sur un hôte étranger. L’utilisateur est invité à décliner son ID de connexion et son mot de passe. Avec le dispositif de connexion automatique, la commande rexec recherche, dans le fichier $HOME/.netrc de l’utilisateur local, l’ID et le mot de passe à soumettre à l’hôte étranger. Pour plus de sécurité, les droits d’accès au fichier $HOME/.netrc doivent être fixés à 600 (lecture et écriture réservées au propriétaire). A défaut, la connexion automatique échoue. Remarque : Le fichier .netrc impose de stocker les mots de passe dans un fichier non chiffré. C’est pourquoi la connexion automatique par rexec n’est pas disponible si le système est exploité en mode sécurisé. Pour la réactiver, supprimez l’entrée rexec de la strophe tcpip du fichier /etc/security/config. securetcpip La commande securetcpip active le système de protection de TCP/IP. L’accès aux commandes non sécurisées est supprimé du système à l’émission de cette commande. Les commandes suivantes sont supprimées par l’exécution de la commande securetcpip : • • rlogin et rlogind • • rcp, rsh et rshd • • tftp et tftpd • • trpt La commande securetcpip fait passer la sécurité du d’un niveau standard au niveau de maximal. Dès lors, vous n’aurez à relancer securetcpip que si vous réinstallez TCP/IP. telnet ou tn La commande telnet (TELNET) fournit un environnement sécurisé à la connexion sur un hôte étranger. L’utilisateur est invité à décliner son ID de connexion et son mot de passe. Le terminal de l’utilisateur est considéré comme directement connecté à l’hôte : l’accès au terminal est contrôlé par des bits d’autorisation. Les autres utilisateurs (groupe et autres) n’ont pas accès en lecture au terminal, mais ils peuvent y écrire des messages si le propriétaire les y autorise. La commande telnet donne également accès au shell sécurisé du système distant via la clé SAK (Secure Attention Key). Cette clé, qui peut être définie par la commande telnet, doit être différente de celle utilisée pour appeler le chemin d’accès sécurisé local. Sécurité TCP/IP 9-5 Exécution de commandes à distance (/etc/hosts.equiv) Les utilisateurs répertoriés dans le fichier /etc/hosts.equiv peuvent exécuter certaines commandes sur votre système sans fournir de mot de passe. Le tableau suivant fournit des informations sur le classement, l’ajout et la suppression d’hôtes distants à l’aide de Web–based System Manager, SMIT, ou de la ligne de commandes. Tâches d’accès à distance aux commandes Tâche Raccourci SMIT Commande ou fichier Web-based System Manager Management Environment Afficher la liste des hôtes qui peuvent accéder aux commandes smit lshostsequiv affichez /etc/hosts.equiv Software ––> Network ––> TCPIP (IPv4 and IPv6) ––> TCPIP Protocol Configuration ––> TCP/IP ––> Configure TCP/IP ––> Advanced Methods ––> Hosts File ––> Contents of /etc/hosts file. Ajouter un hôte distant autorisé à exécuter les commandes smit mkhostsequiv modifiez /etc/hosts.equiv Software ––> Network ––> TCPIP (IPv4 and IPv6) ––> TCPIP Protocol Configuration ––> TCP/IP ––> Configure TCP/IP ––> Advanced Methods ––> Hosts File. Dans Add/Change host entry, complétez les zones suivantes : IP Address, Host name, Alias(es) et Comment. Cliquez sur Add/Change Entry, puis cliquez sur OK. Supprimer un hôte distant smit rmhostsequiv Remarque 1 modifiez /etc/hosts.equiv Remarque 1 9-6 Guide de sécurité Software ––> Network ––> TCPIP (IPv4 and IPv6) ––> TCPIP Protocol Configuration ––> TCP/IP ––> Configure TCP/IP ––> Advanced Methods ––> Hosts File. Sélectionnez un hôte dans Contents of /etc/host file. Cliquez sur Delete Entry ––> OK. Remarques : 1. Pour plus de détails sur ces procédures, reportez–vous à la section ”hosts.equiv File Format for TCP/IP” dans le document AIX 5L Version 5.2 Files Reference. Restrictions d’accès FTP (/etc/ftpusers) Les utilisateurs répertoriés dans le fichier /etc/ftpusers sont protégés contre l’accès FTP à distance. Supposons que l’utilisateur A connecté à un système distant connaît le mot de passe de l’utilisateur B sur votre système. Si l’utilisateur B apparaît dans le fichier /etc/ftpusers , l’utilisateur A ne peut transmettre de fichiers par FTP vers ou depuis le compte de l’utilisateur B, bien qu’il connaisse son mot de passe. Le tableau suivant fournit des informations sur le classement, l’ajout et la suppression d’utilisateurs restreints à l’aide de Web–based System Manager, SMIT, ou de la ligne de commandes. Opérations relatives aux utilisateurs protégés Tâche Raccourci SMIT Commande ou fichier Web-based System Manager Management Environment Afficher la liste smit lsftpusers affichez /etc/ftpusers Software ––> Users ––> All Users. Ajouter un utilisateur smit mkftpusers modifiez /etc/ftpusers Software ––> Users ––> All Users ––> Selected ––> Add this User to Group. Sélectionnez un groupe, puis cliquez sur OK. Remarque 1 Supprimer un utilisateur smit rmftpusers modifiez /etc/ftpusers Remarque 1 Software ––> Users ––> All Users ––> Selected ––> Delete. Remarques : 1. Pour plus de détails sur ces procédures, reportez–vous à la section ”ftpusers File Format for TCP/IP” dans le document AIX 5L Version 5.2 Files Reference. Processus sécurisés Un processus (ou programme) sécurisé est un script shell, un démon ou un programme conforme aux normes de sécurité établies et révisées par des organismes agrées (aux USA, le ministère de la défense), qui certifient également certains programmes sécurisés. A ces programmes sont associés différents niveaux de sécurité : A1, B1, B2, B3, C1, C2 et D (A1 étant le niveau maximal) satisfaisant chacun à des critères spécifiques. Par exemple, le niveau C2 intègre les aspects suivants : intégrité des programmes Assure le bon fonctionnement du processus. modularité Le code des processus est divisé en modules qui ne peuvent pas être directement affectés ou accédés par d’autres modules. Sécurité TCP/IP 9-7 principe du moindre privilège Les activités utilisateur se déroulent toujours au niveau de privilège le plus faible : un utilisateur habilité à lire un fichier ne peut le modifier par inadvertance. limitation de la réutilisation d’objets Un utilisateur ne peut pas, par exemple, trouver une section de mémoire marqué pour écrasement mais non encore effacée, et qui peut contenir des informations importantes. TCP/IP contient quelques démons sécurisés et de nombreux démons non sécurisés. On trouve parmi les démons sécurisés : • ftpd • rexecd • telnetd On trouve parmi les démons non sécurisés : • rshd • rlogind • tftpd Pour qu’un système soit sécurisé, il doit fonctionner avec une base informatique sécurisée, c’est à dire que pour un hôte unique, le poste doit être sécurisé. Sur un réseau, tous les serveurs de fichiers, passerelles et autres hôtes doivent être sécurisés. Base NTCB La base NTCB (Network Trusted Computing Base) associe logiciels et matériels pour protéger le réseau. Cette section définit les différents composants de la base NTCB en relation avec TCP/IP. Les dispositifs matériels sont fournis par les cartes réseau utilisées avec TCP/IP. Ces cartes contrôlent les données entrantes en ne recevant que des données destinées au local system et diffusent les données pouvant être reçues par tous les systèmes. Le module logiciel de NTCB est constitué exclusivement de programmes sécurisés. Les programmes et fichiers associés sont indiqués ci–dessous (par répertoires). Répertoire /etc 9-8 Nom Propriétaire Groupe Mode Droits gated.conf root system 0664 rw–rw–r–– gateways root system 0664 rw–rw–r–– hosts root system 0664 rw–rw–r–– hosts.equiv root system 0664 rw–rw–r–– inetd.conf root system 0644 rw–r––r–– named.conf root system 0644 rw–r––r–– named.data root system 0664 rw–rw–r–– networks root system 0664 rw–rw–r–– protocols root system 0644 rw–r––r–– rc.tcpip root system 0774 rwxrwxr–– Guide de sécurité resolv.conf root system 0644 rw–rw–r–– services root system 0644 rw–r––r–– 3270.keys root system 0664 rw–rw–r–– 3270keys.rt root system 0664 rw–rw–r–– Nom Propriétaire Groupe Mode Droits host root system 4555 r–sr–xr–x hostid bin bin 0555 r–xr–xr–x hostname bin bin 0555 r–xr–xr–x finger root system 0755 rwxr–xr–x ftp root system 4555 r–sr–xr–x netstat root bin 4555 r–sr–xr–x rexec root bin 4555 r–sr–xr–x ruptime root system 4555 r–sr–xr–x rwho root system 4555 r–sr–xr–x talk bin bin 0555 r–xr–xr–x telnet root system 4555 r–sr–xr–x Répertoire /usr/bin Répertoire /usr/sbin Nom Propriétaire Groupe Mode Droits arp root system 4555 r–sr–xr–x fingerd root system 0554 r–xr–xr–– ftpd root system 4554 r–sr–xr–– gated root system 4554 r–sr–xr–– ifconfig bin bin 0555 r–xr–xr–x inetd root system 4554 r–sr–xr–– named root system 4554 r–sr–x–– ping root system 4555 r–sr–xr–x rexecd root system 4554 r–sr–xr–– route root system 4554 r–sr–xr–– routed root system 0554 r–xr–x––– rwhod root system 4554 r–sr–xr–– securetcpip root system 0554 r–xr–xr–– setclock root system 4555 r–sr–xr–x syslogd root system 0554 r–xr–xr–– talkd root system 4554 r–sr–xr–– telnetd root system 4554 r–sr–xr–– Sécurité TCP/IP 9-9 Répertoire /usr/ucb Nom Propriétaire Groupe Mode Droits tn root system 4555 r–sr–xr–x Répertoire /var/spool/rwho Nom Propriétaire Groupe Mode Droits rwho (répertoire) root system 0755 drwxr–xr–x Sécurité des données et protection des informations Le dispositif de sécurité sous TCP/IP ne chiffre pas les données transmises par le réseau. Il est donc recommandé de prendre des mesures pour prévenir tout risque de défaillance du système de sécurité pouvant révéler des mots de passe ou des informations confidentielles. L’utilisation de la fonction de sécurité TCP/IP dans un environnement relevant du ministère de la défense (Department of Defense DOD aux États–Unis) requiert la conformité aux normes de sécurité DOD 5200.5 et NCSD–11. Contrôle d’accès aux ports TCP en fonction de l’utilisateur, avec le contrôle d’accès discrétionnaire aux ports Internet L’accès discrétionnaire aux ports Internet (DACinet) permet le contrôle de l’accès aux ports TCP pour les communications entre hôtes AIX 5.2. AIX 5.2 peut utiliser un en–tête TCP supplémentaire pour transporter les informations sur les utilisateurs et les groupes. DACinet permet à l’administrateur du système de destination de contrôler l’accès en fonction du port de destination, de l’ID utilisateur d’origine et de l’hôte. La fonction DACinet lui permet aussi de réserver les ports locaux à l’utilisateur root. Les systèmes UNIX comme AIX traitent les ports en dessous de 1024 comme des ports privilégiés qui ne peuvent être ouverts que par l’utilisateur root. AIX 5.2 permet d’y ajouter des ports au–dessus de 1024, ce qui empêche les autres utilisateurs d’exécuter des serveurs sur des ports connus. Selon les paramètres, un système non DACinet peut ou non se connecter à un système DACinet. L’accès est refusé dans l’état initial de la fonction DACinet. Une fois la fonction DACinet activée, il est impossible de la désactiver. La commande dacinet accepte des adresses spécifiés sous forme de noms d’hôtes, adresses d’hôtes en notation décimale à point, ou adresses réseau suivies de la longueur du préfixe réseau. L’exemple suivant spécifie un hôte unique par son nom d’hôte complet host.domain.org: host.domain.org L’exemple suivant spécifie un hôte unique par son adresse IP 10.0.0.1 : 10.0.0.1 L’exemple suivant spécifie le réseau entier dont la valeur des 24 premiers bits (la longueur du préfixe de réseau) est 10.0.0.0 : 10.0.0.0/24 Ce réseau comprend toutes les adresses IP entre 10.0.0.1 et 10.0.0.254. 9-10 Guide de sécurité Contrôle des accès aux services TCP DACinet utilise le fichier de démarrage /etc/rc.dacinet et les fichiers de configuration /etc/security/priv, /etc/security/services et /etc/security/acl. Les ports répertoriés dans le fichier /etc/security/services ne subissent pas de contrôles ACL Le fichier a le même format que /etc/services. La façon la plus facile de l’initialiser est de le copier depuis /etc vers /etc/security puis de supprimer tous les ports pour lesquels des ACL sont à appliquer. Les ACL sont stockés à deux endroits. Les ACL actives sont stockées dans le noyau et peuvent être lues à l’aide de la commande dacinet aclls. Les ACL qui seront réactivées au prochain démarrage par /etc/rc.tcpip sont stockées dans /etc/security/acl. Le format suivant est utilisé : service host/prefix–length [user|group] Où le service peut être spécifié numériquement ou comme dans la liste dans /etc/services, l’hôte peut recevoir un nom d’hôte ou une adresse réseau avec un masque de sous–réseau et l’utilisateur ou le groupe est indiqué à l’aide du préfixe u: ou g: En l’absence d’indication d’utilisateur ou de groupe, l’ACL ne prend en compte que l’hôte émetteur. Le préfixe – désactive explicitement l’accès au service. Les ACL sont évaluées dans l’ordre de leur mention. Vous pouvez donc spécifier l’accès pour un groupe d’utilisateurs, mais le refuser explicitement pour un utilisateur du groupe en plaçant la règle de cet utilisateur devant la règle du groupe. Le fichier /etc/services comprend deux entrées avec des numéros de ports non pris en charge par AIX 5.2. L’administrateur système doit retirer ces deux lignes du fichier avant d’exécuter la commande mkCCadmin. Supprimez les lignes suivantes du fichier /etc/services . sco_printer sco_s5_port 70000/tcp 70001/tcp sco_spooler # For System V print IPC lpNet_s5_port # For future use Exemples d’utilisation de DACinet Lorsque vous utilisez DACinet pour réserver l’accès au port entrant TCP/25 aux utilisateurs root, seuls les utilisateurs root des autres hôtes AIX 5.2 peuvent y accéder, ce qui limite les possibilités des autres utilisateurs d’usurper des courriers électroniques par une commande telnet sur le port TCP/25 de la victime. L’exemple suivant indique comment configurer le protocole X (X11) pour un accès root uniquement. Vérifiez que l’entrée X11 est retirée de /etc/security/services, de sorte que les ACL s’appliqueront à ce service. Par exemple, pour un sous–réseau 10.1.1.0/24 pour tous les systèmes connectés, les entrées ACL pour limiter l’accès aux utilisateurs root uniquement pour X (TCP/6000) dans /etc/security/acl seraient : 6000 10.1.1.0/24 u:root Pour limiter le service Telnet aux utilisateurs du groupe friends, quel que soit leur système d’origine, utilisez l’ACL suivante après avoir supprimé l’entrée telnet de /etc/security/services: telnet 0.0.0.0/0 g:friends Pour empêcher l’utilisateur fred d’accéder au serveur web, mais autoriser tous les autres à y accéder : –80 80 0.0.0.0/0 u:fred 0.0.0.0/0 Sécurité TCP/IP 9-11 Ports privilégiés pour l’exécution des services locaux Normalement, tout utilisateur peut ouvrir chaque port au–dessus du 1024. Par exemple, un utilisateur pourrait placer un serveur sur le port 8080, souvent utilisé pour l’exécution d’une proxy Web, ou sur le 1080, qui héberge généralement un serveur SOCKS. Certains ports peuvent être désignés comme privilégiés afin d’éviter que les tous les utilisateurs puissent y exécuter des serveurs. La commande dacinet setpriv permet d’ajouter des ports privilégiés au système exécuté. Les ports désignés en tant que privilégiés au démarrage du système doivent être répertoriés dans le fichier /etc/security/priv Les ports peuvent être placés dans ce fichier sous leur nom symbolique défini dans /etc/services, ou en indiquant leur numéro. Les entrées suivantes empêchent les utilisateurs autres que root d’exécuter des serveurs SOCKS ou Lotus Notes sur leurs ports habituels : 1080 lotusnote Remarque : Cette fonction n’empêche pas l’utilisateur d’exécuter les programmes. Elle l’empêche seulement d’exécuter les services sur les ports connus où ils sont généralement placés. Pour plus d’informations sur la commande dacinet, consultez le manuel AIX 5L Version 5.2 Commands Reference. 9-12 Guide de sécurité Deuxième partie. Sécurité réseau et Internet La deuxième partie du présent manuel fournit des informations relatives aux mesures de sécurité réseau et Internet. Ces chapitres décrivent les procédures d’installation et de configuration de la sécurité IP, la procédure d’identification des services réseau obligatoires et facultatifs, l’audit et le contrôle de la sécurité réseau, etc. Sécurité réseau et Internet PART 2 - 1 PART 2 - 2 Guide de sécurité Chapitre 10. Services réseau Ce chapitre apporte des informations sur l’identification et la sécurisation des services réseau avec des ports de communication ouverts. Correspondance des Services réseau avec les ports de communication ouverts Les applications client–serveur ouvrent des ports de communication sur le serveur, afin que les applications puissent écouter les requêtes entrantes des clients. Les ports ouverts étant vulnérables aux attaques potentielles, identifiez les applications qui ont des ports ouverts et fermez les ports qui n’ont pas besoin de rester ouverts. Vous pourrez ainsi comprendre quels systèmes sont rendus disponibles à toute personne ayant accès à Internet. La procédure suivante identifie les ports ouverts : 1. Identifiez les services à l’aide de la commande netstat : # netstat –af inet Voici un exemple d’utilisation de cette commande. La dernière colonne indique l’état de chaque service. Les services qui attendent les connexions entrantes sont en état ECOUTE. Connexion Internet active (y compris serveurs) Proto File de réception File Adresse d’émission locale Adresse étrangère (état) tcp4 0 0 *.echo *.* LISTEN tcp4 0 0 *.discard *.* LISTEN tcp4 0 0 *.daytime *.* LISTEN tcp 0 0 *.chargen *.* LISTEN tcp 0 0 *.ftp *.* LISTEN tcp4 0 0 *.telnet *.* LISTEN tcp4 0 0 *.smtp *.* LISTEN tcp4 0 0 *.time *.* LISTEN tcp4 0 0 *.www *.* LISTEN tcp4 0 0 *.sunrpc *.* LISTEN tcp 0 0 *.smux *.* LISTEN Services réseau 10-1 tcp 0 0 *.exec *.* LISTEN tcp 0 0 *.login *.* LISTEN tcp4 0 0 *.shell *.* LISTEN tcp4 0 0 *.klogin *.* LISTEN udp4 0 0 *.kshell *.* LISTEN udp4 0 0 *.echo *.* udp4 0 0 *.discard *.* udp4 0 0 *.daytime *.* udp4 0 0 *.chargen *.* udp4 0 0 *.time *.* udp4 0 0 *.bootpc *.* udp4 0 0 *.sunrpc *.* udp4 0 0 255.255.255 *.* .255.ntp udp4 0 0 1.23.123.23 *.* 4.ntp udp4 0 0 localhost.d *.* omain.ntp udp4 0 0 name.domain *.* ..ntp .................................... 2. Ouvrez le fichier /etc/services et contrôlez les services IANA (Internet Assigned Numbers Authority) pour faire correspondre le service aux numéros de ports du système d’exploitation. Voici une partie du fichier /etc/services : 10-2 tcpmux 1/tcp # TCP Port Service Multiplexer tcpmux 1/tcp # TCP Port Service Multiplexer Guide de sécurité Compressnet 2/tcp # Management Utility Compressnet 2/udp # Management Utility Compressnet 3/tcp # Compression Process Compressnet 3/udp Compression Process Echo 7/tcp Echo 7/udp discard 9/tcp sink null discard 9/udp sink null rfe 5002/tcp # Radio Free Ethernet rfe 5002/udp # Radio Free Ethernet rmonitor_secure 5145/tcp rmonitor_secure 5145/udp pad12sim 5236/tcp pad12sim 5236/udp sub–process 6111/tcp # HP SoftBench Sub–Process Cntl. sub–process 6111/udp # HP SoftBench Sub–Process Cntl. xdsxdm 6558/ucp xdsxdm 6558/tcp afs3–fileserver 7000/tcp # File Server Itself afs3–fileserver 7000/udp # File Server Itself .............. Services réseau 10-3 af3–callback 7001/tcp # Callbacks to Cache Managers af3–callback 7001/udp # Callbacks to Cache Managers 3. Fermez les ports non nécessaires en supprimant les services en cours. Identification des sockets TCP et UDP Identifiez les sockets TCP à l’état LISTEN et les sockets UDP inactifs (idle) en attente de données. Utilisez la commande lsof, une variante de la commande netstat –af. A partir d’AIX 5.1, la commande lsof est sur le CD AIX Toolbox for Linux Applications. Par exemple, pour afficher les sockets TCP à l’état LISTEN et les sockets UDP IDLE, lancez la commande lsof : # lsof –i | egrep ”COMMAND|LISTEN|UDP” Le résultat de cette commande se présente comme suit : Comma PID nde USER FD TYPE DEVICE SIZE/ OFF NODE NAME dtlogi n 2122 root 5u IPv4 0x7005 3c00 0t0 UDP *:xdmc p dtlogi n 2122 root 6u IPv4 0x7005 4adc 0t0 TCP *:3276 8(LIST EN) syslog d 2730 root 4u IPv4 0x7005 3600 0t0 UDP *:sysl og X 2880 root 6u IPv4 0x7005 4adc 0t0 TCP *:3276 8(LIST EN) X 2880 root 8u IPv4 0x7005 46dc 0t0 TCP *:6000 (LISTE N) dtlogi n 3882 root 6u IPv4 0x7005 4adc 0t0 TCP *:3276 8(LIST EN) glbd 4154 root 4u IPv4 0x7003 f300 0t0 UDP *:3280 3 glbd 4154 root 9u IPv4 0x7003 f700 0t0 UDP *:3280 5 dtgreet 4656 root 6u IPv4 0t0 TCP 0x7005 4adc .......... 10-4 Guide de sécurité *:3276 8(LIST EN) Une fois l’ID de processus identifié, vous pouvez obtenir plus d’informations sur le programme à l’aide de la commande suivante : ” # ps –fp PID# ” Le résultat contient le chemin vers le nom de la commande, que vous pouvez utiliser pour accéder à la page man du programme. Services réseau 10-5 10-6 Guide de sécurité Chapitre 11. Sécurité IP (Internet Protocol) Le protocole de sécurité IP permet de sécuriser les communications sur le réseau Internet et les réseaux d’entreprise, en protégeant le flux de données au niveau de la couche IP. Il permet de protéger l’échange de données pour toutes les applications, sans avoir à les modifier. Il sécurise ainsi la transmission de tout type de données, par exemple de messagerie électronique ou d’applications. Ce chapitre traite des points suivants : • Sécurité IP – Généralités, page 11-1 • Installation de la sécurité IP, page 11-6 • Planification de la sécurité IP, page 11-7 • Configuration d’un tunnel d’échange de clefs par Internet (IKE), page 11-17 • Utilisation des certificats numériques et du Key Manager, page 11-24 • Configuration de tunnels manuels, page 11-36 • Configuration des filtres, page 11-39 • Fonctions de journalisation, page 11-45 • Identification des incidents liés à la sécurité IP, page 11-50 • Informations de référence sur la fonction de sécurité IP, page 11-62 Sécurité IP – Généralités Cette section traite des points suivants : • Sécurité IP et système d’exploitation, page 11-1 • Fonctions de sécurité IP, page 11-2 • Liens de sécurité, page 11-3 • Gestion des clefs et tunnels, page 11-4 • Fonctions de filtrage natif, page 11-5 • Prise en charge des certificats numériques, page 11-6 • Avantages d’un VPN (Virtual Private Network), page 11-6 Sécurité IP et système d’exploitation Le système d’exploitation utilise la sécurité IP (IPsec), un standard ouvert développé par l’IETF (Internet Engineering Task Force). IPsec assure la protection par le chiffrement de toutes les données au niveau de la couche de communications IP. Aucune modification des applications n’est nécessaire. IPsec est l’ossature standard de sécurité réseau choisie par l’IETF pour IP versions 4 et 6. IPsec protège votre trafic de données grâce aux techniques suivantes de chiffrement : Authentification Processus consistant à vérifier l’identité d’un hôte ou d’un point d’extrémité Contrôle d’intégrité Processus consistant à vérifier qu’aucune modification des données n’est survenue au cours de leur transfert sur le réseau Sécurité IP (Internet Protocol) 11-1 Chiffrement Processus garantissant la confidentialité par le masquage des données et des adresses IP privées en transit sur le réseau Les algorithmes d’authentification fournissent la preuve de l’identité de l’expéditeur et de l’intégrité des données, en utilisant une fonction de chiffrement par hachage qui traite un paquet de données (y compris l’en–tête IP fixe) à l’aide d’une clef privée, afin d’en produire un condensé unique. Du côté du destinataire, les données sont traitées à l’aide de la même fonction et de la même clef. Si les données ont subi une altération ou si la clef de l’émetteur est incorrecte, le datagramme est supprimé. Le chiffrement fait appel à un algorithme et une clef pour modifier et rendre apparemment aléatoires les données, qui se transforment ainsi en texte chiffré. Ces données en cours de transfert sont incompréhensibles. Lorsqu’elles arrivent à destination, les données sont rétablies à l’aide du même algorithme et de la même clef (algorithmes de chiffrement symétriques). Le chiffrement doit être utilisé en conjonction avec l’authentification, de manière à vérifier l’intégrité des données chiffrées. Ces services de base sont implémentés dans IPsec au moyen de l’encapsulation IP ESP (Encapsulating Security Payload) et de l’en–tête d’authentification AH (Authentication Header). ESP assure la confidentialité par le chiffrement du paquet IP original, la création d’un en–tête ESP, et l’insertion des données chiffrées (le texte chiffré) dans le paquet ESP. Lorsque l’authentification et le contrôle d’intégrité des données sont requis, sans confidentialité, l’en–tête d’authentification (AH) peut être utilisé seul. Avec AH, les zones fixes de l’en–tête IP et les données sont traitées par un algorithme de hachage afin de générer un condensé codé. Le destinataire utilise sa clef pour calculer et comparer le condensé, afin de vérifier que le paquet n’a pas été modifié et que l’identité de l’émetteur ne fait aucun doute. Fonctions de sécurité IP La sécurité IP de ce système d’exploitation propose les fonctions suivantes : • Accélération matérielle avec la carte PCI Ethernet 10/100 Mbits/s type II. • En–tête d’authentification (AH) de la RFC 2402, encapsulation (ESP) de la RFC 2406. • Liste de révocation des certificats (CRL) avec extraction via des serveurs HTTP ou LDAP. • Actualisation automatique des clefs à l’aide de tunnels utilisant le protocole IKE (Internet Key Exchange) de l’IETF. • Certificats numériques X.509 et clefs pré–partagées du protocole IKE, lors de la négociation des clefs. • Configuration des tunnels manuels pour garantir la compatibilité avec des systèmes qui ne prennent pas en charge les méthodes automatiques d’actualisation de clefs IKE, et pour l’utilisation de tunnels IP v6. • Utilisation des modes d’encapsulation Tunnel et Transport pour les tunnels hôte ou passerelle. • Algorithmes d’authentification HMAC (Hashed Message Authentication Code), MD5 (Message Digest 5) et HMAC SHA (Secure Hash Algorithm). • Algorithmes de chiffrement DES 56 bits (Data Encryption Standard) CBC (Cipher Block Chaining) avec IV 64 bits (initial vector), Triple DES, DES CBC 4 avec IV 32 bits. • Prise en charge de la double pile IP (IP v4 et v6). • Le trafic IP v4 et v6 peut être encapsulé et filtré. Les piles IP étant distinctes, la sécurité IP de chaque pile peut être configurée de manière indépendante. • Les tunnels IKE peuvent être créés à l’aide de fichiers de configuration Linux (AIX 5.1 et plus). 11-2 Guide de sécurité • Filtrage du trafic sécurisé et non sécurisé par un certain nombre de caractéristiques IP, telles que les adresses IP source et destination, l’interface, le protocole, les numéros de port, etc. • Génération et suppression automatique des règles de filtre avec la plupart des types de tunnels. • Utilisation de noms d’hôte pour l’adresse de destination lors de la définition des tunnels et des règles de filtre. Les noms d’hôte sont convertis automatiquement en adresses IP (si un DNS est disponible). • Journalisation des événements de sécurité IP dans syslog. • Utilisation des opérations de suivi système et de statistiques pour l’identification des incidents. • Les opérations par défaut définies par l’utilisateur lui permettent d’indiquer si le trafic doit faire l’objet d’une autorisation d’accès lorsqu’il ne correspond pas aux tunnels définis. Fonctions IKE (Internet Key Exchange) Les fonctions suivantes sont disponibles avec Internet Key Exchange (à partir d’AIX 4.3.2) : • Authentification avec clefs pré–partagées et signatures numériques X.509. • Utilisation du mode principal (identification du mode de protection) et du mode agressif. • Prise en charge des groupes Diffie Hellman 1, 2 et 5. • Chiffrement ESP pour DES, Triple DES, chiffrement Null ; authentification ESP avec HMAC MD5 et HMAC SHA1. • AH pour HMAC MD5 et HMAC SHA1. • IP versions 4 et 6. Liens de sécurité La communication sécurisée est s’appuie sur le concept de lien de sécurité. Les liens de sécurité associent un ensemble de paramètres de sécurité à un type de trafic. Avec des données protégées par IPsec, chaque direction et chaque type d’en–tête, AH ou ESP, a un lien de sécurité distinct. Le lien de sécurité comprend les informations suivantes : adresses IP des correspondants, identificateur unique SPI (Security Parameters Index), algorithmes sélectionnés et clefs d’authentification ou de chiffrement, et durée de vie des clefs. La figure suivante montre les liens de sécurité entre les hôtes A et B. Figure 6. Etablissement d’un tunnel sécurisé entre les hôtes A et B. Cette illustration présente un tunnel virtuel entre les hôtes A et B. Le lien de sécurité A est symbolisé par une flèche reliant l’hôte A à l’hôte B. Le lien de sécurité B est symbolisé par une flèche reliant l’hôte B à l’hôte A. Un lien de sécurité regroupe l’adresse de destination, le SPI, la clef, l’algorithme et le format de chiffrement, l’algorithme d’authentification et la durée de vie de la clef. Sécurité IP (Internet Protocol) 11-3 La gestion des clefs a pour objectif de négocier et générer des liens de sécurité pour la protection du trafic IP. Gestion des clefs et tunnels Pour définir une communication sécurisée entre deux hôtes, les liens de sécurité doivent être négociés et gérés lors de l’utilisation du tunnel. Les types de tunnels suivants sont pris en charge, et utilisent chacun une technique différente de gestion des clefs : • tunnels IKE (clefs dynamiques, norme IETF) • Tunnels manuels (statiques, clefs persistantes, norme IETF) Prise en charge du tunnel IKE Les tunnels IKE s’appuient sur la norme ISAKMP/Oakley (Internet Security Association and Key Management Protocol) développée par l’IETF. Dans ce protocole, les paramètres de sécurité sont négociés et actualisés, et les clefs sont échangées en toute sécurité. Les types d’authentification suivants sont pris en charge : clefs pré–partagées et signatures de certificats numériques X.509v3. La négociation s’effectue en deux phases. La première authentifie les correspondants et indique les algorithmes à utiliser pour sécuriser la communication de la deuxième étape. Au cours de la deuxième phase, les paramètres de sécurité IP à utiliser pour le transfert de données sont négociés. Les liens de sécurité et les clefs sont créés et échangés. Le tableau suivant montre les algorithmes d’authentification qui peuvent être utilisés avec les protocoles de sécurité AH et ESP pour les tunnels IKE. 11-4 Algorithme AH IP – v 4 & 6 ESP IP – v 4 & 6 HMAC MD5 X X HMAC SHA1 X X DES CBC 8 X Triple DES CBC X ESP Null X Guide de sécurité Prise en charge des tunnels manuels Les tunnels manuels fournissent la compatibilité amont, ainsi qu’avec des postes ne prenant pas en charge les protocoles de gestion de clefs IKE. L’inconvénient de ces tunnels manuels est que les valeurs de clefs sont statiques. Les clefs d’authentification et de chiffrement sont identiques pour toute la durée de vie du tunnel et doivent être mises à jour manuellement. Le tableau suivant montre les algorithmes d’authentification pouvant être utilisés avec les protocoles de sécurité AH et ESP pour les tunnels manuels. Algorithme AH IP – v 4 AH IP – v 6 ESP IP – v 4 ESP IP – v 6 HMAC MD5 X X X X HMAC SHA1 X X X X Triple DES CBC X X DES CBC 8 X X DES CBC 4 X X Grâce à l’efficacité de la sécurité de ses tunnels, IKE est la méthode de gestion des clefs la plus répandue. Fonctions de filtrage natif Le Filtrage est une fonction de base qui permet d’accepter ou de refuser les paquets entrants ou sortants en fonction de certains critères. L’utilisateur ou l’administrateur peut alors configurer l’hôte pour contrôler le trafic entre cet hôte et les autres. Le filtrage s’effectue à partir des propriétés des paquets, telles que les adresses source et de destination, la version IP (4 ou 6), les masques de sous–réseau, le protocole, le port, les propriétés de routage, la fragmentation, l’interface et la définition des tunnels. Les règles, ou règles de filtre, permettent d’associer certains trafics à un tunnel particulier. Dans une configuration de base pour tunnels manuels, lorsqu’un utilisateur définit un tunnel hôte à hôte, des règles de filtre sont générées automatiquement afin de canaliser tout le trafic de cet hôte vers le tunnel sécurisé. Si vous souhaitez avoir d’autres types de trafic plus spécifiques (sous–réseau à sous–réseau par exemple), vous pouvez modifier ou remplacer les règles de filtre pour autoriser un contrôle précis du trafic utilisant un tunnel particulier. Pour les tunnels IKE, les règles de filtre sont également générées automatiquement et insérées dans le tableau de filtre dès que le tunnel est activé. De même, lorsqu’un tunnel est modifié ou supprimé, les règles de filtre de ce tunnel sont automatiquement supprimées, ce qui simplifie considérablement la configuration de la sécurité IP et réduit le risque d’erreur humaine. Les définitions de tunnel peuvent être diffusées et partagées avec d’autres machines et pare–feu à l’aide d’utilitaires d’importation et d’exportation, ce qui contribue à simplifier l’administration d’un grand nombre de systèmes. Les règles de filtre associent des types particuliers de trafic à un tunnel, mais les données filtrées n’ont pas forcément besoin de passer par un tunnel. Ces règles permettent au système d’exploitation d’assurer des fonctions élémentaires de pare–feu pour les utilisateurs souhaitant limiter le flux de certains types de trafic avec leur machine. Ceci est particulièrement utile pour la gestion de machines au sein d’un réseau interne ou ne bénéficiant pas de la protection d’un pare–feu. Dans ce cas, les règles de filtre édifient une deuxième protection autour d’un groupe de machines. Dès que les règles de filtre sont générées, elles sont enregistrées dans un tableau puis chargées dans le noyau. Lorsqu’un échange de paquets se prépare sur le réseau, les règles de filtre sont successivement étudiées, de haut en bas, afin de déterminer si le prochain paquet doit être accepté, refusé ou envoyé via un tunnel. Les critères de la règle Sécurité IP (Internet Protocol) 11-5 et les caractéristiques des paquets sont confrontés jusqu’à ce qu’une concordance soit trouvée ou que la règle par défaut soit atteinte. La fonction de sécurité IP met également en œuvre un système de filtrage des paquets non sécurisés en fonction de critères définis par l’utilisateur avec une granularité élevée. Cela peut être utile pour le contrôle du trafic IP entre réseaux et postes n’exigeant pas le recours à la sécurité IP. Prise en charge des certificats numériques IPsec accepte les certificats numériques X.509 version 3. IBM Key Manager gère les demandes de certificat et la base de données de clefs, ainsi que d’autres fonctions administratives. Le fonctionnement des certificats numériques est décrit à la section Configuration des certificats numériques, page 11-24. IBM Key Manager et ses fonctions sont décrits à la section Utilisation d’IBM Key Manager, page 11-24 Virtual Private Networks (VPN) et sécurité IP Un réseau privé virtuel prolonge le réseau interne d’une entreprise sur un réseau public tel qu’Internet. Les VPN permettent d’échanger des informations via Internet, dans un tunnel privé, avec des utilisateurs distants, des succursales et des partenaires ou fournisseurs. L’accès à Internet par des prestataires de services Internet (ISP), via des lignes directes ou des numéros de téléphone locaux, permet d’économiser les coûteuses lignes spécialisées, les appels longue distance et les numéros gratuits. IPsec peut être utilisée pour une solution VPN, car c’est la structure de sécurité choisie par l’IETF pour les environnements IPv4 et 6, et aucune modification des applications n’est nécessaire. Une ressource recommandée pour la planification de la mise en œuvre d’un VPN dans AIX se trouve au chapitre 9 du manuel A Comprehensive Guide to Virtual Private Networks, Volume III: Cross–Platform Key and Policy Management, ISBN SG24–5309–00. Ce manuel est également disponible sur Internet à l’adresse suivante : http://www.redbooks.ibm.com/redbooks/SG245309.html. Installation de la sécurité IP La fonction de sécurité IP sous AIX s’installe et se charge séparément. Les fichiers à installer sont les suivants : • bos.net.ipsec.rte (environnement d’exécution pour l’environnement et les commandes du noyau de sécurité IP) • bos.msg.LANG.net.ipsec (où LANG correspond à la langue de votre choix, par exemple en_US) • bos.net.ipsec.keymgt • bos.net.ipsec.websm • bos.crypto–priv (fichier pour le chiffrement DES et Triple DES) Le fichier bos.crypto–priv se trouve dans Expansion Pack. Pour le support de signature numérique IKE, installez l’ensemble de fichiers gskit.rte (AIX Version 4.1) ou gskkm.rte (AIX 5.1) à partir de Expansion Pack. Une fois installée, la sécurité IP peut être chargée séparément pour IPv4 et IPv6, soit en suivant la procédure recommandée à la section Chargement de la fonction de sécurité IP, page 11-7, soit en utilisant la commande mkdev. 11-6 Guide de sécurité Chargement de la fonction de sécurité IP Attention : Le chargement de la sécurité IP active la fonction de filtrage. Avant le chargement, il est important de vérifier que les règles de filtre sont correctement créées. Sinon, toutes les communications extérieures peuvent être bloquées. Utilisez SMIT ou Web-based System Manager pour charger automatiquement les modules de sécurité IP au moment du démarrage de IP. De plus, SMIT et Web-based System Manager assurent que les extensions du noyau et les démons IKE sont chargés dans le bon ordre. Si le chargement s’est correctement déroulé, la commande lsdev indique que les unités de sécurité IP sont Available (disponibles). lsdev –C –c ipsec ipsec_v4 Available IP Version 4 Security Extension ipsec_v6 Available IP Version 6 Security Extension Une fois l’extension du noyau de sécurité IP chargée, vous pouvez configurer les tunnels et les filtres. Planification de la sécurité IP Avant de configurer IPsec, vous devez configurer les tunnels et les filtres. Si un seul tunnel est défini pour l’ensemble des échanges de données, les règles de filtre peuvent être générées automatiquement. Pour définir un système de filtres plus élaboré, les règles peuvent être configurées séparément. Vous pouvez configurer la sécurité IP à l’aide du plug–in réseau Web-based System Manager, du plug–in VPN ou du SMIT (System Management Interface Tool). Pour SMIT, vous bénéficiez des raccourcis suivants : smit ips4_basic Configuration de base pour la version 4 de IP smit ips6_basic Configuration de base pour la version 6 de IP Avant de configurer la sécurité IP sur votre site, vous devez définir la méthode à utiliser ; par exemple, l’utilisation de tunnels ou de filtres (ou les deux), le type de tunnel qui correspond le mieux à vos besoins, etc. Vous devez étudier les informations des sections suivantes avant de prendre de telles décisions : • Accélération matérielle, page 11-8 • Tunnels / Filtres, page 11-9 • Tunnels et liens de sécurité, page 11-11 • Choix d’un type de tunnel, page 11-15 • Utilisation d’IKE avec DHCP ou Dynamically Assigned Addresses (affectation dynamique des adresses), page 11-15 Sécurité IP (Internet Protocol) 11-7 Accélération matérielle La carte PCI Ethernet 10/100 Mbits/s type II (Code 4962) offre la sécurité IP. Elle est conçue assurer ces fonctions à la place du système d’exploitation AIX. Lorsque cette carte est présente dans le système AIX, la pile de sécurité IP en utilise les fonctions suivantes : • Chiffrement et déchiffrement à l’aide des algorithmes DES et Triple DES • Authentification à l’aide des algorithmes MD5 ou SHA–1 • Stockage des informations des liens de sécurité. Les fonctions de la carte sont utilisées à la place du logiciel. La carte PCI Ethernet 10/100 Mbits/s type II est disponible pour les tunnels manuels et IKE. L’accélération matérielle de la sécurité IP est disponible à partir du niveau 5.1.0.25 des ensembles de fichiers bos.net.ipsec.rte et devices.pci.1410ff01.rte. Le nombre de liens de sécurité entrants pouvant être traités par la carte réseau est limité. Pour le trafic sortant, tous les paquets qui utilisent une configuration prise en charge sont traités par la carte. Certaines configurations de tunnel ne peuvent pas être traitées. La carte PCI Ethernet 10/100 Mbits/s de type II prend en charge les éléments suivants : • Chiffrement DES, 3 DES ou NULL avec ESP • Authentification HMAC–MD5 ou HMAC–SHA–1 avec ESP ou AH, mais pas les deux. (si ESP et AH sont utilisés tous les deux, vous devez effectuer ESP en premier. Toujours vrai pour les tunnels IKE, mais l’utilisateur peut sélectionner l’ordre pour les tunnels manuels.) • Mode de transport et de tunnel • Déchargement de paquets IPv4 Remarque : La carte PCI Ethernet 10/100 Mbits/s type II ne peut pas traiter les paquets avec des options IP. Pour activer la sécurité IP avec la carte PCI Ethernet 10/100 Mbits/s type II, il faudra peut–être déconnecter l’interface réseau, puis activer la fonction de déchargement IPsec. Pour déconnecter l’interface réseau à l’aide de l’interface SMIT, procédez comme suit : 1. Connectez–vous en tant qu’utilisateur root. 2. Tapez smitty inet en ligne de commande puis appuyez sur Entrée. 3. Sélectionnez l’option Suppression d’un interface réseau puis appuyez sur Entrée. 4. Sélectionnez l’interface correspondant à la carte PCI Ethernet 10/100 Mbits/s type II puis appuyez sur Entrée. Pour activer la fonction de déchargement IPsec à l’aide de l’interface SMIT, procédez comme suit : 1. Connectez–vous en tant qu’utilisateur root. 2. Tapez smitty eadap en ligne de commande puis appuyez sur Entrée. 3. Sélectionnez Modification / Affichage des caractéristiques de l’option carte Ethernet puis appuyez sur Entrée. 4. Sélectionnez la carte PCI Ethernet 10/100 Mbits/s type II puis appuyez sur Entrée. 5. Définissez la zone Déchargement IPsec sur oui puis appuyez sur Entrée. Pour activer l’attribut de déchargement IPsec à partir de la ligne de commande, tapez : # ifconfig en 11-8 Guide de sécurité X detach Pour activer l’attribut de déchargement IPsec à partir de la ligne de commande, tapez ce qui suit : X # chdev –l ent –a ipsec_offload=yes Pour vérifier que l’attribut de déchargement IPsec a bien été activé, tapez ce qui suit sur la ligne de commande : X # lsattr –El ent detach Pour désactiver l’attribut de déchargement IPsec à partir de la ligne de commande, tapez ce qui suit : # chdev –l ent X –a ipsec_offload=no Avec la commande enstat, vous pourrez vous assurer que la configuration de votre tunnel utilise l’attribut de déchargement IPsec. La commande enstat montre toutes les statistiques des paquets IPsec reçus et transmis lorsque l’attribut déchargement IPsec est activé. Par exemple, pour une interface Ethernet ent1, tapez ce qui suit : # entstat –d ent1 Le résultat de cette commande se présente comme suit : . . . Carte PCI Ethernet 10/100 Mbps type II (1410ff01) – Statistiques spécifiques : –––––––––––––––––––––––––––––––––––––––––––– . . . Transmit IPsec packets: 3 Transmit IPsec packets dropped: 0 Receive IPsec packets: 2 Receive IPsec packets dropped: 0 Tunnels / Filtres La sécurité IP comporte deux parties distinctes, les tunnels et les filtres. Les tunnels ont besoin des filtres, mais les filtres peuvent se passer de tunnels. • Le filtrage est une fonction qui permet d’accepter ou de refuser les paquets entrants et sortants en fonction d’un certain nombre de critères, appelés règles. Ainsi, un administrateur peut configurer le système hôte afin de gérer l’échange de données entre cet hôte et d’autres systèmes hôtes. Le filtrage s’effectue à partir des propriétés des paquets, telles que les adresses source et de destination, la version IP (4 ou 6), les masques de sous–réseau, le protocole, le port, les propriétés de routage, la fragmentation, l’interface et la définition des tunnels. Ce filtrage s’effectue au niveau de la couche IP ; aucune modification ne s’impose donc au niveau des applications. • Les tunnels définissent un lien de sécurité entre deux systèmes hôtes. Ces liens de sécurité impliquent des paramètres de sécurité spécifiques qui sont partagés par les systèmes aux extrémités du tunnel. Le schéma suivant illustre la manière dont un paquet arrive de la carte réseau sur la pile IP. A partir de là, le module de filtrage est appelé pour déterminer si le paquet est autorisé ou refusé. Si un ID de tunnel est spécifié, le paquet subit un contrôle par rapport aux définitions de tunnel. Si la décapsulation du tunnel se déroule correctement, la paquet est transmis au protocole de la couche supérieure. Cette fonction s’effectue dans l’ordre inverse pour les paquets sortants. Le tunnel s’appuie sur une règle de filtre qui associe le paquet à un tunnel donné, mais la fonction de filtrage peut se produire sans transmission du paquet au tunnel. Sécurité IP (Internet Protocol) 11-9 Figure 7. Routage de paquet réseau Cette illustration présente le chemin emprunté par un paquet réseau. En provenance du réseau, le paquet entre dans la carte réseau. Il est ensuite acheminé vers la pile IP d’où il est envoyé pour aller dans le module filtre. Depuis le module filtre, le paquet est envoyé aux définitions de tunnel ou bien retourné vers la pile IP, qui le transmettra aux protocoles de la couche supérieure. 11-10 Guide de sécurité Tunnels et liens de sécurité Les tunnels servent à authentifier et/ou à chiffrer les données. Les tunnels sont définis en spécifiant un lien de sécurité entre deux systèmes hôtes. Le lien de sécurité définit les paramètres des algorithmes de chiffrement et d’authentification, et les caractéristiques du tunnel. Le schéma suivant présente un tunnel virtuel entre les hôtes A et B. Figure 8. Etablissement d’un tunnel sécurisé entre les hôtes A et B. Cette illustration présente un tunnel virtuel entre les hôtes A et B. Le lien de sécurité A est symbolisé par une flèche reliant l’hôte A à l’hôte B. Le lien de sécurité B est symbolisé par une flèche reliant l’hôte B à l’hôte A. Un lien de sécurité regroupe l’adresse de destination, le SPI, la clef, l’algorithme et le format de chiffrement, l’algorithme d’authentification et la durée de vie de la clef La valeur SPI (Security Parameter Index) et l’adresse de destination identifient un lien de sécurité unique. Ces paramètres sont nécessaires pour définir un tunnel de manière unique. Vous pouvez spécifier d’autres paramètres, comme l’algorithme de chiffrement, l’algorithme d’authentification, les clefs et la durée de vie, ou utiliser les valeurs par défaut. Remarques sur le tunnel Les tunnels IKE se distinguent des tunnels manuels dans la mesure où la politique de sécurité fait l’objet d’un processus distinct par rapport à la définition des points d’extrémité du tunnel. Dans IKE, le processus de négociation se divise en deux étapes. Chaque étape est appelée phase, et chaque phase peut avoir sa propre politique de sécurité. Lors du démarrage des négociations IKE, un tunnel sécurisé doit être défini. Cette étape est appelée phase de gestion des clefs ou phase 1. Lors de cette phase, chaque correspondant utilise des clefs pré–partagées ou des certificats numériques pour authentifier l’autre et transmettre les informations d’ID. Cette phase définit un lien de sécurité pendant lequel les deux correspondants déterminent les protections à appliquer pour communiquer en toute sécurité pendant la seconde phase. Cette phase crée un tunnel IKE ou de phase 1. La seconde étape est appelée phase de gestion de données ou phase 2. A l’aide du tunnel IKE, elle crée les liens de sécurité pour AH et ESP, lesquels protègent les échanges. La deuxième phase détermine également les données qui circuleront dans le tunnel de la sécurité IP. Par exemple, elle peut définir les éléments suivants : • Un masque de sous–réseau • Une plage d’adresse • Un numéro de port et un protocole Sécurité IP (Internet Protocol) 11-11 Figure 9. Processus de configuration du tunnel IKE Cette illustration présente les deux phases du processus de configuration d’un tunnel IKE. Dans certains cas, les extrémités du tunnel (IKE) de gestion des clefs seront identiques aux extrémités du tunnel (sécurité IP) de gestion des données. Les points d’extrémité du tunnel IKE sont les ID des postes exécutant les négociations. Les points d’extrémité du tunnel de la sécurité IP décrivent le type de trafic qui circule dans ce tunnel. Pour les tunnels hôte à hôte simples, dans lesquels tous les échanges entre deux tunnels sont protégés avec le même tunnel, les extrémités du tunnel des phases 1 et 2 sont identiques. Lorsque la négociation se déroule entre deux passerelles, ce sont elles les points d’extrémité du tunnel IKE, et les points d’extrémité du tunnel de la sécurité IP correspondent aux machines ou aux sous–réseaux (derrière les passerelles) ou bien à la plage d’adresses (derrière les passerelles) des utilisateurs du tunnel. 11-12 Guide de sécurité Paramètres et politique de la gestion des clefs La phase 1 (gestion des clefs) définit les paramètres suivants de la configuration d’un tunnel IKE : Tunnel (phase 1) de gestion des clefs Nom de ce tunnel IKE. Pour chaque tunnel, vous devez indiquer les extrémités de négociation. Ce sont les deux postes qui comptent envoyer et valider des messages IKE. Le nom du tunnel peut indiquer les extrémités telles que VPN Boston ou VPN Acme. Type d’identité de l’hôte Type d’ID qui sera utilisé lors d’un échange IKE. Le type et la valeur de l’ID doivent correspondre à la valeur de la clef pré–partagée afin de garantir une recherche correcte de clefs. Si un ID distinct est utilisé pour rechercher la valeur de clef pré–partagée, l’ID hôte est celui de la clef et son type est KEY_ID. Ce dernier est utile dans le cas d’un hôte ayant plusieurs valeurs de clefs pré–partagées. Identité de l’hôte Valeur de l’ID de l’hôte représenté en tant qu’adresse IP, un FQDN (fully qualified domain name), ou un utilisateur sur le FQDN (utilisateur@FQDN). Par exemple, jdoe@studentmail.ut.edu. Adresse IP Adresse IP de l’hôte distant. Cette valeur est nécessaire si le type d’ID de l’hôte est KEY_ID ou s’il ne correspond pas à un type pouvant être résolu en une adresse IP. Par exemple, si le nom d’utilisateur ne peut être résolu par le serveur de noms local, vous devez saisir l’adresse IP de la partie distante. Vous pouvez également créer une politique personnalisée en spécifiant les paramètres à utiliser lors de la négociation IKE. Par exemple, vous pouvez utiliser des politiques de gestion des clefs pour l’authentification via les clefs pré–partagées ou le mode signature. Pour la phase 1, l’utilisateur doit indiquer certaines propriétés de sécurité de gestion des clefs avec lesquelles l’échange doit se réaliser. Sécurité IP (Internet Protocol) 11-13 Paramètres et politique de la gestion des données Les paramètres de proposition de la gestion des données sont définis lors de la phase 2 de la configuration d’un tunnel IKE. Il s’agit des mêmes paramètres utilisés pour la sécurité IP dans les tunnels manuels ; ils identifient le type de protection à utiliser pour le trafic des données dans le tunnel. Vous pouvez démarrer plusieurs tunnels de phase 2 sous le même tunnel de phase 1. Les types d’ID de points d’extrémité suivants décrivent le type de données devant utiliser le tunnel de données de sécurité IP : 11-14 Host, Subnet ou Range Ces éléments précisent si le trafic de données empruntant le tunnel est destiné à un hôte, à un sous–réseau ou à une plage d’adresses. Host/Subnet ID Contient l’identité d’hôte ou de sous–réseau des systèmes locaux ou distants acheminant des données via ce tunnel. Détermine les ID envoyés au cours de la négociation de la phase 2 et les règles de filtres qui seront établies si la négociation se déroule correctement. Subnet mask Décrit toutes les adresses IP au sein du sous–réseau (par exemple, hôte 9.53.250.96 et masque 255.255.255.0) Starting IP Address Range Fournit l’adresse IP de début de la plage d’adresses qui utilisera le tunnel (par exemple, 9.53.250.96 de 9.53.250.96 à 9.53.250.93) Ending IP Address Range Fournit l’adresse IP de fin pour la plage d’adresses qui utilisera le tunnel (par exemple, 9.53.250.93 de 9.53.250.96 à 9.53.250.93) Port Décrit les données utilisant un numéro de port spécifique (par exemple, 21 ou 23) Protocol Décrit les données acheminées via un protocole spécifique (par exemple, TCP ou UDP). Détermine le protocole envoyé au cours de la négociation de phase 2 et les règles de filtres qui seront établies si la négociation se déroule correctement. Le protocole de l’extrémité locale doit correspondre à celui de l’extrémité distante. Guide de sécurité Choix d’un type de tunnel Le choix entre des tunnels manuels ou IKE dépend de la prise en charge du tunnel par le système distant situé à l’autre extrémité et du type de gestion de clef choisi. Nous vous recommandons les tunnels IKE (si disponibles) car ils assurent la négociation sécurisée des clefs et leur mise à jour. Ils bénéficient également des types d’en–tête de l’IETF, ESP et AH, et acceptent la protection contre les répétitions. Vous pouvez configurer le mode de signature pour permettre les certificats numériques. Si le système distant à l’autre extrémité utilise l’un des algorithmes nécessitant des tunnels manuels, utilisez les tunnels manuels. Ils garantissent une compatibilité avec un grand nombre d’hôtes. Mais comme les clefs sont statiques, difficiles à modifier et à mettre jour, elles ne sont pas aussi sûres. Les tunnels manuels peuvent être utilisés entre un hôte avec ce système d’exploitation et toute autre machine dotée de la sécurité IP, et proposant un ensemble commun d’algorithmes de chiffrement et d’authentification. Dans leur grande majorité, les fournisseurs proposent Keyed MD5 avec DES ou HMAC MD5 avec DES. Cette répartition fonctionne avec pratiquement toutes les implémentations d’IPsec. Lors de la configuration des tunnels manuels, la procédure varie selon que vous configurez le premier hôte du tunnel ou le deuxième, dont les paramètres doivent correspondre à la configuration du premier hôte. Si vous configurez le premier hôte, les clefs peuvent être générées automatiquement, et les algorithmes définis par défaut. Pour configurer le deuxième hôte, vous devez importer, si possible, les informations du tunnel à partir du système distant. Autre élément important : déterminer si le système distant est situé derrière un pare–feu. Si tel est le cas, la configuration doit comporter les informations sur le pare–feu en question. Utilisation d’IKE avec DHCP ou Dynamically Assigned Addresses (affectation dynamique des adresses) IPsec s’utilise couramment pour sécuriser un système d’exploitation lorsque les systèmes distants initialisent des sessions IKE avec un serveur, sans que leur identité puisse être liée à une adresse IP en particulier. C’est le cas dans un environnement LAN, lorsque vous utilisez IPsec pour vous connecter à un serveur et que vous souhaitez chiffrer les données. Il peut s’agir aussi de clients distants qui composent le numéro d’un serveur et utilisent soit un FQDN soit une adresse électronique (utilisateur@FQDN) pour identifier l’ID distant. Il est nécessaire d’utiliser un mode agressif dans le but de déterminer une politique reposant sur des informations explicites concernant l’identité distante. Dans ce cas, l’identité est envoyée dans le premier message de la négociation et peut être utilisée pour rechercher une politique dans la base de données de politiques de sécurité. Ce procédé garantit que seules les identités distantes spécialement nommées négocieront en utilisant le protocole IKE. Pendant la phase 2, lorsque les liens de sécurité IP sont créés pour chiffrer les échanges TCP ou UDP, un tunnel de gestion de clefs générique peut être configuré. Ainsi, toutes les requêtes authentifiées lors de la phase 1 utiliseront le tunnel générique pour la phase de Gestion des données définie, au cas où l’adresse IP ne serait pas configurée de façon explicite dans la base de données. Ceci permet à toute adresse de correspondre au tunnel générique et d’être utilisée aussi longtemps que la validation rigoureuse d’une sécurité reposant sur des clefs publiques aboutit pendant la phase 1. Utilisation de XML pour définir un tunnel générique de gestion des données Vous pouvez définir un tunnel générique de gestion des données à l’aide du format XML, compris par ikedb. Les tunnels génériques de gestion des données sont utilisés avec le DHCP. Le format XML utilise le nom IPSecTunnel pour ce que le Web-based System Manager appelle un tunnel de gestion des données (Data Management Tunnel). Dans d’autres contextes, on parle aussi de tunnel de phase 2. Un tunnel générique de gestion des données n’est pas un véritable tunnel, mais un IPSecProtection, utilisé si un message entrant de gestion des données (sous un tunnel spécifique de gestion des clefs) ne correspond à aucun tunnel défini pour ce tunnel de gestion des clefs. Il est utilisé Sécurité IP (Internet Protocol) 11-15 uniquement lorsque le système AIX est le répondant. L’indication d’un tunnel générique de gestion des données IPSecProtection est facultative. Le tunnel générique de gestion des données est défini dans l’élément IKEProtection, à l’aide de deux attributs XML, appelés IKE_IPSecDefaultProtectionRef et IKE_IPSecDefaultAllowedTypes. Tout d’abord, vous devez définir un IPSecProtection que vous utiliserez par défaut si aucun IPSecTunnel (tunnel de gestion des données) ne correspond. Un IPSecProtection utilisé par défaut doit avoir un IPSec_ProtectionName qui commence par _defIPSprot_. Allez ensuite sur le IKEProtection pour lequel vous souhaitez utiliser le IPSecProtection par défaut. Indiquez un attribut IKE_IPSecDefaultProtectionRef qui contient le nom du IPSec_Protection par défaut. Vous devez également indiquer une valeur pour l’attribut IKE_IPSecDefaultAllowedTypes dans ce IKEProtection. Une ou plusieurs des valeurs suivantes peuvent être attribuées (séparez les valeurs multiples par un espace) : Local_IPV4_Address Local_IPV6_Address Local_IPV4_Subnet Local_IPV6_Subnet Local_IPV4_Address_Range Local_IPV6_Address_Range Remote_IPV4_Address Remote_IPV6_Address Remote_IPV4_Subnet Remote_IPV6_Subnet Remote_IPV4_Address_Range Remote_IPV6_Address_Range Ces valeurs correspondent aux types d’ID indiqués par l’initiateur. Dans la négociation IKE, les ID actuels sont ignorés. Le IPSecProtection indiqué est utilisé si l’attribut IKE_IPSecDefaultAllowedTypes contient une chaîne commençant par Local_, correspondant au type d’ID local de l’initiateur, et une chaîne commençant par Remote_, correspondant à son type d’ID distant. En d’autres termes, vous devez avoir au minimum une valeur Local_ et une Remote_ pour chaque attribut IKE_IPSecDefaultAllowedTypes, pour pouvoir utiliser l’IPSec_Protection correspondant. Exemple Un initiateur envoie ce qui suit au système AIX dans un message de phase 2 (gestion des données) : local ID type: local ID: remote ID type: remote ID: remote netmask: IPV4_Address 192.168.100.104 IPV4_Subnet 10.10.10.2 255.255.255.192 Le système AIX ne dispose pas de tunnel de gestion des données correspondant à ces ID. Par contre, il a un IPSecProtection avec les attributs suivants : IKE_IPSecDefaultProtectionRef=”_defIPSprot_protection4” IKE_IPSecDefaultAllowedTypes=”Local_IPV4_Address Remote_IPV4_Address Remote_IPV4_Subnet Remote_IPV4_Address_Range” Le type d’ID local du message entrant, IPV4_Address, correspond à l’une des valeurs Local_ des types autorisés, Local_IPV4_Address. L’ID distant du message, IPV4_Subnet, correspond également à la valeur Remote_IPV4_Subnet. Par conséquent, la négociation du tunnel de gestion des données continuera avec _defIPSprot_protection4 en tant que IPSecProtection. Le fichier /usr/samples/ipsec/default_p2_policy.xml est un fichier XML définissant un IPSecProtection générique qui peut être utilisé comme exemple. 11-16 Guide de sécurité Configuration d’un tunnel d’échange de clefs par Internet (IKE) Cette section fournit des informations sur la configuration des tunnels d’échange de clefs par Internet (IKE) à l’aide de l’interface Web-based System Manager, du SMIT (System Management Interface Tool) ou de la ligne de commande. Utilisation de Web-based System Manager pour la configuration de tunnels IKE La section Utilisation de l’assistant de configuration de base, page 11-17, offre un moyen simple pour définir un tunnel IKE avec des clefs pré–partagées. Pour en savoir plus sur les options avancées, reportez–vous à la section Configuration avancée des tunnels IKE, page 11-18. Utilisation de l’assistant de configuration de base Web-based System Manager permet de définir un tunnel IKE utilisant la méthode d’authentification des clefs pré–partagées ou des certificats. Il ajoute au sous–système de sécurité IP de nouveaux tunnels IKE pour la gestion des clefs et des données, vous permet d’entrer un minimum de données et de choisir quelques options, et utilise les valeurs par défaut courantes pour des paramètres tels que la durée de vie du tunnel. Lors de l’utilisation de l’assistant de configuration de base, tenez compte des conditions suivantes : • Vous pouvez utiliser l’assistant uniquement pour la configuration du tunnel initial. Pour modifier, supprimer ou activer un tunnel, utilisez le plug–in Tunnel IKE ou la barre des tâches. • Le nom du tunnel doit être unique sur le système, mais peut être utilisé sur un système distant. A titre d’exemple, sur les systèmes local et distant, le nom du tunnel peut être hôteA_à_hôteB, mais les zones Adresse IP locale et Adresse IP distante (points d’extrémité) sont interverties. • Les tunnels des phases 1 et 2 sont définis avec les mêmes algorithmes de chiffrement et d’authentification. • La clef pré–partagée que vous entrez doit être en hexadécimal (sans 0x devant) ou en texte ASCII. • Si vous choisissez les certificats numériques comme méthode d’authentification, vous devez utiliser l’utilitaire Key Manager, page 11-24, pour créer un certificat numérique. • Le seul type d’ID de l’hôte accepté est IP Address. • Les noms attribués aux conversions et aux propositions que vous créez se terminent par le nom du tunnel défini par l’utilisateur. Vous pouvez examiner les conversions et les propositions dans Web-based System Manager grâce au VPN et au plug–in Tunnel IKE. Pour configurer un nouveau tunnel via l’assistant, procédez comme suit : 1. Ouvrez Web-based System Manager à l’aide de la commande wsm. 2. Sélectionnez le plug–in réseau. 3. Sélectionnez Virtual Private Networks (VPN) – Sécurité IP. 4. A partir de la zone Console, choisissez le dossier Tâches et procédure. 5. Sélectionnez Assistant de configuration de tunnel de base. Sécurité IP (Internet Protocol) 11-17 6. Pour configurer un tunnel IKE, cliquez sur Suivant dans l’écran Introduction de l’étape 1, puis suivez les instructions. L’aide en ligne est disponible. Une fois le tunnel défini via l’assistant, sa définition apparaît dans la liste des tunnels IKE de Web-based System Manager ; le tunnel peut être activé ou modifié. Configuration avancée des tunnels IKE Vous pouvez configurer séparément les tunnels de gestion des clefs et des données à l’aide des procédures suivantes. Configuration de tunnels de gestion des clefs Les tunnels IKE sont configurés à l’aide du Web–based System Manager. La procédure suivante permet d’ajouter un tunnel de gestion des clefs : 1. Ouvrez Web-based System Manager à l’aide de la commande wsm. 2. Sélectionnez le plug–in réseau. 3. Sélectionnez Virtual Private Networks (VPN) – Sécurité IP. 4. Dans la zone Console, choisissez Tâches et procédure. 5. Sélectionnez Lancer IPsec. Cette opération charge les extensions du noyau de sécurité IP et lance les démons isakmpd, tmd et cpsd. Un tunnel est créé grâce à la définition des points d’extrémité de gestion des clefs et de gestion des données ainsi qu’à la définition des conversions et propositions de sécurité associées. – La gestion des clefs est la phase d’authentification. Elle permet de définir un tunnel sécurisé pour la négociation, nécessaire avant que les paramètres de sécurité IP et les clefs ne soient calculés. – La gestion des données identifie le type de trafic admis sur un tunnel donné. Elle peut être configurée pour un seul hôte ou un groupe d’hôtes (à l’aide de sous–réseaux ou de plages d’adresses IP) en y associant un protocole et des numéros de port. Vous pouvez utiliser le même tunnel de gestion des clefs pour protéger plusieurs négociations de gestion de données et rafraîchissements de clefs, tant que ces opérations ont lieu entre les mêmes points d’extrémité (par exemple, entre deux passerelles). 6. Pour définir les points d’extrémité du tunnel de gestion des clefs, cliquez sur Tunnels d’échange de clefs par Internet (IKE) dans l’onglet Identification. 7. Entrez les informations relatives aux identités des systèmes qui font partie des négociations. Dans la plupart des cas, vous devez utiliser les adresses IP et créer une politique compatible avec la partie distante. Dans l’onglet Conversions, utilisez des conversions correspondantes des deux côtés, ou contactez l’administrateur de la partie distante pour définir une conversion correspondante. Vous pouvez créer une conversion qui comporte plusieurs choix pour plus de souplesse lors des opérations de proposition ou de correspondance. 8. Si vous utilisez des clefs pré–partagées pour l’authentification, entrez la clef pré–partagée dans l’onglet Clef. La valeur doit être identique sur le poste distant et sur le poste local. 9. Créez une conversion à associer à ce tunnel à l’aide du bouton Ajouter de l’onglet Conversions. Pour activer la prise en charge des certificats numériques et du mode signature, choisissez une méthode d’authentification Signature RSA ou Signature RSA avec vérification des listes CRL. 11-18 Guide de sécurité Pour de plus amples informations sur les certificats, reportez–vous à la section Utilisation des certificats numériques et du Key Manager, page 11-24. Configuration des tunnels de gestion des données Pour configurer les extrémités et les conversions du tunnel de gestion des données et effectuer la configuration du tunnel IKE, ouvrez le Web–based System Manager, en suivant la procédure décrite à la section Configuration de tunnels de gestion des clefs, page 11-18. Pour créer un tunnel de gestion des données, procédez comme suit : 1. Sélectionnez un tunnel de gestion des clefs puis définissez chaque option unique. Vous pouvez conserver la valeur par défaut de la plupart des options de gestion des données. 2. Vous devez spécifier les types de points d’extrémité tels que l’adresse IP, le sous–réseau ou la plage des adresses IP dans l’onglet Points d’extrémité. Vous pouvez sélectionner un numéro de port et un protocole, ou accepter les valeurs par défaut. 3. Dans l’écran Propositions, vous pouvez créer une nouvelle proposition en cliquant sur le bouton Ajouter ou sur OK. Si vous utilisez plusieurs propositions, vous pouvez utiliser les boutons Monter ou Descendre pour modifier l’ordre des recherches. Prise en charge des groupes Depuis AIX 5.1, la sécurité IP prend en charge le regroupement des ID IKE dans une définition de tunnel, pour associer plusieurs ID à une seule politique de sécurité sans avoir à créer des définitions de tunnels séparées. Le regroupement est particulièrement utile lors de la configuration de connexions à plusieurs hôtes distants, car cela permet d’éviter de configurer ou de gérer plusieurs définitions de tunnels. De plus, si une politique de sécurité doit être modifiée, il n’est pas nécessaire de modifier plusieurs définitions de tunnels. Un groupe doit être défini avant que son nom ne soit utilisé dans une définition de tunnel. La taille du groupe est limitée à 1 Ko. Un nom de groupe peut être utilisé dans les définitions des tunnels de gestion des clefs et des données, mais en tant que ID distant uniquement. Un groupe est composé d’un nom de groupe et d’une liste d’ID IKE et de types d’ID. Les ID peuvent être tous du même type ou un mélange des suivants : • Adresses IPv4 • Adresses IPv6 • FQDN • utilisateur@FQDN • Types de DN X500. Pendant une négociation de lien de sécurité, les ID dans un groupe sont recherchés dans l’ordre, jusqu’à la première correspondance. Vous pouvez utiliser Web-based System Manager pour définir un groupe à utiliser comme point d’extrémité distant d’un tunnel de gestion des clefs. Pour obtenir des informations sur la définition de groupes à partir de la ligne de commande, reportez–vous à la section Interface de ligne de commande pour la configuration d’un tunnel IKE, page 11-20. Pour définir un groupe à l’aide du Web–based System Manager, procédez comme suit : 1. Sélectionnez un tunnel de gestion des clefs dans le conteneur Tunnel IKE. 2. Ouvrez la boîte de dialogue propriétés. 3. Sélectionnez l’onglet Identification. 4. Choisissez définition de l’ID de groupe pour le type d’identité de l’hôte distant. 5. Activez le bouton Configuration de la définition de groupe puis entrez ses membres dans la fenêtre. Sécurité IP (Internet Protocol) 11-19 Utilisation de l’interface SMIT pour la configuration d’un tunnel IKE L’interface SMIT permet de configurer des tunnels IKE et d’effectuer des fonctions de base sur la base de données IKE. SMIT se sert des fonctions XML pour effectuer des ajouts, des suppressions et des modifications aux définitions de tunnel IKE. SMIT IKE permet de configurer rapidement des tunnels IKE et fournit des exemples de syntaxes XML utilisée pour créer des définitions de tunnel IKE tunnel. Les menus SMIT IKE permettent également de sauvegarder, restaurer et initialiser la base de données IKE. Pour configurer un tunnel IKE IPv4, utilisez le raccourci smitty ike4. Pour configurer un tunnel IKE IPv6, utilisez le raccourci smitty ike6. Les fonctions de la base de données IKE se trouvent dans le menu Configuration avancée de la sécurité IP. L’utilitaire Web-based System Manager permet de visualiser ou modifier toutes les entrées de la base de données IKE ajoutées avec le SMIT. Interface de la ligne de commande pour la configuration d’un tunnel IKE La commande ikedb, disponible depuis AIX 5.1, permet de récupérer, mettre à jour, supprimer, importer et exporter des informations dans la base de données IKE à l’aide d’une interface XML. La commande ikedb permet d’écrire sur (ajouter) ou de lire (récupérer) la base de données IKE. Le format d’entrée et de sortie est un fichier en XML (Extensible Markup Language). Le format d’un fichier XML est indiqué par son DTD (Définition de type de document). La commande ikedb permet de voir le DTD utilisé pour valider le fichier XML lors d’un ajout. La seule modification possible sur un DTD est l’ajout de déclarations d’entité, à l’aide de l’indicateur –e. Toute déclaration de DOCTYPE externe dans le fichier d’entrée XML sera ignorée et toute déclaration DOCTYPE interne peut engendrer une erreur. Les règles suivies pour interpréter le fichier XML à l’aide du DTD sont conformes au standard XML. Le fichier /usr/samples/ipsec est un exemple de fichier XML typique qui définit les scénarios de tunnel les plus courants. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande ikedb dans le manuel AIX 5L Version 5.2 Commands Reference. La commande ike permet de démarrer, arrêter et gérer les tunnels IKE. Elle commande permet également d’activer, supprimer ou répertorier les tunnels de sécurité IP et IKE. Pour obtenir des détails sur la syntaxe, reportez–vous à la description de la commande ike dans le manuel AIX 5L Version 5.2 Commands Reference. Les exemples suivants montrent comment utiliser ike, ikedb et d’autres commandes, pour configurer et vérifier l’état de votre tunnel IKE : 1. Pour lancer une négociation de tunnel (activation d’un tunnel) ou pour permettre au système de réception d’agir en tant que répondeur (selon le rôle spécifié), utilisez la commande ike associée à un numéro de tunnel : # ike cmd=activate numlist=1 Vous pouvez également utiliser des adresses IP ou d’ID distant comme dans l’exemple suivant : # ike cmd=activate remid=9.3.97.256 # ike cmd=activate ipaddr=9.3.97.100, 9.3.97.256 Le traitement des commandes pouvant prendre plusieurs secondes, le résultat est renvoyé après le début de la négociation. 2. Pour afficher l’état du tunnel, utilisez la commande ike de la manière suivante : # ike cmd=list Le résultat de cette commande se présente comme suit : Phase 1 Tunnel ID Phase 2 Tunnel ID [1] [1] Le résultat montre les tunnels des phases 1 et 2 actuellement actifs. 11-20 Guide de sécurité 3. Pour obtenir une liste plus détaillée du tunnel, utilisez la commande ike de la manière suivante : # ike cmd=list verbose Le résultat de cette commande se présente comme suit : Phase 1 Tunnel ID Local ID Type: Local ID: Remote ID Type: Remote ID: Mode: Security Policy: Role: Encryption Alg: Auth Alg: Hash Alg: Key Lifetime: Key Lifesize: Key Rem Lifetime: Key Rem Lifesize: Key Refresh Overlap: Tunnel Lifetime: Tunnel Lifesize: Tun Rem Lifetime: Status: Phase 2 Tunnel ID Local ID Type: Local ID: Local Subnet Mask: Local Port: Local Protocol: Remote ID Type: Remote ID: Remote Subnet Mask: Remote Port: Remote Protocol: Mode: Security Policy: Role: Encryption Alg: AH Transform: Auth Alg: PFS: SA Lifetime: SA Lifesize: SA Rem Lifetime: SA Rem Lifesize: Key Refresh Overlap: Tunnel Lifetime: Tunnel Lifesize: Tun Rem Lifetime: Assoc P1 Tunnel: Encap Mode: Status: 1 Fully_Qualified_Domain_Name bee.austin.ibm.com Fully_Qualified_Domain_Name ipsec.austin.ibm.com Aggressive BOTH_AGGR_3DES_MD5 Initiator 3DES–CBC Preshared Key MD5 28800 Seconds 0 Kbytes 28737 Seconds 0 Kbytes 5% 2592000 Seconds 0 Kbytes 2591937 Seconds Active 1 IPv4_Address 10.10.10.1 N/A any all IPv4_Address 10.10.10.4 N/A any all Oakley_quick ESP_3DES_MD5_SHA_TUNNEL_NO_PFS Initiator ESP_3DES N/A HMAC–MD5 No 600 Seconds 0 Kbytes 562 Seconds 0 Kbytes 15% 2592000 Seconds 0 Kbytes 2591962 Seconds 0 ESP_tunnel Active Sécurité IP (Internet Protocol) 11-21 4. Pour afficher les règles de filtres dans la table de filtre dynamique du tunnel IKE qui vient d’être activé, utilisez la commande lsfilt de la manière suivante : # lsfilt –d Le résultat de cette commande se présente comme suit : 1 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no udp eq 4001 eq 4001 both both no all packets 0 all 2 *** Dynamic filter placement rule *** no 0 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 yes all any 0 any 0 both both no all packets 0 all *** Dynamic table *** 0 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no udp eq 500 eq 500 local both no all packets 0 0 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no ah any 0 any 0 both inbound no all packets 0 0 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no esp any 0 any 0 both inbound no all packets 0 1 permit 10.10.10.1 255.255.255.255 10.10.10.4 255.255.255.255 no all any 0 any 0 both outbound yes all packets 1 1 permit 10.10.10.4 255.255.255.255 10.10.10.1 255.255.255.255 no all any 0 any 0 both inbound yes all packets 1 Cet exemple présente un poste avec uniquement un tunnel IKE. La règle de l’emplacement du filtre dynamique (règle n°2 dans le résultat de cet exemple de la table statique) peut être déplacée pour contrôler l’emplacement en fonction des toutes les autres règles définies par l’utilisateur. Les règles de la table dynamique sont élaborées automatiquement au fur et à mesure que les tunnels sont négociés et les règles correspondantes sont insérées dans la table de filtrage. Ces règles peuvent être affichées mais ne sont pas modifiables. 5. Pour activer la journalisation des règles de filtres dynamiques, définissez l’option de journalisation de la règle n°2 sur yes, avec la commande chfilt suivante : # chfilt –v 4 –n 2 –l y Pour des informations détaillées sur la journalisation des échanges IKE, reportez–vous à la section Fonctions de journalisation, page 11-45. 6. Pour désactiver le tunnel, utilisez la commande ike comme suit : # ike cmd=remove numlist=1 7. Pour afficher les définitions du tunnel, utilisez la commande ikedb comme suit : # ikedb –g 8. Pour insérer des définitions dans la base de données IKE à partir d’un fichier XML généré par un poste homologue, et écraser tous les objets de même noms, utilisez la commande ikedb comme suit : # ikedb –pFs peer_tunnel_conf.xml Le peer_tunnel_conf.xml correspond au fichier XML généré par un poste homologue. 9. Pour obtenir la définition du tunnel de la phase 1 appelé tunnel_sys1_and_sys2, et de tous les tunnels dépendants de la phase 2 avec leurs propositions et protections respectives, utilisez la commande ikedb comme suit : # ikedb –gr –t IKETunnel –n tunnel_sys1_and_sys2 11-22 Guide de sécurité 10.Pour supprimer toutes les clefs pré–partagées de la base de données, utilisez la commande ikedb comme suit : # ikedb –d –t IKEPresharedKey Pour obtenir des informations générales sur la prise en charge du groupe de tunnel IKE, reportez–vous à la section Prise en charge des groupes, page 11-19. La commande ikedb permet de définir des groupes à partir de la ligne de commande. Ressemblances entre IKE et Linux sous AIX Pour configurer un tunnel IKE sous AIX à l’aide de fichiers de configuration Linux (AIX versions 5.1 et ultérieures), utilisez la commande ikedb avec l’indicateur –c (option de conversion), ce qui vous permet d’utiliser les fichiers de configuration Linux /etc/ipsec.conf et /etc/ipsec.secrets comme définitions de tunnels IKE. La commande ikedb analyse les fichiers de configuration Linux, crée un fichier XML et ajoute éventuellement les définitions du tunnel XML à la base de données IKE. Les définitions de tunnels peuvent ensuite être affichées à l’aide de la commande ikedb –g ou de Web–based System Manager. Scénarios de configuration d’un tunnel IKE Les scénarios suivants décrivent le type de situations les plus rencontrées lors de la configuration de tunnels. Ces scénarios peuvent être décrits comme des cas de succursales, de partenaires et d’accès à distance. • Dans le cas de succursales, le client souhaite connecter ensemble deux réseaux sécurisés : les services d’ingénierie de deux sites différents. Dans cet exemple, des passerelles sont connectées entre elles et tous les échanges qui circulent entre elles utilisent le même tunnel. Quelle que soit l’extrémité du tunnel, les échanges sont décapsulés et transférés en clair sur l’Intranet. Dans la première phase de la négociation IKE, le lien de sécurité est créé entre les deux passerelles. Les échanges qui circulent dans le tunnel de sécurité IP se font entre deux sous–réseaux. Les ID des sous–réseaux sont utilisés dans la négociation de phase 2. Un numéro de tunnel est créé dès qu’une politique de sécurité et des paramètres sont créés pour ce tunnel. Utilisez la commande ike pour démarrer le tunnel. • Dans le cadre d’un partenariat, les réseaux ne sont pas sécurisés et l’administrateur peut vouloir limiter l’accès à un petit nombre d’hôtes derrière la passerelle de sécurité. Dans ce cas, le tunnel entre les hôtes transporte le trafic protégé par la sécurité IP et circulant entre deux hôtes donnés. Le protocole du tunnel de phase 2 est AH ou ESP. Ce tunnel hôte à hôte est établi à l’intérieur d’un tunnel passerelle à passerelle. • Dans le cas de l’accès à distance, les tunnels sont configurés à la demande et un niveau de sécurité élevé est appliqué. Les adresses IP n’étant pas forcément significatives, il est préférable d’adopter des noms de domaines complets ou des adresses de type utilisateur@nom_de_domaine_complet. Vous avez la possibilité d’utiliser KEYID pour associer une clef à un ID d’hôte. Sécurité IP (Internet Protocol) 11-23 Utilisation des certificats numériques et du Key Manager Les certificats numériques relient une identité et une clef publique, avec laquelle vous pouvez vérifier l’identité de l’expéditeur ou du destinataire d’un transfert chiffré. A partir de AIX 4.3.3, la sécurité IP utilise les certificats numériques pour activer le chiffrement par clef publique, connu également sous le nom de chiffrement asymétrique ; cette fonction chiffre les données en utilisant une clef privée connue uniquement par l’utilisateur, et les déchiffre en utilisant une clef publique (partagée) associée, issue d’une paire de clefs publique–privée. Les paires de clefs sont de longues chaînes de données qui sont des clefs de chiffrement. Dans le chiffrement par clef publique, cette clef publique est disponible à toute personne avec laquelle l’utilisateur souhaite communiquer. L’expéditeur appose une signature numérique à toutes les communications à l’aide de la clef privée correspondante. Le destinataire utilise la clef publique pour vérifier la signature de l’expéditeur. Si le message est déchiffré avec succès à l’aide de la clef publique, le destinataire peut vérifier l’authenticité de l’identité de l’expéditeur. Le chiffrement par clef publique fait appel à des entités tierces accréditées, connues sous le nom d’autorités d’accréditation (CA), pour l’émission de certificats numériques fiables. C’est le destinataire qui indique quels sont les organisations ou organismes émetteurs accrédités. Le certificat est émis pour une période de temps définie ; après sa date d’expiration, il doit être remplacé. AIX 4.3.3 et les versions ultérieures incluent l’utilitaire IBM Key Manager, conçu pour la gestion des certificats numériques. Vous trouverez dans les sections suivantes des informations sur les certificats. Les tâches de gestion de ces certificats sont décrites à la section Utilisation des certificats numériques et du Key Manager, page 11-24. 11-24 Guide de sécurité Format des certificats numériques Le certificat numérique contient des informations spécifiques sur l’identité du propriétaire du certificat et sur l’autorité d’accréditation. Reportez–vous à la figure suivante pour l’illustration d’un certificat numérique. Figure 10. Contenus d’un certificat numérique Cette illustration présente les quatre parties d’un certificat numérique. En partant du haut, ce sont : nom spécifique (DN) du propriétaire, clef publique du propriétaire, nom spécifique de l’autorité d’accréditation (CA) et signature du CA. La liste suivante décrit plus en détail le contenu du certificat numérique : Nom spécifique (DN) du propriétaire Combinaison du nom usuel du propriétaire et du contexte (position) dans l’arborescence de répertoire. Dans l’exemple suivant, qui décrit une simple arborescence de répertoires, Prasad est le nom usuel du propriétaire et le contexte est country(pays)=US, organization(organisation)=ABC, lower organization(unité d’organisation)=SERV ; par conséquent le nom spécifique est : /C=US/O=ABC/OU=SERV/CN=prasad.austin.ibm.com Sécurité IP (Internet Protocol) 11-25 Figure 11. Exemple de Nom spécifique dérivé de l’arborescence de répertoires Cette illustration est une arborescence de répertoires avec en haut O=ABC et se divisant en deux parties au second niveau. Le second niveau contient OU=AIX et OU=Acctg sur des branches séparées ; chacune d’elles a une branche qui mène à une entité simple du dernier niveau. Le dernier niveau contient respectivement CN=Prasad et CN=Peltier. Clef publique du propriétaire Utilisée par les destinataires pour déchiffrer les données. Nom d’utilisateur supplémentaire Il s’agit d’un ID tel qu’une adresse IP, une adresse électronique, un nom de domaine complet, etc. Date d’émission Date à laquelle le certificat numérique a été émis. Date d’expiration Date à laquelle le certificat numérique expire. Nom spécifique (DN) de l’émetteur Nom spécifique de l’autorité d’accréditation (CA). Signature numérique de l’émetteur Signature numérique utilisée pour valider un certificat. Remarques sur la sécurité des certificats numériques La présence du certificat numérique n’est pas une preuve d’identité. Le certificat numérique permet uniquement de vérifier l’identité du propriétaire d’un certificat numérique en fournissant une clef publique nécessaire pour contrôler la signature numérique du propriétaire. L’envoi de votre clef publique à un correspondant ne comporte aucun risque car vos données ne peuvent pas être déchiffrées sans l’autre partie de la paire de clefs, à savoir la clef privée. Par conséquent, le propriétaire doit protéger la clef privée associée à la clef publique du certificat numérique. Toutes les communications du propriétaire d’un certificat numérique peuvent être déchiffrées si la clef privée est disponible. Sans la clef privée, l’utilisation illicite du certificat numérique est quasiment impossible. 11-26 Guide de sécurité Autorités d’accréditation et hiérarchies sécurisées Un certificat numérique est aussi fiable que l’autorité d’accréditation (CA) qui l’émet. Il faut donc bien comprendre les politiques d’émission des certificats qui font partie des mécanismes d’accréditation. Chaque organisation ou utilisateur doit déterminer quelles autorités d’accréditation sont fiables. L’utilitaire IBM Key Manager permet également de créer vos propres certificats auto–signés, qui peuvent être utiles pour les tests ou les environnements composés d’un nombre réduit d’utilisateurs ou de machines. Si vous utilisez un service de sécurité, vous devez connaître ses clefs publiques pour obtenir et valider tout certificat numérique. En outre, le fait de recevoir un certificat numérique ne garantit pas son authenticité. Pour en vérifier l’authenticité, vous devez détenir la clef publique de l’autorité d’accréditation qui a émis ce certificat numérique. Si vous ne possédez pas déjà une copie accréditée de la clef publique, vous devez vous procurer un certificat numérique supplémentaire pour obtenir la clef publique de l’autorité d’accréditation (CA). Listes de révocation des certificats (CRL) Un certificat numérique est supposé s’utiliser tout au long de sa période de validité. Cependant, il peut s’avérer nécessaire d’invalider un certificat avant sa date d’expiration. C’est le cas si par exemple, un employé quitte la société ou si la confidentialité d’une clef privée a été compromise. Pour invalider un certificat, vous devez informer l’autorité d’accréditation (CA) appropriée sur les circonstances. Lorsqu’une CA révoque un certificat, elle ajoute son numéro de série à la liste de révocation des certificats (CRL). Les CRL sont des structures de données signées, délivrées périodiquement et disponibles dans une base de données publique. Les CRL peuvent être récupérées à partir de serveurs HTTP ou LDAP. Chaque CRL contient l’horodatage en cours et un horodatage nextUpdate de prochaine mise à niveau. Dans la liste, chaque certificat révoqué est identifié par son numéro de série. Si vous utilisez les certificats numériques comme méthode d’authentification pour configurer un tunnel IKE, vous pouvez contrôler leur validité en sélectionnant Signature RSA avec vérification des listes CRL. Si la vérification CRL est activée, la liste est localisée et vérifiée lors de la négociation pour établir le tunnel de gestion des clefs. Remarque : Pour utiliser cette fonction de la sécurité IP, le système doit être configuré pour un serveur SOCKS (version 4 pour les serveurs HTTP), LDAP ou les deux. Si vous savez quel type de serveur SOCKS ou LDAP sera utilisé pour obtenir les listes CRL, vous pouvez effectuer la configuration nécessaire avec le Web–based System Manager. Sélectionnez Configuration CRL dans le menu Certificats numériques. Utilisation des certificats numériques dans les applications Internet Les applications Internet qui utilisent les systèmes de chiffrement à clef publique doivent utiliser les certificats numériques pour obtenir les clefs publiques. Diverses applications utilisent le chiffrement par clef publique, y compris : Virtual Private Networks (VPN) Les réseaux privés virtuels (VPN) ou tunnels sécurisés, peuvent être configurés entre des systèmes tels que les pare–feu pour réaliser des connexions chiffrées entre des réseaux sécurisés, sur des liaisons de communication non sécurisées. Tout le trafic circulant sur ces réseaux et destiné à ces systèmes sera chiffré. Les protocoles utilisés dans la configuration des tunnels répondent aux normes de la sécurité IP et IKE, ce qui permet d’obtenir une connexion chiffrée entre un client distant (par exemple, une personne travaillant en télétravail) et un hôte ou réseau sécurisé. Sécurité IP (Internet Protocol) 11-27 Secure Sockets Layer (SSL) SSL est un protocole de sécurité qui assure la confidentialité et l’intégrité des communications. Il est utilisé par les serveurs Web pour sécuriser leurs connexions avec les navigateurs Web ; par les serveurs LDAP (Lightweight Directory Access Protocol) pour sécuriser leurs connexions avec leurs clients ; et par les serveurs Host–on–Demand V.2 pour les connexions entre le client et le système hôte. Le protocole SSL utilise les certificats numériques pour l’échange des clefs, l’authentification du serveur et éventuellement, pour l’authentification du client. Secure Electronic Mail Pour chiffrer et déchiffrer les messages électroniques, les systèmes de messages sécurisés, basés sur des normes telles que PEM ou S/MIME, utilisent les certificats numériques pour les signatures numériques et l’échange de clefs. Certificats numériques et demandes de certificats Un certificat numérique signé contient les parties suivantes : nom spécifique (DN) du propriétaire, clef publique du propriétaire, nom spécifique de l’autorité d’accréditation (CA) et signature du CA. Un certificat numérique auto–signé contient le nom spécifique, la clef publique et la signature de son propriétaire. Pour demander un certificat numérique, vous devez créer une demande de certificat et l’envoyer à une autorité d’accréditation (CA). La demande de certificat contient les parties suivantes : nom spécifique, clef publique et signature du demandeur. Le CA vérifie la signature du demandeur avec la clef publique du certificat numérique pour s’assurer des conditions suivantes : • La demande de certificat n’a pas été modifiée lors du transit entre le demandeur et le CA. • Le demandeur possède la clef privée correspondant à la clef publique incluse dans la demande de certificat. Le CA est également responsable de la vérification de certains aspects concernant l’identité du demandeur. Ce type de vérification peut varier d’une certitude quasi nulle à l’assurance absolue de l’identité du propriétaire. Utilitaire IBM Key Manager L’utilitaire IBM Key Manager gère les certificats numériques, et se trouve dans le fichier gskkm.rte sur l’Expansion Pack. Cette section décrit comment utiliser IBM Key Manager pour effectuer les tâches suivantes : 1. Création d’une base de données de clefs, page 11-29 2. Ajout de certificat numérique root d’une autorité d’accréditation, page 11-30 3. Etablissement de paramètres sécurisés, page 11-31 4. Suppression de certificat numérique root d’une autorité d’accréditation, page 11-31 5. Demande de certificat numérique, page 11-32 6. Ajout (Réception) d’un nouveau certificat numérique, page 11-32 7. Suppression d’un certificat numérique, page 11-33 8. Modification de mot de passe de la base de données, page 11-34 9. Création de tunnels IKE avec certificats numériques, page 11-34 Pour définir la prise en charge des certificats et de signatures numériques, les tâches 1, 2, 3, 4, 6 et 7 sont nécessaires. Ensuite, utilisez Web-based System Manager pour créer un tunnel IKE et associer une politique au tunnel qui utilise la méthode d’authentification Signature RSA. 11-28 Guide de sécurité Vous pouvez créer et configurer une base de données de clefs à partir de la fenêtre Présentation du VPN du Web-based System Manager en sélectionnant l’option Gestion des certificats numériques, ou en utilisant la commande certmgr pour ouvrir l’utilitaire Key Manager à partir de la ligne de commande. Création d’un base de données de clefs Une base de données de clefs autorise la connexion des points d’extrémité d’un VPN, à l’aide de certificats numériques valides. Les VPN d’IPsec utilisent le format de base de données de clef *.kdb. Les types de certificats d’autorité d’accréditation suivants sont fournis avec IBM Key Manager : • Autorité d’accréditation RSA Secure Server • Autorité d’accréditation Thawte Personal Premium • Autorité d’accréditation Thawte Personal Freemail • Autorité d’accréditation Thawte Personal Basic • Autorité d’accréditation Thawte Personal Server • Autorité d’accréditation Thawte Server • Autorité d’accréditation primaire Verisign de classe 1 • Autorité d’accréditation primaire Verisign de classe 2 • Autorité d’accréditation primaire Verisign de classe 3 • Autorité d’accréditation primaire Verisign de classe 4 Les signature de ces certificats numériques permet aux clients de se connecter aux serveurs qui possèdent des certificats numériques autorisés. Après avoir créé une base de données de clefs, vous pouvez l’utiliser pour vous connecter à un serveur possédant un certificat numérique signé par l’une de ces autorités d’accréditation. Pour utiliser un certificat numérique de signature qui n’est pas sur cette liste, vous devez en faire la demande auprès de l’autorité d’accréditation et l’ajouter à votre base de données de clefs. Reportez–vous à la section Ajout de certificat numérique root d’une autorité d’accréditation, page 11-30. Pour créer une base de données de clefs à l’aide de la commande certmgr, procédez comme suit : 1. Démarrez l’utilitaire IBM Key Manager en saisissant : # certmgr 2. Sélectionnez Nouveau (New) à partir du menu déroulant Fichier de base de données de clefs (Key Database File). 3. Dans la zone Type de base de données de clefs (Key database type), choisissez la valeur par défaut, Fichier de base de données de clefs CMS (CMS key database file). 4. Entrez ce nom dans la zone Nom de fichier : ikekey.kdb 5. Entrez le chemin de la base de données dans la zone Emplacement (Location) : /etc/security Remarque : La base de données de clefs doit être nommée ikekey.kbd et se trouver dans le répertoire /etc/security. Sinon, la sécurité IP ne fonctionne pas correctement. 6. Cliquez sur OK. L’invite Mot de passe s’affiche. Sécurité IP (Internet Protocol) 11-29 7. Entrez un mot de passe dans la zone correspondante, puis une nouvelle fois dans la zone Confirmation du mot de passe. 8. Si vous voulez changer le nombre de jours avant l’expiration du mot de passe, modifiez la zone Définir le délai d’expiration ?. La valeur par défaut est 60 jours. Si souhaitez que le mot de passe n’expire jamais, laissez vide la zone Définir le délai d’expiration ?. 9. Pour sauvegarder une version chiffrée du mot de passe dans un fichier stash, sélectionnez Enregistrer le mot de passe dans un fichier stash ? (Stash the password to a file?), et entrez–y oui (yes). Remarque : Vous devez effectuer cette action pour pouvoir utiliser les certificats numériques avec IPsec. 10.Cliquez sur OK. Un écran de confirmation s’affiche pour vous permettre de vérifier que vous avez créé une base de données de clefs. 11. Cliquez à nouveau sur OK pour voir s’afficher l’écran principal Gestion des clefs. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Ajout de certificat numérique root d’une autorité d’accréditation Une fois reçu le certificat numérique root de l’autorité d’accréditation, ajoutez–le à votre base de données. La plupart des certificats numériques root sont de type *.arm, comme suit : cert.arm Pour ajouter un certificat root d’autorité d’accréditation à une base de données, procédez de la manière suivante : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. A partir de l’écran principal, sélectionnez Ouvrir (Open) dans le menu déroulant Fichier de base de données de clefs. 3. Sélectionnez le fichier auquel vous souhaitez ajouter le certificat root d’autorité d’accréditation, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, et indique qu’il est ouvert et prêt à être utilisé. 5. Sélectionnez Certificats accrédités (Signer Certificates) dans le menu déroulant Certificats accrédités/personnels (Personal/Signer Certificates). 6. Cliquez sur Ajouter (Add). 7. Sélectionnez un type de données à partir du menu déroulant correspondant, par exemple : Base64–encoded ASCII data 8. Entrez un nom de fichier de certification et un chemin d’accès pour le certificat root d’autorité d’accréditation ou cliquez sur Parcourir (Browse) pour le sélectionner. 9. Cliquez sur OK. 10.Entrez le libellé du certificat root d’autorité d’accréditation, par exemple Tester un certificat root d’autorité d’accréditation (Test CA Root Certificate), puis cliquez sur OK. Vous êtes ramené à l’écran principal Gestion des clefs. La zone Certificats accrédités affiche désormais le libellé du certificat root de l’autorité d’accréditation que vous avez ajouté. Vous pouvez alors exécuter d’autres tâches ou quitter l’utilitaire. 11-30 Guide de sécurité Etablissement de paramètres sécurisés Les certificats d’autorité d’accréditation sont définis par défaut sur sécurisé (trusted). Pour modifier cette valeur, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Ouvrir dans le menu déroulant Fichier de la base de données de clefs. 3. Sélectionnez le fichier de base de données de clefs dont vous souhaitez modifier la valeur de certificat numérique par défaut, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, indiquant que le fichier est ouvert. 5. Sélectionnez Certificats accrédités à partir du menu déroulant Certificats accrédités/personnels. 6. Sélectionnez le certificat que vous souhaitez modifier, puis cliquez sur Affichage/Modification (View/Edit) ou double–cliquez sur l’entrée. L’écran Information sur les clefs s’affiche pour le certificat sélectionné. 7. Pour qu’il devienne un certificat root sécurisé, cochez la case située à côté de Définir le certificat en tant que root sécurisée (Set the certificate as a trusted root) puis cliquez sur OK. Si le certificat n’est pas sécurisé, décochez la case puis cliquez sur OK. 8. Cliquez sur OK dans l’écran Certificats accrédités. Vous êtes ramené à l’écran principal Gestion des clefs Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Suppression de certificat numérique root d’autorité d’accréditation Si vous ne souhaitez plus prendre en compte l’une des autorités d’accréditation de la liste des certificats numériques de signature, vous devez supprimer son certificat root d’autorité d’accréditation. Remarque : Avant de supprimer un certificat root d’autorité d’accréditation, créez une copie de sauvegarde au cas où vous souhaiteriez recréer la root de l’autorité d’accréditation. Pour supprimer de la base de données un certificat root d’autorité d’accréditation, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Ouvrir du menu déroulant Fichier de la base de données des clefs 3. Sélectionnez le fichier de base de données de clefs à partir duquel vous souhaitez supprimer le certificat root d’autorité d’accréditation, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, et indique qu’il est ouvert et prêt à être modifié. 5. Sélectionnez Certificats accrédités à partir du menu déroulant Certificats accrédités/personnels. 6. Sélectionnez le certificat que vous souhaitez supprimer, puis cliquez sur Supprimer (Delete) L’écran Confirmer votre choix ? (Confirm) s’affiche. 7. Cliquez sur Oui. Vous êtes ramené à l’écran principal Gestion des clefs Le libellé du certificat root d’autorité d’accréditation n’apparaît plus dans la zone Certificats accrédités. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Sécurité IP (Internet Protocol) 11-31 Demande de certificat numérique Pour obtenir un certificat numérique, générez une demande à l’aide d’IBM Key Manager et soumettez–la à une autorité d’accréditation. Le fichier de demande est au format PKCS#10. L’autorité d’accréditation vérifie votre identité, puis vous envoie un certificat numérique. Pour demander un certificat numérique, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Ouvrir dans le menu déroulant Fichier de la base de données de clefs 3. Sélectionnez le fichier de la base de données de clefs /etc/security/ikekey.kdb à partir duquel vous souhaitez générer la demande, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, et indique qu’il est ouvert et prêt à être modifié. 5. Sélectionnez Demandes de certificat personnel (Personal Certificate Requests) dans le menu déroulant Certificats accrédités/personnels (dans AIX Version 4.1) ou sélectionnez Création d’une> nouvelle demande de certificat (Create ––> New Certificate Request, à partir de AIX 5.1). 6. Cliquez sur Nouveau. 7. A partir de l’écran qui s’affiche, saisissez un libellé de clef (Key Label) pour le certificat numérique auto–signé, par exemple : cleftest 8. Entrez un Nom (Common Name, le nom hôte par défaut) et une Organisation, puis sélectionnez un Pays (Country). Pour les zones restantes, vous pouvez accepter la valeur par défaut ou choisir d’autres valeurs. 9. Définissez un nom d’utilisateur supplémentaire (Subject Alternate). Les zones en option associées au nom d’utilisateur supplémentaire sont l’adresse électronique, l’adresse IP et le nom DNS. L’adresse IP d’un type tunnel doit être identique à celle du tunnel IKE. Pour un utilisateur@FQDN de type ID de tunnel, complétez la zone de l’adresse électronique. Pour un FQDN de type ID de tunnel, entrez un nom de domaine complet (par exemple, nomhôte.nomsociété.com) dans la zone de nom DNS. 10.En bas de l’écran, entrez un nom pour le fichier, par exemple : certreq.arm 11. Cliquez sur OK. Un écran de confirmation s’affiche pour vous permettre de vérifier que vous avez créé une demande pour un nouveau certificat numérique. 12.Cliquez sur OK. Vous êtes ramené à l’écran principal Gestion des clefs La zone Demandes de certificat personnel affiche le libellé de clef de la demande de nouveau certificat numérique (PKCS#10). 13.Envoyez le fichier de demande à l’autorité d’accréditation. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Ajout (Réception) d’un nouveau certificat numérique Lorsque vous recevez le nouveau certificat numérique de l’autorité d’accréditation, vous devez l’ajouter à la base de données de clefs qui a servi à générer votre demande. Pour ajouter (recevoir) un nouveau certificat numérique, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Ouvrir dans le menu déroulant Fichier de la base de données de clefs 11-32 Guide de sécurité 3. Sélectionnez le fichier de la base de données de clefs à partir duquel vous avez généré la demande de certificat, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, et indique qu’il est ouvert et prêt à être modifié. 5. Sélectionnez Demandes de certificat personnel à partir du menu déroulant Certificats accrédités/personnels. 6. Cliquez sur Réception (Receive) pour ajouter à la base de données le nouveau certificat numérique reçu. 7. Sélectionnez le type de données du nouveau certificat numérique à partir du menu déroulant Type de données (Data type). La valeur par défaut est Base64–encoded ASCII data. 8. Entrez le nom du fichier de certification et le chemin d’accès du nouveau certificat numérique ou cliquez sur Parcourir pour le sélectionner. 9. Cliquez sur OK. 10.Entrez un libellé descriptif pour le nouveau certificat numérique, par exemple : Certificat VPN Branch 11. Cliquez sur OK. Vous êtes ramené à l’écran principal Gestion des clefs La zone Certificats personnels affiche désormais le libellé du nouveau certificat numérique que vous avez ajouté. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Si une erreur se produit lors du chargement du certificat, vérifiez que le fichier de certificat commence par –––––BEGIN CERTIFICATE––––– et se termine par –––––END CERTIFICATE–––––. Par exemple : –––––BEGIN CERTIFICATE––––– ajdkfjaldfwwwwwwwwwwadafdw kajf;kdsajkflasasfkjafdaff akdjf;ldasjkf;safdfdasfdas kaj;fdljk98dafdas43adfadfa –––––END CERTIFICATE––––– Si ce texte ne figure pas, modifiez le fichier de manière à ce qu’il commence et finisse correctement. Suppression de certificat numérique Remarque : Avant de supprimer un certificat numérique, créez une copie de sauvegarde au cas où vous souhaiteriez le créer à nouveau. Pour supprimer de la base de données un certificat numérique, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Ouvrir dans le menu déroulant Fichier de la base de données de clefs 3. Sélectionnez le fichier de base de données de clefs à partir duquel vous souhaitez supprimer le certificat numérique, puis cliquez sur Ouvrir. 4. Entrez le mot de passe, puis cliquez sur OK. Une fois le mot de passe accepté, l’écran principal Gestion des clefs s’affiche. La barre de titre affiche le nom du fichier de la base de données de clefs sélectionné, et indique qu’il est ouvert et prêt à être modifié. 5. Sélectionnez Demandes de certificat personnel à partir du menu déroulant Certificats accrédités/personnels. Sécurité IP (Internet Protocol) 11-33 6. Sélectionnez le certificat que vous souhaitez supprimer, puis cliquez sur Supprimer (Delete). L’écran Confirmer votre choix ? s’affiche. 7. Cliquez sur Oui. Vous êtes ramené à l’écran principal Gestion des clefs Le libellé du certificat numérique que vous venez de supprimer n’apparaît plus dans la zone Certificats personnels. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Modification de mot de passe de la base de données Pour modifier une base de données de clefs, procédez comme suit : 1. Si IBM Key Manager n’est pas démarré, faites–le en saisissant : # certmgr 2. Dans l’écran principal, sélectionnez Modification du mot de passe (Change Password) dans le menu déroulant Fichier de la base de données de clefs 3. Entrez un nouveau mot de passe dans la zone correspondante, puis une nouvelle fois dans la zone Confirmation du mot de passe. 4. Si vous voulez changer le nombre de jours avant l’expiration du mot de passe, changez–le dans la zone Définir le délai d’expiration ?. La valeur par défaut est 60 jours Si souhaitez que le mot de passe n’expire jamais, laissez vide la zone Définir le délai d’expiration ? 5. Pour sauvegarder une version chiffrée du mot de passe dans un fichier stash, sélectionnez Enregistrer le mot de passe dans un fichier stash ? (Stash the password to a file?), et entrez–y oui (yes) Remarque : Vous devez effectuer cette action pour pouvoir utiliser les certificats numériques avec IPsec 6. Cliquez sur OK. Un message dans la barre d’état indique que la demande a été prise en compte. 7. Cliquez à nouveau sur OK pour voir s’afficher l’écran principal Gestion des clefs. Vous pouvez alors exécuter une autre tâche ou quitter l’utilitaire. Création de tunnels IKE avec certificats numériques Pour créer des tunnels IKE qui utilisent les certificats numériques, vous devez vous servir du Web-based System Manager et de l’utilitaire IBM Key Manager. Pour activer l’utilisation de certificats numériques lors de la définition des politiques de gestion des clefs du tunnel IKE, vous devez configurer une conversion qui utilise un mode de signature. Un Mode de signature utilise un algorithme RSA de signature pour l’authentification. IPsec fournit la boîte de dialogue “ Ajout/Modification d’une conversion ” Web-based System Manager pour sélectionner une méthode d’authentification de signature RSA, ou de signature RSA avec vérification des listes CRL. Une extrémité au moins du tunnel doit posséder une politique utilisant une conversion de mode de signature. Vous pouvez également définir d’autres conversions utilisant le mode de signature avec Web–based System Manager. Les types de tunnels de gestion des clefs IKE (zone Type d’identité de l’hôte sur l’onglet Identification) pris en charge par IPsec sont les suivants : • adresse IP • FQDN (nom de domaine complet) • utilisateur@FQDN • DN X.500 (nom spécifique) • Identificateur de la clef 11-34 Guide de sécurité Utilisez Web–based System Manager pour sélectionner les types d’identité de l’hôte dans l’onglet Identification – Propriétés du tunnel de gestion des clefs. Si vous sélectionnez les options Adresse IP, FQDN ou utilisateur@FQDN, vous devez entrez les valeurs dans Web-based System Manager et les transmettre à l’autorité d’accréditation. Ces informations sont utilisées pour le Nom d’utilisateur supplémentaire dans le certificat numérique personnel. Par exemple, si vous choisissez un type d’identité de l’hôte de DN X.500 (nom spécifique) dans la liste déroulante de l’onglet Identification de Web-based System Manager, et que vous entrez /C=US/O=ABC/OU=SERV/CN= nom.austin.ibm.com dans la zone Identité de l’hôte, vous devrez utiliser les valeurs suivantes lors d’une demande de certificat numérique avec IBM Key Manager : • Common name: nom.austin.ibm.com • Organization: ABC • Organizational unit: SERV • Country : US La valeur de la zone DN X.500 (nom spécifique) doit correspondre au nom donné lors de la configuration par votre système ou administrateur LDAP. La valeur de l’unité d’organisation est facultative. L’autorité d’accréditation utilise alors cette information lors de la création de certificat numérique. Autre exemple : si vous choisissez le type d’identité hôte Adresse IP dans la liste déroulante et une valeur de 10.10.10.1 pour l’identité hôte, vous devrez entrer les valeurs suivantes lors de votre demande de certificat numérique : • Common name: nom.austin.ibm.com • Organization: ABC • Organizational unit: SERV • Country : US • Zone Subject alternate IP address: (adresse IP du nom supplémentaire) 10.10.10.1 Une fois ces informations entrées dans le certificat numérique, l’autorité d’accréditation les utilise pour créer un certificat numérique personnel. Lors d’une demande de certificat numérique, l’autorité d’accréditation a besoin des informations suivantes : • Vous demandez un certificat X.509. • Le format de signature MD5 avec chiffrement RSA. • Si vous indiquez ou non un nom d’utilisateur supplémentaire. Les types de noms supplémentaires sont : – adresse IP – FQDN (Fully qualified domain name) – utilisateur@FQDN Les informations suivantes relatives au nom d’utilisateur supplémentaire sont comprises dans le fichier de demande de certificat. • L’utilisation prévue pour la clef (le bit de signature numérique doit être défini). • Le fichier de demande de certificat numérique d’IBM Key Manager (au format PKCS#10). Pour les tâches nécessitant l’utilisation du Key Manager pour créer une demande de certificat, reportez–vous à la section Demande de certificat numérique, page 11-32. Sécurité IP (Internet Protocol) 11-35 Avant d’activer le tunnel IKE, vous devez ajouter le certificat numérique personnel reçu de l’autorité d’accréditation dans la base de données d’IBM Key Manager, ikekey.kdb. Pour plus de détails, reportez–vous à la section Ajout (Réception) d’un nouveau certificat numérique, page 11-32. La sécurité IP prend en charge les types suivants de certificats numériques personnels : DN – Nom spécifique Le nom spécifique de l’utilisateur doit respecter le format et l’ordre suivant : /C=US/O=ABC/OU=SERV/CN= nom.austin.ibm.com L’utilitaire Key Manager ne permet qu’une seule valeur OU. DN (Nom spécifique) et Nom d’utilisateur supplémentaire comme valeur d’adresse IP Le nom spécifique et le nom de l’utilisateur supplémentaire peuvent constituer l’adresse IP, comme dans l’exemple suivant : /C=US/O=ABC/OU=SERV/CN=nom.austin.ibm.com et 10.10.10.1 DN et Nom d’utilisateur supplémentaire comme adresse FQDN Le nom spécifique et le nom de l’utilisateur supplémentaire peuvent constituer un nom de domaine complet, comme dans l’exemple suivant : /C=US/O=ABC/OU=SERV/CN=nom.austin.ibm.com et bell.austin.ibm.com. DN et Nom d’utilisateur supplémentaire comme utilisateur@FQDN Le nom spécifique et le nom d’utilisateur supplémentaire peuvent constituer une adresse utilisateur (ID_utilisateur@nom_de_domaine_complet), comme dans l’exemple suivant : /C=US/O=ABC/OU=SERV/CN=nom.austin.ibm.com et nom@austin.ibm.com. DN et noms multiples d’utilisateurs supplémentaires Le nom spécifique peut être associé à plusieurs noms d’utilisateurs supplémentaires, comme dans l’exemple suivant : /C=US/O=ABC/OU=SERV/CN=nom.austin.ibm.com et bell.austin.ibm.com, 10.10.10.1, et utilisateur@nom.austin.ibm.com. Configuration des tunnels manuels Les procédures suivantes permettent de configurer la sécurité IP pour l’utilisation des tunnels manuels. Configuration des tunnels et des filtres Pour installer un tunnel manuel, il n’est pas nécessaire de configurer séparément les règles de filtre. Si tout le trafic échangé entre les deux hôtes passe par le tunnel, les règles de filtre requises sont générées automatiquement. La procédure de configuration d’un tunnel consiste à définir le tunnel à une extrémité, importer la définition à l’autre extrémité, et à activer le tunnel et les règles de filtre aux deux extrémités. Le tunnel est alors prêt à l’utilisation. Les informations concernant le tunnel doivent être identiques aux deux extrémités si elles ne sont pas fournies de manière explicite. A titre d’exemple, les algorithmes de chiffrement et d’authentification spécifiés pour l’adresse source seront utilisés pour l’adresse de destination si les valeurs de destination ne sont pas spécifiées. 11-36 Guide de sécurité Création d’un tunnel manuel sur le premier hôte Vous pouvez utiliser l’application Web-based System Manager pour configurer un tunnel, le raccourci SMIT ips4_basic (pour IPv4), ou ips6_basic (pour IPv6). Vous pouvez également créer le tunnel manuellement à l’aide de la procédure suivante. L’exemple suivant illustre la commande gentun utilisée pour créer un tunnel manuel : gentun –v 4 –t manual –s 5.5.5.19 –d 5.5.5.8 \ –a HMAC_MD5 –e DES_CBC_8 –N 23567 Vous pouvez utiliser la commande lstun –v 4 pour recenser les caractéristiques du tunnel manuel créé dans l’exemple ci–dessus. Le résultat de cette commande se présente comme suit : Tunnel ID IP Version Source Destination Policy Tunnel Mode Send AH Algo Send ESP Algo Receive AH Algo Receive ESP Algo Source AH SPI Source ESP SPI Dest AH SPI Dest ESP SPI Tunnel Life Time Status Target Target Mask Replay New Header Snd ENC–MAC Algo Rcv ENC–MAC Algo : 1 : IP Version 4 : 5.5.5.19 : 5.5.5.8 : auth/encr : Tunnel : HMAC_MD5 : DES_CBC_8 : HMAC_MD5 : DES_CBC_8 : 300 : 300 : 23576 : 23576 : 480 : Inactive : – : – : No : Yes : – : – Pour activer le tunnel, tapez ce qui suit : mktun –v 4 –t1 Les règles de filtre associés au tunnel sont automatiquement générées. Pour afficher les règles de filtre, utilisez la commande lsfilt –v 4. Le résultat de cette commande se présente comme suit : Sécurité IP (Internet Protocol) 11-37 Rule 4 : Rule action Source Address Source Mask Destination Address Destination Mask Source Routing Protocol Source Port Destination Port Scope Direction Logging control Fragment control Tunnel ID number Interface Auto–Generated : : : : : : : : : : : : : : : : permit 5.5.5.19 255.255.255.255 5.5.5.8 255.255.255.255 yes all any 0 any 0 both outbound no all packets 1 all yes Rule 5 : Rule action Source Address Source Mask Destination Address Destination Mask Source Routing Protocol Source Port Destination Port Scope Direction Logging control Fragment control Tunnel ID number Interface Auto–Generated : : : : : : : : : : : : : : : : permit 5.5.5.8 255.255.255.255 5.5.5.19 255.255.255.255 yes all any 0 any 0 both inbound no all packets 1 all yes Pour activer les règles de filtre, y compris les règles de filtre par défaut, utilisez la commande mktun –v 4 –t 1. Pour configurer l’autre extrémité, lorsqu’il s’agit d’un autre poste utilisant ce système d’exploitation, la définition du tunnel peut être exportée depuis l’hôte A, puis importée sur l’hôte B. La commande suivante permet d’exporter la définition du tunnel dans un fichier nommé ipsec_tun_manu.exp, et ses règles de filtre associées dans le fichier ipsec_fltr_rule.exp, du répertoire indiqué par l’indicateur –f : exptun –v 4 –t 1 –f / tmp Création d’un tunnel manuel sur le second hôte Pour créer l’extrémité du tunnel correspondante, les fichiers d’exportation sont copiés et importés sur le système distant à l’aide de la commande : imptun –v 4 –t 1 –f / tmp où 1 Est le tunnel à importer / tmp Est le répertoire où se trouvent les fichiers importés Le numéro du tunnel est généré par le système. Vous pouvez l’obtenir à partir de la sortie de la commande gentun ou à l’aide de la commande lstun, qui répertorient les tunnels et indiquent le numéro du tunnel à importer. Si le fichier d’importation comporte un seul tunnel, ou si la totalité des tunnels doit être importée, l’option –t n’est pas nécessaire. Si le système distant ne fonctionne pas sous ce système d’exploitation, le fichier d’exportation peut servir de référence pour configurer l’algorithme, les clefs et les valeurs SPI de l’autre extrémité du tunnel. 11-38 Guide de sécurité Les fichiers exportés par un pare–feu peuvent être importés pour créer des tunnels. Pour ce faire, utilisez le paramètre –n lors de l’importation du fichier : imptun –v 4 –f / tmp –n Configuration des filtres Le filtrage peut être simple, utilisant en grande partie les règles de filtre générées automatiquement, ou élaboré en définissant des fonctions de filtre spécifiques à partir des propriétés des paquets IP. La mise en correspondance des paquets entrants s’effectue en comparant l’adresse source et de la valeur SPI avec les valeurs répertoriées dans la table des filtres. Cette paire doit donc être unique. Chaque ligne de la table des filtres est une règle. Une série de règles définit les paquets qui seront acceptés au départ et à l’arrivée du système, et leur mode de routage. Les règles de filtre peuvent contrôler différents aspects de la communication, y compris les adresses et les masques source et de destination, le protocole, le numéro de port, la direction, le contrôle des fragments, le routage source, le tunnel et l’interface. Les types de règles de filtre sont les suivants : • Les règles de filtre statiques, page 11-39, sont créées dans la table des filtres et sont destinées au filtrage général du trafic ou à l’association avec des tunnels manuels. Elles peuvent être ajoutées, supprimées, modifiées et déplacées. Une zone de texte de description peut être ajoutée pour identifier une règle spécifique. • Les règles de filtre générées automatiquement, et règles de filtre spécifiques à l’utilisateur, page 11-43, (également appelées règles de filtre générées automatiquement), sont un ensemble spécifique de règles créées pour l’utilisation des tunnels IKE. Les règles de filtre statiques et dynamiques reposent sur les informations et la négociation du tunnel de gestion des données. • Les règles de filtre prédéfinies, page 11-44, sont des règles de filtre génériques qui ne peuvent pas être modifiées, déplacées ni supprimées, par exemple tout le trafic (all traffic), ah et esp. Elles s’appliquent à l’ensemble du trafic. Les Masques de sous–réseau,page 11-44, dont les ID de groupe sont associés à une règle de filtre, et l’option de configuration hôte–pare–feu–hôte, page 11-44, sont associés à ces règles de filtre. Les sections suivantes décrivent les différents types de règles de filtre et les caractéristiques qui leur sont associées. Règles de filtre statiques Chaque règle de filtre statique contient plusieurs zones séparées par des espaces. La liste qui suit fournit le nom de chaque zone (avec entre parenthèses un exemple de la règle 1) : • Rule_number ( 1 ) • Action ( permit ) • Source_addr ( 0.0.0.0 ) • Source_mask ( 0.0.0.0 ) • Dest_addr ( 0.0.0.0 ) • Dest_mask ( 0.0.0.0 ) • Source_routing ( no ) • Protocol ( udp ) • Src_prt_operator ( eq ) • Src_prt_value ( 4001 ) • Dst_prt_operator ( eq ) Sécurité IP (Internet Protocol) 11-39 • Dst_prt_value ( 4001 ) • Scope ( both ) • Direction ( both ) • Logging ( no ) • Fragment ( all packets ) • Tunnel ( 0 ) • Interface ( all ). Les règles de filtre statiques sont expliquées plus en détail à la suite de cet exemple : 1 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no udp eq 4001 eq 4001 both both no all packets 0 all 2 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no ah any 0 any 0 both both no all packets 0 all 3 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no esp any 0 any 0 both both no all packets 0 all 4 permit 10.0.0.1 255.255.255.255 10.0.0.2 255.255.255.255 no all any 0 any 0 both outbound traffic outbound no all packets 1 all 5 permit 10.0.0.2 255.255.255.255 10.0.0.1 255.255.255.255 no all any 0 any 0 both inbound no all packets 1 all 6 permit 10.0.0.1 255.255.255.255 10.0.0.3 255.255.255.255 no tcp lt 1024 eq 514 local outbound yes all packets 2 all 7 permit 10.0.0.3 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack eq 514 lt 1024 local inbound yes all packets 2 all 8 permit 10.0.0.1 255.255.255.255 10.0.0.3 255.255.255.255 no tcp/ack lt 1024 lt 1024 local outbound yes all packets 2 all 9 permit 10.0.0.3 255.255.255.255 10.0.0.1 255.255.255.255 no tcp lt 1024 lt 1024 local inbound yes all packets 2 all 10 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 0 any 0 local outbound yes all packets 3 all 11 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 0 any 0 local inbound yes all packets 3 all 12 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp gt 1023 eq 21 local outbound yes all packets 4 all 13 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack eq 21 gt 1023 local 11-40 Guide de sécurité inbound yes all packets 4 all 14 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp eq 20 gt 1023 local inbound yes all packets 4 all 15 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp/ack gt 1023 eq 20 local outbound yes all packets 4 all 16 permit 10.0.0.1 255.255.255.255 10.0.0.5 255.255.255.255 no tcp gt 1023 gt 1023 local outbound yes all packets 4 all 17 permit 10.0.0.5 255.255.255.255 10.0.0.1 255.255.255.255 no tcp/ack gt 1023 gt 1023 local inbound yes all packets 4 all 18 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 no all any 0 any 0 both both yes all packets Chaque règle de l’exemple précédent est décrite de la manière suivante : Règle 1 Concerne le démon de clef de session. Cette règle n’apparaît que dans les tables de filtre IPv4. Elle utilise le port 4001 pour contrôler les paquets pour actualiser la clef de session. La règle 1 illustre l’utilisation du numéro de port pour une tâche spécifique. Remarque : Ne modifiez en aucun cas cette règle de filtre, sauf dans un but de journalisation. Règles 2 et 3 Autorisent le traitement des entêtes d’authentification AH et d’encapsulation ESP. Remarque : Ne modifiez en aucun cas les règles 2 et 3, sauf dans un but de journalisation. Règles 4 et 5 Des règles générées automatiquement pour filtrer les échanges entre les adresses 10.0.0.1 et 10.0.0.2 via le tunnel 1. La règle 4 concerne le trafic sortant, la règle 5 le trafic entrant. Remarque : Règles 6 à 9 La règle 4 est définie par l’utilisateur en tant que trafic sortant. Règles définies par l’utilisateur pour filtrer les services sortants rsh, rcp, rdump, rrestore et rdist, entre les adresses 10.0.0.1 et 10.0.0.3 via le tunnel 2. A noter que la journalisation est définie sur oui et permet à l’administrateur de gérer ce type de trafic. Règles 10 et 11 Règles définies par l’utilisateur pour filtrer à la fois le trafic entrant et sortant icmp entre les adresses 10.0.0.1 et 10.0.0.4 via le tunnel 3. Règles 12 à 17 Règles définies par l’utilisateur pour filtrer le service FTP sortant depuis les adresses 10.0.0.1 et 10.0.0.5 via le tunnel 4. Règle 18 Règle générée automatiquement, toujours placée en fin de table. Dans cet exemple, elle accorde l’autorisation à tous les paquets qui ne correspondent pas aux règles précédentes. Vous pouvez cependant lui dire de refuser tous les paquets qui ne correspondent pas aux autres règles de filtre. Sécurité IP (Internet Protocol) 11-41 Chaque règle peut être affichée séparément (avec lsfilt), avec chacune de ses zones. Par exemple : Rule 1 : Rule action Source Address Source Mask Destination Address Destination Mask Source Routing Protocol Source Port Destination Port Scope Direction Logging control Fragment control Tunnel ID number Interface Auto–Generated : : : : : : : : : : : : : : : : permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 yes udp eq 4001 eq 4001 both both no all packets 0 all yes Vous trouverez ci–dessous la liste de tous les paramètres pouvant être spécifiés dans une règle de filtre : –v Version IP : 4 ou 6. –a Action : d Accès refusé p –s Adresse source. Il peut s’agir d’une adresse IP ou du nom de l’hôte. –m Masque de sous–réseau source. –d Adresse de destination. Il peut s’agir d’une adresse IP ou du nom de l’hôte. –M Masque de sous–réseau de destination. –g Contrôle de routage par la source : y ou n. –c Protocole. Les valeurs peuvent être udp, icmp, tcp, tcp/ack, ospf, pip, esp, ah et all. –o Port source ou opération de type ICMP. –p Port source ou valeur de type ICMP. –O Port de destination ou opération de code ICMP. –P Port de destination ou valeur de code ICMP. –r Routage : r Paquets retransmis l b –l Guide de sécurité Paquets origine/destination locale Les deux Gestion des journaux. y Inclure dans le journal n 11-42 Accès autorisé Ne pas inclure dans le journal. –f Fragmentation. y S’applique aux en–têtes de fragment, aux fragments et aux non fragmentés o Ne s’applique qu’aux fragments et en–têtes de fragment n Ne s’applique qu’aux non fragmentés h Ne s’applique qu’aux non fragmentés et en–têtes de fragment –t ID tunnel. –i Interface, telle que tr0 ou en0. Pour de plus amples informations, consultez les descriptions des commandes genfilt et chfilt. Règles de filtre générées automatiquement et définies par l’utilisateur Certaines règles sont générées automatiquement pour l’utilisation du filtre de sécurité IP et du code tunnel. Les règles générées automatiquement comprennent : • Les règles concernant le démon de clef de session destiné à actualiser les clefs IP version 4 dans IKE (AIX 4.3.2 et versions ultérieures) • Les règles chargées de traiter les paquets AH et ESP. Les règles de filtre sont également générées automatiquement lors de la définition des tunnels. Pour les tunnels manuels, elles spécifient les valeurs de l’adresse source et de destination et du masque, ainsi que l’ID du tunnel. Toutes les données échangées entre ces adresses transitent via le tunnel. Pour les tunnels IKE, les règles de filtre générées automatiquement déterminent le protocole et les numéros de port pendant la négociation IKE. Les règles de filtres IKE sont conservées dans une table séparée, dans laquelle les recherches s’effectuent après les règles de filtre statiques et avant les règles générées automatiquement. Les règles de filtre IKE sont insérées dans une position par défaut dans la table de filtres statiques, mais l’utilisateur peut les déplacer. Les règles générées automatiquement autorisent tous les échanges via le tunnel. Les règles définies par l’utilisateur peuvent établir des restrictions sur certains types de trafic. Ces règles définies par l’utilisateur doivent être placées avant les règles générées automatiquement car la sécurité IP utilise la première règle qui s’applique au paquet. L’exemple ci–dessous illustre des règles de filtre définies par l’utilisateur permettant de filtrer les échanges en fonction de l’opération ICMP. 1 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 8 any 0 local outbound no all packets 3 all 2 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 0 any 0 local inbound no all packets 3 all 3 permit 10.0.0.4 255.255.255.255 10.0.0.1 255.255.255.255 no icmp any 8 any 0 local inbound no all packets 3 all 4 permit 10.0.0.1 255.255.255.255 10.0.0.4 255.255.255.255 no icmp any 0 any 0 local outbound no all packets 3 all Les règles de filtre sont générées automatiquement lorsque les tunnels sont définis. Cela simplifie la configuration d’un seul tunnel. Cette fonction peut être supprimée avec l’indicateur –g dans gentun. Vous pouvez trouver un exemple de filtre avec les commandes genfilt pour générer les règles de filtre pour les différents services TCP/IP dans /usr/samples/ipsec/filter.sample. Sécurité IP (Internet Protocol) 11-43 Règles de filtre prédéfinies Plusieurs règles de filtre sont générées automatiquement avec certains événements. Lorsque l’unité ipsec_v4 ou ipsec_v6 est chargée, une règle prédéfinie est introduite dans la table de filtre puis activée. Par défaut, cette règle autorise tous les trafics, mais l’utilisateur peut la configurer, par exemple pour qu’elle refuse tous les paquets. Remarque : Lors d’une configuration à distance, prenez garde de ne pas activer la règle Accès refusé avant la fin de la configuration, pour éviter le verrouillage de votre session. Afin d’éviter ce cas de figure, attribuez par défaut la règle Accès autorisé ou configurez un tunnel sur la machine à distance avant d’activer IPsec. Les tables de filtre IPv4 et IPv6 ont chacune une règle prédéfinie. Chacune peut être définie sur Accès refusé, indépendamment de l’autre. Cette opération empêchera le trafic de circuler, sauf s’il est autorisé par d’autres règles de filtre. L’option chfilt avec –l est la seule autre option à modifier dans les règles prédéfinies, puisqu’elle permet la journalisation des paquets correspondants. Pour les tunnels IKE, une règle de filtre dynamique est placée dans la table de filtre IPv4. C’est l’emplacement réservé aux règles de filtre dynamique dans la table de filtre. L’utilisateur peut contrôler cet emplacement en le déplaçant dans la table de filtre, vers le haut ou vers le bas. Dès que le démon de gestion des tunnels et le démon isakmpd sont initialisés pour permettre la négociation des tunnels IKE, les règles sont automatiquement créées dans la table de filtre dynamique pour traiter aussi bien les messages IKE que les paquets AH et ESP. Masques de sous–réseau Les masques de sous–réseau sont utilisés pour regrouper un ensemble d’ID associés à une règle de filtre. Une opération AND est effectuée entre la valeur du masque et l’ID dans les règles de filtre, et comparée à l’ID spécifié dans le paquet. Par exemple, une règle de filtre comportant l’adresse IP source 10.10.10.4 et le masque de sous–réseau 255.255.255.255 impose une correspondance exacte avec l’adresse IP décimale, comme suit : Binaire Décimal Adresse IP source 1010.1010.1010.0100 10.10.10.4 Masque de sous–réseau 1111.1111.1111.1111 255.255.255.255 Un masque de sous–réseau de 10.10.10.x correspond à 1111.1111.1111.0, soit 255.255.255.0. Le masque de sous–réseau est appliqué à l’adresse entrante, puis la combinaison se comparée avec l’ID présent dans la règle de filtre. Par exemple, une adresse de 10.10.10.100 devient 10.10.10.0 après l’application du masque de sous–réseau correspondant à la règle de filtre. Un masque de sous–réseau de 255.255.255.240 autorise n’importe quelle valeur pour les 4 derniers bits de l’adresse. Configuration Hôte–Pare–feu–Hôte L’option de configuration hôte–pare–feu–hôte permet de créer un tunnel entre votre hôte et un pare–feu, puis de générer automatiquement les règles de filtre nécessaires à une communication correcte avec un hôte situé derrière le pare–feu. Les règles de filtre générées automatiquement autorisent toutes les règles entre les deux hôtes via le tunnel spécifié. Les règles par défaut (pour les en–têtes UDP, AH et ESP) devraient déjà gérer la communication hôte–pare–feu. Le pare–feu devra être paramétré de façon appropriée pour compléter la configuration. Nous vous recommandons d’utiliser le fichier d’exportation du tunnel que vous avez créé pour entrer les valeurs SPI et les clefs nécessaires au pare–feu. 11-44 Guide de sécurité Figure 12. Hôte–Pare–feu–Hôte Cette illustration présente la configuration Hôte–Pare–feu–Hôte. L’hôte A dispose d’un tunnel passant à travers un pare–feu local et sortant vers le réseau Internet. Il passe ensuite dans le pare–feu distant B, puis dans l’hôte distant C. Fonctions de journalisation Cette section décrit la configuration et le format des journaux système relatifs à la sécurité IP. Etant donné que les hôtes communiquent entre eux, les paquets transférés peuvent être journalisés sur le démon journal système, syslogd. D’autres messages importants concernant la sécurité IP s’affichent également. Un administrateur peut choisir de modifier cette information de journalisation pour effectuer des analyses de trafic et des opérations de débogage. Vous trouverez ci–après les étapes de configuration des fonctions de journalisation. 1. Modifiez le fichier /etc/syslog.conf pour ajouter l’entrée suivante : local4.debug var/adm/ipsec.log Utilisez local4 pour enregistrer les événements liés aux échanges et à la sécurité IP. Les niveaux de priorité standard du système d’exploitation s’appliquent. Nous vous recommandons de définir le niveau de priorité du débogage jusqu’à ce que le trafic soit stable et circule correctement à travers les filtres et les tunnels de sécurité IP. Remarque : La journalisation des événements de filtre peut entraîner une activité importante au niveau de l’hôte de sécurité IP et nécessiter une capacité de stockage importante. 2. Enregistrez /etc/syslog.conf. 3. Allez dans le répertoire indiqué pour le fichier journal puis créez un fichier vide portant le même nom. Dans le cas précédent, vous passeriez au répertoire /var/adm et lanceriez la commande : touch ipsec.log 4. Envoyez une commande d’actualisation au sous–système syslogd : refresh –s syslogd 5. Si vous utilisez des tunnels IKE, vérifiez que le fichier /etc/isakmpd.conf indique le niveau de journalisation isakmpd souhaité. (Pour de plus amples informations sur la journalisation IKE, reportez–vous à la section Identification des incidents liés à la sécurité IP, page 11-50.) 6. Lorsque vous créez des règles de filtre pour votre système hôte, si vous souhaitez que les paquets respectant une règle en particulier soient journalisés, attribuez la valeur Y (oui) au paramètre –l de la règle, à l’aide des commandes genfilt ou chfilt. 7. Enfin, activez la journalisation des paquets et lancez le démon ipsec_logd à l’aide de la commande suivante : mkfilt –g start Vous pouvez arrêter la journalisation avec la commande suivante : mkfilt –g stop Sécurité IP (Internet Protocol) 11-45 L’exemple de fichier journal suivant contient des entrées de trafic et de journal de sécurité IP : 1. Aug 27 08:08:40 host1 : Filter logging daemon ipsec_logd (level 2.20) initialized at 08:08:40 on 08/27/97A 2. Aug 27 08:08:46 host1 : mkfilt: Status of packet logging set to Start at 08:08:46 on 08/27/97 3. Aug 27 08:08:47 host1 : mktun: Manual tunnel 2 for IPv4, 9.3.97.244, 9.3.97.130 activated. 4. Aug 27 08:08:47 host1 : mkfilt: #:1 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp eq 4001 eq 4001 both both l=n f=y t=0 e= a= 5. Aug 27 08:08:47 host1 : mkfilt: #:2 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 ah any 0 any 0 both both l=n f=y t=0 e= a= 6. Aug 27 08:08:47 host1 : mkfilt: #:3 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 esp any 0 any 0 both both l=n f=y t=0 e= a= 7. Aug 27 08:08:47 host1 : mkfilt: #:4 permit 10.0.0.1 255.255.255.255 10.0.0.2 255.255.255.255 icmp any 0 any 0 local outbound l=y f=y t=1 e= a= 8. Aug 27 08:08:47 host1 : mkfilt: #:4 permit 10.0.0.2 255.255.255.255 10.0.0.1 255.255.255.255 icmp any 0 any 0 local inbound l=y f=y t=1 e= a= 9. Aug 27 08:08:47 host1 : mkfilt: #:6 permit 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 all any 0 any 0 both both l=y f=y t=0 e= a= 10. Aug 27 08:08:47 host1 : mkfilt: Filter support (level 1.00) initialized at 08:08:47 on 08/27/97 11. Aug 27 08:08:48 host1 : #:6 R:p o:10.0.0.1 s:10.0.0.1 d:10.0.0.20 p:udp sp:3327 dp:53 r:l a:n f:n T:0 e:n l:67 12. Aug 27 08:08:48 host1 : #:6 R:p i:10.0.0.1 s:10.0.0.20 d:10.0.0.1 p:udp sp:53 dp:3327 r:l a:n f:n T:0 e:n l:133 13. Aug 27 08:08:48 host1 : #:6 R:p i:10.0.0.1 s:10.0.0.15 d:10.0.0.1 p:tcp sp:4649 dp:23 r:l a:n f:n T:0 e:n l:43 14. Aug 27 08:08:48 host1 : #:6 R:p o:10.0.0.1 s:10.0.0.1 d:10.0.0.15 p:tcp sp:23 dp:4649 r:l a:n f:n T:0 e:n l:41 15. Aug 27 08:08:48 host1 : #:6 R:p i:10.0.0.1 s:10.0.0.15 d:10.0.0.1 p:tcp sp:4649 dp:23 r:l a:n f:n T:0 e:n l:40 16. Aug 27 08:08:51 host1 : #:4 R:p o:10.0.0.1 s:10.0.0.1 d:10.0.0.2 p:icmp t:8 c:0 r:l a:n f:n T:1 e:n l:84 17. Aug 27 08:08:51 host1 : #:5 R:p i:10.0.0.1 s:10.0.0.2 d:10.0.0.1 p:icmp t:0 c:0 r:l a:n f:n T:1 e:n l:84 18. Aug 27 08:08:52 host1 : #:4 R:p o:10.0.0.1 s:10.0.0.1 d:10.0.0.2 p:icmp t:8 c:0 r:l a:n f:n T:1 e:n l:84 19. Aug 27 08:08:52 host1 : #:5 R:p i:10.0.0.1 s:10.0.0.2 d:10.0.0.1 p:icmp t:0 c:0 r:l a:n f:n T:1 e:n l:84 20. Aug 27 08:32:27 host1 : Filter logging daemon terminating at 08:32:27 on 08/27/97l 11-46 Guide de sécurité Les paragraphes suivants expliquent les entrées du journal. 1 Démon de journalisation de filtre activé. 2 Journalisation de paquet de filtre activée avec la commande mkfilt –g start. 3 Activation du tunnel, affichage de l’ID du tunnel, adresse source, adresse de destination et date/heure. 4à9 Les filtres ont été activés. La journalisation montre toutes les règles de filtres chargées. 10 Message montrant l’activation des filtres. 11 et 12 Ces entrées montrent une recherche DNS d’un hôte. 13 à 15 Ces entrées correspondent partiellement à une connexion Telnet (les autres entrées ont été supprimées de cet exemple pour des raisons de place). 16 à 19 Ces entrées montrent deux Pings. 20 Démon de journalisation de filtre désactivé. L’exemple ci–dessous illustre les phases 1 et 2 de négociation d’un tunnel entre deux hôtes, du point de vue de l’hôte initiateur. (Le niveau de journalisation isakmpd a été indiqué comme isakmp_events.) 1. Dec 6 14:34:42 host1 Tunnel Manager: 0: TM is processing a Connection_request_msg 2. Dec 6 14:34:42 host1 Tunnel Manager: 1: Creating new P1 tunnel object (tid) 3. Dec 6 14:34:42 host1 isakmpd: 192.168.100.103 >>> 192.168.100.104 ( SA PROPOSAL TRANSFORM ) 4. Dec 6 14:34:42 host1 isakmpd: ::ffff:192.168.100.103 <<< 192.168.100.104 ( SA PROPOSAL TRANSFORM ) 5. Dec 6 14:34:42 host1 isakmpd: Phase I SA Negotiated 6. Dec 6 14:34:42 host1 isakmpd: 192.168.100.103 >>> 192.168.100.104 ( KE NONCE ) 7. Dec 6 14:34:42 host1 isakmpd: ::ffff:192.168.100.103 <<< 192.168.100.104 ( KE NONCE ) 8. Dec 6 14:34:42 host1 isakmpd: Encrypting the following msg to send: ( ID HASH ) 9. Dec 6 14:34:42 host1 isakmpd: 192.168.100.103 >>> 192.168.100.104 ( Encrypted Payloads ) 10. Dec 6 14:34:42 host1 isakmpd: ::ffff:192.168.100.103 <<< 192.168.100.104 ( Encrypted Payloads ) 11. Dec 6 14:34:42 host1 Tunnel Manager: 1: TM is processing a P1_sa_created_msg (tid) 12. Dec 6 14:34:42 host1 Tunnel Manager: 1: Received good P1 SA, updating P1 tunnel (tid) 13. Dec 6 14:34:42 host1 Tunnel Manager: 0: Checking to see if any P2 tunnels need to start 14. Dec 6 14:34:42 host1 isakmpd: Decrypted the following received msg: ( ID HASH ) 15. Dec 6 14:34:42 host1 isakmpd: Phase I Done !!! 16. Dec 6 14:34:42 host1 isakmpd: Phase I negotiation authenticated 17. Dec 6 14:34:44 host1 Tunnel Manager: 0: TM is processing a Connection_request_msg 18. Dec 6 14:34:44 host1 Tunnel Manager: 0: Received a connection object for an active P1 tunnel Sécurité IP (Internet Protocol) 11-47 19. Dec 6 14:34:44 host1 Tunnel Manager: 1: Created blank P2 tunnel (tid) 20. Dec 6 14:34:44 host1 Tunnel Manager: 0: Checking to see if any P2 tunnels need to start 21. Dec 6 14:34:44 host1 Tunnel Manager: 1: Starting negotiations for P2 (P2 tid) 22. Dec 6 14:34:45 host1 isakmpd: Encrypting the following msg to send: ( HASH SA PROPOSAL TRANSFORM NONCE ID ID ) 23. Dec 6 14:34:45 host1 isakmpd: 192.168.100.103 >>> 192.168.100.104 ( Encrypted Payloads ) 24. Dec 6 14:34:45 host1 isakmpd: ::ffff:192.168.100.103 <<< 192.168.100.104 ( Encrypted Payloads ) 25. Dec 6 14:34:45 host1 isakmpd: Decrypted the following received msg: ( HASH SA PROPOSAL TRANSFORM NONCE ID ID ) 26. Dec 6 14:34:45 host1 isakmpd: Encrypting the following msg to send: ( HASH ) 27. Dec 6 14:34:45 host1 isakmpd: 192.168.100.103 >>> 192.168.100.104 ( Encrypted Payloads ) 28. Dec 6 14:34:45 host1 isakmpd: Phase II SA Negotiated 29. Dec 6 14:34:45 host1 isakmpd: PhaseII negotiation complete. 30. Dec 6 14:34:45 host1 Tunnel Manager: 0: TM is processing a P2_sa_created_msg 31. Dec 6 14:34:45 host1 Tunnel Manager: 1: received p2_sa_created for an existing tunnel as initiator (tid) 32. Dec 6 14:34:45 host1 Tunnel Manager: 1: Filter::AddFilterRules: Created filter rules for tunnel 33. Dec 6 14:34:45 host1 Tunnel Manager: 0: TM is processing a List_tunnels_msg Les paragraphes suivants expliquent les entrées de journal. 11-48 1 et 2 La commande ike cmd=activate phase=1 active une connexion. 3 à 10 Le démon isakmpd négocie un tunnel de phase 1. 11 et 12 Le gestionnaire de tunnel reçoit du répondeur un lien de sécurité valide de phase 1. 13 Ce gestionnaire vérifie si la commande ike cmd=activate dispose ou non d’une valeur de phase 2 pour effectuer du travail supplémentaire. Elle n’en a pas. 14 à 16 Le démon isakmpd termine la négociation de phase 1. 17 à 21 La commande ike cmd=activate phase=2 active un tunnel de phase 2. 22 à 29 Le démon isakmpd négocie un tunnel de phase 2. 30 et 31 Le gestionnaire de tunnel reçoit lien de sécurité valide de phase 2. 32 Le gestionnaire de tunnel écrit les règles de filtre dynamiques. 33 La commande ike cmd=list affiche les tunnels IKE. Guide de sécurité Libellés des entrées de zone Les zones des entrées des journaux sont abrégées pour réduire l’espace DADS : # Numéro de la règle qui régit la journalisation de ce paquet. R Type de règle p Accès accordé d i/o Accès refusé Direction du paquet lors de son interception par le code de prise en charge du filtre. Identifie l’adresse IP de la carte associée au paquet : • Pour les paquets entrants (i), c’est l’adresse de la carte sur laquelle est arrivé le paquet. • Pour les paquets sortants (o), c’est l’adresse de la carte déterminée par la couche IP comme devant traiter la transmission du paquet. s Indique l’adresse IP de l’expéditeur du paquet (extrait de l’en–tête IP). d Indique l’adresse IP du destinataire prévu (extrait de l’en–tête IP). p Indique le protocole de haut niveau utilisé pour créer le message dans la portion de données du paquet. Peut être un nombre ou un nom, par exemple : udp, icmp, tcp, tcp/ack, ospf, pip, esp, ah, ou all. sp / t Indique le numéro de port du protocole associé à l’expéditeur du paquet (extrait de l’en–tête TCP/UDP). Pour un protocole ICMP ou OSPF, cette zone est remplacée par un t, qui précise le type d’IP. dp / c Indique le numéro de port du protocole associé au destinataire prévu (extrait de l’en–tête TCP/UDP). Pour un protocole ICMP, cette zone est remplacée par un c, qui indique le code IP. – Indique qu’aucune information n’est disponible r Indiquent une affiliation locale du paquet. f Paquets retransmis l Paquets locaux o Sortant b Les deux l Indique la taille d’un paquet en octets. f Indique si le paquet est un fragment. T Indique l’ID du tunnel. i Précise l’interface sur lequel est arrivé le paquet. Sécurité IP (Internet Protocol) 11-49 Identification des incidents liés à la sécurité IP Vous trouverez dans la présente section des conseils et astuces pour vous aider à résoudre les incidents. Il est recommandé d’activer la journalisation lors de la configuration initiale de IPSec. Les journaux sont très utiles pour identifier les incidents liés aux filtres et aux tunnels. Reportez–vous à la section Fonctions de journalisation, page 11-45 pour plus d’informations en la matière. Débogage des erreurs au niveau du tunnel manuel Erreur : La commande mktun retourne le message d’erreur suivant : insert_tun_man4(): write failed : The requested resource is busy. Problème : Le tunnel que vous souhaitez activer est déjà actif ou une collision des valeurs SPI s’est produite. Solution : Lancez la commande rmtun pour désactiver le tunnel, puis utilisez la commande mktun pour le réactiver. Vérifiez si les valeurs SPI du tunnel défaillant correspondent à un autre tunnel actif. Chaque tunnel doit posséder ses propres valeurs SPI, uniques. Erreur : La commande mktun retourne le message d’erreur suivant : Device ipsec_v4 is in Defined status. Tunnel activation for IP Version 4 not performed. Problème : Vous n’avez pas rendu disponible l’unité de sécurité IP. Solution : Lancez la commande suivante : mkdev –l ipsec –t 4 Vous devez remplacer l’option –t par 6 si la même erreur se produit lors de l’activation d’un tunnel IP Version 6. Les unités doivent être dans l’état disponible. Pour vérifiez l’état de l’unité de sécurité IP, lancez la commande suivante : lsdev –Cc ipsec 11-50 Guide de sécurité Erreur : La commande gentun retourne le message d’erreur suivant Invalid Source IP address Problème : Vous avez saisi une adresse IP incorrecte comme adresse source. Solution : Pour les tunnels IP version 4, vérifiez si vous avez indiqué une adresse IP version 4 disponible pour la machine locale. Lorsque vous générez des tunnels, vous ne pouvez pas utiliser de nom d’hôte comme adresse source. Ce n’est possible que pour l’adresse de destination. Pour les tunnels IP version 6, vérifiez si vous avez indiqué une adresse IP version 6 disponible. Si vous entrez netstat –in et qu’aucune adresse IP version 6 n’existe, exécutez /usr/sbin/autoconf6 (interface) pour générer automatiquement une adresse locale (avec l’adresse MAC) ou utilisez ifconfig pour attribuer manuellement une adresse. Erreur : La commande gentun retourne le message d’erreur suivant : Invalid Source IP address Problème : Vous avez saisi une adresse IP incorrecte comme adresse source. Solution : Pour les tunnels IP version 4, vérifiez si vous avez indiqué une adresse IP version 4 disponible pour la machine locale. Lorsque vous générez des tunnels, vous ne pouvez pas utiliser de nom d’hôte comme adresse source. Ce n’est possible que pour l’adresse de destination Pour les tunnels IP version 6, vérifiez si vous avez indiqué une adresse IP version 6 disponible. Si vous entrez netstat –in et qu’aucune adresse IP version 6 n’existe, exécutez /usr/sbin/autoconf6 (interface) pour générer automatiquement une adresse locale (avec l’adresse MAC) ou utilisez ifconfig pour attribuer manuellement une adresse. Erreur : La commande mktun retourne le message d’erreur suivant : insert_tun_man4(): write failed: A system call received a parameter that is not valid. Problème : La génération du tunnel s’est produite avec une combinaison ESP et AH incorrecte, ou sans l’utilisation du nouveau format d’en–tête lorsque nécessaire. Solution : Vérifiez la nature des algorithmes d’authentification en cours d’utilisation par le tunnel en question. N’oubliez pas que les algorithmes HMAC_MD5 et HMAC_SHA requièrent le nouveau format d’en–tête. Le nouveau format d’en–tête peut être modifié à l’aide du raccourci SMIT ips4_basic ou de l’indicateur –z associé à la commande chtun. Rappelez–vous également que DES_CBC_4 ne peut pas être utilisé avec le nouveau format d’en–tête. Sécurité IP (Internet Protocol) 11-51 Erreur : Le lancement d’IPSec à partir de Web-based System Manager génère un message d’erreur Failure. Problème : Les démons IPSec ne sont pas lancés. Solution : Vérifier quels sont les démons en cours d’exécution avec la commande ps–ef. Les démons associés à IPSec sont les suivants : • tmd • isakmpd • cpsd Le démon cpsd n’est actif que lorsque le code du certificat numérique est installé (fichiers gskit.rte ou gskkm.rte) et lorsque vous avez configuré l’utilitaire IBM Key Manager pour la prise en charge des certificats numériques. Si les démons ne sont pas actifs, arrêtez IPSec avec Web-based System Manager, puis relancez–le pour lancer automatiquement les démons appropriés. Erreur : L’utilisation d’IPSec génère le message d’erreur suivant : The installed bos.crypto is back level and must be updated. Problème : Les fichiers bos.net.ipsec.* ont été mis à jour avec une version plus récente, mais les fichiers bos.crypto.* correspondants ne l’ont pas été. Solution : Mettez les fichiers bos.crypto.* à jour avec la version correspondante aux fichiers bos.net.ipsec.* mis à jour. 11-52 Guide de sécurité Débogage des erreurs au niveau des tunnels IKE Les sections suivantes décrivent les erreurs générées lors de l’utilisation de tunnels IKE. Organigramme des tunnels IKE Les tunnels IKE sont configurés via la commande ike ou les écrans VPN du Web-based System Manager, avec les démons suivants : Tableau 10. Démons utilisés par les tunnels IKE. tmd Démon de gestion des tunnels isakmpd Démon IKE cpsd Démon de proxy de certificat Pour que les tunnels IKE soient configurés correctement, les démons tmd et isakmpd doivent être actifs. Si la fonction de sécurité IP est lancée lors du redémarrage, l’exécution de ces démons se fait automatiquement. Dans le cas contraire, ils doivent être lancés avec Web–based System Manager. Le gestionnaire de tunnels demande à isakmpd de lancer un tunnel. Si le tunnel existe déjà ou n’est pas valide (en cas d’adresse distante erronée, par exemple), un message d’erreur apparaît. Une fois la négociation lancée, son exécution peut prendre un certain temps, en fonction de la latence du réseau. La commande ike cmd=list indiquera l’état du tunnel pour savoir si la négociation s’est bien déroulée. Le gestionnaire de tunnel consigne également des événements dans le journal système syslog, au niveau des sections debug, event et information, utilisées pour surveiller l’état d’avancement de la négociation. La séquence est la suivante : 1. Utilisez Web-based System Manager ou la commande ike pour lancer un tunnel. 2. Le démon tmd envoie au démon isakmpd une demande de connexion pour la gestion de clés (phase 1). 3. Le démon isakmpd répond par le message SA created (CA créée) ou par l’affichage d’un message d’erreur. 4. Le démon tmd envoie au démon isakmpd une demande de connexion pour un tunnel de gestion des données (phase 2). 5. Le démon isakmpd répond par le message SA created ou par l’affichage d’un message d’erreur. 6. Les paramètres de tunnel sont insérés dans le cache de tunnel du noyau. 7. Les règles de filtres sont ajoutées à la table de filtres dynamique du noyau. Lorsque la machine agit comme répondeur, le démon isakmpd informe le démon tmd du gestionnaire de tunnels du bon déroulement de la négociation. Un nouveau tunnel est inséré dans le noyau. Le processus commence alors à l’étape 3 et se poursuit jusqu’à l’étape 7, sans que le démon tmd ne demande de connexion. Sécurité IP (Internet Protocol) 11-53 Journalisation IKE Les démons isakmpd, tmd et cpsd consignent des événements dans syslog. Pour le démon isakmpd, la journalisation est activée à l’aide de la commande ike cmd=log. Le fichier de configuration /etc/isakmpd.conf peut être défini pour spécifier le niveau de journalisation. Ce niveau peut prendre les valeurs none, errors, isakmp_events ou information. Remarque : Dans les versions antérieures à AIX 5.1, le démon isakmpd consignait les éléments dans un fichier séparé, spécifié dans /etc/isakmpd.conf. Le paramètre du fichier de configuration qui peut être défini pour la journalisation est log_level. Les démons IKE utilisent les niveaux de journalisation suivants : none Aucune journalisation (valeur par défaut) error Consignation uniquement des erreurs de protocole et d’API isakmp_events Consignation uniquement des événements et des erreurs de protocole IKE Information Consignation des informations de mise en œuvre et de protocole (conseillé lors d’un débogage) La syntaxe de cette option est : log_level Le démon isakmpd démarre par l’envoi d’une proposition ou répond en évaluant une proposition. Si cette proposition est acceptée, un lien de sécurité est généré et le tunnel est configuré. Si cette proposition est refusée ou si le délai de connexion expire avant la fin de la négociation, isakmpd renvoie un message d’erreur. Les entrées du journal système syslog dans tmd indiquent la réussite ou non de la négociation. Un échec pour cause de certificat non valide est consigné dans syslog. Pour déterminer la cause exacte de l’échec d’une négociation, contrôlez le fichier journal spécifié dans /etc/syslog.conf. Syslog ajoute à chaque ligne du journal un préfixe comprenant la date et l’heure, la machine et le programme. Dans l’exemple suivant, le nom de machine est googly et le nom de programme est isakmpd : Nov 20 09:53:50 googly isakmpd: ISAKMP_MSG_HEADER Nov 20 09:53:50 googly isakmpd: Icookie : 0xef06a77488f25315, Rcookie :0x0000000000000000 Nov 20 09:53:51 googly isakmpd: Next Payload : 1(SA), Maj Ver : 1, Min Ver : 0 Nov 20 09:53:51 googly isakmpd: Xchg Type : 2 (ID protected), Flag= 0, Encr : No,COMMIT : non Nov 20 09:53:51 googly isakmpd: Msg ID : 0x00000000 Pour plus de clarté, vous pouvez utiliser la commande grep pour extraire des lignes intéressantes du journal (toute la journalisation isakmpd par exemple) et la commande cut pour retirer le préfixe de chaque ligne. Les exemples de journalisation isakmpd dans le reste de cette section ont été transformé d’une manière similaire. Fonction de journalisation Parse Payload (analyse de blocs) Le lien de sécurité (SA) entre deux points terminaux est établi grâce à l’échange de messages IKE. La fonction d’analyse de blocs interprète les messages dans un format lisible par l’homme. Vous pouvez activer la journalisation en modifiant le fichier /etc/isakmpd.conf. Dans le fichier /etc/isakmpd.conf, l’entrée relative à la journalisation est semblable à la ligne suivante : information 11-54 Guide de sécurité Le type de blocs IKE consignés par l’analyse de blocs varie selon le contenu des messages IKE. Les exemples incluent les blocs SA, Key Exchange, Certificate Request, Certificate et Signature. Le journal de l’analyse de blocs de l’exemple suivant possède un en–tête ISAKMP_MSG_HEADER suivi par cinq blocs : ISAKMP_MSG_HEADER Icookie : 0x9e539a6fd4540990, Rcookie : 0x0000000000000000 Next Payload : 1(SA), Maj Ver : 1, Min Ver : 0 Xchg Type : 4 (Aggressive), Flag= 0, Encr : No,COMMIT : No Msg ID : 0x00000000 len : 0x10e(270) SA Payload: Next Payload : 4(Key Exchange), Payload len : 0x34(52) DOI : 0x1(INTERNET) bitmask : 1(SIT_IDENTITY_ONLY Proposal Payload: Next Payload : 0(NONE), Payload len : 0x28(40) Proposal # : 0x1(1), Protocol–ID : 1(ISAKMP) SPI size : 0x0(0), # of Trans : 0x1(1) Transform Payload: Next Payload : 0(NONE), Payload len : 0x20(32) Trans # : 0x1(1), Trans.ID : 1(KEY_IKE) Attr : 1(Encr.Alg ), len=0x2(2) Value=0x1(1),(DES–cbc) Attr : 2(Hash Alg ), len=0x2(2) Value=0x1(1),(MD5) Attr : 3(Auth Method ), len=0x2(2) Value=0x3(3),(RSA Signature) Attr : 4(Group Desc ), len=0x2(2) Value=0x1(1),(default 768–bit MODP group) Attr : 11(Life Type ), len=0x2(2) Value=0x1(1),(seconds) Attr : 12(Life Duration), len=0x2(2) Value=0x7080(28800) Key Payload: Next Payload : 10(Nonce), Payload len : 0x64(100) Key Data 33 17 68 a0 e1 1f 9f 13 62 8a 59 97 d9 8b 39 ab d3 5a : 10 42 aa 1f d1 39 91 c2 27 3b cb 7d 1f 10 d8 1c 39 67 ea aa e5 08 c2 5b da 8d 52 3e a4 a6 38 9d 8d 2a 05 2e a0 14 5c 55 8d 37 22 0f c3 9b 2d d3 2d 58 cf 3c a1 07 84 3e d5 50 98 e6 a3 c4 45 cc 74 98 5d ec 1a 82 7d 1a 5d a3 79 2c 95 6b Nonce Payload: Next Payload : 5(ID), Payload len : 0xc(12) Nonce Data: 6d 21 73 1d dc 60 49 93 ID Payload: Next Payload : 7(Cert.Req), Payload len : 0x49(73) ID type : 9(DER_DN), Protocol : 0, Port = 0x0(0) Certificate Request Payload: Next Payload : 0(NONE), Payload len : 0x5(5) Certificate Encoding Type: 4(X.509 Certificate – Signature) Dans chaque bloc se trouve le champ Next Payload qui renvoie au bloc suivant. Si le bloc actif est le dernier du message IKE, le champ Next Payload possède la valeur zéro (None). Chaque bloc de cet exemple contient des informations concernant les négociations en cours. A titre d’exemple, le bloc SA comporte les blocs Proposal (proposition) et Transform (conversion), lesquels à leur tour contiennent l’algorithme de chiffrement, le mode d’authentification, l’algorithme de hachage, le type de cycle SA et la durée SA que l’initiateur propose au répondant. Sécurité IP (Internet Protocol) 11-55 De plus, le Bloc SA est composé d’un ou de plusieurs bloc Proposal, et d’un ou de plusieurs blocs Transform. La valeur du champ Next Payload du bloc Proposal est 0 si ce bloc est unique, ou 2 s’il est suivi par plusieurs blocs Proposal. De même, la valeur du champ Next Payload d’un bloc Transform est 0 s’il est unique, ou 3 s’il est suivi par plusieurs blocs Transform, comme dans l’exemple suivant : ISAKMP_MSG_HEADER Icookie : 0xa764fab442b463c6, Rcookie : 0x0000000000000000 Next Payload : 1(SA), Maj Ver : 1, Min Ver : 0 Xchg Type : 2 (ID protected), Flag= 0, Encr : No,COMMIT : No Msg ID : 0x00000000 len : 0x70(112) SA Payload: Next Payload : 0(NONE), Payload len : 0x54(84) DOI : 0x1(INTERNET) bitmask : 1(SIT_IDENTITY_ONLY Proposal Payload: Next Payload : 0(NONE), Payload len : 0x48(72) Proposal # : 0x1(1), Protocol–ID : 1(ISAKMP) SPI size : 0x0(0), # of Trans : 0x2(2) Transform Payload: Next Payload : 3(Transform), Payload len : 0x20(32) Trans # : 0x1(1), Trans.ID : 1(KEY_IKE) Attr : 1(Encr.Alg ), len=0x2(2) Value=0x5(5),(3DES–cbc) Attr : 2(Hash Alg ), len=0x2(2) Value=0x1(1),(MD5) Attr : 3(Auth Method ), len=0x2(2) Value=0x1(1),(Pre–shared Key) Attr : 4(Group Desc ), len=0x2(2) Value=0x1(1),(default 768–bit MODP group) Attr : 11(Life Type ), len=0x2(2) Value=0x1(1),(seconds) Attr : 12(Life Duration), len=0x2(2) Value=0x7080(28800) Transform Payload: Next Payload : 0(NONE), Payload len : 0x20(32) Trans # : 0x2(2), Trans.ID : 1(KEY_IKE) Attr : 1(Encr.Alg ), len=0x2(2) Value=0x1(1),(DES–cbc) Attr : 2(Hash Alg ), len=0x2(2) Value=0x1(1),(MD5) Attr : 3(Auth Method ), len=0x2(2) Value=0x1(1),(Pre–shared Key) Attr : 4(Group Desc ), len=0x2(2) Value=0x1(1),(default 768–bit MODP group) Attr : 11(Life Type ), len=0x2(2) Value=0x1(1),(seconds) Attr : 12(Life Duration), len=0x2(2) Value=0x7080(28800) L’en–tête de message IKE d’un journal d’analyse de blocs montre le type d’échange – Main (principal) ou Aggressive (agressif) –, la longueur de l’ensemble du message, l’ID du message, etc. Le Bloc Certificate Request demande un certificat au répondant. Le répondant envoie le certificat dans un message séparé. L’exemple suivant montre les Blocs Certificate et Signature envoyés à un homologue lors d’une négociation SA. Les données relatives au certificat et à la signature sont au format hexadécimal. 11-56 Guide de sécurité ISAKMP_MSG_HEADER Icookie : 0x9e539a6fd4540990, Rcookie : 0xc7e0a8d937a8f13e Next Payload : 6(Certificate), Maj Ver : 1, Min Ver : 0 Xchg Type : 4 (Aggressive), Flag= 0, Encr : No,COMMIT : No Msg ID : 0x00000000 len : 0x2cd(717) Certificate Payload: Next Payload : 9(Signature), Payload len : 0x22d(557) Certificate Encoding Type: 4(X.509 Certificate – Signature) Certificate: (len 0x227(551) in bytes 82 02 24 30 82 01 8d a0 03 02 01 02 02 05 05 8e fb 3e ce 30 0d 06 09 2a 86 48 86 f7 0d 01 01 04 05 00 30 5c 31 0b 30 09 06 03 55 04 06 13 02 46 49 31 24 30 22 06 03 55 04 0a 13 1b 53 53 48 20 43 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 73 20 53 65 63 75 72 69 74 79 31 11 30 0f 06 03 55 04 0b 13 08 57 65 62 20 74 65 73 74 31 14 30 12 06 03 55 04 03 13 0b 54 65 73 74 20 52 53 41 20 43 41 30 1e 17 0d 39 39 30 39 32 31 30 30 30 30 30 30 5a 17 0d 39 39 31 30 32 31 32 33 35 39 35 39 5a 30 3f 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 10 30 0e 06 03 55 04 0a 13 07 49 42 4d 2f 41 49 58 31 1e 30 1c 06 03 55 04 03 13 15 62 61 72 6e 65 79 2e 61 75 73 74 69 6e 2e 69 62 6d 2e 63 6f 6d 30 81 9f 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 30 81 89 02 81 81 00 b2 ef 48 16 86 04 7e ed ba 4c 14 d7 83 cb 18 40 0a 3f 55 e9 ad 8f 0f be c5 b6 6d 19 ec de 9b f5 01 a6 b9 dd 64 52 34 ad 3d cd 0d 8e 82 6a 85 a3 a8 1c 37 e4 00 59 ce aa 62 24 b5 a2 ea 8d 82 a3 0c 6f b4 07 ad 8a 02 3b 19 92 51 88 fb 2c 44 29 da 72 41 ef 35 72 79 d3 e9 67 02 b2 71 fa 1b 78 13 be f3 05 6d 10 4a c7 d5 fc fe f4 c0 b8 b8 fb 23 70 a6 4e 16 5f d4 b1 9e 21 18 82 64 6d 17 3b 02 03 01 00 01 a3 0f 30 0d 30 0b 06 03 55 1d 0f 04 04 03 02 07 80 30 0d 06 09 2a 86 48 86 f7 0d 01 01 04 05 00 03 81 81 00 75 a4 ee 9c 3a 18 f2 de 5d 67 d4 1c e4 04 b4 e5 b8 5e 9f 56 e4 ea f0 76 4a d0 e4 ee 20 42 3f 20 19 d4 25 57 25 70 0a ea 41 81 3b 0b 50 79 b5 fd 1e b6 0f bc 2f 3f 73 7d dd 90 d4 08 17 85 d6 da e7 c5 a4 d6 9a 2e 8a e8 51 7e 59 68 21 55 4c 96 4d 5a 70 7a 50 c1 68 b0 cf 5f 1f 85 d0 12 a4 c2 d3 97 bf a5 42 59 37 be fe 9e 75 23 84 19 14 28 ae c4 c0 63 22 89 47 b1 b6 f4 c7 5d 79 9d ca d0 Signature Payload: Next Payload : 0(NONE), Payload len : 0x84(132) Signature: len 9d 1b 0d 90 be b4 ca a2 85 0f 5c b6 9c e2 a5 e3 a2 87 f4 7c 7d b4 8c 4e 19 f0 5a 81 58 2e 4d 19 7e e0 e7 5b cb 07 ea 36 0x80(128) in bytes aa dc 43 95 ba 65 09 15 9e 3e 8d 5f e1 f0 64 f4 ef 0b 31 c3 cb 9d 20 49 b2 39 00 fa 3a b8 70 90 88 2c cf 15 40 37 b7 c8 d6 8c c7 c2 93 42 89 46 6b e5 82 9d 70 79 9a fe b9 43 48 8e 89 5c 5f bd 00 98 7c bf 69 e2 f8 6c 6d 69 d8 d9 5d 50 8b 86 67 d8 30 b0 07 c3 7d 36 Sécurité IP (Internet Protocol) 11-57 Incidents liés au certificat numérique et au mode de signature Erreur : Le démon cpsd (Certificate Proxy Server daemon) ne démarre pas. Une entrée similaire à la suivante apparaît dans le fichier journal : Sep 21 16:02:00 ripple CPS[19950]: Init():LoadCaCerts() failed, rc=–12 Problème : Le système n’a pas pu ouvrir ou trouver la base de données des certificats. Solution : Assurez–vous que les bases de données de certificats d’IBM Key Manager se trouvent dans /etc/security. La base de données est constituée des fichiers suivants : ikekey.crl, ikekey.kdb, ikekey.rdb et ikekey.sth. Si seul ikekey.sth est manquant, c’est que l’option stash password n’a pas été sélectionnée lors de la création de la base de données d’IBM Key Manager. Le mot de passe doit être sécurisé dans le fichier stash pour activer l’utilisation des certificats numériques avec IPSec. Pour en savoir plus, reportez–vous à Création d’une base de données de clés, page 11-29.) 11-58 Guide de sécurité Erreur : Key Manager génère le message d’erreur suivant lors de la réception d’un certificat : Invalid Base64–encoded data was found Problème : Des données surnuméraires ont été trouvées dans le fichier certificat ou bien des données ont été perdues ou endommagées. Solution : Le certificat chiffré ’DER’ doit se trouver entre les chaînes de l’exemple ci–dessous. Aucun caractère ne doit figurer avant et après les chaînes BEGIN CERTIFICATE et END CERTIFICATE. –––––BEGIN CERTIFICATE––––– MIICMTCCAZqgAwIBAgIFFKZtANowDQYJKoZIhvcNAQEFBQAwXDELMAkG A1UEBhMC RkkxJDAiBgNVBAoTG1NTSCBDb21tdW5pY2F0aW9ucyBTZWN1cml0eTER MA8GA1UE CxMIV2ViIHRlc3QxFDASBgNVBAMTC1Rlc3QgUlNBIENBMB4XDTk5MDky MTAwMDAw MFoXDTk5MTAyMTIzNTk1OVowOzELMAkGA1UEBhMCVVMxDDAKBgNVBAoT A0lCTTEe MBwGA1UEAxMVcmlwcGxlLmF1c3Rpbi5pYm0uY29tMIGfMA0GCSqGSIb3 DQEBAQUA A4GNADCBiQKBgQC5EZqo6n7tZrpAL6X4L7mf4yXQSm+m/NsJLhp6afbF pPvXgYWC wq4pvOtvxgum+FHrE0gysNjbKkE4Y6ixC9PGGAKHnhM3vrmvFjnl1G6K tyEz58Lz BWW39QS6NJ1LqqP1nT+y3+Xzvfv8Eonqzno8mglCWMX09SguLmWoU1Pc ZQIDAQAB oyAwHjALBgNVHQ8EBAMCBaAwDwYDVR0RBAgwBocECQNhhzANBgkqhkiG 9w0BAQUF AOBgQA6bgp4Zay34/fyAlyCkNNAYJRrN3Vc4NHN7IGjUziN6jK5UyB5z L37FERW hT9ArPLzK7yEZs+MDNvB0bosyGWEDYPZr7EZHhYcoBP4/cd0V5rBFmA8 Y2gUthPi Ioxpi4+KZGHYyLqTrm+8Is/DVJaQmCGRPynHK35xjT6WuQtiYg== –––––END CERTIFICATE––––– Les options suivantes peuvent aider au diagnostic et à la résolution de cet incident. • Si les données ont été perdues ou endommagées, recréez le certificat. • Analysez le certificat pour en vérifier la validité à l’aide d’un analyseur de type ASN.1 (disponible sur le Web). Erreur : Key Manager génère le message d’erreur suivant lors de la réception d’un certificat personnel : No request key was found for the certificate Problème : La demande de certificat personnel du certificat en cours de réception n’existe pas. Solution : Créez à nouveau la demande de certificat personnel et demandez un nouveau certificat. Sécurité IP (Internet Protocol) 11-59 Erreur : Lors de la configuration d’un tunnel IKE, Web-based System Manager génère le message d’erreur suivant : Error 171 in the Key Management (Phase 1) Tunnel operation: PUT_IRL_FAILED Problème : Il est possible que le type d’identité de l’hôte ne soit pas valide ; ce type est configuré par la boîte de dialogue IKE (onglet Identification). Ceci a lieu lorsque le type d’identité de l’hôte sélectionné dans la liste déroulante ne correspond pas au type attendu de la zone Host Identity. A titre d’exemple, si le type d’identité de l’hôte sélectionné est X500 Distinguished Name, vous devez entrer un nom spécifique correctement formaté dans la zone Host Identity. Solution : Assurez–vous que le nom spécifique entré est correct pour le type d’identité de l’hôte sélectionné dans la liste déroulante. Erreur : Une négociation IKE échoue et une entrée similaire au message suivant apparaît dans le fichier journal : inet_cert_service::channelOpen():clientInitIPC():error,r c =2 (No such file or directory) Problème : Le démon cpsd n’est pas actif ou s’est arrêté. Solution : Lancez IPSec avec Web–based System Manager. Cette action lance également les démons appropriés. Erreur : Une négociation IKE échoue et une entrée similaire au message suivant apparaît dans le fichier journal : CertRepo::GetCertObj: DN Does Not Match: (”/C=US/O=IBM/CN=ripple.austin.ibm.com”) Problème : Le type X500 Distinguished Name (DN, nom spécifique) sélectionné lors de la définition du tunnel IKE ne correspond pas au type X500 DN du certificat personnel. Solution : Modifiez la définition du tunnel IKE dans Web-based System Manager pour la faire correspondre au nom spécifique du certificat. Erreur : Lors de la définition des tunnels IKE dans Web–based System Manager, la case Certificat numérique est désactivée dans l’onglet Méthode d’authentification. Problème : La politique associée à ce tunnel n’utilise pas l’authentification en mode signature RSA. Solution : Pour utiliser la méthode d’authentification des signatures RSA, modifiez la conversion de la politique associée. A titre d’exemple, lors de la définition d’un tunnel IKE, choisissez la politique de gestion des clés IBM_low_CertSig. 11-60 Guide de sécurité Fonctions de suivi Il s’agit d’outils de débogage utilisés pour le suivi des événements du noyau. La fonction de suivi peut être utilisée pour obtenir de plus amples informations sur les erreurs ou les événements qui se sont produits dans le filtre du noyau et le code du tunnel. SMIT possède une fonction de suivi pour la sécurité IP, disponible via le menu Configuration avancée de la sécurité IP. Parmi les informations qui entrent dans le champ d’application de cette fonction de suivi figurent les informations sur les erreurs, les filtres, les tunnels, l’encapsulation/décapsulation et le chiffrement. Par conception, le suivi d’erreurs fournit les informations les plus importantes. L’utilitaire de suivi d’informations peut générer un volume d’informations important et nuire aux performances du système. Cette opération de suivi vous fournit des indices permettant d’identifier l’incident. Les informations de suivi seront nécessaires lorsque vous serez en contact avec un mainteneur. Pour accéder à la fonction de suivi, utilisez le raccourci SMIT smit ips4_tracing (pour IPv4) ou smit ips6_tracing (pour IPv6). ipsecstat Vous pouvez lancer la commande ipsecstat pour générer l’exemple de rapport suivant. Ce rapport indique que les unités de sécurité IP sont disponibles, que trois algorithmes d’authentification et trois algorithmes de chiffrement sont installés, et qu’il existe un rapport sur l’activité des paquets. Ces informations peuvent servir à identifier l’origine d’un incident si vous cherchez à résoudre les incidents liés au trafic de sécurité IP. IP Security Devices: ipsec_v4 Available ipsec_v6 Available Authentication Algorithm: HMAC_MD5 –– Hashed MAC MD5 Authentication Module HMAC_SHA –– Hashed MAC SHA Hash Authentication Module KEYED_MD5 –– Keyed MD5 Hash Authentication Module Encryption Algorithm: CDMF –– CDMF Encryption Module DES_CBC_4 –– DES CBC 4 Encryption Module DES_CBC_8 –– DES CBC 8 Encryption Module 3DES_CBC –– Triple DES CBC Encryption Module IP Security Statistics – Total incoming packets: 1106 Incoming AH packets:326 Incoming ESP packets: 326 Srcrte packets allowed: 0 Total outgoing packets:844 Outgoing AH packets:527 Outgoing ESP packets: 527 Total incoming packets dropped: 12 Filter denies on input: 12 AH did not compute: 0 ESP did not compute:0 AH replay violation:0 ESP replay violation: 0 Total outgoing packets dropped:0 Filter denies on input:0 Tunnel cache entries added: 7 Tunnel cache entries expired: 0 Tunnel cache entries deleted: 6 Remarque : Depuis AIX 4.3.3, la prise en charge CDMF a été supprimée car DES est désormais disponible dans le monde entier. Reconfigurez tous les tunnels qui utilisent CDMF en DES ou Triple DES. Sécurité IP (Internet Protocol) 11-61 Informations de référence sur la fonction de sécurité IP Liste des commandes ike cmd=activate Démarre une négociation IKE (Internet Key Exchange) (AIX versions 4.3.2 et ultérieures) ike cmd=remove Désactive les tunnels IKE (AIX versions 4.3.2 et ultérieures) ike cmd=list Répertorie les tunnels IKE (AIX versions 4.3.2 et ultérieures) ikedb Fournit l’interface vers la base de données des tunnels IKE (AIX versions 5.1 et ultérieures) gentun Crée une définition de tunnel mktun Active une ou plusieurs définitions de tunnel chtun Change la définition d’un tunnel rmtun Supprime la définition d’un tunnel lstun Répertorie une ou plusieurs définitions de tunnel exptun Exporte une ou plusieurs définitions de tunnel imptun Importe une ou plusieurs définitions de tunnel genfilt Crée une définition de filtre mkfilt Active une ou plusieurs définitions de filtre mvfilt Déplace une règle de filtre chfilt Change une définition de filtre rmfilt Supprime une définition de filtre lsfilt Répertorie une ou plusieurs définitions de filtre expfilt Exporte une ou plusieurs définitions de filtre impfilt Importe une ou plusieurs définitions de filtre ipsec_convert Indique l’état de la sécurité IP ipsecstat Indique l’état de la sécurité IP ipsectrcbuf Indique le contenu du tampon de suivi de la sécurité IP unloadipsec Décharge un module de chiffrement Liste des méthodes 11-62 defipsec Définit une instance de sécurité IP pour IP version 4 ou IP version 6 cfgipsec Configure et charge ipsec_v4 ou ipsec_v6 ucfgipsec Supprime la configuration de ipsec_v4 ou ipsec_v6 Guide de sécurité Chapitre 12. Sécurité NIS (Network Information Service) et NIS+ Ce chapitre explique brièvement comment NIS+ protège son espace de nom. Il comprend les sections suivantes : • Méthodes de protection du système d’exploitation, page 12-1 • Système de protection NIS+, page 12-2 • Authentification et données d’identification NIS+, page 12-5 • Autorisation et accès NIS+, page 12-7 • Droits d’administrateur et sécurité NIS+, page 12-10 • Informations de référence sur la sécurité NIS+, page 12-11 Méthodes de protection du système d’exploitation La sécurité du système d’exploitation est assurée par des portes que les utilisateurs doivent franchir avant d’entrer dans l’environnement du système d’exploitation, et des tableaux de droits d’accès qui déterminent ce qu’ils sont autorisés à faire dans cet environnement. Dans certains contextes, les mots de passe RPC sécurisés sont appelés mots de passe réseau. Le système complet comprend quatre portes et deux tableaux de droits d’accès : Porte de numérotation Pour accéder à un environnement de système d’exploitation donné depuis l’extérieur à l’aide d’un modem et d’une ligne téléphonique, vous devez fournir un mot de passe de numérotation et un ID de connexion valides. Porte de connexion Pour accéder à un environnement de système d’exploitation donné, vous devez fournir un mot de passe utilisateur et un ID de connexion valides. Porte root Pour bénéficier des droits d’accès root, vous devez fournir un mot de passe utilisateur root valide. Porte RPC sécurisée Dans un environnement NIS+ fonctionnant au niveau de sécurité 2 (valeur par défaut), lorsque vous essayez d’utiliser des services NIS+ et d’accéder aux objets NIS+ (serveurs, répertoires, tables, entrées de tables, etc), NIS+ confirme votre identité à l’aide du processus RPC sécurisé. Le franchissement d’une porte RPC sécurisée nécessite un mot de passe RPC sécurisé. Votre mot de passe RPC sécurisé et votre mot de passe de connexion sont généralement identiques. Si c’est le cas, vous franchissez automatiquement la porte sans avoir à entrer de nouveau votre mot de passe. Dans certains contextes, les mots de passe RPC sécurisés sont appelés mots de passe réseau Consultez la section Secure RPC Password versus Login Password du manuel AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide, pour obtenir des informations sur l’utilisation de deux mots de passe différents.) Un ensemble de données d’identification est utilisé pour transmettre vos requêtes automatiquement via la porte RPC sécurisée. Le processus qui génère, présente et valide vos données d’identification est nommé authentification car il confirme votre identité et le fait que vous disposez d’un mot de passe RPC sécurisé valide. Cette authentification est automatiquement effectuée à chaque requête au service NIS+. Sécurité NIS (Network Information Service) et NIS+ 12-1 Dans un environnement NIS+ fonctionnant en mode de compatibilité NIS, la protection fournie par la porte RPC sécurisée est limitée. Tout le monde a les droits d’accès en lecture sur tous les objets NIS+ et les droits de modifier les entrées qui les concernent, qu’ils disposent ou non de données d’identification valides (c’est à dire, peu importe que le processus d’authentification ait ou non confirmé leur identité et validé leur mot de passe RPC sécurisé). Comme cette situation permet à tous d’accéder en lecture à tous les objets NIS+ et de modifier les entrées qui les concernent, un réseau NIS+ fonctionnant en mode de compatibilité est moins sécurisé qu’un même réseau en mode normal. En terminologie RPC sécurisé, tout utilisateur sans référence valide est considéré comme membre de la classe nobody. Consultez la section Classes d’autorisation, page 12-7 pour une description des quatre classes. Pour des détails sur la gestion des authentifications et données d’identification NIS+, consultez la section Administering NIS+ Credentials du manuel AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Tableau des fichiers et répertoires Une fois que vous avez accédé à un environnement de système d’exploitation, les droits d’accès applicables définissent votre capacité à lire, exécuter, modifier, créer et détruire des fichiers et répertoires. Tableau des objets NIS+ Une fois que vous avez été authentifié correctement par NIS+, les droits d’accès applicables régissent votre capacité à lire, exécuter, modifier, créer et détruire des objets NIS+. Ce processus est appelé autorisation NIS+. Pour des détails sur les permissions et autorisations NIS+, consultez la section Administering NIS+ Access Rights de AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Système de protection NIS+ La sécurité NIS+ est un élément essentiel de l’espace de nom NIS+. Vous ne pouvez pas configurer la sécurité indépendamment de l’espace de nom. Les instructions de configuration de la sécurité sont donc réparties dans les étapes de configuration des autres éléments de l’espace de nom. Une fois qu’un environnement de sécurité NIS+ a été configuré, vous pouvez ajouter et supprimer des utilisateurs, modifier les droits d’accès, modifier la répartition des membres de groupes, et exécuter toutes les autres tâches de gestion du réseau. Les fonctions de sécurité de NIS+ protègent la structure l’espace de nom et les informations qu’il contient contre les accès non autorisés. Sans ces fonctions, tout client NIS+ pourrait obtenir, modifier, voire endommager les informations stockées dans l’espace de nom. La sécurité NIS+ remplit deux objectifs : Authentification L’authentification permet d’identifier les mandants NIS+. Chaque fois qu’un mandant (un utilisateur ou un poste) tente d’accéder à un objet NIS+, son identité et son mot de passe RPC sécurisé sont confirmés et validés. Vous n’avez normalement pas besoin d’entrer un mot de passe dans le cadre de l’authentification. Cependant, si votre mot de passe RPC sécurisé est différent de votre mot de passe de connexion, vous devez exécuter un keylogin lors de votre première tentative d’accès aux objets ou services NIS+. Pour exécuter un keylogin, vous devez fournir un mot de passe RPC sécurisé valide. Consultez la section Secure RPC Password versus Login Password du AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Autorisation 12-2 Guide de sécurité L’autorisation permet de spécifier des droits d’accès. Chaque fois qu’un mandant NIS+ tente d’accéder à des objets NIS+, il est placé dans l’une des quatre classes d’autorisation (propriétaire, groupe, monde, personne). Le système de sécurité NIS+ permet aux administrateurs NIS+ de spécifier différents droits de lecture, modification, création, ou destruction sur les objets NIS+ pour chaque classe. Par exemple, une classe pourrait être autorisée à modifier une colonne donnée de la table passwd mais pas à lire cette colonne, ou une autre classe pourrait être autorisée à lire des entrées d’une table mais pas des autres. Par exemple, les informations d’une table NIS+ donnée peuvent être lues et modifiées par une classe, seulement lues par une autre classe, et ni lues ni modifiées par une troisième classe. Le concept est identique à celui des droits d’accès aux fichiers et répertoires du système d’exploitation. Consultez la section Classes d’autorisation, page 12-7, pour plus d’informations sur les classes. L’authentification et l’autorisation empêchent un utilisateur bénéficiant de droits d’accès root sur un poste A d’utiliser la commande su pour prendre l’identité d’un autre utilisateur non connecté, ou connecté sur un poste B, et d’accéder aux objets NIS+ avec les droits d’accès NIS+ de l’autre utilisateur. Cependant, NIS+ ne peut empêcher un utilisateur connaissant le mot de passe de connexion d’un autre utilisateur de prendre son identité et de bénéficier de ses droits d’accès NIS+. NIS+ ne peut pas non plus empêcher un utilisateur bénéficiant de droits d’accès root de prendre l’identité d’un autre utilisateur connecté depuis le même poste. La figure suivante illustre ce processus. Figure 13. Résumé du processus de sécurité NIS+ Cette illustration représente le processus de sécurité NIS+. 1. Le client/mandant envoie une requête au serveur NIS+ pour accéder à un objet NIS+. 2. Le serveur authentifie l’identité du client en examinant ses données d’identification. 3. Les clients dont les données d’identification sont valides sont placés dans la classe monde (world). 4. Les clients dont les données d’identification ne sont pas valides sont placés dans la classe personne (nobody). 5. Le serveur examine la définition de l’objet pour déterminer la classe du client. 6. Si les droits d’accès de la classe du client correspondent au type d’opération demandée, l’opération est exécutée. Sécurité NIS (Network Information Service) et NIS+ 12-3 Mandants NIS+ Les mandants NIS+ sont les entités (clients) qui envoient des requêtes de services NIS+. Un mandant NIS+ peut être une personne connectée à un poste client en tant qu’utilisateur courant ou utilisateur root, ou tout processus fonctionnant avec des droits d’accès root sur un poste client NIS+. Ainsi, un mandant NIS+ peut être un utilisateur client ou un poste de travail client. Un mandant NIS+ peut aussi être l’entité qui fournit un service NIS+ depuis un serveur NIS+. Tous les serveurs NIS+ étant aussi des clients NIS+, la plupart des sujets couverts s’appliquent aussi aux serveurs. Niveaux de sécurité NIS+ Les serveurs NIS+ fonctionnent dans l’in de deux niveaux de sécurité. Ces niveaux déterminent les types de références que les mandants doivent fournir pour authentifier leurs requêtes. NIS+ est conçu pour fonctionner au niveau de sécurité maximum, le niveau 2. Le niveau 0 ne sert que pour les tests, la configuration et le débogage. Ces niveaux de sécurité sont résumés dans le tableau suivant. Remarque : Utilisez Web–based System Manager, SMIT, ou la commande passwd pour modifier votre mot de passe indépendamment du niveau de sécurité ou de l’état des données d’identification. Niveaux de sécurité NIS+ 12-4 Niveau de sécurité Description 0 Le niveau de sécurité 0 est prévu pour les tests et la configuration de l’espace de nom NIS+ initial. Un serveur NIS+ fonctionnant au niveau 0 accorde à un mandant NIS+ des droits d’accès complets à tous les objets NIS+ du domaine. Le niveau 0 est uniquement destiné à la configuration et ne doit être utilisé que par les administrateurs et dans ce but. Le niveau 0 ne doit pas être utilisé sur des réseaux en fonctionnement normal, par des utilisateurs courants. 1 Le niveau de sécurité 1 utilise la sécurité AUTH_SYS. Ce niveau n’est pas pris en charge par NIS+ et ne doit pas être utilisé. 2 Le niveau de sécurité 2 est le niveau par défaut. C’est le plus haut niveau de sécurité de NIS+. Il n’authentifie que les requêtes qui utilisent les données d’identification DES (data encryption standard). Les requêtes sans donnée d’identification sont affectées à la classe personne et disposent des droits d’accès correspondants. Les requêtes utilisant des données d’identification DES non valides sont réessayées. Après un nouvel échec d’obtention de données d’identification DES valides, les requêtes échouent, accompagnées d’une erreur d’authentification. Une donnée d’identification peut ne pas être valide pour diverses raisons, par exemple, le mandant peut ne pas être connecté via keylogin sur le poste, les horloges peuvent être désynchronisées, il peut y avoir une non–correspondance de clef, etc. Guide de sécurité Authentification et données d’identification NIS+ Les données d’identification NIS+ authentifient l’identité de chaque mandant qui envoie une requête de service NIS+ ou accède à un objet NIS+. Le processus de d’identification/autorisation NIS+ est une implémentation du système RPC sécurisé. Le système de données d’identification/autorisation empêche un utilisateur de prendre l’identité d’un autre. Il empêche un utilisateur avec des droits d’accès root sur un poste d’utiliser la commande su pour prendre l’identité d’un autre utilisateur non connecté ou connecté sur un autre poste, et d’accéder aux objets NIS+ avec les droits d’accès NIS+ de l’autre utilisateur. Remarque : NIS+ ne peut pas empêcher un utilisateur qui connaît le mot de passe de connexion d’un autre utilisateur de prendre l’identité et les droits d’accès NIS+ de cet utilisateur. NIS+ ne peut pas non plus empêcher un utilisateur bénéficiant de droits d’accès NIS+ de prendre l’identité d’un autre utilisateur connecté depuis le même poste. Un fois un mandant authentifié par un serveur, ce serveur contrôle l’objet NIS+ auquel le mandant souhaite accéder pour savoir quelles opérations lui sont accessibles. Consultez la section Autorisation et accès NIS+, page 12-7, pour plus d’informations sur les autorisations. Données d’identification des utilisateurs et des postes Il existe deux types de mandants, les utilisateurs et les postes, et donc deux types de données d’identification : Données d’identification des utilisateurs Lorsqu’une personne est connectée à un client NIS+ en tant qu’utilisateur courant, les requêtes de services NIS+ comprennent ses données d’identification. Données d’identification des postes Lorsqu’un utilisateur est connecté à un client NIS+ en tant qu’utilisateur root, les requêtes de services utilisent les données d’identification du poste client. Données d’identification locales et DES Les mandants NIS+ peuvent avoir deux types de données d’identification : locales et DES. Données d’identification DES Les données d’identification DES (Data Encryption Standard) assurent une authentification sécurisée. Lorsque ce manuel indique que NIS+ contrôle des données d’identification pour authentifier un mandant NIS+, cela veut dire que NIS+ valide des données d’identification DES. L’utilisation de données d’identification DES n’est que l’une des méthodes d’authentification. Ne confondez pas les données d’identification DES avec les données d’identification NIS+. Chaque fois qu’un mandant demande un service NIS+ ou accède à un objet NIS+, le logiciel utilise les informations d’identification stockées pour ce mandant pour générer ses données d’identification. Les données d’identification DES sont générées à partir d’informations crées pour chaque mandant par un administrateur NIS+, comme expliqué dans la section Administering NIS+ Credentials du AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. • Une fois la validité des données d’identification DES d’un mandant confirmée par NIS+, ce mandant est authentifié. Sécurité NIS (Network Information Service) et NIS+ 12-5 • Un mandant doit être authentifié avant d’être placé dans la classe propriétaire, groupe, ou monde. C’est à dire que vous devez disposer de données d’identification DES valides pour être placé dans l’une de ces classes. Les mandants sans données d’identification DES valides sont automatiquement placés dans la classe personne. • Les informations sur les données d’identification DES sont toujours stockées dans la table cred du domaine d’accueil du mandant, que ce mandant soit un utilisateur client ou un poste de travail client. Données d’identification locales Les données d’identification locales sont une correspondance entre un numéro d’ID utilisateur et son nom de mandant NIS+ qui comprend son nom de domaine d’accueil. Lorsque des utilisateurs se connectent, le système contrôle leurs données d’identification, et identifie leur domaine d’accueil où sont stockées leurs données d’identification DES. Le système utilise ces informations pour obtenir les données d’identification DES des utilisateurs. Lorsque des utilisateurs se connectent à un domaine distant, ces requêtes utilisent leurs données d’identification locales qui font référence à leur domaine d’accueil. NIS+ interroge alors le domaine d’accueil de l’utilisateur pour obtenir ses données d’identification DES. L’utilisateur peut ainsi être authentifié sur un domaine distant bien que ses données d’identification DES n’y soient pas stockées. La figure suivante illustre ce concept. Figure 14. Données d’identification et domaines Cette illustration représente une hiérarchie de domaine. Le domaine d’accueil de l’utilisateur contient les données d’identification locales et DES. Le sous–domaine ne contient que les données d’identification locales. Le domaine d’accueil et le sous–domaine sont indiqués comme Données d’identification de l’utilisateur client. Données d’identification et domaines Les données d’identification locales peuvent être stockées dans n’importe quel domaine. Pour se connecter à un domaine distant et être authentifié, un utilisateur client doit avoir des données d’identification locales dans la table cred du domaine distant. Si ce n’est pas le cas, NIS+ ne peut pas localiser son domaine d’accueil pour obtenir ses données d’identification DES. L’utilisateur ne pourrait alors pas être authentifié et serait placé dans la classe personne. Types d’utilisateurs et types de données d’identification Un utilisateur peut disposer des deux types de données d’identification, mais un poste peut seulement avoir des données d’identification DES. Les utilisateurs root ne peuvent accéder par NIS+ aux autres postes, en tant que root, car l’UID root de chaque poste est toujours zéro. Si un utilisateur root (UID=0) du poste A tente d’accéder au poste B en tant que root, il entre en conflit avec les utilisateurs root (UID=0) du poste B. Des données d’identification locales ne sont donc pas appropriées pour un poste de travail client. Elles ne conviennent que pour les utilisateurs clients. 12-6 Guide de sécurité Autorisation et accès NIS+ La principale fonction de l’autorisation NIS+ est de préciser pour chaque mandant NIS+ les droits d’accès à chaque objet et service NIS+. Une fois authentifié, un mandant qui émet une requête NIS+ est placé dans une classe d’autorisation. Les droits d’accès (permissions) qui précisent les opérations qui peuvent être effectuées par un mandant sur un objet NIS+ donné sont définis en fonction des classes. En d’autres termes, les droits d’accès varient d’une classe d’autorisation à l’autre. Classes d’autorisation Il en existe quatre : propriétaire (owner), groupe (group), monde (world) et personne (nobody). Consultez la section Classes d’autorisation, page 12-7 pour plus d’informations sur les classes. Droits d’accès Ils sont de quatre types : création, destruction, modification et lecture. Consultez la section Droits d’accès NIS+, page 12-9 pour plus d’informations. Classes d’autorisation Les objets NIS+ ne confèrent pas directement de droit d’accès aux mandants NIS+. Ils accordent des droits d’accès sur la base des quatre classes de mandants suivants : Propriétaire Le mandant propriétaire (owner) de l’objet dispose des droits accordés à la classe des propriétaires. Groupe A chaque objet NIS+ est associé un groupe (group). Les membres du groupe d’un objet sont désignés par l’administrateur NIS+. Les mandants qui appartiennent à la classe Group d’un objet disposent des droits accordés à cette classe (ici, le terme groupe désigne les groupes NIS+, et non des groupes de système d’exploitation ou réseau ; reportez–vous à Classe Groupe, page 12-8 pour une description des groupes NIS+). Monde Cette classe (world) regroupe tous les mandants NIS+ authentifiés par un serveur C’est–à–dire tous les mandants authentifiés mais n’appartenant ni à la classe Propriétaire ni à la classe Groupe. Personne Tous les mandants font partie de cette classe (nobody), y compris ceux qui n’ont pas été authentifiés. Reportez–vous à la figure suivante pour une illustration des classes. Figure 15. Classes d’autorisation Représentation schématique des relations entre les classes d’autorisation. Le plus petit ensemble représente le groupe Propriétaire ; il est inclus dans l’ensemble Groupe. Celui–ci est inclus dans le groupe Monde, lui–même inclus dans le groupe Personne. Sécurité NIS (Network Information Service) et NIS+ 12-7 A chaque requête NIS+, le système détermine à quelle classe appartient le mandant émetteur. Celui–ci peut ensuite utiliser tous les droits dont dispose cette classe. Un objet peut accorder n’importe quelle combinaison de droits d’accès à chaque classe. En général, une classe supérieure dispose généralement des mêmes droits qu’une classe inférieure, et éventuellement de droits supplémentaires. Par exemple, un objet peut attribuer un accès en lecture aux classes Personne et Monde, un accès en lecture et modification à la classe Groupe, et un accès en lecture, modification, création et destruction à la classe Propriétaire. Les quatre classes sont décrites en détail dans les paragraphes qui suivent. Classe Propriétaire Le mandant propriétaire est unique. Les mandants qui présentent une requête d’accès à un objet NIS+ doivent être authentifiés (présenter des données d’identification DES valides) avant de se voir accorder des droits d’accès de propriétaire. Par défaut, le propriétaire d’un objet est le mandant qui l’a créé. Cependant, il peut céder cette propriété à un autre mandant des deux manières suivantes : • Le mandant définit un propriétaire différent lors de la création de l’objet (voir la section Specifying Access Rights in Commands du AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide). • Le mandant modifie le propriétaire après la création de l’objet (voir la section Specifying Access Rights in Commands du AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide). En abandonnant la propriété de l’objet, le mandant perd tous les droits afférents et ne conserve que les droits attribués par l’objet à la classe Groupe, Monde ou Personne. Classe Groupe Le groupe NIS+ d’un objet est unique (ici, le terme groupe désigne les groupes NIS+, et non des groupes de système d’exploitation ou réseau). Les mandants qui présentent une requête d’accès à un objet NIS+ doivent être authentifiés (présenter des données d’identification DES valides) et appartenir au groupe avant de se voir accorder les droits d’accès du groupe. 12-8 Guide de sécurité Un groupe NIS+ est constitué de mandants NIS+ réunis de manière à faciliter l’accès à l’espace de nom. Les droits d’accès accordés à un groupe NIS+ s’appliquent à tous les mandants membres de ce groupe. Le propriétaire d’un objet, cependant, n’a pas besoin d’appartenir au groupe de l’objet. Le créateur d’un objet peut opter pour un groupe par défaut au moment de la création. Un groupe spécifique peut être défini au moment de la création, ou créé ultérieurement. Les informations relatives aux groupes NIS+ sont stockées dans les objets du groupe NIS+, dans le sous–répertoire groups_dir de chaque domaine NIS+. Notez que les informations relatives aux groupes NIS+ sont stockées dans la table du groupe NIS+. Elle contient les informations relatives aux groupes système d’exploitation. Pour des instructions sur l’administration des groupes NIS+, reportez–vous à la section Administering NIS+ Groups du AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Classe Monde La classe Monde regroupe tous les mandants NIS+ authentifiés par NIS+, c’est–à–dire tous les membres des classes Propriétaire et Groupe, ainsi que tous les mandants présentant des données d’identification DES valides. Les droits d’accès accordés à la classe Monde s’appliquent donc à tous les mandants authentifiés. Classe Personne Cette classe contient tous les mandants, y compris ceux qui ne présentent pas de données d’identification DES valides. Classes d’autorisation et hiérarchie des objets NIS+ La sécurité NIS+ utilise des classes d’autorisation indépendamment de la hiérarchie des objets. Les objets répertoires représentent le niveau le plus élevé de la hiérarchie par défaut. Viennent ensuite les objets groupe ou table, puis les colonnes et enfin les entrées. Les définitions suivantes apportent des précisions sur chaque niveau : Niveau répertoire Chaque domaine NIS+ contient deux objets répertoires NIS+ : groups_dir et org_dir. Chaque objet répertoire groups_dir contient plusieurs groupes. Chaque objet répertoire org_dir contient plusieurs tables. Niveau groupe ou table Les groupes contiennent des entrées, éventuellement d’autres groupes. Les tables contiennent des colonnes et des entrées. Niveau colonne Un tables comporte une ou plusieurs colonnes. Niveau entrée (ligne) Chaque groupe ou tables comporte une ou plusieurs entrées. Les quatre classes d’autorisation s’appliquent à tous les niveaux. Par conséquent, un objet répertoire dispose d’un propriétaire et d’un groupe. Chaque table d’un objet répertoire dispose de son propre propriétaire et de son propre groupe, qui peuvent être différents du propriétaire et du groupe de l’objet répertoire. A l’intérieur d’une table, une colonne ou une entrée peut avoir son propre propriétaire ou son groupe, qui peuvent aussi être différents du propriétaire et du groupe de la table ou du répertoire. Droits d’accès NIS+ Les objets NIS+ définissent des droits d’accès pour les mandants NIS+, de la même façon que les fichiers définissent les permissions des utilisateurs dans un système d’exploitation. Les droits d’accès déterminent les opérations que les mandants NIS+ sont autorisés à effectuer sur les objets NIS+ (vous pouvez les consulter à l’aide de la commande niscat –o). Sécurité NIS (Network Information Service) et NIS+ 12-9 Les opérations NIS+ varient selon les différents types d’objets, mais toutes peuvent être rangées dans l’une des quatre catégories de droits d’accès : lecture, modification, création et destruction. Lecture Un mandant qui dispose de ces droits sur un objet peut lire son contenu. Modification Un mandant qui dispose de ces droits sur un objet peut en modifier le contenu. Destruction Un mandant qui dispose de ces droits sur un objet peut le détruire ou le supprimer. Création Un mandant disposant de ces droits à un certain niveau d’objet peut créer des objets à l’intérieur de ce niveau. Ainsi, si vous disposez de droits de création dans un objet répertoire NIS+, vous avez la possibilité de créer de nouvelles tables dans ce répertoire. De même, si vous disposez de droits de création dans une table NIS+, vous pouvez créer de nouvelles colonnes ou entrées dans cette table. Toutes les communications entre les clients et les serveurs NIS+ sont des requêtes pour l’exécution de l’une de ces opérations sur un objet NIS+ spécifique. Par exemple, lorsqu’un mandant NIS+ demande l’adresse IP d’un autre poste de travail, il demande en fait un accès en lecture sur l’objet table hosts, qui répertorie ce type d’informations. Lorsqu’un mandant demande au serveur d’ajouter un répertoire à l’espace de nom NIS+, il demande en fait un accès en modification à l’objet parent du répertoire. Ces droits se répercutent de manière logique vers les niveaux inférieurs, du répertoire à la table, et de la table à la colonne et à l’entrée. Par exemple, pour créer une nouvelle table, vous devez disposer de droits de création dans l’objet répertoire NIS+ dans lequel elle sera stockée. Lorsque vous créez cette table, vous en devenez le propriétaire par défaut. En tant que tel, vous pouvez vous attribuer des droits de création sur cette table, ce qui vous permettra de créer de nouvelles entrées dans celle–ci. Lorsque vous créez de nouvelles entrées dans une table, vous devenez le propriétaire par défaut de ces entrées. En tant que propriétaire de la table, vous pouvez attribuer à d’autres des droits de création au niveau de la table. Par exemple, vous pouvez attribuer à la classe Groupe de votre table des droits de création au niveau table. Dans ce cas, tout membre du groupe de la table peut créer de nouvelles entrées dans la table. Un membre du groupe qui crée une nouvelle entrée dans la table devient par défaut le propriétaire de cette entrée. Droits d’administrateur et sécurité NIS+ NIS+ n’impose pas que l’administrateur soit unique. Celui qui dispose de droits d’administration sur un objet (c’est–à–dire des droits de création et de destruction, et pour certains objets des droits de modification) est considéré comme l’administrateur NIS+ de cet objet. Les droits d’accès initiaux d’un objet NIS+ sont définis par son créateur. Si le créateur de l’objet limite les droits d’administration au propriétaire (le créateur, au départ), alors seul le propriétaire dispose de droits d’administration sur cet objet. Si le créateur accorde des droits d’administration au groupe de l’objet, alors tous les membres de ce groupe disposent de droits d’administration sur l’objet. Vous pouvez même accorder des droits d’administration à la classe Monde, voire à la classe Personne. Mais le fait d’attribuer des droits d’administration au–delà de la classe Groupe invalide la sécurité NIS+. Par conséquent, si vous attribuez des droits d’administrateur à la classe Monde ou Personne, vous allez à l’encontre du principe même de la sécurité NIS+. 12-10 Guide de sécurité Informations de référence sur la sécurité NIS+ Les commandes suivantes permettent de gérer les mots de passe, les données d’identification et les clés (pour plus de détails, reportez–vous aux descriptions des commandes) : chkey Change la paire de clés RPC sécurisée d’un mandant. Si vous ne souhaitez pas refaire le chiffrement de votre clé privée, utilisez plutôt passwd. La commande chkey n’affecte pas l’entrée du mandant, que ce soit dans la table de mots de passe ou dans le fichier /etc/passwd. keylogin Déchiffre et stocke la clé privée d’un mandant dans le démon keyserv. keylogout Supprime la clé privée stockée sur le keyserv. keyserv Autorise le serveur à stocker des clés de chiffrement privées. newkey Crée une nouvelle paire de clés dans la base de données de clés publiques. nisaddcred Crée des données d’identification pour les mandants NIS+. nisupdkeys Met à jour les clés publiques dans les objets répertoire. passwd Change et gère le mot de passe des mandants. Sécurité NIS (Network Information Service) et NIS+ 12-11 12-12 Guide de sécurité Chapitre 13. Sécurité NFS (Network File System) Le service NFS (Network File Service) s’ajoute au système standard d’authentification apporté par UNIX, et offre un moyen d’authentifier les utilisateurs et machines d’un réseau message par message. Ce système d’authentification complémentaire utilise le chiffrement DES (Data Encryption Standard) et le chiffrement par clé publique. Ce chapitre traite des points suivants : • Confidentialité, page 13-1 • Authentification NFS, page 13-3 • Noms des entités réseau pour authentification DES, page 13-6 • Fichier /etc/publickey, page 13-6 • Remarques sur l’amorçage des systèmes à clé publique, page 13-6 • Remarques sur les performances de NFS sécurisé, page 13-7 • Administration de NFS sécurisé, page 13-7 • Configuration de NFS sécurisé, page 13-8 • Exportation d’un système de fichiers via NFS sécurisé, page 13-9 • Montage d’un système de fichiers NFS sécurisé, page 13-10 Confidentialité Tout au long de l’histoire, les hommes ont cherché le moyen de communiquer de façon sécurisée, par des messages dont le contenu ne soit intelligible que par l’expéditeur et le destinataire : c’est ainsi que le chiffrement a fait son apparition. Il s’agit de convertir un texte en clair en un texte chiffré, et réciproquement. Le chiffrement est le processus de conversion d’un texte en clair en texte chiffré, et le déchiffrement, le processus inverse. L’une des premières méthodes, le code César, est attribué à Jules César. Il s’agit de substituer systématiquement une lettre par une autre. Ainsi, ’A’ devient ’C’, ’B’ devient ’D’, ..., ’Y’ devient ’A’ et ’Z’ devient ’B’. Par exemple, la phrase ATTACK AT DAWN devient CVVCEM CV FCYP. Si les Carthaginois avaient réussi à briser le code, les cryptographes romains auraient dû en inventer un autre. Cette recherche étant coûteuse, les Romains ont imaginé de définir une clef de codage, permettant d’exploiter un peu plus efficacement le chiffrement. Par exemple, au lieu d’une substitution lettre par lettre, ils ont spécifié une clé, K, K indiquant le nombre de décalage entre les lettres substituées. Ainsi, si K = 2, ’A’ devient ’C’. Si K = 4, ’A’ devient ’E’, etc. Avec ce schéma, si les Carthaginois décryptent le code, il suffit aux Romains de changer de clé. Si les Carthaginois avaient compris en quoi consistait le système de codage romain, il leur aurait suffi d’essayer les 26 valeurs possibles pour K. S’ils avaient disposé d’un ordinateur, cette tâche aurait été réduite à un exercice de programmation d’une grande simplicité. Network File System (NFS) Security 13-1 Chiffrement DES (Data Encryption Standard) Les algorithmes de chiffrement modernes sont conçus en sachant que les ordinateurs sont de puissants outils, offrant d’importants moyens de décodage. En 1977, le gouvernement américain a adopté un standard de chiffrement, le chiffrement DES (DataEncryption Standard). Il est largement utilisé dans l’industrie. Il s’agit d’un algorithme fort complexe, qui convertit le texte en clair en texte codé, par blocs de 64 bits, à l’aide d’une clé de 56 bits. Compte tenu de la complexité de l’algorithme et de la taille de la clé, DES est difficile à casser : en supposant qu’un intrus dispose d’un ordinateur capable d’analyser l’algorithme DES à la vitesse d’une clé par microseconde, il lui faudrait déjà deux mille ans pour tester toutes les clés. Chiffrement par clé publique Le point faible de tout algorithme de chiffrement est sa clé. Si l’expéditeur et le destinataire doivent communiquer en sécurité via un code de chiffrement, l’un comme l’autre doivent connaître la clé. Ils doivent se mettre d’accord sur la clé via une liaison distincte, sécurisée elle aussi bien entendu, ou directement (en personne). Pour résoudre ce problème, deux chercheurs (Diffie et Hellman) ont développé une technique grâce à laquelle émetteur et destinataire peuvent se communiquer leur clé, sans compromettre la sécurité de leurs échanges. Cette technique suppose trois règles : • Déchiffrement( Chiffrement( texte en clair, E ), D ) = texte en clair E étant la clé de chiffrement (publique) et D, la clé de déchiffrement (connue du seul destinataire). Cette règle signifie que les fonctions de chiffrement/déchiffrement sont inverses l’une de l’autre : si vous appliquez au texte codé généré par Chiffrement (texte en clair, E) la fonction Déchiffrement avec la clé D, vous obtenez le texte en clair d’origine. • Un intrus ne peut déduire la fonction Déchiffrement() de la fonction Chiffrement(). • Chiffrement() est inviolable. Voici la procédure d’envoi d’un message secret. 1. L’expéditeur demande la clé de chiffrement publique. 2. Il convertit son texte en appliquant la fonction : texte_codé = Chiffrement( texte_clair, E) 3. Il envoie le texte codé au destinataire. 4. Le destinataire reçoit le texte et le convertit par la fonction : texte_clair = Déchiffrement( texte_codé, D) Même s’il intercepte le message, un intrus ne peut le décoder puisqu’il ne possède pas la clé de déchiffrement. (L’expéditeur lui–même ne la connaît pas.) 13-2 Guide de sécurité Authentification Une des principales applications de la confidentialité est l’authentification. Le plus souvent, l’authentification fait appel aux mots de passe (l’authentification standard UNIX notamment) : un utilisateur souhaitant se connecter doit fournir un mot de passe, connu uniquement du système et de l’utilisateur. Si le mot de passe est correct, le système suppose que l’utilisateur est bien celui qu’il déclare être. Cette méthode requiert de stocker les mots de passe dans un fichier système, ce qui, même si ce fichier est codé, présente des risques. Elle suppose aussi que deux entités aient connaissance du mot de passe. Le chiffrement par clé publique offre une alternative à l’authentification par mot de passe. Soit un expéditeur souhaitant envoyant un message, et un destinataire qui a besoin d’être sûr de l’identité de l’expéditeur. Le processus est le suivant : 1. L’expéditeur chiffre un message de ”demande pour émettre” (RTS) avec la clé de chiffrement publique et envoie la demande. 2. Le destinataire reçoit le message de ”demande pour émettre” et le déchiffre à l’aide de sa clé privée. 3. Le destinataire chiffre un message ”jeton” à l’aide de la clé publique de l’expéditeur et envoie le jeton. 4. L’expéditeur reçoit le jeton, et le déchiffre à l’aide de sa clé privée. Il commencera ensuite tous les messages qu’il envoie par ce jeton, certifiant ainsi son identité. Un intrus qui tenterait d’envoyer des messages au nom de l’expéditeur les verrait rejetés par le destinataire, qui constaterait l’absence de jeton. Notez que, contrairement à l’authentification par mot de passe, le destinataire peut authentifier l’expéditeur sans connaître sa clé privée. Pour plus de détails sur les systèmes d’authentification, consultez la section Understanding RPC Authentication du manuel AIX 5L Version 5.2 Communications Programming Concepts. Authentification NFS NFS fait usage de l’algorithme DES à deux fins. NFS l’utilise pour chiffrer un horodatage dans les messages RPC transitant entre les clients et les serveurs NFS. Cet horodatage chiffré permet d’authentifier les machines de la même façon qu’un jeton pour un expéditeur. NFS pouvant authentifier n’importe quel message RPC échangé entre clients et serveurs NFS, un niveau de sécurité supplémentaire (optionnel) peut être associé à chaque système de fichiers. Par défaut, les systèmes de fichiers sont exportés avec l’authentification UNIX standard. Pour bénéficier de l’option de sécurité renforcée, spécifiez secure lorsque vous exportez un système de fichiers. Chiffrement par clé publique pour NFS sécurisé Les clés publique et privée sont toutes deux stockées et indexées par leur nom réseau dans la mappe publickey.byname. La clé privée est chiffrée via DES avec le mot de passe de connexion de l’utilisateur. La commande keylogin utilise la clé privée chiffrée, la déchiffre avec le mot de passe de connexion et la transmet à un serveur sécurisé de clés locales, pour un usage ultérieur dans les transactions RPC. Les utilisateurs ne connaissent ni leur clé publique, ni leur clé privée, car la commande yppasswd, outre le fait de modifier le mot de passe de connexion, génère les clés (publique et privée) automatiquement. Le démon keyserv est un service RPC, actif sur chaque machine NIS et NIS+. Pour des détails sur l’utilisation de keyserv par NIS+, consultez le AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Dans NIS, keyserv exécute les trois sous–routines à clef publique suivantes : Network File System (NFS) Security 13-3 • key_setsecret • key_encryptsession • key_decryptsession key_setsecret indique au serveur de clés de stocker la clé privée de l’utilisateur (SK A ) pour un usage ultérieur. Elle est normalement appelée par la commande keylogin. Le programme client appelle key_encryptsession pour générer la clé de conversation chiffrée, qui est passée à la première transaction RPC vers un serveur. Le serveur de clés recherche la clé publique du serveur et la combine à la clé privée du client (définie par une sous–routine key_setsecret précédente) pour générer la clé commune. Le serveur demande au serveur de clés de déchiffrer la clé de conversation en appelant la sous–routine key_decryptsession. Ces appels de sous–routines supposent un appelant, qui doit lui aussi être authentifié. Pour ce faire, le serveur de clés ne peut pas utiliser l’authentification DES, qui provoquerait un blocage total. Il résout le problème en stockant les clés privées par leur ID utilisateur (UID) et en ne répondant qu’aux demandes des processus root locaux. Le processus client exécute ensuite une sous–routine setuid, appartenant à l’utilisateur root, qui effectue la demande “ de la part ” du client, indiquant au serveur de clés l’UID réel du client. Règles d’authentification L’authentification sur NFS sécurisé est basée sur la capacité d’un expéditeur à chiffrer l’heure courante, que le destinataire peut déchiffrer et comparer avec sa propre horloge. Ce processus suppose : • Que les deux agents soient d’accord sur l’heure, • Qu’ils utilisent la même clé de chiffrement DES. Accord sur l’heure Si le réseau utilise la synchronisation d’horloge, le démon timed assure la synchronisation des horloges client et serveur. Sinon, le démon détermine l’heure sur la base de l’horloge du serveur. Il détermine l’heure du serveur avant d’ouvrir la session RPC, calcule le décalage entre son horloge et celle du serveur, et règle son horloge en conséquence. Si, au cours d’une session RPC, les horloges viennent à être désynchronisées au point que le serveur commence à rejeter les demandes client, il appartient au client de réitérer le réglage. Accord sur la clé DES Client et serveur déterminent la clé de chiffrement DES à l’aide du chiffrement par clé publique. Pour tout couple client A et serveur B, il existe une clé que seuls A et B peuvent déduire. Cette clé est appelée clé commune. Le client déduit la clé commune par la formule : K AB = PK @B>B @T>SK A K étant la clé commune, PK la clé publique et SK la clé privée, chaque clé étant sur 128 bits. Le serveur déduit la clé commune à l’aide de la formule : K AB = PK @B>A @T>SK B Le calcul de cette clé commune, dans lequel intervient la clé privée de chacun, ne peut être effectué que par le client et le serveur concernés. Cette clé ayant 128 bits et DES utilisant une clé de 56 bits, le client et le serveur extraient 56 bits de la clé commune pour constituer la clé DES. 13-4 Guide de sécurité Processus d’authentification Lorsqu’un client souhaite ”parler” à un serveur, il génère de façon aléatoire une clé, utilisée pour chiffrer les horodatages. Cette clé est appelée clé de conversation (CK). Le client chiffre cette clé via la clé DES commune (voir “ Règles d’authentification ”, page 13-4) et l’envoie au serveur dans la première transaction RPC. La figure suivante illustre ce processus. Figure 16. Processus d’authentification Cette figure illustre le processus d’authentification, décrit dans le texte. Cette figure montre le client A, qui se connecte au serveur B. Le terme K (dans CK) signifie que CK est chiffré à l’aide de la clé DES commune K. Dans la première demande, l’identification RPC du client contient son nom (A), la clé de conversation (CK) et la variable win (window) chiffrée via CK (dont la valeur par défaut est de 30 minutes). Le vérificateur client dans la première demande contient l’horodatage chiffré et un vérificateur chiffré de la fenêtre spécifiée, win + 1. Ce dernier vérificateur rend encore plus difficile de deviner la bonne identification, la sécurité en est accrue d’autant. Après authentification du client, le serveur enregistre dans une table les éléments suivants : • Le nom du client, A • La clé de conversation, CK • La fenêtre, • l’horodatage. Le serveur n’accepte que les horodatages postérieurs au dernier reçu, aussi les transactions répétées sont–elles rejetées. Le serveur renvoie au client dans le vérificateur un ID index dans la table d’authentification, ainsi que l’horodatage du client moins un, chiffrée avec CK. Le client sait alors que seul le serveur peut avoir envoyé ce vérificateur, car il est le seul à connaître l’horodatage envoyé par le client. La soustraction à l’horodatage qu’il n’est plus valide et ne peut plus être réutilisé comme vérificateur de client. Après la première transaction RPC, le client envoie juste son ID et un horodatage chiffré au serveur, lequel lui renvoie l’horodatage moins 1, chiffré par CK. Network File System (NFS) Security 13-5 Nom des entités réseau pour l’authentification DES L’authentification DES se base sur les noms réseau (net names). Les paragraphes suivants traitent du mode de traitement de l’authentification DES par NIS. Pour des détails sur le traitement par NIS+ de l’authentification DES, consultez le manuel AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. Un net name est une chaîne de caractères imprimables destinés à l’identification. Les clés secrètes et publiques sont stockées par nom net plutôt que par nom d’utilisateur. La mappe netid.byname place le nom net dans un UID local et une liste d’accès de groupe. Les noms d’utilisateur sont uniques dans un domaine. Les noms net sont formés par concaténation des ID système et utilisateur avec les noms de domaine NIS et Internet. Pour nommer les domaines, optez pour la convention qui consiste à ajouter le nom Internet du domaine (com, edu, gov, mil) à son nom local. Les noms net sont attribués aux machines et aux utilisateurs. Le nom net d’une machine est formé à peu près comme celui d’un utilisateur. Par exemple, un machine nommée hal dans le domaine eng.ibm.com possède le nom net unix.hal@eng.ibm.com. Une authentification correcte des machines est essentielle, surtout lorsqu’il s’agit de machines sans disque qui nécessitent un accès total à leur répertoire personnel dans le réseau. Pour authentifier les utilisateurs d’un domaine distant, insérez les entrées correspondantes dans deux bases de données NIS : une entrée pour leurs clés publiques et privées, l’autre pour le mappage UID local et liste d’accès groupe. Les utilisateurs du domaine distant peuvent alors accéder à tous les services du réseau local (NFS, connexion à distance, etc.). Fichier /etc/publickey Le fichier /etc/publickey contient les noms et les clés publiques utilisées par NIS et NIS+ pour créer la mappe publickey. La mappe publickey assure la sécurité du réseau. Chaque entrée du fichier est constituée du nom d’un utilisateur du réseau (référençant un utilisateur ou un hôte), suivi de la clé publique de l’utilisateur (en hexadécimal), d’un signe deux points et de la clé privée chiffrée de l’utilisateur (également en hexadécimal). Par défaut, l’unique utilisateur inscrit dans le fichier /etc/publickey est nobody. N’utilisez pas un éditeur de texte pour modifier le fichier /etc/publickey, car il contient des clés de chiffrement. Si vous devez modifier le fichier /etc/publickey, passez plutôt par la commande chkey ou newkey. Remarques sur l’amorçage des systèmes à clé publique Lorsque vous réamorcez une machine après une coupure de courant, toutes les clés privées stockées sont perdues et aucun processus ne peut accéder aux services sécurisés du réseau (tel le montage d’un NFS). Les processus root peuvent se poursuivre, sous réserve que quelqu’un puisse indiquer le mot de passe qui déchiffre la clé privée de l’utilisateur root. La solution est de stocker la clé privée de l’utilisateur root déchiffrée dans un fichier accessible par le serveur de clés. Tous les appels setuid n’aboutissent pas. Par exemple, si setuid est appelée par le propriétaire A, qui ne s’est pas reconnecté depuis le réamorçage de la machine, elle ne peut accéder aux services réseau sécurisés en tant que A. Toutefois, la plupart des appels setuid sont la propriété de l’utilisateur root dont la clé privée est toujours enregistrée au moment de l’amorçage. 13-6 Guide de sécurité Remarques sur les performances de NFS sécurisé Travailler sous NFS sécurisé n’est pas sans incidence sur les performances du système. • Pour commencer, le client et le serveur doivent tous deux calculer la clé commune. Ce calcul demande environ 1 seconde. Autrement dit, il faut environ 2 secondes pour établir la connexion RPC initiale, le client et le serveur ayant tous deux à effectuer cette opération. Une fois cette connexion établie, le serveur conserve le résultat de l’opération en mémoire cache, ce qui évite de recalculer la clé à chaque fois. • Chaque transaction RPC nécessite les opérations de chiffrement suivantes : 1. Le client chiffre l’horodatage de la demande. 2. Le serveur la déchiffre. 3. Le serveur chiffre l’horodatage de la réponse. 4. Le client la déchiffre. Les performances du système étant diminuées par NFS, évaluez les avantages d’une sécurité accrue ainsi que les besoins de performances. Administration de NFS sécurisé Vérifiez les points suivants pour vous assurer que NFS fonctionne correctement. • Lorsque vous montez un système de fichiers sur un client, en spécifiant –secure, le nom du serveur doit correspondre au nom d’hôte du serveur tel qu’il apparaît dans le fichier /etc/hosts. Si un serveur de noms sert à la résolution des noms d’hôte, vérifiez que les informations hôte renvoyées par ce serveur correspondent à l’entrée du fichier /etc/hosts. Faute de quoi, des erreurs d’authentification risquent de se produire, car les noms net des machines sont basés sur les entrées principales du fichier /etc/hosts, et que c’est le nom net qui sert à l’accès aux clés de la mappe publickey. • Ne panachez pas montages et exportations sécurisés et non sécurisés : l’accès aux fichiers risque d’être mal déterminé. Ainsi, si une machine client monte un système de fichiers sécurisé sans option secure ou un système non sécurisé avec option secure, les utilisateurs y accéderont en tant que nobody, et non en tant qu’eux–mêmes. Cette situation se produit également si un utilisateur inconnu de NIS ou NIS+ tente de créer ou de modifier des fichiers d’un système sécurisé. • NIS doit diffuser une nouvelle mappe à chaque émission des commandes chkey et newkey, aussi ne lancez ces commandes que lorsque le réseau est peu chargé. • Ne supprimez ni le fichier /etc/keystore ni le fichier /etc/.rootkey. Si vous réinstallez, déplacez ou mettez à jour une machine, sauvegardez les fichiers /etc/keystore et /etc/.rootkey. • Dites aux utilisateurs d’employer la commande yppasswd plutôt que la commande passwd pour changer de mot de passe : mots de passe et clés privées resteront synchronisés. • La commande login ne recherchant pas de clés dans la mappe publickey pour le démon keyserv, l’utilisateur doit exécuter la commande keylogin. Vous pouvez placer la commande keylogin dans le fichier profile de chaque utilisateur pour qu’elle soit exécutée automatiquement. Notez que la commande keylogin demande à l’utilisateur de donner son mot de passe une deuxième fois. Network File System (NFS) Security 13-7 • Lorsque vous générez les clés de l’utilisateur root au niveau de chaque hôte, via la commande newkey–h ou chkey, vous devez exécuter la commande keylogin pour transmettre les nouvelles clés au démon keyserv. Les clés sont stockées dans le fichier /etc/.rootkey, lu par le démon keyserv chaque fois qu’il est lancé. • Vérifiez régulièrement que les démons yppasswdd et ypupdated sont actifs sur le serveur maître NIS. Ces démons sont requis pour maintenir la mappe publickey. • Vérifiez régulièrement que le démon keyserv est actif sur toutes machines sous NFS sécurisé. Configuration de NFS sécurisé Pour configurer NFS sécurisé sur les serveurs NIS maître et esclaves, passez par l’application Web-based System Manager ou procédez comme suit. Pour des détails sur l’utilisation de NFS avec NIS+, consultez AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. 1. Sur le serveur NIS maître, créez une entrée pour chaque utilisateur dans le fichier NIS /etc/publickey, par la commande newkey. Cette commande propose deux options. – Pour un utilisateur standard, entrez : smit newkey ou newkey –u nomutilisteur Pour un utilisateur root sur une machine hôte, entrez : newkey –h nomhôte – Les utilisateurs peuvent également définir leurs propres clés publiques via la commande chkey ou newkey. 2. Créez la mappe NIS publickey suivant les instructions du manuel AIX 5L Version 5.2 Network Information Service (NIS and NIS+) Guide. La mappe correspondante publickey.byname ne doit résider que sur les serveurs. 3. Annulez la mise en commentaire des strophes suivantes dans le fichier /etc/rc.nfs: #if [ –x /usr/sbin/keyserv ]; then # startsrc –s keyserv #fi #if [ –x /usr/lib/netsvc/yp/rpc.ypupdated –a –d /etc/yp/‘domainname‘ ]; then # startsrc –s ypupdated #fi #DIR=/etc/passwd #if [ –x /usr/lib/netsvc/yp/rpc.yppasswdd –a –f $DIR/passwd ]; then # startsrc –s yppasswdd #fi 4. Lancez les démons keyserv, ypupdated et yppasswdd à l’aide de la commande startsrc. Pour configurer NFS sécurisé sur des clients NIS, lancez le démon keyserv à l’aide de la commande startsrc. 13-8 Guide de sécurité Exportation d’un système de fichiers via NFS sécurisé Vous pouvez exporter un NFS sécurisé via l’application Web-based System Manager, ou utiliser l’une des procédures suivantes. • Pour exporter un fichier NFS sécurisé via SMIT : 1. Vérifiez que NFS est actif en lançant la commande lssrc –g nfs. La sortie doit indiquer que les démons nfsd et rpc.mountd sont actifs. 2. Vérifiez que la mappe publickey existe et que le démon keyserv est actif. Pour en savoir plus, reportez–vous à Configuration de NFS sécurisé, page 13-8. 3. Lancez le raccourci smit mknfsexp. 4. Renseignez les zones Chemin d’accès du répertoire à exporter, Mode d’accès au répertoire exporté et Exporter répertoire maintenant, initsyst. ou les deux. Spécifiez yes à la rubrique Utilisation de l’option de montage SECURE. 5. Modifiez les autres caractéristiques ou acceptez les valeurs par défaut. 6. Quittez SMIT. Si le fichier /etc/exports n’existe pas, il est créé. 7. Répétez les étapes 3 à 6 pour chaque répertoire à exporter. • Pour exporter un système de fichiers NFS sécurisé à l’aide d’un éditeur de texte : 1. Ouvrez le fichier /etc/exports avec votre éditeur favori. 2. Créez une entrée pour chaque répertoire à exporter, en indiquant son chemin d’accès complet. Répertoriez tous les répertoires à exporter en commençant à la marge gauche. Ne spécifiez pas de répertoire qui en contient un autre déjà exporté. Pour en savoir plus sur la syntaxe des entrées dans le fichier /etc/exports, reportez–vous à la documentation du fichier /etc/exports. 3. Sauvegardez et fermez le fichier /etc/exports. 4. Si NFS est actif, entrez : /usr/sbin/exportfs –a –a indique à la commande exportfs d’envoyer au noyau toutes les informations du fichier /etc/exports. • Pour exporter temporairement un système de fichiers NFS (c’est à dire sans modifier le fichier /etc/exports), entrez : exportfs –i –o secure / dirname dirname étant le nom du système de fichiers à exporter. La commande exportfs –i spécifie de ne pas rechercher le répertoire dans le fichier /etc/exports, et que toutes les options sont directement issues de la ligne de commande. Network File System (NFS) Security 13-9 Montage d’un système de fichiers NFS sécurisé Procédez comme suit pour monter explicitement un répertoire NFS sécurisé : 1. Vérifiez que le serveur NFS a exporté le répertoire à l’aide de la commande : showmount –e ServerName ServerName étant le nom du serveur NFS. Cette commande affiche le nom des répertoires exportés du serveur NFS. Si le répertoire à monter ne s’y trouve pas, exportez–le. 2. Définissez le point de montage local par la commande mkdir. La réussite d’un montage NFS suppose la présence d’un répertoire servant de point de montage. Ce répertoire doit être vide. La création de ce point de montage ne diffère en rien de celle de n’importe quel répertoire, et aucun attribut particulier ne doit être spécifié. 3. Vérifiez que la mappe publickey existe et que le démon keyserv est actif. Pour en savoir plus, reportez–vous à Configuration de NFS sécurisé, page 13-8. 4. Entrez : mount –o secure ServerName : /remote/directory /local/directory ServerName étant le nom du serveur NFS, /remote/directory, le répertoire du serveur NFS que vous souhaitez monter et /local/directory le point de montage sur le client NFS. Remarque : Seul un utilisateur root peut monter un système de fichiers NFS sécurisé. 13-10 Guide de sécurité Chapitre 14. EIM (Enterprise Identity Mapping) Les environnements réseau actuels se composent d’un groupe complexe de systèmes et d’applications. Il est donc nécessaire de gérer plusieurs registres d’utilisateurs. La présence de plusieurs registres d’utilisateurs entraîne rapidement un important problème administratif qui affecte les utilisateurs, les administrateurs et les développeurs. EIM permet aux administrateurs et aux développeurs de traiter ce problème simplement. Ce chapitre décrit les problèmes et les méthodes actuelles, y compris la méthode EIM. Gestion de plusieurs registres d’utilisateurs De nombreux administrateurs gèrent des réseaux qui incluent différents systèmes et serveurs, ayant chacun sa propre méthode de gestion des utilisateurs à l’aide de différents registres. Sur ces réseaux complexes, les administrateurs doivent gérer les identités et les mots de passe de chaque utilisateur sur plusieurs systèmes. Ils doivent souvent également synchroniser ces identités et mots de passe. Les utilisateurs doivent se souvenir de leurs nombreux mots de passe et identités et assurer leur synchronisation. Les administrateurs perdent souvent un temps précieux à résoudre les échecs de connexions et à redéfinir les mots de passe oubliés. Le problème que constitue la gestion de plusieurs registres d’utilisateurs affecte aussi les développeurs d’applications hétérogènes ou en plusieurs couches. D’importantes données d’entreprise sont réparties sur différents types de systèmes, qui ont chacun leurs propres registres d’utilisateurs. Les développeurs doivent donc créer des registres d’utilisateurs propriétaires et associer des codes de sécurité à leurs applications. Ils résolvent ainsi leur problème, mais augmentent la charge de travail des utilisateurs et administrateurs. Méthodes actuelles Il existe plusieurs méthodes pour résoudre les problèmes inhérents à la gestion de plusieurs registres d’utilisateurs, mais aucune ne fournit une solution complète. Par exemple, le protocole LDAP fournit une solution de registres d’utilisateurs répartis. Cependant, pour utiliser de telles solutions, les administrateurs doivent gérer un registre d’utilisateurs et un code de sécurité supplémentaires, ou remplacer des applications conçues pour les autres registres. Ils doivent alors gérer plusieurs systèmes de sécurité pour des ressources individuelles, augmentant ainsi leur charge de travail, ainsi que les failles potentielles au niveau de la sécurité. Lorsque plusieurs systèmes supportent une même ressource, il est fréquent de modifier une autorité pour un système et d’oublier de la modifier pour les autres systèmes. Par exemple, la sécurité peut être contournée lorsqu’un utilisateur se voit refuser l’accès de manière appropriée par une interface, mais qu’il bénéficie de l’accès via d’autres interfaces. Une fois leur travail terminé, les administrateurs comprennent qu’ils n’ont pas complètement réglé le problème. Généralement, les entreprises ont trop investi dans leurs registres d’utilisateurs actuels et dans les codes de sécurité associés pour que l’utilisation de ce type de solution soit pratique. La création d’un autre registre d’utilisateurs et du code de sécurité associé règle le problème du développeur, mais pas celui des utilisateurs ni des administrateurs. Une autre solution consiste à utiliser une méthode unique de connexion. Plusieurs produits permettent aux administrateurs de gérer des fichiers contenant tous les mots de passe et identités des utilisateurs. Cependant, cette méthode comporte plusieurs inconvénients : EIM (Enterprise Identity Mapping) 14-1 • Elle ne règle que l’un des problèmes des utilisateurs. Elle leur permet de se connecter à plusieurs systèmes en fournissant une identité et un mot de passe, mais ils doivent toujours gérer leurs mots de passe et les utiliser sur d’autres systèmes. • Elle créé un nouveau problème car des mots de passe déchiffrables ou non chiffrés sont stockés dans ces fichiers. Les mots de passe ne doivent jamais être stockés dans des fichiers non chiffrés ou accessibles facilement par d’autres personnes, y compris les administrateurs. • Elle ne résout pas les problèmes des développeurs d’applications tierces hétérogènes ou à plusieurs couches. Les développeurs doivent toujours donc créer des registres d’utilisateurs propriétaires pour leurs applications. Malgré ces inconvénients, des entreprises utilisent ces méthodes car elle simplifient en partie la gestion de plusieurs registres d’utilisateurs. Utilisation de l’EIM L’architecture EIM décrit les relations entre individus ou entités (tels que des serveurs de fichiers et d’impressions) d’une entreprise, et leurs nombreuses identités au sein de l’entreprise. EIM fournit un ensemble d’API permettant aux applications de poser des questions sur ces relations. Par exemple, connaissant l’identité utilisateur d’une personne dans un registre d’utilisateurs, vous pouvez connaître son identité dans un autre registre. Si l’utilisateur s’est authentifié avec une identité et que vous pouvez mapper cette identité avec l’identité correspondante d’un autre registre, l’utilisateur n’a pas besoin de fournir à nouveau de données d’identification. Il suffit de connaître l’identité correspondant à cet utilisateur dans un autre registre. EIM fournit un fonction généralisée de mappage d’identité dans l’entreprise. La possibilité de trouver la correspondance entre les identités d’un utilisateur dans différents registres comporte plusieurs avantages. Les applications peuvent utiliser un registre pour l’authentification et un autre registre pour les autorisations. Par exemple, un administrateur peut mapper une identité SAP (ou SAP pourrait faire le mappage lui–même) pour accéder aux ressources SAP. Le mappage d’identités nécessite que les administrateurs exécutent la procédure suivante : 1. Création d’identifiants EIM représentant les personnes ou entités dans l’entreprise. 2. Création de définitions de registres EIM décrivant les registres d’utilisateurs de l’entreprise. 3. Définition des relations entre les identités des utilisateurs dans ces registres et les identifiants EIM créés. Il est inutile de modifier les codes des registres existants. Il n’est pas nécessaire de procéder au mappage de toutes les identités d’un registre d’utilisateurs. EIM permet des mappages one–to–many (c’est à dire un utilisateur qui a plusieurs identités dans un même registre). EIM permet aussi des mappages many–to–one (c’est à dire plusieurs utilisateurs partageant la même identité dans un même registre), bien qu’ils ne soient pas recommandés pour des raisons de sécurité. Un administrateur peut représenter tout type de registre d’utilisateurs dans EIM. EIM ne nécessite pas de copier des données dans un nouveau répertoire et d’essayer d’assurer la synchronisation des deux exemplaires. Les seules nouvelles données inhérentes à EIM sont les informations sur les relations. Les administrateurs les placent dans un répertoire LDAP, pouvant ainsi les gérer à un emplacement et disposer de copies là où ces informations sont utiles. Pour en savoir plus sur l’EIM, reportez–vous au site suivant : http://publib.boulder.ibm.com/eserver/ 14-2 Guide de sécurité Troisième partie. Annexes Annexes PART 3 - 1 PART 3 - 2 Guide de sécurité Annexe A. Vérification de la sécurité Cette annexe indique les vérifications de sécurité à effectuer sur un système nouveau ou existant. Bien que cette liste ne soit pas exhaustive, elle peut servir de base à la création d’une liste complète pour votre environnement. 1. Lors de l’installation d’un nouveau système, installez AIX depuis un support de base sécurisé. Exécutez les procédures suivantes au moment de l’installation : – N’installez pas d’interfaces graphiques tels que CDE, GNOME ou KDE sur des serveurs. – Installez les correctifs de sécurité requis et les correctifs de niveau de maintenance recommandés. Reportez–vous au site des correctifs ESCALA (http://techsupport.services.ibm.com/server/fixes?view=pSeries) pour obtenir les nouvelles notes de service et informations sur les correctifs. – Sauvegardez le système au terme de l’installation initiale et stockez la sauvegarde en lieu sûr. 2. Dressez des listes de contrôle des accès pour les fichiers et répertoires réservés. 3. Désactivez les comptes utilisateur et système qui ne sont pas nécessaires, tels que démon, bin, sys, adm, lp ou uucp. Il est déconseillé de supprimer des comptes car vous perdriez des informations sur eux, telles que les ID utilisateur et noms d’utilisateurs, qui peuvent toujours être associés à des données dans les sauvegardes système. Si un utilisateur est créé avec un ID utilisateur qui a été supprimé et si la sauvegarde système est restaurée sur le système, le nouvel utilisateur risque d’avoir un accès non souhaité au système restauré. 4. Consultez régulièrement les fichiers /etc/inetd.conf, /etc/inittab, /etc/rc.nfs et /etc/rc.tcpip et retirez tous les démons et services qui ne sont pas nécessaires. 5. Vérifiez que les droits d’accès aux fichiers suivants sont définis correctement : –rw–rw–r–– root –rw–rw–r–– root –rw––––––– root –rw–r––r–– root –rw–r––r–– root –rw–rw–––– root system /etc/filesystems system /etc/hosts system /etc/inittab system /etc/vfs system /etc/security/failedlogin audit /etc/security/audit/hosts 6. Désactivez la fonction de connexion à distance du compte root. Ce compte ne doit pouvoir se connecter que depuis la console système. 7. Activez l’audit du système. Pour en savoir plus, reportez–vous à Audit, page 3-1. 8. Activez une politique de contrôle des connexions. Pour en savoir plus, reportez–vous à la section Fenêtre de connexion, page 1-17. 9. Désactivez les droits des utilisateurs pour lancer la commande xhost. Pour de plus amples informations, reportez–vous à la section Gestion des problèmes sous X11 et CDE, page 1-21. 10.Empêchez les modifications non autorisées de la variable d’environnement PATH. Pour en savoir plus, reportez–vous à la section Variable d’environnement PATH, page 2-10. 11. Désactivez telnet, rlogin, et rsh. Pour en savoir plus, reportez–vous à Sécurité TCP/IP, page 9-1. 12.Créez des contrôles de comptes utilisateur. Pour en savoir plus, reportez–vous à la section Contrôle des comptes utilisateur, page 2-9. Vérification de la sécurité A-1 13.Mettez en place une politique stricte de mots de passe. Pour en savoir plus, reportez–vous à la section Mots de passe, page 2-23. 14.Etablissez des quotas de disque pour les comptes utilisateur. Pour en savoir plus, reportez–vous à la section Reprise après un dépassement de quota, page 2-31. 15.N’autorisez que les comptes d’administration à utiliser la commande su. Contrôlez les journaux de la commande su dans le fichier /var/adm/sulog. 16.Activez le verrouillage d’écran sous X–Windows. 17.Limitez l’accès aux commandes cron et at aux seuls comptes ayant besoin d’y accéder. 18.Créez un alias de la commande ls pour afficher les fichiers et les caractères cachés dans un nom de fichier. 19.Créez un alias de la commande rm pour éviter toute suppression involontaire de fichiers du système. 20.Désactivez les services réseau qui ne sont pas nécessaires. Pour en savoir plus, reportez–vous à la section Services réseau, page 10-1. 21.Effectuez des sauvegardes système régulières et vérifiez leur intégrité. 22.Inscrivez–vous aux listes de distribution des e–mails ayant trait à la sécurité. A-2 Guide de sécurité Annexe B. Sources d’informations sur la sécurité Cette annexe fournit des informations sur les ressources concernant la sécurité. Attention, les adresses de sites Web peuvent être modifiées ou devenir obsolètes sans préavis. Sites Web concernant la sécurité Virtual Private Networks (VPN) AIX : http://www–1.ibm.com/servers/aix/products/ibmsw/security/vpn/index.html CERIAS (Center for Education and Research in Information Assurance and Security) : http://www.cerias.purdue.edu/ CERT (Computer Emergency Response Team, Carnegie Mellon University) : http://www.cert.org CIAC (Computer Incident Advisory Capability) : http://ciac.llnl.gov Computer Security Resource Clearinghouse : http://csrc.ncsl.nist.gov/ FIRST (Forum of Incident Response and Security Teams) : http://www.first.org/ eServer Security Planner : http://www–1.ibm.com/servers/security/planner/ Solutions de sécurité : http://www–3.ibm.com/security/index.shtml OpenSSH : http://www.openssh.org/ Listes de diffusion de sécurité CERT : http://www.cert.org/contact_cert/certmaillist.html Messages techniques concernant les logiciels : http://techsupport.services.ibm.com/server/listserv comp.security.unix : news:comp.security.unix Références de sécurité en ligne FAQ sur les concepts de critères communs : http://www.radium.ncsc.mil/tpep/process/faq–sect3.html Bibliothèque Rainbow : http://www.radium.ncsc.mil/tpep/library/rainbow/ FAQ : org: http://www.faqs.org/faqs/computer–security/ Centre d’informations ESCALA : http://www.bull.com/servers/open/ Sources d’informations sur la sécurité B-1 B-2 Guide de sécurité Annexe C. Résumé des principaux services système AIX Le tableau suivant répertorie les services système les plus courants sous AIX. Ce tableau servira de point de départ pour la sécurisation de votre système. Avant de commencer la sécurisation de votre système, sauvegardez tous vos fichiers de configuration, notamment : • /etc/inetd.conf • /etc/inittab • /etc/rc.nfs • /etc/rc.tcpip Service Démon Lancé par Fonction inetd/bootps inetd /etc/inetd.conf services bootp pour clients sans disque Commentaires • Nécessaire pour l’environnement NIM (Network Installation Management) et le démarrage à distance des systèmes • Fonctionne avec tftp • Désactivez dans la plupart des cas inetd/chargen inetd /etc/inetd.conf générateur de caractères (tests seulement) • Disponible en tant que service TCP et UDP • Attaques possibles par refus de service • Désactivez à moins que vous ne testiez votre réseau inetd/cmsd inetd /etc/inetd.conf service de calendrier (comme • Exécuté en tant que root, utilisé par CDE) donc problèmes de sécurité • Désactivez à moins que vous n’ayez besoin de ce service avec CDE • Désactivez sur les serveurs de bases de données back–office Résumé des principaux services système AIX C-1 inetd/comsat inetd /etc/inetd.conf Signale les messages électroniques entrants • Exécuté en tant que root, donc problèmes de sécurité • Rarement nécessaire • Désactivez inetd/daytime inetd /etc/inetd.conf service de date obsolète (tests seulement) • Exécuté en tant que root • Disponible en tant que service TCP et UDP • Possibilités d’attaques PING par refus de service • Service obsolète utilisé seulement pour les tests • Désactivez inetd/discard inetd /etc/inetd.conf service /dev/null (tests seulement) • Disponible en tant que service TCP et UDP • Utilisé lors d’attaques par refus de service • Service obsolète utilisé seulement pour les tests • Désactivez inetd/dtspc inetd /etc/inetd.conf Commande de sous–processus CDE • Ce service est lancé automatiquement par le démon inetd en réponse à une demande d’un client CDE de lancer un processus sur l’hôte du démon. Vulnérable aux attaques • Désactivez sur les serveurs de back–office sans CDE • CDE doit pouvoir fonctionner sans ce service • Désactivez à moins que vous n’en ayez absolument besoin C-2 Guide de sécurité inetd/echo inetd /etc/inetd.conf service echo (tests seulement) • Disponible en tant que service UDP et TCP • Utilisé lors d’attaques Smurf ou par refus de service • Utilisé comme echo sur un autre utilisateur pour passer un pare–feu ou lancer une attaque de données • Désactivez inetd/exec inetd /etc/inetd.conf service d’exécution à distance • Exécuté en tant que root, donc dangereux • Nécessite un ID utilisateur et un mot de passe, qui sont transmis sans protection • Un service à haut risque d’espionnage • Désactivez inetd/finger inetd /etc/inetd.conf informations sur les utilisateurs • Exécuté en tant que root, donc dangereux • Révèle des informations sur vos systèmes et utilisateurs • désactivez inetd/ftp inetd /etc/inetd.conf protocole de transfert de fichiers • Exécuté en tant qu’utilisateur root • ID utilisateur et mot de passe transmis sans protection. Risque d’espionnage • Désactivez ce service et utilisez un shell sécurisé du domaine public inetd/imap2 inetd /etc/inetd.conf Protocole d’accès au courrier électronique • Vérifiez que vous utilisez la dernière version de ce serveur • Nécessaire uniquement sur un serveur de messagerie. Sinon, désactivez • ID utilisateur et mot de passe transmis sans protection Résumé des principaux services système AIX C-3 inetd/klogin inetd/kshell inetd inetd /etc/inetd.conf /etc/inetd.conf Connexion Kerberos • Activé si votre site utilise l’authentification Kerberos Shell Kerberos • Activé si votre site utilise l’authentification Kerberos inetd/login inetd /etc/inetd.conf service rlogin • Susceptible d’être victime d’intrusion IP ou DNS • Les données, y compris les ID utilisateur et mots de passe, sont transmises sans protection. • Exécuté en tant que root, donc dangereux • Utilisez un shell sécurisé plutôt que ce service inetd/netstat inetd /etc/inetd.conf reporting de l’état du réseau • Susceptible de révéler des informations réseau aux hackers en cas d’exécution sur votre système • Désactivez inetd/ntalk inetd /etc/inetd.conf Permet aux utilisateurs de dialoguer entre eux • Exécuté en tant que root, donc dangereux • Pas nécessaire sur les serveurs de production ou de back–office • Désactivez à moins que vous en ayez absolument besoin inetd/pcnfsd inetd /etc/inetd.conf services de fichiers NFS PC • Désactivez ce service s’il n’est pas en cours d’utilisation • Si vous avez besoin d’un service similaire, envisagez Samba, car le démon pcnfsd englobe les définitions SMB de Microsoft C-4 Guide de sécurité inetd/pop3 inetd /etc/linetd.conf Protocole POP (Post Office Protocol) • Les ID utilisateur et les mots de passe sont transmis sans protection • Nécessaire si votre système est un serveur de messagerie et si certains de vos clients utilisent des applications uniquement compatibles POP3 • Préférez IMAP si vos clients l’utilisent, ou bien POP3s. Ce service dispose d’un tunnel SSL (Secure Socket Layer) • Désactivez si vous n’être pas un serveur de messagerie ou n’avez pas de client nécessitant des services POP inetd/rexd inetd /etc/inetd.conf exécution à distance • Exécuté en tant que root, donc dangereux • Associé à la commande on • Désactivez ce service • Utilisez plutôt rsh et rshd inetd/quotad inetd /etc/inetd.conf rapports sur les quotas de fichiers • Nécessaire uniquement (pour clients NFS) en cas d’exécution de services de fichiers NFS. • Désactivez ce service à moins que vous ne deviez répondre à la commande quota • Si vous devez utiliser ce service, effectuez les mises à jour et correctifs inetd/rstatd inetd /etc/inetd.conf Serveur Kernel Statistics • Si vous devez contrôler des systèmes, utilisez SNMP et désactivez ce service • Nécessaire si vous devez utiliser la commande rup Résumé des principaux services système AIX C-5 inetd/rusersd inetd /etc/inetd.conf informations sur l’utilisateur connecté • Un service non indispensable. Désactivez • Exécuté en tant que root, donc dangereux • Révèle la liste des utilisateurs en cours sur votre système ; associé à rusers inetd/rwalld inetd /etc/inetd.conf écriture à tous les utilisateurs • Exécuté en tant que root, donc dangereux • Vous devrez peut–être conserver ce service si vos systèmes comptent des utilisateurs interactifs • Ce n’est pas le cas si vos systèmes sont des serveurs de production ou de bases de données • Désactivez inetd/shell inetd /etc/inetd.conf service rsh • Désactivez si possible. Remplacez par un shell sécurisé • Si vous devez utiliser ce service, utilisez TCP Wrapper pour empêcher l’espionnage et limiter les risques • Nécessaire pour xhier inetd/sprayd inetd /etc/inetd.conf tests spray RPC • Exécuté en tant que root, donc dangereux • Peut être nécessaire pour diagnostiquer les problèmes de réseau NFS • Désactivez si vous n’utilisez pas NFS inetd/systat inetd /etc/inted.conf rapport d’état ”ps –ef” • Permet à des sites distants d’afficher l’état des processus sur votre système • Service désactivé par défaut. Vérifiez régulièrement qu’il n’a pas été activé. C-6 Guide de sécurité inetd/talk inetd /etc/inetd.conf établissement d’un partage d’écran • Service non nécessaire entre 2 utilisateurs • Utilisé avec la commande du réseau talk • Fournit le service UDP sur le port 517 • Désactivez à moins que vous ayez besoin de plusieurs sessions de chat interactives pour utilisateur UNIX inetd/ntalk inetd /etc/inetd.conf partage d’écran ”new talk” entre 2 utilisateurs du réseau • Service non nécessaire • Utilisé avec la commande talk • Fournit un service UDP sur le port 517 • Désactivez à moins que vous ayez besoin de plusieurs sessions de chat interactives pour utilisateur UNIX inetd/telnet inetd /etc/inetd.conf service telnet • Sessions de connexion à distance, ID utilisateur et mots de passe transmis sans protection • Si possible, désactivez ce service et utilisez un shell sécurisé pour l’accès à distance inetd/tftp inetd /etc/inetd.conf transfert de fichiers • Fournit un service UDP sur le port 69 • Exécuté en tant que root, risque d’intrusion • Utilisé par NIM • Désactivez à moins que vous utilisiez NIM ou que vous deviez démarrer un poste sans disque Résumé des principaux services système AIX C-7 inetd/time inetd /etc/inetd.conf service de date obsolète (tests seulement) • Fonction interne à inetd, utilisée par la commande rdate. • Disponible en tant que service TCP et UDP • Parfois utilisée pour synchroniser les horloges lors de l’amorçage • Service obsolète. Remplacez par ntpdate • Désactivez après avoir testé vos systèmes (amorçage/redémarrage) sans ce service et constaté leur bon fonctionnement inetd/ttdbserver inetd /etc/inetd.conf serveur de bases de données tool–talk (pour CDE) • rpc.ttdbserverd est exécuté en tant que root, donc problème de sécurité • Décrit comme requis pour CDE, mais CDE peut fonctionner sans • A ne pas utiliser sur des serveurs back–office ou sur des systèmes dont il faut assurer la sécurité inetd/uucp inetd /etc/inetd.conf réseau UUCP • Désactivez à moins que vous ayez une application NIM qui utilise UUCP inittab/dt init script /etc/rc.dt dans /etc/inittab connexion d’un poste de bureau à • Lance le serveur X11 sur l’environnement la console CDE • Prend en charge le protocole xdcmp (X11 Display Manager Control Protocol) pour que les autres postes X11 puissent se connecter à la même machine • Service à n’utiliser que sur les stations de travail personnelles. A ne pas utiliser pour des systèmes de back–office C-8 Guide de sécurité inittab/dt_nogb inittab/httpdlite init init /etc/inittab /etc/inittab connexion bureau à l’environnement CDE (pas d’amorçage graphique) serveur Web pour la commande docsearch • Pas d’affichage graphique avant que le système ne soit entièrement démarré • Mêmes problèmes qu’avec inittab/dt • Serveur Web par défaut pour le moteur docsearch • Désactivez à moins que votre machine soit un serveur de documentation inittab/i4ls init /etc/inittab serveurs de gestion des licences • Activez pour les serveurs de développement • Désactivez pour les serveurs de production • Activez pour les serveurs de bases de données back–office avec des conditions de licence • Gère les compilateurs, logiciels de bases de données, ou autres produits sous licence inittab/imnss init /etc/inittab moteur de recherche pour ”docsearch” • Elément du serveur Web par défaut pour le moteur docsearch • Désactivez à moins que votre machine soit un serveur de documentation inittab/imqss init /etc/inittab moteur de recherche pour ”docsearch” • Elément du serveur Web par défaut pour le moteur docsearch • Désactivez à moins que votre machine soit un serveur de documentation inittab/lpd init /etc/inittab interface d’imprimante parallèle BSD • Accepte les travaux d’impression d’autres systèmes • Vous pouvez désactiver ce service et continuer à envoyer des travaux au serveur d’impression • Désactivez une fois que vous êtes sûr que les impressions ne sont pas affectées Résumé des principaux services système AIX C-9 inittab/nfs init /etc/inittab Système de fichiers NFS/Services d’informations réseau • services NFS et NIS basés sur UDP/RPC • Authentification minimale • Devraient être inutiles sur les serveurs de bases de données back–office • Désactivez pour les serveurs de back–office inittab/piobe init /etc/inittab traitement E/S impressions • Gère la planification, la mise en cache sur disque et l’impression des travaux soumis par qdaemon • Désactivez si vous n’imprimez pas depuis votre système (car vous envoyez des travaux à un serveur) inittab/qdaemon init /etc/inittab démon de file d’attente (pour l’impression) • Soumet des travaux au démon piobe • Désactivez si vous n’imprimez pas depuis votre système inittab/uprintfd init /etc/inittab messages du noyau • Généralement pas nécessaire • Désactivez inittab/writesrv init /etc/inittab écriture de notes vers ttys • Uniquement pour les utilisateurs interactifs de stations de travail UNIX • Service à désactiver pour les serveurs, bases de données back–office et serveurs de développement • Activez pour les stations de travail C-10 Guide de sécurité inittab/xdm init /etc/inittab gestion d’affichage X11 traditionnelle • Ne pas utiliser sur des serveurs de bases de données ou de production back–office • Ne pas utiliser sur des systèmes de développement, à moins que la gestion d’affichage X11 soit requise • Acceptable sur les stations de travail si l’affichage graphique est nécessaire rc.nfs/automountd /etc/rc.nfs systèmes de fichiers à montage • Activez pour les stations automatique de travail si vous utilisez NFS • A ne pas utiliser pour le développement ou des serveurs de back–office rc.nfs/biod rc.nfs/keyserv /etc/rc.nfs /etc/rc.nfs Démon d’E/S par blocs (nécessaire pour les serveurs NFS) serveur de clés RPC sécurisé • N’activez que pour les serveurs NFS • Sinon, désactivez–le, ainsi que nfsd et rpc.mountd • Gère les clés requises pour RPC sécurisé • Important pour NIS+ • Désactivez si vous n’utilisez pas NFS et NIS et NIS+ rc.nfs/nfsd /etc/rc.nfs services NFS (nécessaire pour les serveurs NFS) • Authentification faible • Peut conduire à détruire le contexte de pile • Activez pour les serveurs de fichiers NFS • Sinon, désactivez aussi biod, nfsd et rpc.mountd Résumé des principaux services système AIX C-11 rc.nfs/rpc.lockd /etc/rc.nfs verrouillages de fichiers NFS • Désactivez si vous n’utilisez pas NFS • Désactivez si vous n’utilisez pas de verrouillages de fichiers sur le réseau • Le démon lockd est parmi les 10 principales menaces au classement SANS rc.nfs/rpc.mountd /etc/rc.nfs montages de fichiers NFS (requis pour les serveurs NFS) • Authentification faible • Peut conduire à détruire le contexte de pile • N’activez que pour les serveurs de fichiers NFS • Sinon, désactivez aussi biod, et nfsd rc.nfs/rpc.statd /etc/rc.nfs verrouillages de fichiers NFS (pour • Met en œuvre les les récupérer) verrouillages de fichiers sur NFS • Désactivez si vous n’utilisez pas NFS rc.nfs/rpc.yppassw dd /etc/rc.nfs démon de mots de passe NIS (pour le • Utilisé pour manipuler le maître NIS) fichier local des mots de passe • N’activez que sur le maître NIS rc.nfs/ypupdated /etc/rc.nfs démon de mise à jour NIS (pour esclave NIS) • Reçoit du maître NIS des mappages de bases de données NIS • Nécessaire uniquement sur les esclaves NIS rc.tcpip/autoconf6 /etc/rc.tcpip interfaces IPv6 • Désactivez si vous n’utilisez pas IPV6 rc.tcpip/dhcpcd /etc/rc.tcpip protocole DHCP (client) • Les serveurs back–office ne devraient pas utiliser DHCP. Désactivez ce service • Désactivez si votre hôte n’utilise pas DHCP C-12 Guide de sécurité rc.tcpip/dhcprd /etc/rc.tcpip protocole DHCP (relais) • Recueille des diffusions DHCP et les envoie à un serveur sur un autre réseau • Réplique d’un service trouvé sur les routeurs • Désactivez si vous n’utilisez pas DHCP ou si vous vous chargez de transmettre les informations entre réseaux rc.tcpip/dhcpsd /etc/rc.tcpip protocole DHCP (serveur) • Répond aux requêtes DHCP des clients au moment de l’amorçage. Donne des informations, telles que l’adresse de diffusion, le routeur, le masque réseau, le numéro et le nom IP • Désactivez si vous n’utilisez pas DHCP • Désactivé sur les serveurs de production et de back–office avec les hôtes qui n’utilisent pas DHCP rc.tcpip/dpid2 rc.tcpip/gated /etc/rc.tcpip /etc/rc.tcpip service SNMP obsolète routage par porte entre interfaces • A désactiver si vous n’utilisez pas SNMP • Emule les fonctions d’un router • Désactiver ce service et le remplacer par RIP ou par un routeur rc.tcpip/inetd /etc/rc.tcpip services inetd • Désactivez pour obtenir une meilleure sécurité, mais pas toujours pratique • Sa désactivation entraîne celle des services de shell distants, nécessaires pour certains serveurs Web et de messagerie Résumé des principaux services système AIX C-13 rc.tcpip/mrouted /etc/rc.tcpip routage vers plusieurs destinataires • Emule les fonctions d’un routeur pour l’envoi de paquets à plusieurs destinataires entre segments de réseau • Désactivez ce service. Remplacez par un routeur rc.tcpip/names /etc/rc.tcpip serveur de noms DNS • N’utilisez que si votre machine est un serveur de noms DNS • Désactivez pour les stations de travail, les serveurs de développement et de production rc.tcpip/ndp–host /etc/rc.tcpip hôte IPv6 • Désactivez si vous n’utilisez pas IPV6 rc.tcpip/ndp–router /etc/rc.tcpip routage IPv6 • Désactivez si vous n’utilisez pas IPV6. Envisagez de remplacer IPV6 par un routeur rc.tcpip/portmap /etc/rc.tcpip services RPC • Service requis • Les serveurs RPC s’enregistrent à l’aide du démon portmap. Les clients à la recherche d’un service RPC envoient une requête au démon portmap • Ne désactivez que si vous êtes parvenu à supprimer des services RPC de sorte que le seul restant soit portmap rc.tcpip/routed /etc/rc.tcpip routage RIP entre interfaces • Emule les fonctions d’un router • Désactivez si vous avez un routeur de paquets entre réseaux rc.tcpip/rwhod /etc/rc.tcpip Démon ”who” distant • Recueille et diffuse des données aux autres serveurs du même réseau • Désactivez ce service C-14 Guide de sécurité rc.tcpip/sendmail /etc/rc.tcpip services de messagerie • Exécuté en tant que root, donc dangereux • A l’origine de nombreux problèmes de sécurité • Désactivez si la machine n’est pas utilisée comme serveur de messagerie • Si vous le désactivez, effectuez l’une des actions suivantes : – Placez une entrée dans crontab pour vider la file d’attente. Utilisez la commande /usr/lib/sendmail –q – Configurez les services DNS afin que les messages pour votre serveur arrivent sur un autre système rc.tcpip/snmpd /etc/rc.tcpip SNMP (Simple Network Management Protocol) • Désactivez si vous ne contrôlez pas le système à l’aide d’outils SNMP • SNMP peut être requis sur des serveurs importants, mais rarement sur des stations de travail rc.tcpip/syslogd /etc/rc.tcpip journal système des événements • Ne désactivez jamais ce service • Sujet aux attaques par refus de service • Requis dans tout système rc.tcpip/timed /etc/rc.tcpip démon Old Time • Désactivez ce service et remplacez–le par xntp rc.tcpip/xntpd /etc/rc.tcpip démon New Time • Assure la synchronisation des horloges des systèmes • Désactivez ce service. • Configurez d’autres systèmes comme serveurs de temps et laissez les autres systèmes se synchroniser à eux à l’aide d’une tâche cron qui appelle ntpdate Résumé des principaux services système AIX C-15 dt login service FTP anonyme /usr/dt/config/Xacc ess CDE sans restriction user rmuser –p <nomutilisateur> ftp anonyme • Si vous ne fournissez pas la connexion CDE à un groupe de stations X11, vous pouvez limiter dtlogin à la console. • Le FTP anonyme vous empêche savoir qui utilise le FTP • Retirez l’utilisateur si ce compte existe : rmuser –p ftp • Vous pouvez augmenter la sécurité en plaçant dans le fichier /etc/ftpusers une liste des utilisateurs qui ne doivent pas accéder par ftp à votre système écritures par FTP anonyme envois par FTP anonyme • Aucun fichier ne doit appartenir à ftp. • Les envois par FTP anonyme permettent d’envoyer un code dangereux à votre système. • Placez les noms des utilisateurs à interdire dans le fichier /etc/ftpusers • Voici quelques utilisateurs créés par le système et que vous pouvez empêcher d’envoyer des données via FTP anonyme : root, daemon, bin.sys, admin.uucp, guest, nobody, lpd, nuucp, ladp, imnadm • Modifiez les droits de groupes et de propriétaires aux fichiers ftpusers : chown root:system /etc/ftpusers • Limitez les droits d’accès aux fichiers ftpusers : chmod 644 /etc/ftpusers C-16 Guide de sécurité ftp.restrict root.access ftp vers comptes système /etc/security/user rlogin/telnet vers compte root • Le fichier ftpusers ne doit autoriser aucun utilisateur extérieur à remplacer des fichiers root • Attribuez la valeur false à l’option rlogin dans le etc/security/user • Tout utilisateur se connectant comme root doit d’abord se connecter sous son propre nom puis lancer la commande su vers root. Vous obtenez ainsi un suivi d’audit snmpd.readWrite /etc/snmpd.conf communautés SNMP readWrite • Désactiver le démon SNMP si vous n’utilisez pas SNMP. • Désactivez community private et community system dans le fichier /etc/snmpd.conf • Limitez communauté ’public’ aux adresses IP qui contrôlent votre système syslog.conf configure syslogd • Désactivez ce démon si vous n’avez pas configuré /etc/syslog.conf • Ne le désactivez pas si vous utilisez syslog.conf pour consigner des messages système Résumé des principaux services système AIX C-17 C-18 Guide de sécurité Annexe D. Résumé des options de service réseau Pour obtenir une meilleure sécurité système, il existe plusieurs options de réseau que vous pouvez désactiver avec 0 ou activer avec 1. La liste suivante indique les paramètres que vous pouvez utiliser avec la commande no. Paramètre Commande Fonction bcastping /usr/sbin/no –o bcastping=0 Autorise la réponse aux paquets d’écho ICMP à l’adresse de diffusion. Désactiver cette option évite les attaques Smurf. clean_partial_conns /usr/sbin/no –o clean_partial_conns=1 Indique si oui ou non les attaques SYN (synchronisation du numéro de séquence) sont évitées. directed_broadcast /usr/sbin/no –o directed_broadcast=0 Indique si la diffusion dirigée vers une passerelle est autorisée ou non. La valeur 0 évite aux paquets dirigés d’atteindre un réseau distant. icmpaddressmask /usr/sbin/no –o icmpaddressmask=0 Indique si le système répond à une demande de masque d’adresse ICMP. Désactiver cette option empêche l’accès via des attaques par routage source. ipforwarding /usr/sbin/no –o ipforwarding=0 Indique si le noyau doit réexpédier des paquets. Désactiver cette option évite que des paquets redirigés n’atteignent un réseau distant. ipignoreredirects /usr/sbin/no –o ipignoreredirects=1 Indique s’il faut traiter ou non les redirections reçues. ipsendredirects /usr/sbin/no –o ipsendredirects=0 Indique si le noyau doit envoyer des signaux de redirection. Désactiver cette option évite que des paquets redirigés n’atteignent un réseau distant. ip6srcrouteforward /usr/sbin/no –o ip6srcrouteforward=0 Indique si le système retransmet des paquets IPv6 routés par la source. Désactiver cette option empêche l’accès via des attaques par routage source. ipsrcrouteforward /usr/sbin/no –o ipsrcrouteforward=0 Indique si le système retransmet des paquets routés par la source. Désactiver cette option empêche l’accès via des attaques par routage source. ipsrcrouterecv /usr/sbin/no –o ipsrcrouterecv=0 Indique si le système accepte des paquets routés par la source. Désactiver cette option empêche l’accès via des attaques par routage source Résumé des options de service réseau D-1 ipsrcroutesend /usr/sbin/no –o ipsrcroutesend=0 Indique si les applications peuvent envoyer des paquets routés par la source. Désactiver cette option empêche l’accès via des attaques par routage source. nonlocsroute /usr/sbin/no –o nonlocsrcroute=0 Informe le protocole Internet que seuls des paquets routés par la source peuvent être adressés aux hôtes extérieurs au réseau local. Désactiver cette option empêche l’accès via des attaques par routage source. tcp_pmtu_discover /usr/sbin/no –o tcp_pmtu_discover=0 Désactiver cette option empêche l’accès via des attaques par routage source. udp_pmtu_discover /usr/sbin/no –o udp_pmtu_discover=0 Active ou désactive la recherche de chemin MTU pour les applications TCP. Désactiver cette option empêche l’accès via des attaques par routage source. Pour de plus amples informations sur les options réseau, consultez le manuel AIX 5L Version 5.2 Performance Management Guide. D-2 Guide de sécurité Index Symboles .netrc, 9-3 /usr/lib/security/audit/config, 9-3 A ajout de certificat numérique root d’une autorité d’accréditation, 11-30 arrêt, autorisation, 2-2 audit collecte d’informations sur les événements, 3-2 commande watch, 3-8 configuration, 3-4, 3-9 détection des événements, 3-1 exemple, contrôle en temps réel des fichiers, 3-12 exemple, scénario de journal d’audit générique, 3-13 format des enregistrements, 3-5 généralités, 3-1 journalisation, sélection des événements, 3-5 journalisation des événements, description, 3-4 mode de suivi d’audit du noyau, 3-5 sélection des événements, 3-3 suivi d’audit du noyau, 3-2 traitement des enregistrements, 3-8 authentification, 12-5 Base informatique sécurisée audit, 3-4 audit de l’état de sécurité, 1-2 fichiers sécurisés, vérification, 1-4 généralités, 1-1 programme sécurisé, 1-4 système de fichiers, vérification, 1-4 vérification à l’aide de la commande tcbck, 1-3 base NTCB, 9-8 C CAPP (Controlled Access Protection Profile) et EAL4+ (Evaluation Assurance Level 4+), 1-7 certificats numériques ajout root, 11-30 création de base de données de clefs, 11-29 création de tunnels IKE avec, 11-34 demande, 11-32 gestion, 11-28 paramètres sécurisés, 11-31 réception, 11-32 suppression, 11-33 suppression de root, 11-31 changement de mot de passe de la base de données de clefs, 11-34 Chemin d’accès sécurisé des communications, utilisation, 1-5 autorisation, 12-7 autorisation, 2-4 classes, 12-7 et hiérarchie, 12-9 rôle, 2-2 chiffrement par clé publique, NFS sécurisé, 13-3 autorité d’accréditation (CA) ajout de certificat root à la base de données, 11-30 demande de certificat à, 11-32 listes des autorités d’accréditation (CA), 11-29 paramètres sécurisés, 11-31 réception d’un certificat d’une, 11-32 suppression de certificat root de la base de données, 11-31 commande keylogin, NFS sécurisé, 13-3 B base de données de clefs, établissement de paramètres sécurisés pour, 11-31 clefs création d’une base de données, 11-29 modification de mot de passe de la base de données, 11-34 commande mount, NFS sécurisé, systèmes de fichiers, 13-10 commande sectoldif, 4-13 commande tcbck configuration, 1-5 utilisation, 1-3 compte utilisateur, contrôle, 2-9 contrôle d’accès droits d’accès étendus, 2-20 liste, 2-17, 2-20 création d’une base de données de clefs, 11-29 création de tunnels IKE utilisant des certificats numériques, 11-34 critère commun, 1-7 Index X-1 D dacinet, 9-10 données d’identification, 12-5 DES, 12-5 locales, 12-6 Données d’identification DES, 12-5 IPv4, voir également sécurité IP (Internet Protocol), 11-1 IPv6, 11-1 J journalisation de la sécurité IP, 11-45 données d’identification locales, 12-6 droit d’accès base, 2-19 étendus, 2-20 droit d’accès de base, 2-19 droits d’accès, 12-7, 12-9 droits d’accès étendus, 2-20 droits d’administrateur, 12-10 E EIM, voir aussi Enterprise Identity Mapping, 14-1 EIM (Enterprise Identity Mapping), 14-1 méthode actuelle, 14-2 K Key Manager, 11-28 L LDAP audit, Serveur d’informations de sécurité, 4-6 client, configuration, 4-3 gestion des utilisateurs, 4-4 mksecldap, 4-6 serveur d’informations de sécurité, configuration, 4-1 utilisation du sous–système de sécurité, 4-1 liens de sécurité (LS), relations avec les tunnels, 11-11 F fichier /etc/publickey, 13-6 filtres règles, 11-5 relations avec les tunnels, 11-9 liens de sécurité (SA), 11-3 ls–secldapclntd, 4-12 M filtres, configuration, 11-39 mandants, sécurité, 12-4 flush–secldapclntd, 4-13 Mappage des attributs LDAP, 4-16 format de fichier ldap.cfg, 4-14 mgrsecurity, 2-1, 2-8, 2-23 mksecldap, 4-6 G mode d’accès, droit d’accès de base, 2-19 mot de passe RPC sécurisé, 12-1 gestion des clefs, et des tunnels, 11-4 gestion des utilisateurs, LDAP, 4-4 I ID de connexion, 2-10, 2-30 IKE, caractéristiques, 11-3 index des paramètres de sécurité (SPI), et lien de sécurité, 11-3 infrastructure à clef publique, 6-1 Internet Engineering Task Force (IETF), 11-1 Internet Key Exchange, voir IKE, 11-3 IP, voir Internet Protocol, 11-1 X-2 Guide de sécurité N NFS (Network File System) fichier /etc/publickey, 13-6 NFS sécurisé, 13-1 administration, 13-7 authentification, 13-3 chiffrement, 13-1 chiffrement par clé publique, 13-3 code César, 13-1 configuration, 13-8 cryptanalyse, 13-1 cryptographe, 13-1 déchiffrage, 13-1 DES (Data Encryption Standard), 13-2 entités réseau, 13-6 exportation d’un système de fichiers, 13-9 nom réseau, 13-6 performances, 13-7 règles d’authentification, 13-4 systèmes de fichiers, 13-10 texte chiffré, 13-1 texte en clair, 13-1 touche, 13-1 NFS sécurisé, 13-1 NIS+ mandants, 12-4 sécurité, 12-2 O OpenSSH, utilisation avec PAM, 8-3 P paramètres sécurisés pour base de données de clefs, établissement, 11-31 PKI, 6-1 processus de l’utilisateur root, fonctions, 2-19 programme setgid, utilisation, 2-18 programme setuid, utilisation, 2-18 protection du système d’exploitation, autorisation de modification, 2-2 Protocole Internet, sécurité, 11-1 caractéristiques, 11-2 fonctions IKE, 11-3 système d’exploitation, 11-1 protocole LDAP (Light Directory Access Protocol), voir LDAP, 4-1 R restart–secldapclntd, 4-12 généralités, 2-2 maintenance, 2-4 mots de passe, 2-2 sauvegarde, 2-2 S SAK, 1-6 secldapclntd, 4-10 Secure Attention Key, configuration, 1-6 sécurité compte root, 2-1 Internet Protocol (IP), 11-1 NIS+, 12-2 authentification, 12-2 autorisation, 12-3, 12-7 données d’identification, 12-5 droits d’administrateur, 12-10 mandants, 12-4 niveaux, 12-4 présentation, 1-1 authentification, 2-30 identification, 2-30 tâches d’administration, 2-8, 2-23 système d’exploitation, 12-1 TCP/IP, 9-1 sécurité du système d’exploitation, 12-1 ajout d’un module, 7-6 authentification, 12-1 autorisation de modification, 2-5 bibliothèque, 7-2 débogage, 7-6 extension des restrictions, 2-29 fichier de configuration, /etc/pam.conf, 7-4 intégration avec AIX, 7-7 introduction, 7-1 modification du fichier /etc/pam.conf, 7-6 modules, 7-3 mot de passe RPC sécurisé, 12-1 portes, 12-1 RPC sécurisé, 12-1 utilisation avec OpenSSH, 8-3 rôle, 2-4 arrêt, 2-2 autorisation, 2-4 généralités, 2-2 maintenance, 2-4 mots de passe, 2-2 sauvegarde, 2-2 sécurité IP certificats numériques, 11-6 filtres, 11-5 et tunnels, 11-9 gestion des clefs et tunnels, 11-4 liens de sécurité, 11-3 LS (liens de sécurité), 11-11 tunnels choix du type, 11-11 et filtres, 11-9 et liens de sécurité, 11-11 rôles administratifs, 2-4 arrêt, 2-2 autorisation, 2-4 Sécurité IP (Internet Protocol) configuration, 11-39 planification, 11-7 restauration autorisation, 2-6 rôle, 2-2 Index X-3 installation, 11-6 journalisation, 11-45 règles de filtre prédéfinies, 11-44 sécurité IP (Internet Protocol), 11-1 identification des incidents, 11-50 référence, 11-62 serveur, informations de sécurité, LDAP, 4-1 Service d’authentification de certificats, généralités, 6-1 service d’authentification de certificats, généralités, 6-1 start–secldapclntd, 4-11 stop–secldapclntd, 4-12 suppression d’un certificat numérique personnel, 11-33 suppression de certificat root d’autorité d’accréditation, 11-31 système conforme CAPP/EAL4+, 1-7 système de quotas disque configuration, 2-32 généralités, 2-30 T TCB, 1-1 TCP/IP .netrc, 9-3 /etc/ftpusers, 9-7 /etc/hosts.equiv, 9-6 /usr/lib/security/audit/config, 9-3 sécurité, 9-1 accès à distance aux commandes, 9-6 DOD, 9-10 X-4 Guide de sécurité données, 9-10 NTCB, 9-8 restriction d’accès FTP, 9-7 SAK, 9-3 shell sécurisé, 9-3 système d’exploitation, 9-2 TCP/IP, 9-3, 9-7 utilisateurs FTP restreints, 9-7 sécurité IP, 11-1 fonctions IKE, 11-3 identification des incidents, 11-50 installation, 11-6 planification, 11-7 référence, 11-62 règles de filtre prédéfinies, 11-44 voir Internet Protocol, 11-2 tunnel générique de gestion des données, utilisation de XML, 11-15 tunnels choix du type, 11-11 et clefs, gestion, 11-4 relations avec les filtres, 11-9 relations avec les liens de sécurité, 11-11 tunnels IKE, création, avec certificats numériques, 11-34 U utilisateur, 2-2, 2-5 ajout, 2-2, 2-5 V Virtual Private Network (VPN), 11-1 VPN, avantages, 11-6 Vos remarques sur ce document / Technical publication remark form Titre / Title : Bull AIX 5L Guide de sécurité Nº Référence / Reference Nº : 86 F2 22EG 00 Daté / Dated : Octobre 2002 ERREURS DETECTEES / ERRORS IN PUBLICATION AMELIORATIONS SUGGEREES / SUGGESTIONS FOR IMPROVEMENT TO PUBLICATION Vos remarques et suggestions seront examinées attentivement. Si vous désirez une réponse écrite, veuillez indiquer ci-après votre adresse postale complète. Your comments will be promptly investigated by qualified technical personnel and action will be taken as required. If you require a written reply, please furnish your complete mailing address below. NOM / NAME : SOCIETE / COMPANY : ADRESSE / ADDRESS : Remettez cet imprimé à un responsable BULL ou envoyez-le directement à : Please give this technical publication remark form to your BULL representative or mail to: BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE Date : Technical Publications Ordering Form Bon de Commande de Documents Techniques To order additional publications, please fill up a copy of this form and send it via mail to: Pour commander des documents techniques, remplissez une copie de ce formulaire et envoyez-la à : BULL CEDOC ATTN / Mr. L. CHERUBIN 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE Phone / Téléphone : FAX / Télécopie E–Mail / Courrier électronique : +33 (0) 2 41 73 63 96 +33 (0) 2 41 73 60 19 srv.Cedoc@franp.bull.fr Or visit our web sites at: / Ou visitez nos sites web à: http://www.logistics.bull.net/cedoc http://www–frec.bull.com http://www.bull.com CEDOC Reference # No Référence CEDOC Qty Qté CEDOC Reference # No Référence CEDOC Qty Qté CEDOC Reference # No Référence CEDOC __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] __ __ ____ _ [__] Qty Qté [ _ _ ] : no revision number means latest revision / pas de numéro de révision signifie révision la plus récente NOM / NAME : Date : SOCIETE / COMPANY : ADRESSE / ADDRESS : PHONE / TELEPHONE : FAX : E–MAIL : For Bull Subsidiaries / Pour les Filiales Bull : Identification: For Bull Affiliated Customers / Pour les Clients Affiliés Bull : Customer Code / Code Client : For Bull Internal Customers / Pour les Clients Internes Bull : Budgetary Section / Section Budgétaire : For Others / Pour les Autres : Please ask your Bull representative. / Merci de demander à votre contact Bull. PLACE BAR CODE IN LOWER LEFT CORNER BULL CEDOC 357 AVENUE PATTON B.P.20845 49008 ANGERS CEDEX 01 FRANCE REFERENCE 86 F2 22EG 00 Utiliser les marques de découpe pour obtenir les étiquettes. Use the cut marks to get the labels. AIX AIX 5L Guide de sécurité 86 F2 22EG 00 AIX AIX 5L Guide de sécurité 86 F2 22EG 00 AIX AIX 5L Guide de sécurité 86 F2 22EG 00