NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
Linuxtopia - CentOS Enterprise Linux - Guide de securite - Contr�les administratifs
Lors de l'administration d'un ordinateur priv�, l'utilisateur doit effectuer certaines t�ches en tant que super-utilisateur ou en s'appropriant les privil�ges du super-utilisateur au moyen d'un programme setuid tel que sudo ou su. Un programme setuid utilise l'ID utilisateur (UID) du propri�taire du programme plut�t que l'utilisateur se servant du programme. Ces programmes sont reconnaissables par la lettre minuscule s apparaissant dans la section propri�taire d'un listage au format d�taill� (long listing), comme dans l'exemple suivant�:
-rwsr-xr-x 1 root root 47324 May 1 08:09 /bin/su
Toutefois, les administrateurs syst�me d'une soci�t� doivent faire des choix quant au niveau d'acc�s administratif dont les utilisateurs de la soci�t� devraient disposer sur leur ordinateur. Gr�ce � un module PAM nomm� pam_console.so, certaines activit�s normalement r�serv�es exclusivement au super-utilisateur, telles que le red�marrage ou le montage de m�dias amovibles, sont permises au premier utilisateur �tablissant une connexion � la console physique (consultez le chapitre intitul� Modules d'authentification enfichables (PAM) du Guide de r�f�rence de Red Hat Enterprise Linux pour obtenir de plus amples informations sur le module pam_console.so). Cependant, d'autres t�ches d'administration syst�me importantes telles que la modification de param�tres r�seau, la configuration d'une nouvelle souris ou le montage de p�riph�riques r�seau ne sont pas possibles sans privil�ges administratifs. Dans de telles circonstances, les administrateurs syst�me doivent d�terminer le degr� d'acc�s dont les utilisateurs de leur r�seau devraient disposer.
4.4.1. Autorisation de l'acc�s super-utilisateur (ou root)
Si les utilisateurs au sein d'une soci�t� font partie d'un groupe de personnes dignes de confiance et dou�es en informatique, alors l'autorisation de disposer de l'acc�s super-utilisateur n'est pas forc�ment une mauvaise id�e. La possibilit� d'obtenir l'acc�s super-utilisateur permet aux utilisateurs individuels de r�soudre des petits probl�mes comme l'ajout de p�riph�riques ou la configuration d'interfaces r�seau, donnant ainsi aux administrateurs syst�me plus de temps pour se concentrer sur la s�curit� r�seau et autres probl�mes d'importance.
D'autre part, l'attribution de l'acc�s super-utilisateur � des utilisateurs individuels peut engendrer les probl�mes suivants�:
Mauvaise configuration de l'ordinateur — Les utilisateurs disposant de l'acc�s super-utilisateur peuvent mal configurer leur ordinateur et n�cessiter d'assistance ou pire encore, peuvent ouvrir des br�ches de s�curit� sans m�me s'en rendre compte.
Ex�cution de services non-s�curis�s — Il se peut que des utilisateurs disposant de l'acc�s super-utilisateur ex�cutent des serveurs non-s�curis�s sur leur ordinateur, comme par exemple FTP ou Telnet, et mettent par l�-m�me potentiellement en danger des noms d'utilisateur et mots de passe dans la mesure o� ces derniers sont transmis en clair sur le r�seau.
Ex�cution de pi�ces jointes de courrier �lectronique en tant que super-utilisateur — Bien que les virus transmis par courrier �lectronique affectant Linux soient rares, ils existent tout de m�me. Toutefois, les seuls cas dans lesquels ils repr�sentent une menace sont lorsqu'ils sont ex�cut�s en tant que super-utilisateur.
4.4.2. Refus de l'acc�s super-utilisateur
Si, pour les raisons mentionn�es ou pour toute autre raison, un administrateur s'inqui�te de la possibilit� offerte aux utilisateurs de se connecter en tant que super-utilisateur, le mot de passe root ne devrait pas �tre divulgu� et l'acc�s au niveau d'ex�cution un ou au mode mono-utilisateur devrait �tre refus� en prot�geant le chargeur de d�marrage � l'aide d'un mot de passe (consultez la Section 4.2.2 pour obtenir de plus amples informations sur le sujet).
Le Tableau 4-1 illustre certaines mani�res auxquelles un administrateur peut recourir pour s'assurer fermement que toute connexion en tant que super-utilisateur est bien refus�e�:
M�thode
Description
Cons�quences
Sans cons�quences
Changement du shell super-utilisateur
Modifiez le fichier /etc/passwd et changez le shell de /bin/bash � /sbin/nologin.
Emp�che l'acc�s au shell super-utilisateur et journalise la tentative.
L'acc�s des programmes suivants au compte super-utilisateur est bloqu�:
� login
� gdm
� kdm
� xdm
� su
� ssh
� scp
� sftp
Pour les programmes ne n�cessitant pas de shell, tels que les clients FTP, les clients de messagerie et de nombreux programmes setuid.
L'acc�s des programmes suivants au compte super-utilisateur n'est pas bloqu�:
� sudo
� clients FTP
� clients de messagerie
D�sactivation de l'acc�s super-utilisateur au moyen de tout terminal de contr�le (tty).
Un fichier /etc/securetty vide emp�che la connexion en tant que super-utilisateur sur tout p�riph�rique reli� � l'ordinateur.
Emp�che l'acc�s au compte super-utilisateur par la console ou le r�seau. L'acc�s des programmes suivants au compte super-utilisateur est bloqu�:
� login
� gdm
� kdm
� xdm
� autres services r�seau qui ouvrent un terminal de contr�le tty
Pour les programmes qui ne se connectent pas en tant que super-utilisateur, mais effectuent des t�ches administratives � travers setuid ou d'autres m�canismes.
L'acc�s des programmes suivants au compte super-utilisateur n'est pas bloqu�:
� su
� sudo
� ssh
� scp
� sftp
D�sactivation des connexions SSH du super-utilisateur
Modifiez le fichier /etc/ssh/sshd_config et donnez au param�tre PermitRootLogin la valeur no.
Emp�che l'acc�s super-utilisateur via la suite d'outils OpenSSH. L'acc�s des programmes suivants au compte super-utilisateur est bloqu�:
� ssh
� scp
� sftp
Puisque ceci ne concerne que la suite d'outils OpenSSH, ces param�tres n'ont de cons�quences sur aucun autre programme.
Utilisation de PAM pour limiter l'acc�s super-utilisateur aux services
Modifiez le fichier relatif au service cible dans le r�pertoire /etc/pam.d/. Assurez-vous que pam_listfile.so est bien n�cessaire pour l'authentification.[a]
Emp�che l'acc�s super-utilisateur aux services r�seau qui prennent en charge PAM.
L'acc�s des services suivants au compte super-utilisateur est bloqu�:
� clients FTP
� clients email
� login
� gdm
� kdm
� xdm
� ssh
� scp
� sftp
� tout service prenant en charge PAM
Programmes et services ne prenant pas en charge PAM.
Remarques�: a. Consultez la Section 4.4.2.4 pour obtenir de plus amples informations.
Tableau 4-1. M�thodes pour d�sactiver le compte super-utilisateur
4.4.2.1. D�sactivation du shell super-utilisateur (root)
Afin d'emp�cher les utilisateurs de se connecter directement en tant que super-utilisateur, l'administrateur syst�me peut d�finir le shell du compte super-utilisateur comme /sbin/nologin dans le fichier /etc/passwd. Ce faisant, tout acc�s au compte super-utilisateur au moyen de commandes n�cessitant un shell, comme par exemple les commandes su et ssh, sera bloqu�.
Important
Les programmes ne n�cessitant pas un acc�s au shell, tels que les clients de messagerie ou la commande sudo, ont toujours acc�s au compte super-utilisateur.
4.4.2.2. D�sactivation des connexions super-utilisateur
Afin de restreindre davantage l'acc�s au compte super-utilisateur, les administrateurs peuvent d�sactiver les connexions root � la console en �ditant le fichier /etc/securetty. Ce dernier �num�re tous les p�riph�riques sur lesquels le super-utilisateur peut se connecter. Si le fichier n'existe pas du tout, le super-utilisateur peut se connecter en utilisant tout p�riph�rique de communication pr�sent sur le syst�me, que ce soit par le biais de la console ou d'une interface r�seau brute. Cette situation est dangereuse car un utilisateur peut se connecter � sa machine en tant que super-utilisateur via Telnet, en transmettant son mot de passe en clair sur le r�seau. Par d�faut, le fichier /etc/securetty de Red Hat Enterprise Linux permet seulement au super-utilisateur de se connecter � la console reli�e physiquement � l'ordinateur. Pour emp�cher le super-utilisateur de se connecter, supprimez le contenu de ce fichier en saisissant la commande suivante�:
echo > /etc/securetty
Avertissement
Un fichier /etc/securetty vierge n'emp�che pas le super-utilisateur de se connecter � distance � l'aide de la suite d'outils OpenSSH, car la console n'est ouverte qu'une fois l'authentification effectu�e.
4.4.2.3. D�sactivation des connexions SSH super-utilisateur
Afin d'emp�cher les connexions super-utilisateur par le biais du protocole SSH, �ditez le fichier de configuration du d�mon SSH (/etc/ssh/sshd_config). Modifiez la ligne stipulant�:
# PermitRootLogin yes
en�:
PermitRootLogin no
4.4.2.4. D�sactivation du super-utilisateur � l'aide de PAM
PAM, au moyen du module /lib/security/pam_listfile.so, offre une grande flexibilit� pour ce qui est du refus de l'acc�s de certains comptes. Gr�ce � PAM, l'administrateur peut indiquer au module une liste d'utilisateurs auxquels refuser la connexion. Ci-dessous figure un exemple de la mani�re dont le module est utilis� pour vsftpd du serveur FTP dans le fichier de configuration de PAM /etc/pam.d/vsftpd (le signe \ plac� � la fin de la premi�re ligne dans l'exemple suivant n'est pas n�cessaire si la directive est sur une seule ligne)�:
Cette directive indique � PAM de consulter le fichier /etc/vsftpd.ftpusers et de refuser l'acc�s au service � tout utilisateur mentionn� dans la liste. L'administrateur peut changer le nom de ce fichier s'il le souhaite et peut garder des listes s�par�es pour chaque service ou il peut utiliser une liste principale pour refuser l'acc�s � de multiples services.
Si l'administrateur souhaite refuser l'acc�s � de multiples services, il peut ajouter une ligne similaire aux services de configuration PAM, tels que /etc/pam.d/pop et /etc/pam.d/imap pour des clients de messagerie ou /etc/pam.d/ssh pour des clients SSH.
Pour obtenir de plus amples informations sur PAM, consultez le chapitre intitul� Modules d'authentification enfichables (PAM) du Guide de r�f�rence de Red Hat Enterprise Linux.
4.4.3. Restriction de l'acc�s super-utilisateur
Plut�t que de refuser compl�tement l'acc�s au super-utilisateur, l'administrateur peut d�cider d'autoriser l'acc�s uniquement via des programmes setuid tels que su ou sudo.
4.4.3.1. La commande su
Lorsque l'utilisateur saisit la commande su, le syst�me demande le mot de passe root et, apr�s authentification, donne une invite du shell root.
Une fois connect� par le biais de la commande su, l'utilisateur devient le super-utilisateur et d�tient alors l'acc�s administratif absolu au syst�me. De plus, une fois que l'utilisateur s'est octroy� les privil�ges du super-utilisateur, il peut, dans certains cas, utiliser la commande su pour se changer en tout autre utilisateur sur le syst�me et ce, sans devoir saisir de mot de passe.
En raison de la puissance de ce programme, les administrateurs au sein d'une soci�t� souhaiteront peut-�tre restreindre le nombre de personnes ayant acc�s � cette commande.
Une des fa�ons les plus simples de proc�der consiste � ajouter des utilisateurs au groupe administratif sp�cial appel� wheel. Pour ce faire, saisissez la commande suivante en �tant connect� en tant que super-utilisateur�:
usermod -G wheel <username>
Dans la commande pr�c�dente, remplacez <username> par le nom d'utilisateur � ajouter au groupe wheel.
Afin d'utiliser le Gestionnaire d'utilisateurs � ces fins, cliquez sur Menu principal (sur le panneau) => Param�tres de syst�me => Utilisateurs et groupes ou saisissez la commande system-config-users � une invite du shell. S�lectionnez l'onglet Utilisateurs, choisissez l'utilisateur parmi la liste d'utilisateurs et cliquez sur Propri�t�s dans le menu de boutons (ou choisissez Fichier => Propri�t�s dans le menu d�roulant).
S�lectionnez ensuite l'onglet Groupes et cliquez sur le groupe nomm� wheel, comme le montre la Figure 4-2.
Figure 4-2. Fen�tre de l'onglet Groupes
Dans un �diteur de texte, ouvrez ensuite le fichier de configuration PAM pour su, /etc/pam.d/su et supprimez le commentaire [#] pr�sent dans la ligne suivante�:
Ce faisant, seuls les membres du groupe administratif wheel pourront utiliser le programme.
Remarque
Par d�faut, le super-utilisateur fait partie du groupe wheel.
4.4.3.2. La commande sudo
La commande sudo fournit une autre approche lors de l'attribution de l'acc�s administratif aux utilisateurs. Lorsqu'un utilisateur de confiance fait pr�c�der une commande administrative par sudo, le syst�me lui demande de saisir son propre mot de passe. Ensuite, une fois authentifi� et en supposant que la commande est permise, la commande administrative est ex�cut�e comme si l'op�ration �tait effectu�e par le super-utilisateur.
Le format de base de la commande sudo est le suivant�:
sudo <command>
Dans l'exemple pr�c�dent, <command> serait remplac� par une commande normalement r�serv�e au super-utilisateur, comme par exemple mount.
Important
Il est recommand� aux utilisateurs de la commande sudo de s'assurer de bien se d�connecter avant de quitter leur ordinateur car toute personne utilisant la commande sudo peut r�utiliser la dite commande sans devoir saisir � nouveau un mot de passe et ce, pendant une dur�e de cinq minutes. Ce param�tre peut �tre modifi� au moyen du fichier de configuration /etc/sudoers.
La commande sudo offre une grande flexibilit�. Par exemple, seuls les utilisateurs mentionn�s dans le fichier de configuration /etc/sudoers sont autoris�s � utiliser la commande sudo et cette derni�re est ex�cut�e dans le shell de l'utilisateur, et non pas dans un shell root. Dans de telles circonstances, le shell root peut �tre compl�tement d�sactiv�, comme l'explique la Section 4.4.2.1.
La commande sudo fournit �galement un certain nombre de traces permettant toute v�rification. Toute authentification r�ussie est journalis�e dans le fichier /var/log/messages et la commande ex�cut�e est elle enregistr�e dans le fichier /var/log/secure, accompagn�e par le nom de l'utilisateur l'ayant engendr�e.
Un autre avantage de la commande sudo r�side dans la possibilit� pour l'administrateur, d'autoriser l'acc�s de diff�rents utilisateurs � des commandes sp�cifiques en fonction de leurs besoins.
Les administrateurs souhaitant changer le fichier de configuration de sudo, /etc/sudoers, devraient utiliser la commande visudo.
Afin d'octroyer � une personne la totalit� des privil�ges administratifs, saisissez la commande visudo et ajoutez dans la partie relative � la sp�cification des privil�ges de l'utilisateur, une ligne semblable � celle qui suit�:
juan ALL=(ALL) ALL
Cet exemple stipule que l'utilisateur, juan, est autoris� � utiliser la commande sudo � partir d'un h�te quelconque et peut ex�cuter toute commande.
L'exemple ci-dessous illustre le niveau de granularit� possible lors de la configuration de sudo�:
%users localhost=/sbin/shutdown -h now
Cet exemple stipule que tout utilisateur peut ex�cuter la commande /sbin/shutdown -h now tant qu'elle est ex�cut�e � partir de la console.
La page de manuel relative � sudoers contient un inventaire d�taill� des options utilisables pour ce fichier.