Publié le : 28/12/2024

Empêcher l’accès root et créer un utilisateur avec des privilèges sudo pour la sécurité de votre système Ubuntu

Illustration sur la sécurité de son système ubuntu en désactivant l'utisateur root et en activant sudo

L’une des meilleures pratiques pour renforcer la sécurité d’un système Linux, tel qu’Ubuntu, est de limiter l’accès direct à l’utilisateur root. L’utilisateur root dispose de privilèges illimités, ce qui en fait une cible privilégiée pour les attaques malveillantes. Dans cet article, nous allons voir comment désactiver l’accès root, configurer un utilisateur avec des privilèges sudo et améliorer la sécurité globale de votre système.

Pourquoi désactiver l’accès root pour la sécurité de votre système Ubuntu ?

Le compte root est souvent la première cible d’un attaquant cherchant à accéder à un système Linux. Bien que le mot de passe root puisse être fort, il reste vulnérable aux attaques par force brute ou autres méthodes d’exploitation. Voici quelques raisons pour lesquelles vous devriez désactiver l’accès root :

  1. Réduction de la surface d’attaque : Empêcher les connexions root rend le système plus résistant aux attaques.
  2. Traçabilité : Avec sudo, chaque commande exécutée est associée à un utilisateur spécifique. Cela permet un suivi clair des actions effectuées sur le système.
  3. Gestion centralisée des permissions : Les utilisateurs ayant accès à sudo peuvent exécuter des commandes spécifiques avec des privilèges élevés, limitant le risque d’erreur.

Étape 1 : Désactiver l’accès root

Vérifier si l’accès root est activé

Sur Ubuntu, le compte root est généralement désactivé par défaut, mais il est important de s’assurer qu’il ne peut pas être utilisé pour se connecter. Voici comment vérifier :

  • Connectez-vous à votre système.
  • Vérifiez si root a un mot de passe défini :
sudo passwd -S root

Si la sortie indique que le mot de passe est « locked », cela signifie que le compte root est désactivé.

Désactiver le compte root (si nécessaire)

Si le compte root est actif, vous pouvez le désactiver en verrouillant son mot de passe :

sudo passwd -l root

Cela empêche toute connexion avec le compte root, tout en permettant de basculer temporairement en tant que root avec sudo si nécessaire.

Empêcher les connexions root via SSH

Pour renforcer la sécurité, il est également essentiel d’empêcher les connexions root via SSH. Voici comment procéder :

  • Ouvrez le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
  • Recherchez la ligne suivante :
PermitRootLogin yes
  • Modifiez-la pour :
PermitRootLogin no

Redémarrez le service SSH pour appliquer les modifications :

sudo systemctl restart ssh

Étape 2 : Créer un utilisateur avec des privilèges sudo

Avec l’accès root désactivé, vous aurez besoin d’un utilisateur capable d’exécuter des tâches administratives. Voici les étapes pour configurer cet utilisateur.

Créer un nouvel utilisateur

Pour ajouter un utilisateur, utilisez la commande suivante :

sudo adduser <nom_utilisateur>

Suivez les instructions pour définir un mot de passe et renseigner les informations de l’utilisateur. Une fois terminé, l’utilisateur sera créé avec un répertoire personnel dans /home/<nom_utilisateur>.

Ajouter l’utilisateur au groupe sudo

Pour que l’utilisateur ait les privilèges administratifs, ajoutez-le au groupe sudo :

sudo usermod -aG sudo <nom_utilisateur>

Le groupe sudo permet à ses membres d’exécuter des commandes avec des privilèges élevés en utilisant le préfixe sudo.

Tester les droits sudo

Connectez-vous en tant que nouvel utilisateur :

su - <nom_utilisateur>

Essayez une commande nécessitant des droits sudo, comme la mise à jour des paquets :

sudo apt update

Si la commande fonctionne et demande le mot de passe de l’utilisateur, cela signifie que les droits sudo sont correctement configurés.

Étape 3 : Renforcer la sécurité avec sudo

Configurer les permissions spécifiques

Pour limiter ce qu’un utilisateur peut faire avec sudo, vous pouvez éditer le fichier /etc/sudoers en utilisant visudo :

sudo visudo

Ajoutez une règle pour l’utilisateur :

<nom_utilisateur> ALL=(ALL:ALL) ALL

Vous pouvez également restreindre les commandes spécifiques. Par exemple :

<nom_utilisateur> ALL=(ALL) NOPASSWD: /usr/bin/systemctl

Cela permet à l’utilisateur d’exécuter systemctl sans mot de passe, mais pas d’autres commandes.

Configurer un délai d’expiration

Pour éviter qu’un utilisateur ne reste connecté avec des droits sudo trop longtemps, vous pouvez ajuster le délai d’expiration en ajoutant cette ligne dans /etc/sudoers :

Defaults        timestamp_timeout=5

Ici, sudo demandera le mot de passe de l’utilisateur après 5 minutes d’inactivité.

Étape 4 : Configurer les règles SSH pour l’utilisateur

Même avec l’accès root désactivé, vous pouvez renforcer la sécurité de l’utilisateur avec des réglages SSH spécifiques.

Autoriser uniquement des clés SSH

Pour empêcher les connexions basées sur un mot de passe, configurez l’utilisateur pour utiliser uniquement des clés SSH :

  • Créez une paire de clés SSH sur votre machine locale :
ssh-keygen -t rsa
  • Copiez la clé publique sur le serveur :
ssh-copy-id <nom_utilisateur>@<adresse_ip_serveur>
  • Configurez SSH pour désactiver les connexions par mot de passe : Ouvrez le fichier /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config
  • Assurez-vous que les lignes suivantes sont définies :
PasswordAuthentication no 
PubkeyAuthentication yes
  • Redémarrez SSH :
sudo systemctl restart ssh

Étape 5 : Vérification finale

Une fois ces configurations effectuées, vérifiez que :

  • L’accès root est désactivé en essayant de vous connecter avec root.
  • Le nouvel utilisateur peut exécuter des commandes avec sudo.
  • Les connexions SSH fonctionnent correctement pour l’utilisateur.

Étape 6 : Conseils supplémentaires

  • Surveiller les connexions : Utilisez des outils comme last ou journalctl pour suivre les connexions des utilisateurs.
  • Mettre en place un pare-feu : Activez et configurez un pare-feu avec ufw pour limiter les accès au serveur :
sudo ufw enable 
sudo ufw allow OpenSSH
  • Limiter le nombre de comptes sudo : Seuls les utilisateurs de confiance doivent avoir les privilèges sudo.

Conclusion

Désactiver l’accès root et utiliser un utilisateur avec des privilèges sudo est une étape cruciale pour sécuriser un système Ubuntu. Cela réduit les risques de compromission tout en permettant une gestion efficace des permissions. En suivant ce guide, vous aurez un système plus sûr et prêt à affronter les défis d’un environnement réseau. N’oubliez pas d’adopter une approche proactive pour la sécurité, comme la mise en place de mises à jour régulières et la surveillance des journaux système.

Les mots clés rattachés à cet article : Sécurité  -  Ubuntu

Nos clients

Une vingtaine de clients nationaux et internationaux