---
# System prepended metadata

title: THOMAS

---

# 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).

