1. Étape 1 : Installation et configuration du pare-feu
Salut ! Aujourd'hui, on va se lancer dans de la pratique réelle et utiliser tout ce que tu as appris sur la sécurité Linux jusqu'ici. On configure un pare-feu, on évalue le fonctionnement de SELinux et on explore la simplicité des ACL pour gérer l'accès aux fichiers. Cette conférence, c'est ton "terrain d'entraînement". Allez, mets tes "galons de sécurité admin" et on commence !
Tu sais déjà qu'un bon pare-feu, c'est comme un vigile à l'entrée. Il décide qui peut passer et qui doit entendre "Pas question !". Pour commencer, on va protéger notre système en permettant l'accès uniquement aux services SSH et HTTP.
Travailler avec UFW
Vérifie le statut d’UFW. Pas installé ? Alors, on l'installe !
# Vérifier UFW sudo ufw statusInstaller et démarrer UFW.
# Installation (si nécessaire) sudo apt install ufw # Activer le pare-feu sudo ufw enableConfigurer l’accès. On veut permettre uniquement SSH (port 22) et HTTP (port 80), en bloquant tout le reste. Logique simple : le serveur, c’est pas un hôtel trois étoiles pour tout le monde.
# Autoriser SSH sudo ufw allow 22 # Autoriser HTTP sudo ufw allow 80 # Vérifier la configuration sudo ufw statusVérification : Après configuration, tu devrais voir quelque chose comme ça :
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80 ALLOW Anywhere
Si la commande dit que "le pare-feu est désactivé", il faut régler ça.
Si tu utilises iptables, la configuration est un peu plus complexe, mais l'idée reste la même : on crée des règles pour SSH et HTTP, et on bloque tout le reste.
2. Étape 2 : Travailler avec SELinux
SELinux, c'est un peu comme ce prof strict qui surveille ce que font les fichiers et les utilisateurs sur ton serveur. Son slogan ? "Fais confiance, mais toujours vérifie". On va activer SELinux et voir comment il fonctionne.
Activer SELinux
Vérifier l'état actuel :
# Vérifions si SELinux est activé sestatusSi le mode affiche
disabled, il faut l'activer via le fichier de configuration.Activer SELinux via la config :
Le fichier de configuration SELinux se trouve ici :
/etc/selinux/config. Ouvre-le avec un éditeur de texte (genrenano).sudo nano /etc/selinux/configCherche cette ligne :
SELINUX=disabledRemplace-la par :
SELINUX=enforcingEnregistre les modifs et redémarre le système pour que ça prenne effet :
sudo rebootVérifier après le redémarrage.
Après le démarrage du serveur, vérifie encore une fois l'état de SELinux :
getenforceSi le système répond Enforcing, félicitations, t'es devenu le gardien de la sécurité !
Exemple avec SELinux et un serveur web
Imaginons que t'as un serveur web qui stocke des fichiers dans le répertoire /var/www/html. Voyons comment SELinux le protège.
Regarder le contexte des fichiers : SELinux utilise des contextes pour gérer les accès. Jetons un œil au contexte du répertoire
/var/www/html.ls -Z /var/www/htmlExemple de sortie :
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/htmlSi quelque chose cloche, tu peux temporairement changer le contexte :
sudo chcon -t httpd_sys_content_t /var/www/htmlVérifier le fonctionnement du serveur web : Après avoir configuré le contexte, vérifie si ton serveur fonctionne et si y'a pas d'erreurs d'accès.
3. Étape 3 : Gestion des droits avec ACL
ACL (Access Control List) — c'est comme une "clé supplémentaire" pour gérer l'accès. Quand les permissions standards rwx limitent, ACL te permet de configurer l'accès de manière plus précise pour des utilisateurs spécifiques.
Créer un répertoire de test
Créons le répertoire project_dir et configurons-le pour qu'il soit accessible par deux utilisateurs : user1 et user2.
Créer le répertoire :
sudo mkdir /project_dirConfigurer les permissions :
On va permettre à
user1un accès complet, et àuser2seulement la lecture :# Accès complet pour user1 sudo setfacl -m u:user1:rwx /project_dir # Lecture seule pour user2 sudo setfacl -m u:user2:r-- /project_dirVérifier les ACL :
# Vérification des permissions actuelles getfacl /project_dirLe résultat devrait afficher vos réglages :
# fichier: /project_dir user::rwx user:user1:rwx user:user2:r--Configurer les permissions par défaut :
Pour que tous les nouveaux fichiers dans le répertoire héritent automatiquement des permissions ACL, définissons-les par défaut :
sudo setfacl -d -m u:user1:rwx /project_dir sudo setfacl -d -m u:user2:r-- /project_dir
4. Vérification de la configuration finale
Pare-feu :
- Assure-toi que les ports SSH et HTTP sont accessibles, et que les autres sont bloqués. Essaie de te connecter au serveur via SSH et d'ouvrir le site web dans un navigateur.
SELinux :
- Vérifie les contextes des fichiers pour t'assurer que SELinux limite correctement l'accès.
ACL :
- Connecte-toi en tant qu'utilisateur
user1etuser2, puis essaie de lire et d'écrire un fichier dans le répertoire/project_dir.
- Connecte-toi en tant qu'utilisateur
Exercices pratiques
- Configure un pare-feu permettant uniquement l'accès via SSH et HTTP.
- Active SELinux en mode
enforcinget assure-toi que le serveur web fonctionne correctement. - Configure ACL pour le répertoire
/project_dir: donne àuser1un accès complet et àuser2un accès en lecture seule. - Vérifie les utilisateurs actifs dans le système en utilisant la commande
who.
Ces exercices t'aideront à consolider tes connaissances et à comprendre comment les appliquer en pratique. Et rappelle-toi : la sécurité sous Linux ne se limite pas à la configuration, elle demande aussi une attention constante aux détails. Bonne chance !
GO TO FULL VERSION