🐧 Linux : Sécurité et permissions

La sécurité est un aspect fondamental des systèmes Linux. Cette fiche couvre les commandes essentielles pour gérer les permissions de fichiers, les utilisateurs, les groupes, et configurer les outils de sécurité de base comme le pare-feu.

📑 Sommaire

🔐 Permissions de fichiers

Le système de permissions Linux utilise un modèle basé sur l'utilisateur, le groupe et les autres utilisateurs :

ls -l                     # Affiche les permissions

Exemple de sortie :

-rwxr-xr-- 1 user group 4096 avr 27 14:30 script.sh

Décryptage des permissions :

Signification des lettres :

🛠️ Utilisation de chmod

La commande chmod (change mode) modifie les permissions des fichiers :

chmod u+x fichier.sh     # Ajoute l'exécution au propriétaire
chmod g+w fichier.txt    # Ajoute l'écriture au groupe
chmod o-r fichier.conf   # Retire la lecture aux autres
chmod a+r fichier.log    # Ajoute la lecture pour tous

Notation numérique (octal) :

chmod 755 fichier.sh     # rwxr-xr-x
chmod 644 fichier.txt    # rw-r--r--
chmod 600 clé_privée     # rw-------
chmod 777 fichier        # rwxrwxrwx (éviter, trop permissif)

Explication des valeurs octales :

On additionne les valeurs pour chaque catégorie d'utilisateur (propriétaire, groupe, autres). Par exemple, 7 = 4+2+1 = rwx

chmod -R 755 dossier/   # Change récursivement les permissions d'un dossier

👤 Changer les propriétaires

Modifiez le propriétaire et le groupe d'un fichier :

chown user:group fichier.txt # Change le propriétaire et le groupe
chown utilisateur fichier    # Change seulement le propriétaire
chgrp groupe fichier         # Change seulement le groupe
chown -R user:group dossier/ # Change récursivement pour un dossier

🔑 Superutilisateur et sudo

La commande sudo permet d'exécuter des commandes avec les privilèges administrateur :

sudo commande             # Exécute une commande en administrateur
sudo -i                  # Ouvre un shell root
sudo -l                  # Liste les privilèges sudo de l'utilisateur
visudo                   # Édite la configuration sudo (toujours utiliser cette commande)

Configurer sudo pour un utilisateur (via visudo) :

# Permettre à un utilisateur d'exécuter toutes les commandes
utilisateur ALL=(ALL:ALL) ALL

# Permettre à un utilisateur d'exécuter certaines commandes sans mot de passe
utilisateur ALL=(ALL) NOPASSWD: /sbin/shutdown, /sbin/reboot

🛡️ Pare-feu (ufw)

UFW (Uncomplicated Firewall) est une interface simplifiée pour gérer le pare-feu iptables :

sudo ufw status           # État du pare-feu
sudo ufw enable          # Active ufw
sudo ufw disable         # Désactive ufw
sudo ufw allow 22        # Autorise SSH (port 22)
sudo ufw allow ssh       # Autorise SSH (par nom de service)
sudo ufw deny 80         # Bloque HTTP
sudo ufw allow from 192.168.1.0/24 to any port 22  # Autorise SSH seulement du réseau local
sudo ufw delete allow 80 # Supprime une règle

Configuration de règles plus complexes :

sudo ufw allow 5000:5100/tcp   # Autorise une plage de ports TCP
sudo ufw allow 5000:5100/udp   # Autorise une plage de ports UDP
sudo ufw status numbered       # Liste les règles avec numéros
sudo ufw delete 3              # Supprime la règle numéro 3

🔒 Sécurité SSH

Améliorez la sécurité de votre serveur SSH :

# Modifier la configuration SSH
sudo nano /etc/ssh/sshd_config

# Appliquer les changements
sudo systemctl restart sshd

Modifications recommandées :

# Désactiver la connexion root
PermitRootLogin no

# Utiliser uniquement le protocole SSH v2
Protocol 2

# Limiter les utilisateurs autorisés
AllowUsers utilisateur1 utilisateur2

# Changer le port par défaut (optionnel)
Port 2222

Utilisation des clés SSH :

# Générer une paire de clés
ssh-keygen -t rsa -b 4096

# Copier la clé sur un serveur distant
ssh-copy-id utilisateur@serveur
🎁 Bonus : Sécurité avancée

Fail2ban

Fail2ban est un outil qui bloque automatiquement les adresses IP après plusieurs tentatives de connexion échouées :

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# Vérifier le statut
sudo fail2ban-client status

# Vérifier une prison spécifique
sudo fail2ban-client status sshd

AppArmor

AppArmor est un système de contrôle d'accès qui limite les ressources système qu'un programme peut utiliser :

sudo aa-status             # Vérifier le statut d'AppArmor
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox  # Appliquer un profil
sudo apparmor_parser -r /etc/apparmor.d/profile  # Recharger un profil

Vérification d'intégrité

# Installer AIDE (Advanced Intrusion Detection Environment)
sudo apt install aide

# Initialiser la base de données
sudo aideinit

# Vérifier l'intégrité du système
sudo aide --check
🏠 Retour au sommaire général