La première et la plus cruciale étape vers la sécurisation des serveurs et des systèmes Linux consiste à empêcher les parties malveillantes d’accéder de manière non requise. Un contrôle approprié des comptes d’utilisateurs est l’un des nombreux moyens d’améliorer la sécurité de votre système.
Un compte d’utilisateur renforcé empêche le système des méthodes d’attaque les plus courantes d’élévation horizontale ou verticale des privilèges. Par conséquent, en tant qu’administrateur système Linux, vous êtes également responsable de la protection de votre serveur via des techniques de sécurité efficaces.
Cet article couvre certains contrôles de sécurité de base des comptes d’utilisateurs pour empêcher les accès inutiles et corriger les éventuelles failles de compromission du système.
1. Restreindre l’accès au compte root
Par défaut, chaque installation de système Linux configure un compte root accessible à toute personne de l’extérieur via SSH. Cependant, l’accès au compte root via SSH ou l’accès de plusieurs utilisateurs à l’intérieur du système peut entraîner des problèmes de répudiation.
Par exemple, un attaquant peut utiliser la force brute pour se connecter en tant qu’utilisateur root et accéder au système.
Pour restreindre l’accès root inutile depuis l’intérieur/l’extérieur du système Linux, vous pouvez :
Créer un nouveau superutilisateur
Pour accorder des autorisations sudo ou root à un compte d’utilisateur Linux standard, ajoutez l’utilisateur au sudo groupe comme suit :
usermod -aG sudo username
Passez maintenant au compte utilisateur à l’aide de la commande su et vérifiez ses privilèges root en exécutant une commande accessible uniquement à l’utilisateur root :
su - username
sudo systemctl restart sshd
L’activation des autorisations sudo offre de bons avantages en matière de sécurité, tels que :
- Vous n’avez pas besoin de partager les mots de passe root avec les utilisateurs réguliers.
- Il vous aide à vérifier toutes les commandes exécutées par les utilisateurs réguliers, ce qui signifie qu’il stocke les détails de qui, quand et où l’exécution de la commande dans le /var/log/sécurisé déposer.
- En outre, vous pouvez modifier le /etc/sudoers fichier pour limiter les autorisations de superutilisateur des utilisateurs réguliers. Vous pouvez utiliser la commande su -l pour vérifier les autorisations root actuelles d’un utilisateur.
Désactiver la connexion SSH racine
Pour désactiver l’accès root SSH sur votre système, ouvrez d’abord le fichier de configuration principal.
sudo vim /etc/ssh/sshd_config
Décommentez maintenant la ligne suivante pour définir les autorisations de connexion root sur non:
PermitRootLogin no
Enregistrez le fichier et redémarrez le sshd service en tapant :
sudo systemctl restart sshd
Désormais, chaque fois que vous essayez de vous connecter en SSH au système en tant qu’utilisateur root, vous recevez le message d’erreur suivant :
Permission denied, please try again.
2. Définir les dates d’expiration sur les comptes
Un autre moyen efficace de contrôler les accès inutiles consiste à définir des dates d’expiration sur les comptes créés pour une utilisation temporaire.
Par exemple, si un stagiaire ou un employé a besoin d’accéder au système, vous pouvez définir une date d’expiration lors de la création du compte. Il s’agit d’une mesure de précaution au cas où vous oublieriez de retirer ou de supprimer manuellement le compte après qu’il ait quitté l’organisation.
Utilisez le changement commande avec l’utilitaire grep pour récupérer les détails d’expiration du compte pour l’utilisateur :
chage -l username| grep account
Sortir:
Account expires : never
Comme indiqué ci-dessus, il n’affiche aucune date d’expiration. Utilisez maintenant le mod utilisateur commande avec le -e indicateur pour définir la date d’expiration dans le AAAA-MM-JJ format et vérifiez la modification à l’aide de la commande chage ci-dessus.
usermod -e 2021-01-25 username
chage -l username| grep account
3. Améliorer la sécurité du mot de passe du compte
L’application d’une politique de mots de passe forts est un aspect important de la sécurisation des comptes d’utilisateurs, car les mots de passe faibles permettent aux attaquants de pénétrer facilement dans vos systèmes via des attaques par force brute, par dictionnaire ou par table arc-en-ciel.
Le choix d’un mot de passe facile à mémoriser peut offrir une certaine commodité, mais il ouvre également des possibilités pour les attaquants de deviner les mots de passe à l’aide d’outils et de listes de mots disponibles en ligne.
Définir la date d’expiration du mot de passe
De plus, Linux propose des options par défaut à l’intérieur /etc/logins.defs fichier qui vous permet de définir le vieillissement du mot de passe du compte. Utilisez le changement commande et grep les détails d’expiration du mot de passe comme suit :
chage -l username | grep days
variables | Valeur par défaut | Usage | Valeur idéale |
---|---|---|---|
PASS_MAX_DAYS | 9999 | Le nombre de jours par défaut pour utiliser un mot de passe qui dépend du type de configuration de votre compte | 40 |
PASS_MIN_DAYS | 0 | Empêche les utilisateurs de changer leur mot de passe immédiatement | 5 |
PASS_MIN_LEN | 5 | Oblige l’utilisateur à définir des mots de passe d’une certaine longueur | 15 |
PASS_WARN_AGE | 0 | Avertit l’utilisateur de changer le mot de passe avant d’être forcé de le faire | sept |
Pour les comptes en cours d’utilisation, vous pouvez contrôler le vieillissement du mot de passe à l’aide du changement pour définir PASS_MAX_DAYS, PASS_MIN_DAYS et PASS_WARN_AGE sur 40, 5 et 7.
chage -M 40 -m 5 -W 7 username
Hachages de mot de passe
Une autre façon de renforcer la sécurité du mot de passe du compte consiste à stocker les hachages de mot de passe dans le fichier /etc/shadow. Les hachages sont des fonctions mathématiques à sens unique qui prennent le mot de passe comme entrée et produisent une chaîne non réversible.
Auparavant, sur les systèmes Linux, chaque fois qu’un utilisateur saisissait son mot de passe pour se connecter, le système générait son hachage et le recoupait avec celui stocké dans /etc/passwd déposer.
Cependant, il y a un problème avec l’accès au fichier passwd, c’est-à-dire que toute personne ayant accès au système peut lire le fichier et déchiffrer le hachage avec des tables arc-en-ciel.
Par conséquent, Linux enregistre désormais les hachages à l’intérieur du /etc/ombre fichier avec l’ensemble d’autorisations d’accès suivant :
ls -l /etc/shadow
---------- 1 root root 1626 Jan 7 13:56 /etc/shadow
Il vous est toujours possible d’installer Linux avec les anciennes méthodes de stockage des hachages. Vous pouvez modifier cela en exécutant le pwconv commande, de sorte qu’il enregistrera automatiquement les hachages de mot de passe dans le /etc/ombre déposer. De même, vous pouvez activer l’autre méthode (/etc/passwd fichier) à l’aide du pwunconv commander.
4. Supprimer les comptes d’utilisateurs inutilisés
Un acteur malveillant peut exploiter des comptes inutilisés et expirés dans le système, en renouvelant ce compte et en le faisant apparaître comme un utilisateur légitime. Pour supprimer un compte inactif et les données associées chaque fois qu’un utilisateur quitte l’organisation, recherchez d’abord tous les fichiers liés à l’utilisateur :
find / -user username
Ensuite, désactivez le compte ou définissez une date d’expiration comme indiqué ci-dessus. N’oubliez pas de sauvegarder les fichiers appartenant à l’utilisateur. Vous pouvez choisir d’attribuer des fichiers à un nouveau propriétaire ou de les supprimer du système.
Enfin, supprimez le compte utilisateur à l’aide de la commande userdel.
userdel -f username
5. Restreindre l’accès à distance à un groupe d’utilisateurs spécifique
Si vous hébergez un serveur Web sur votre machine Linux, vous devrez peut-être autoriser uniquement des utilisateurs spécifiques à utiliser SSH à distance dans le système. OpenSSL vous permet de limiter les utilisateurs en vérifiant s’ils appartiennent à un groupe spécifique.
Pour cela, créez un groupe d’utilisateurs nommé ssh_gp, ajoutez les utilisateurs auxquels vous souhaitez accorder un accès à distance au groupe et répertoriez les informations du groupe d’utilisateurs comme suit :
sudo groupadd ssh_gp
sudo gpasswd -a username ssh_gp
groups username
Maintenant, ouvrez le fichier de configuration principal OpenSSL pour inclure le groupe d’utilisateurs autorisé ssh_gp.
sudo vim /etc/ssh/sshd_config
AllowGroups ssh_gp
N’oubliez pas de décommenter la ligne pour garantir une inclusion réussie dans le groupe. Une fois terminé, enregistrez et quittez le fichier et redémarrez le service :
sudo systemctl restart sshd
Maintenir la sécurité des comptes d’utilisateurs sous Linux
De nos jours, la plupart des organisations hébergent des infrastructures critiques telles que des serveurs Web, des pare-feu et des bases de données sur Linux, et la compromission de tout composant interne constitue une menace importante pour l’ensemble de l’infrastructure.
Compte tenu de l’importance de la configuration, la gestion et la sécurisation des comptes utilisateurs est un défi fondamental auquel sont confrontés les administrateurs Linux. Cet article a répertorié certaines mesures de sécurité qu’un administrateur de compte doit prendre pour protéger le système contre les menaces potentielles dues à des comptes d’utilisateurs non protégés.
Lire la suite
A propos de l’auteur