Articles récents
Linux : Sécuriser les accès
Un chapitre pour détailler comment sécuriser les accès d'une machine ou un serveur Linux. Il n'y a rien de très compliqué, juste appliquer méthodiquement quelques principes.
1)La gestion des mots de passe
1.1)Principes Linux
Le fichier /etc/passwd contient la définition des comptes utilisateurs UNIX. Chaque ligne correspond à un compte structuré comme ci-dessous :User:Motdepasse:UID:GID:GeCos:Repertoireprivé:Shelldeconnexion
Avec : UID : le user Id, 0 pour root, inférieur à 500 pour un compte machine et supérieure à 500 pour un compte humain,
Gid: Group Id de l'utilisateur,
GECOS: champ pour commenter la fonction de ce compte.
Voici un exemple:
Bizarre me dirait vous, le mot de passe est symbolisé par x. En effet, ce fichier doit être accessible de tout de le monde et donc il est lecture, ce qui le rend un peut trop accessible pour un fichier aussi sensible. Il a donc été jugé plus cohérent de retirer les mots de passe et de les placer dans le fichier /etc/shadow, seul l'utilisateur root accède à ce fichier.
Le fichier shadow stocke le mot de passe qui est chiffré pour le protéger. Un second mécanisme de sécurité est implémenté, le grain de sel (salt), il vient du constat que souvent les usagers utilisent les mêmes mots de passes (ou pour éviter les comparaisons par dictionnaire), et donc le mot de passe chiffré aurait le même résultat, ce qui est déjà une indication pour l'attaquant.
La solution de chiffrement du mot de vient de la commande crypt(motdepasse,salt) qui a plusieurs mode de fonctionnement selon l'algorithme de chiffrement utilisé:
$1 : MD5,
$2 : BLOWFISH,
$5 : SHA256,
$6 : SHA512.
Le sel a une taille de 8 ou 16 caractère selon le mode de chiffrement, et en SHA512 le mot de passe chiffré fait 86 caractères.
Par exemple:
Ici, le mot de passe root est codé en SHA256 (chiffrement fort) avec un sel de ia42ujud et le mot de passe chiffré ojMLgziZcg2/j.qkW/K3CjuyFZmeGSfzsC9wpq6PuBxkk.wlfb0oLQjcRdRDao.HaDAb0XIdS0zzaWkmVH9js0 . Vous noterez que certain compte ne dispose pas de mot de passe, ce sont des comptes de services, on ne peut pas se connecter avec.
1.2)Cracker un mot de passe
Pour cela, il faut installer l'application John the ripper, sous debian : apt-get install johnJ'ai positionné un mot de passe facile (1234) simple afin que la recherche ne prenne pas trop de temps. Ensuite, il suffit de lancer la commande : john /etc/shadow
1.2)ContrĂ´le des connexions
Il y a deux commandes Ă connaitre pour contrĂ´ler et suivre les connexions sur vos machines Linux, il s'agit de :1.3)Utilisation de sudo
Sur certains systèmes Linux, le compte root n'est plus accessible, il faut utiliser la commande sudo pour exécuter en tant que. Cette commande se paramètre dans le fichier /etc/sudoers , mais il est vivement conseillé de l'éditer par la commande visudo pour compiler les paramètres et éviter de verrouiller ainsi votre machine! A noter qu'il est possible préciser l'éditeur de votre choix avec le paramètre Editor=nano .Le paramétrage du fichier sudoers suit le formalisme suivant:
utilisateur hostnamemachine=(utilisateur) commande1, commande2
On peut ainsi autoriser un utilisateur à exécuter certaines commandes en tant que untel, mais il devra taper le mot de passe de untel. Par exemple:
Pour éviter de taper le mot de passe vous pouvez utiliser la commande NOPASSWD (user1 ALL=(ALL) NOPASSWD:ALL), très utile pour les scripts.
1.4)Utilisation de PAM
PAM signifie Pluggable Authentification Modules. C'est un système d'authentification des utilisateurs. On peut gérer les comptes d'applications en spécifiant les contextes d'utilisation. PAM est devenu un standard qui permet de développer des applications indépendantes du mode d'authentification.PAM permet de ne pas réinventer la poudre et d'utiliser un système d'authentification reconnu en en utilisant les fichier standard tel que /etc/passwd. Les applications qui utilisent PAM ont un fichier de configuration sous /etc/pam.d . Par exemple si vous installez ftp, il y aura un fichier dans ce répertoire, il vous faudra le configurer.
PAM est basé sur fonctionnement autour de module, vous trouverez toute la documentation nécessaire ici.
Les modules PAM sont des bibliothèques dynamiques (par ex. pam_unix.so) fournissant les six primitives d'authentification définies dans la norme, regroupées dans quatre mécanismes :
Le format de configuration suit le modèle suivant:
action prioritè_de_traitement module
Par exemple, si on veut interdire le ftp Ă certains utilisateurs, vous pouvez configurer le fichier /etc/pam.d/ftpd tel que:
Le fichier /etc/ftpusers énumère les utilisateurs impactés par la règle. Une autre méthode consiste à paramétrer le fichier /etc/pam.d/pam.conf, il faudra préciser le nom du service en début de format de configuration.
2)La gestion des utilisateurs, droits et des groupes
2.1)La gestion des utilisateurs
Voyons les commandes de gestion des utilisateurs sous Linux.Exemple: useradd doritique -d /home/doritique
Créé le compte doritique (il suffit de regarder la fin du fichier /etc/passwd) et positionne son répertoire home.
2.2)La gestion des groupes
Le partage des données sur Unix se fait par un système d'inclusion de groupes. Linux définit deux fichiers comme pour les mot de passe avec le même mode de fonctionnement:La commande pour créer un groupe est groupadd groupe et pour le supprimer groupdel groupe .
Voici un exemple de liste de commande Linux pour créer un répertoire avec des droits sur usager avec héritage:
Conclusion
Voila vous avez les bases pour sécuriser votre machine Linux. N'oubliez pas de mettre des règles de firewall pour limiter les accès extérieures et de n'ouvrir que les services nécessaires. Enfin, le mieux reste d'appliquer les correctifs de sécurité de votre distribution.
© 2024 www.doritique.fr par Robert DORIGNY