Sécurisation des systèmes et des périphériques connectés dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Gestion du contrôle de connexion

Vous pouvez empêcher toute connexion non autorisée à un système ou au réseau, par le biais de l'affectation d'un mot de passe et du contrôle de connexion. Un mot de passe est un mécanisme d'authentification simple. Tous les comptes sur un système doivent disposer d'un mot de passe. Un compte sans mot de passe rend l'ensemble du réseau accessible à un intrus ayant deviné un nom d'utilisateur. Un algorithme de mot de passe fort protège contre les attaques en force.

    Lorsqu'un utilisateur se connecte à un système, la commande login vérifie le service de noms adéquat ou la base de données de service d'annuaire adéquate en fonction des informations présentes dans le service de commutation de noms, svc:/system/name-service/switch . Pour changer les valeurs dans un service de noms SMF, vous utilisez la base de données des commandes. Les services de noms indiquent l'emplacement des bases de données qui peuvent avoir une incidence sur la connexion :

  • files : désigne les fichiers /etc sur le système local

  • ldap : désigne le service d'annuaire LDAP sur le serveur LDAP

  • nis : désigne la base de données NIS sur le serveur maître NIS

  • dns : désigne le service de noms de domaine sur le réseau

Pour une description du service de noms, reportez-vous à la page de manuel nscd(1M). Pour plus d'informations sur les services de noms et les services d'annuaire, reportez- vous aux sections Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : DNS et NIS et Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : LDAP .

La commande login vérifie l'identifiant et le mot de passe indiqués par l'utilisateur. Si le nom d'utilisateur ne figure pas dans la base de données des mots de passe, la commande login refuse l'accès au système. Si le mot de passe ne correspond pas au nom d'utilisateur spécifié, la commande login refuse l'accès au système. Lorsque l'utilisateur fournit un nom d'utilisateur valide et son mot de passe correspondant, le système accorde à l'utilisateur l'accès au système.

Des modules PAM peuvent simplifier la connexion aux applications après une connexion réussie au système. Pour plus d'informations, voir Chapitre 1, Utilisation de modules d’authentification enfichables du manuel Gestion de Kerberos et d’autres services d’authentification dans Oracle Solaris 11.2 .

Des mécanismes d'authentification et d'autorisation sophistiqués sont disponibles sur les systèmes Oracle Solaris. Pour une description des mécanismes d'authentification et d'autorisation au niveau du réseau, reportez-vous à la section Authentification et autorisation pour l'accès à distance.

Gestion des informations de mot de passe

Lorsque des utilisateurs se connectent à un système, ils doivent fournir un nom d'utilisateur et un mot de passe. Bien que les informations de connexion soient publiquement connues, les mots de passe doivent être tenus secrets. Les mots de passe ne doivent être connus que des utilisateurs. Les utilisateurs doivent choisir leurs mots de passe avec soin et les modifier souvent.

Les mots de passe sont initialement créés lorsque vous configurez un compte utilisateur. Pour assurer la sécurité des comptes utilisateur, vous pouvez configurer le vieillissement du mot de passe afin d'obliger les utilisateurs à en changer régulièrement. Vous pouvez également désactiver un compte utilisateur en verrouillant le mot de passe. Pour plus d'informations sur l'administration des mots de passe, reportez-vous au Chapitre 1, Gestion des comptes et des environnements utilisateur du manuel Gestion des comptes utilisateur et des environnements utilisateur dans Oracle Solaris 11.2 et à la page de manuel passwd(1).

Mots de passe locaux

Si votre réseau utilise des fichiers locaux pour authentifier les utilisateurs, les informations du mot de passe sont conservées dans les fichiers /etc/passwd et /etc/shadow du système. Le nom de l'utilisateur et les autres informations apparentées sont conservés dans le fichier /etc/passwd. Les mots de passe chiffrés eux-mêmes sont conservés dans un fichier shadow séparé, /etc/shadow Cette mesure de sécurité empêche les utilisateurs d'accéder aux mots de passe chiffrés. Alors que le fichier /etc/passwd est accessible à tous ceux qui peuvent se connecter à un système, seul le compte root peut lire le fichier /etc/shadow. Vous pouvez utiliser la commande passwd pour modifier un mot de passe utilisateur sur un système local.

Mots de passe NIS

Si votre réseau utilise NIS pour authentifier des utilisateurs, les informations de mots de passe sont conservées dans la carte des mots de passe NIS. NIS ne prend pas en charge le vieillissement des mots de passe. Vous pouvez utiliser la commande passwd -r nis pour modifier le mot de passe d'un utilisateur qui est stocké dans une carte de mots de passe NIS.

Mots de passe LDAP

