Sécuriser Ubuntu après installation

Important : les commandes suivantes requièrent des privilèges root. Remplacez “username” par votre nom d’utilisateur réel quand indiqué.
Pourquoi ce guide
Ubuntu privilégie l’ergonomie et la facilité d’utilisation par défaut, ce qui peut laisser des vecteurs d’attaque mineurs ouverts. Ce guide explique des changements concrets, compréhensibles et réversibles pour durcir une installation Ubuntu tout en restant utilisable au quotidien.
Sommaire rapide
- Configurer un mot de passe utilisateur et gérer les comptes invités
- Monter la mémoire partagée en lecture seule ou avec restrictions
- Restreindre l’accès au programme su pour les comptes non administrateurs
- Protéger le répertoire /home
- Empêcher la connexion root via SSH
- Bonnes pratiques complémentaires et checklist d’audit
Préparation : ouvrir des fichiers de configuration en root
Trois méthodes courantes pour éditer un fichier en tant que root (exemple : “/file/config”). Conservez exactement ces syntaxes.
Ouvrir via le terminal :
sudoedit /file/config
Sur Gnome (ou environnements graphiques similaires), appuyez sur Alt + F2 et tapez :
gksudo gedit /file/config
Sur KDE, appuyez sur Alt + F2 et tapez :
kdesu kate /file/config
Note : dans les captures d’écran de ce guide, les exemples montrent principalement l’utilisation du terminal avec sudoedit
.
Les mesures de base
Ces étapes dépendent de l’usage prévu de la machine. Appliquez uniquement ce qui correspond à votre contexte (poste personnel, serveur, poste partagé).
1) Définir un mot de passe pour les comptes utilisateur
Même si vous êtes le seul utilisateur, protégez votre compte par un mot de passe solide. Si vous prêtez votre machine, créez un compte invité distinct et protégez-le également par mot de passe. Linux est multi-utilisateur par conception : utiliser des comptes distincts réduit les risques et facilite la traçabilité.
Conseil rapide : privilégiez des passphrases longues (> 12 caractères) et activez l’authentification à deux facteurs (2FA) pour les services qui le supportent.
2) Reconfigurer la mémoire partagée (/run/shm)
Par défaut, l’espace de mémoire partagée (/run/shm) est monté en lecture/écriture et permet l’exécution de programmes — une configuration exploitée par certains vecteurs d’attaque. Pour la plupart des postes et serveurs, il est plus sûr de monter cette mémoire en lecture seule.
Ouvrez le fichier fstab :
sudoedit /etc/fstab
Ajoutez la ligne suivante à la fin du fichier pour monter en lecture seule :
none /run/shm tmpfs defaults,ro 00
Toutefois, certains navigateurs comme Google Chrome utilisent /run/shm ; si vous devez conserver un montage en écriture, utilisez plutôt ces options plus restrictives (interdit l’exécution, disables SUID/SGID) :
none /run/shm tmpfs rw,noexec,nosuid,nodev 00
Notes importantes :
- Après modification de /etc/fstab, démontez puis remontez la partition ou redémarrez pour appliquer.
- Si une application échoue après ce changement, réévaluez ses besoins et appliquez une exception ciblée ou revenez temporairement en arrière.
3) Refuser l’utilisation de su aux comptes non-administrateurs
Le programme su
permet d’exécuter un programme en tant qu’un autre utilisateur. Sur une machine partagée (avec un compte Guest), il peut être abusé. Restreindre su
aux membres du groupe sudo
ou admin
réduit la surface d’attaque.
Exemple de commande pour ajuster les privilèges (exécuter dans un terminal) :
sudo dpkg-statoverride --update --add root sudo 4750 /bin/su
Cette commande ajuste les permissions afin que seul l’utilisateur root et les membres du groupe sudo puissent utiliser /bin/su.
4) Sécuriser votre répertoire personnel
Par défaut, les répertoires /home/* peuvent être lisibles par d’autres utilisateurs. Pour empêcher les autres comptes (par ex. Guest) d’accéder à vos fichiers :
chmod 0700 /home/username
ou, si vous voulez autoriser l’accès aux membres du même groupe :
chmod 0750 /home/username
Astuce : si vous utilisez un dossier partagé entre plusieurs comptes (par ex. colocation), créez un groupe dédié et ajustez les permissions de groupe plutôt que d’ouvrir globalement.
5) Désactiver la connexion directe root via SSH
Par défaut, Ubuntu désactive souvent l’accès SSH direct à root, mais si un mot de passe root est défini, cela crée un risque majeur.
Vérifiez si un serveur SSH est installé en lançant :
ssh localhost
Si vous voyez “Connection refused”, il n’y a pas de serveur SSH et vous pouvez ignorer la configuration SSH.
Si sshd est installé, éditez :
sudoedit /etc/ssh/sshd_config
Remplacez ou assurez-vous que la ligne suivante existe :
PermitRootLogin no
Puis redémarrez le service SSH :
sudo systemctl restart sshd
Conseil supplémentaire : préférez l’authentification par clé publique et désactivez l’authentification par mot de passe si possible.
Bonnes pratiques complémentaires (durcissement général)
Ces mesures complètent les réglages précédents et constituent un niveau additionnel de protection.
- Activer les mises à jour automatiques de sécurité (unattended-upgrades).
- Activer et configurer le pare-feu (ufw) : fermer les ports inutilisés, autoriser seulement les services nécessaires.
- Utiliser AppArmor (activé par défaut sur Ubuntu) et charger des profils stricts pour les services exposés.
- Supprimer ou désactiver les services inutiles (ex : cups si vous n’imprimez pas).
- Installer fail2ban pour protéger les services exposés (SSH, services web) contre les tentatives d’authentification bruteforce.
- Chiffrer le disque ou au moins le /home si les données sont sensibles (LUKS / cryptsetup).
- Auditer périodiquement les comptes utilisateurs et supprimer les comptes inactifs.
Rappel : ajustez chaque changement au contexte — un serveur public a des besoins différents d’un poste de travail personnel.
Mini-méthodologie : approche en 5 étapes pour durcir un système
- Inventaire : lister les services installés et les ports ouverts (ex :
ss -tulpn
,systemctl list-units --type=service
). - Prioriser : identifier les services exposés publiquement et les données sensibles.
- Appliquer des contrôles de base : mises à jour, pare-feu, désactivation des services inutiles.
- Renforcer : chiffrement, AppArmor, restrictions de permissions, configuration SSH.
- Vérifier : tests d’accès, journaux, outils d’audit comme Lynis ou OpenSCAP.
Checklist rapide (SOP) pour un poste Ubuntu fraîchement installé
- Compte utilisateur protégé par mot de passe fort
- /run/shm monté avec options restrictives dans /etc/fstab
- [ ]
su
restreint aux groupes d’administration - /home/username en 0700 ou 0750 selon besoins
- PermitRootLogin=no dans /etc/ssh/sshd_config
- Pare-feu (ufw) configuré et actif
- Unattended-upgrades activé pour les mises à jour de sécurité
- Profils AppArmor actifs pour services critiques
- Fail2ban configuré si services exposés
- Sauvegardes et chiffrement des données sensibles
Arbre de décision rapide (Mermaid)
graph TD
A[Machine nouvellement installée] --> B{Exposée sur internet ?}
B -- Oui --> C[Configurer SSH : clés, PermitRootLogin=no]
B -- Non --> D[Configurer poste local : /home 0700, désactiver services]
C --> E{Navigateur Chrome utilisé ?}
E -- Oui --> F[Monter /run/shm rw,noexec,nosuid,nodev]
E -- Non --> G[Monter /run/shm defaults,ro]
D --> G
F --> H[Activer pare-feu et fail2ban]
G --> H
H --> I[Vérifier journaux et appliquer corrections]
Quand ces mesures peuvent échouer ou être insuffisantes
- Machines qui exécutent des applications légées mais nécessitant /run/shm en écriture : il faudra des exceptions ciblées.
- Services mal configurés ou vulnérables (ex : applications web non patchées) demandent des correctifs spécifiques au lieu de réglages système généraux.
- Attaques physiques (accès direct au matériel) nécessitent chiffrement complet du disque.
Critères d’acceptation
Pour considérer que le durcissement est satisfaisant :
- /run/shm monté avec options restrictives ou documentées exceptions
- Tous les comptes non nécessaires désactivés et les comptes administrateurs limités
- /home des utilisateurs confidentiels inaccessible aux autres comptes
- SSH configuré pour refuser root et préférer clés publiques
- Pare-feu actif et règles minimales en place
- Mises à jour de sécurité automatiques activées
Vérifications et tests (cas de test)
- Test SSH :
ssh localhost
doit répondre (ou refuser si service absent) etPermitRootLogin no
empêche root. - Test de permission : depuis un autre compte non-admin, tenter
ls /home/username
doit retourner “Permission denied”. - Test fstab :
mount | grep /run/shm
montre les options prises en compte. - Scanner local des ports :
ss -tulpn
confirme les services écoutant.
Notes sur la vie privée et conformité (GDPR)
- Chiffrez les données personnelles et limitez les sauvegardes non chiffrées.
- Documentez qui a accès aux comptes administrateurs et conservez des journaux d’accès pour l’audit.
- Supprimez les comptes et données d’anciens utilisateurs conformément aux obligations de conservation.
Résumé et étapes suivantes
Vous disposez maintenant d’un plan simple et reproductible pour durcir une installation Ubuntu fraîche. Commencez par les réglages de /etc/fstab, permissions /home et SSH, puis complétez par des pare-feu, AppArmor et mises à jour automatiques. Testez chaque changement et conservez une procédure de réversibilité (sauvegarde des fichiers de configuration avant modification).
Pour aller plus loin : auditez régulièrement, automatisez les mises à jour de sécurité, et utilisez des outils d’audit comme Lynis pour détecter d’autres recommandations spécifiques à votre configuration.
Résumé des principaux enseignements
- Protégez les comptes et limitez l’accès root
- Réduisez la surface d’attaque (services, exécution dans /run/shm)
- Appliquez les mises à jour et utilisez un pare-feu
- Testez et documentez les changements
Pour plus d’informations et des guides détaillés, consultez la documentation officielle d’Ubuntu et le wiki communautaire.
Matériaux similaires

Trading d'options : guide stratégique pour débutants
Envoyer des SMS gratuits en ligne

Empêcher l'expiration du mot de passe local

Réduire la taille des photos sur iPhone
