Renforcer la sécurité d'un serveur/machine Linux, dans notre cas sur la distro Debian
Création d'un script bash afin d'automatiser ce qui est dit ci-dessous.
#!/bin/bash
hardenfun(){
string=$(sudo -l 2>&1)
if [[ $string -eq *"NOPASSWD"* ]]; then
echo "[+] Vous êtes potentiellement vulnérables à une privesc NOPASSWD"
else
echo "[+] Vous n'êtes pas vulnérables à une privesc NOPASSWD"
fi
chmod 770 /home/*
cut=$(ls -lha | grep 'test770' | cut -b -10)
if [[ $cut == *"drwxrwx---"* ]]; then
echo "oki";
else
echo "no";
fi
cut=$(ls -lha /home/* | cut -b -10 | sed '1d')
if [[ $cut != *"drwxrwx---"* ]]; then
echo "[+] Dossier lisible par tous les users";
else
echo "[+] Dossiers lisible seulement par les users auxquels ils appartiennent ";
fi
echo "proc /proc proc defaults,nosuid,nodev,noexec,relatime,hidepid=2 0 0" >> /etc/fstab
proc=$(cat /etc/fstab)
if [[ $proc == *"proc /proc proc defaults,nosuid,nodev,noexec,relatime,hidepid=2 0 0"* ]]; then
echo "[+] Processus cachés pour les autres utilisateurs"
else
echo "[+] Processus visible par les autres utilisateurs"
fi
systemctl stop cron && systemctl disable cron
status=$(systemctl status cron)
if [[ $status == *"disabled"* ]]; then
echo "[+]disabled"
else
echo "[+]enabled"
fi
groupadd sudogrp
usermod -aG sudogrp debian && chgrp sudogrp $(which sudo)
apt install unattended-upgrade apt-listchanges
}
hardenfun
Configuration BIOS
Partitionnement
La mise en place d'un partitionnement spécifique permet de limiter les sinistres, ainsi que de les anticiper.
Partitionnement:
echo 'proc /proc proc defaults,nosuid,nodev,noexec,relatime,hidepid=2 0 0' >> /etc/fstab
Gestion SUID & droits d'éxécution
echo 'tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0' >> /etc/fstab
UMASK
UMASK
et des repetoires /home
/home
doivent être visibles uniquement par les utilisateurs auxquels ils appartiennent.
chmod 770 /home/*
sed -i 's/^UMASK.*/UMASK 0077/g' /etc/login.defs
Cron
cron
n'est pas utilisé, il est mieux de le désactiver.
systemctl stop cron
systemctl disable cron
Update
apt install unattended-upgrades apt-listchanges
Sudo
Il ne faut jamais mettre la directive NOPASSWD (sudo -l
) dans une règle sudo car cela permet de bypass l’authentification des utilisateurs pour exécuter une commande privilégiée
Groupe dédié à l’utilisation de sudo
On créé le groupe sudogrp et donne accès au binaire seulement aux utilisateurs membres de ce groupe (ici, debian a le droit d’utiliser sudo)
Cela permet d’avoir la main sur les utilisateurs autorisés à utiliser sudo
groupadd sudogrp
usermod -a -G sudogrp debian
chgrp sudogrp $(which sudo)
chmod 4750 $(which sudo)
Usage de sudoedit
Pour ne pas corrompre l'utilisation de sudo et le fichier sudoers
, il est important d'utiliser (sudoedit)