Le service de noms LDAP d'Oracle Solaris stocke les informations de mot de passe et les informations en double dans le conteneur ou=people de la structure de répertoire LDAP. Sur le client du service de noms LDAP d'Oracle Solaris, vous pouvez utiliser la commande passwd -r ldap pour changer le mot de passe d'un utilisateur. Le service de noms LDAP stocke le mot de passe dans le référentiel LDAP.

La stratégie de mot de passe est appliquée sur le Oracle Directory Server Enterprise Edition. Plus précisément, le module pam_ldap du client suit les contrôles de stratégie de mot de passe mis en oeuvre sur Oracle Directory Server Enterprise Edition. Pour plus d'informations, reportez-vous à la section Modèle de sécurité des services de noms LDAP du manuel Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : LDAP .

Chiffrement du mot de passe

Le chiffrement du mot de passe fort constitue une première barrière contre les attaques. Le logiciel Oracle Solaris fournit six algorithmes de chiffrement de mot de passe. Les algorithmes Blowfish et SHA permettent le chiffrement fiable des mots de passe.


Remarque -  Pour être certifié FIPS 140, utilisez les algorithmes SHA. Pour plus d'informations, reportez-vous à la section passwd Command as a FIPS 140 Consumer du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Identificateurs d'algorithmes de mot de passe

La configuration des algorithmes de mot de passe de votre site est effectuée dans le fichier /etc/security/policy.conf. Dans le fichier policy.conf , les algorithmes sont nommés par leur identificateur, comme indiqué dans le tableau ci-après. Pour la mise en correspondance des identificateurs et des algorithmes, reportez-vous au fichier /etc/security/crypt.conf.


Remarque -  Utilisez des algorithmes certifiés FIPS lorsque cela est possible. Pour obtenir des listes d'algorithmes certifiés FIPS, reportez-vous à la section FIPS 140 Algorithm Lists and Certificate References for Oracle Solaris Systems du manuel Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .
Table 1-1  Algorithmes de chiffrement de mot de passe
Identifiant
Description
Page de manuel de l'algorithme
1
Algorithme MD5 compatible avec des algorithmes MD5 sur des systèmes BSD et Linux.
2a
Algorithme Blowfish compatible avec l'algorithme Blowfish existant sur les systèmes BSD.

Remarque -  Pour promouvoir la sécurité FIPS 140, supprimez l'algorithme Blowfish (2a) de l'entrée CRYPT_ALGORITHMS_ALLOW=2a,5,6 dans le fichier /etc/security/policy.conf.

md5
L'algorithme Sun MD5 est considéré comme plus puissant que la version BSD et Linux de MD5.
5
Algorithme SHA256. SHA est l'acronyme de Secure Hash Algorithm (algorithme de hachage sécurisé). Cet algorithme est un membre de la famille SHA-2. SHA256 prend en charge des mots de passe à 255 caractères. Il s'agit de l'algorithme par défaut, (CRYPT_DEFAULT).
6
Algorithme SHA512.
__unix__
Désapprouvé. Algorithme de chiffrement UNIX standard. Cet algorithme peut être utile lors de la connexion aux anciens systèmes.

Remarque -  L'algorithme qui est utilisé pour un mot de passe initial de l'utilisateur continue à être utilisée pour la génération de nouveau mot de passe même si un autre utilisateur a peut - être été sélectionné algorithme par défaut avant de générer un nouveau mot de passe pour cet utilisateur. Ce mécanisme s'applique dans les conditions suivantes :
  • L'algorithme est inclus dans la liste des algorithmes autorisés à utiliser pour le chiffrement des mots de passe.

  • Identificateur non _unix_.

Pour connaître les procédures de changement d'algorithme pour le chiffrement des mots de passe, reportez-vous à la section Modification de l'algorithme par défaut pour le chiffrement de mot de passe.


Configuration des algorithmes dans le fichier policy.conf

La configuration des algorithmes par défaut dans le fichier policy.conf est la suivante :

#
…
# crypt(3c) Algorithms Configuration
#
# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed
to
# be used for new passwords.  This is enforced only in crypt_gensalt(3c).
#
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6

# To deprecate use of the traditional unix algorithm, uncomment below
# and change CRYPT_DEFAULT= to another algorithm.  For example,
# CRYPT_DEFAULT=1 for BSD/Linux MD5.
#
#CRYPT_ALGORITHMS_DEPRECATE=__unix__

# The Oracle Solaris default is a SHA256 based algorithm.  To revert to
# the policy present in Solaris releases set CRYPT_DEFAULT=__unix__,
# which is not listed in crypt.conf(4) since it is internal to libc.
#
CRYPT_DEFAULT=5
…

Si vous modifiez la valeur de CRYPT_DEFAULT, les mots de passe des nouveaux utilisateurs sont chiffrés avec l'algorithme associé à la nouvelle valeur.

