# THOMAS Pour appliquer ces mesures nous avons fait un script au prealable sur la machine afin de voir notre score sans aucne modifications ![image](https://hackmd.io/_uploads/BJMnT_QBT.png) Nous avons donc choisi de faire un script avec toutes les mesures non activé dans le rapport lynis. Voila le contenu du script bash : #!/bin/bash # Activer le pare-feu (UFW) sudo apt install ufw -y sudo ufw default deny incoming # Définir la politique par défaut pour les connexions entrantes comme refusée sudo ufw default allow outgoing # Définir la politique par défaut pour les connexions sortantes comme autorisée sudo ufw enable # Activer le pare-feu UFW # Installer l'outil d'audit de paquets (debsecan) sudo apt install debsecan -y # Configurer les paramètres du mot de passe sudo sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS 30/' /etc/login.defs # Limiter la durée maximale du mot de passe à 30 jours sudo sed -i 's/PASS_MIN_DAYS.*/PASS_MIN_DAYS 30/' /etc/login.defs # Définir la durée minimale avant changement de mot de passe à 30 jours sudo sed -i 's/PASS_MIN_LEN.*/PASS_MIN_LEN 8/' /etc/login.defs # Définir la longueur minimale du mot de passe à 8 caractères # Installer PAM Cracklib sudo apt install libpam-cracklib -y echo "password requisite pam_pwquality.so retry=3" | sudo tee -a /etc/pam.d/common-password # Configurer le module PAM pour la qualité du mot de passe # Installer un outil d'intégrité des fichiers (AIDE) sudo apt install aide -y # Activer AppArmor sudo apt install apparmor -y sudo systemctl enable apparmor # Activer AppArmor au démarrage sudo systemctl start apparmor # Démarrer le service AppArmor # Activer le logging des échecs de connexion et installer fail2ban sudo apt install fail2ban -y sudo systemctl enable fail2ban # Activer fail2ban au démarrage sudo systemctl start fail2ban # Démarrer le service fail2ban # Installer un scanner de malware (rkhunter) sudo apt install rkhunter -y # Configurer le noyau pour désactiver le dump core echo "* hard core 0" | sudo tee -a /etc/security/limits.conf # Limiter la création de fichiers core # Mettre à jour Lynis sudo apt install lynis -y # Vérifier le fichier resolv.conf # Ajouter une sauvegarde nameserver si possible (à configurer manuellement) # Installer debsums pour la vérification des paquets sudo apt install debsums -y # Installer apt-show-versions pour la gestion des correctifs sudo apt install apt-show-versions -y # Configurer SSH (à configurer manuellement) # (Port, AllowAgentForwarding, AllowTcpForwarding, ClientAliveCountMax, Compression, LogLevel, MaxAuthTries, MaxSessions, TCPKeepAlive, X11Forwarding) # Voici une configuration recommandée : sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config # Changer le port SSH par défaut sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # Désactiver la connexion directe en tant que root sudo sed -i 's/AllowAgentForwarding yes/AllowAgentForwarding no/' /etc/ssh/sshd_config # Désactiver la transmission d'agent SSH sudo sed -i 's/AllowTcpForwarding yes/AllowTcpForwarding no/' /etc/ssh/sshd_config # Désactiver la redirection de port TCP sudo sed -i 's/ClientAliveCountMax 3/ClientAliveCountMax 2/' /etc/ssh/sshd_config # Limiter le nombre d'essais avant la déconnexion sudo sed -i 's/Compression yes/Compression no/' /etc/ssh/sshd_config # Désactiver la compression SSH sudo sed -i 's/LogLevel INFO/LogLevel VERBOSE/' /etc/ssh/sshd_config # Augmenter le niveau de journalisation sudo sed -i 's/MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config # Limiter le nombre d'essais d'authentification sudo sed -i 's/MaxSessions 10/MaxSessions 2/' /etc/ssh/sshd_config # Limiter le nombre de sessions simultanées sudo sed -i 's/#TCPKeepAlive yes/TCPKeepAlive no/' /etc/ssh/sshd_config # Désactiver les sondages TCP KeepAlive sudo sed -i 's/X11Forwarding yes/X11Forwarding no/' /etc/ssh/sshd_config # Désactiver le transfert X11 echo "Les recommandations de sécurité ont été appliquées avec succès." Apres nous avons lancé un scan lynis pour voir si il y a du changement entre les deux. ![image](https://hackmd.io/_uploads/HkmzEF7rp.png) ## Quelles sont les differences entre les deux rapports Dans le premier rapport, il y avait deux avertissements : * FIRE-4512 : Le module iptables était chargé, mais aucune règle n'était active. * NETW-2705 : Impossible de trouver 2 serveurs DNS réactifs. **Ajouts dans le deuxième rapport :** Dans le deuxième rapport, plusieurs recommandations ont été ajoutées : * Installation d'un module PAM pour le test de la force du mot de passe (AUTH-9262). * Configuration des durées de mot de passe dans /etc/login.defs (AUTH-9286). * Ajout de bannières légales à /etc/issue et /etc/issue.net (BANN-7126 et BANN-7130). * Installation de fail2ban pour bloquer automatiquement les hôtes avec plusieurs erreurs d'authentification (DEB-0880). * Installation d'un outil d'intégrité des fichiers comme rkhunter (FINT-4350). * Désactivation explicite du vidage noyau dans /etc/security/limits.conf (KRNL-5820). * Installation de debsums et apt-show-versions pour la vérification des packages (PKGS-7370 et PKGS-7394). * Diverses recommandations SSH (SSH-7408). * Désactivation des drivers firewire et USB storage non utilisés (STRG-1846 et USB-1000). **Modification de la dureté :** * Le premier rapport avait un indice de durcissement de 63, tandis que le deuxième rapport a un indice de durcissement de 70. **Suppression dans le deuxième rapport :** * Le deuxième rapport ne signale plus la nécessité de restreindre l'accès aux drivers firewire et USB storage lorsque non utilisés (STRG-1846 et USB-1000).