Lorsque des utilisateurs existants modifient leur mot de passe, le chiffrement de leur ancien mot de passe a une incidence sur l'algorithme utilisé pour chiffrer le nouveau mot de passe. Par exemple, supposons que CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6, et CRYPT_DEFAULT=6. Le tableau ci-dessous montre quel algorithme sera utilisé pour générer le mot de passe chiffré. L'identificateur le mot de passe se compose d'algorithme.

Mot de passe initial
Mot de passe modifié
Explication
1 = crypt_bsdmd5
Utilise le même algorithme
L'identificateur 1 est dans la liste CRYPT_ALGORITHMS_ALLOW. Le mot de passe de l'utilisateur continue d'être chiffré avec l'algorithme crypt_bsdmd5.
2a = crypt_bsdbf
Utilise le même algorithme
L'identificateur 2a est dans la liste CRYPT_ALGORITHMS_ALLOW. Par conséquent, le nouveau mot de passe est chiffré avec l'algorithme crypt_bsbdf.
md5 = crypt_md5
Utilise le même algorithme
L'identificateur md5 est dans la liste CRYPT_ALGORITHMS_ALLOW. Par conséquent, le nouveau mot de passe est chiffré avec l'algorithme crypt_md5.
5 = crypt_sha256
Utilise le même algorithme
L'identificateur 5 est dans la liste CRYPT_ALGORITHMS_ALLOW. Par conséquent, le nouveau mot de passe continue à être chiffré avec l'algorithme crypt_sha256 algorithm.
6 = crypt_sha512
Utilise le même algorithme
L'identificateur6 est la valeur de CRYPT_DEFAULT. Par conséquent, le nouveau mot de passe continue à être chiffré avec l'algorithme crypt_sha512 algorithm.
__unix__ = crypt_unix
utilise l'algorithme crypt_sha512
L'identificateur __unix__ n'est pas dans la liste CRYPT_ALGORITHMS_ALLOW. Par conséquent, l'algorithme crypt_unix ne peut pas être utilisé. Par conséquent, le nouveau mot de passe est chiffré avec l'algorithme CRYPT_DEFAULT.

Pour plus d'informations sur la configuration des sélections d'algorithme, reportez-vous à la page de manuel policy.conf(4) Pour spécifier les algorithmes de chiffrement des mots de passe, consultez Modification de l'algorithme par défaut pour le chiffrement de mot de passe.

Comptes système spéciaux

Le compte root fait partie de plusieurs comptes système spéciaux. Parmi ces comptes, seul le compte root est associé à un mot de passe et peut se connecter. Le compte nuucp peut se connecter pour les transferts de fichiers. Les autres comptes système protègent les fichiers ou exécutent des processus administratifs sans recourir aux pleins pouvoirs de root.


Caution

Mise en garde  -  Ne modifiez jamais la définition du mot de passe d'un compte système. Les comptes système dans Oracle Solaris sont fournis dans un état sûr et sécurisé. Il est interdit de modifier ou créer des fichiers système ayant une UID égale ou inférieure à 101.


Le tableau suivant décrit certains comptes système et leur utilisation. Les comptes système exécutent des fonctions spéciales. Chaque compte de cette liste possède un ID utilisateur inférieur à 100. Pour obtenir la liste complète des systèmes de fichiers, utilisez la commande logins –s.

Table 1-2  Comptes système sélectionnés et leurs utilisations
Compte système
UID
Utilisation
root
0
N'a pratiquement pas de restrictions. Peut remplacer d'autres protections et autorisations. Le compte root a accès à l'ensemble du système. Le mot de passe pour le compte root doit être très soigneusement protégé. Le compte root est propriétaire de la plupart des commandes Oracle Solaris.
daemon
1
Contrôle le traitement en arrière-plan.
bin
2
Est propriétaire de certaines commandes Oracle Solaris.
sys
3
Est propriétaire de nombreux fichiers système.
adm
4
Est propriétaire de certains fichiers administratifs.
lp
71
Est propriétaire des fichiers de données d'objet et des fichiers de données mis en spool pour l'imprimante.
uucp
5
Est propriétaire des fichiers de données d'objet et des fichiers de données mis en spool pour UUCP, le programme de copie UNIX-to-UNIX.
nuucp
9
Utilisé par les systèmes distants pour se connecter au système et démarrer des transferts de fichiers.

Connexions à distance

Les connexions à distance constituent une cible tentante pour les intrus. Oracle Solaris fournit plusieurs commandes pour surveiller, limiter et désactiver les connexions à distance. Pour plus d'informations sur les procédures, reportez-vous au tableau Table 3–1.

Par défaut, les connexions à distance ne peuvent ni contrôler ni lire certains périphériques système tels que la souris, le clavier, la mémoire graphique ou le périphérique audio. Pour plus d'informations, reportez-vous à la page de manuel logindevperm(4).