Hardening: Securisez vos serveurs 1/2
De nos jours, l'appât du gain est tellement facile, que l'on n'est pas à l'abri d'un collègue par exemple, qui se ferait retourner contre de l'argent, afin de donner un accès à nos serveurs.
Cela s'est déjà vu, peut-être pas dans l'IT, mais dans d'autres domaines oui.
S'il est un des domaines particulièrement complexe dans l'IT, c'est bien le durcissement système ou Hardening.
Durcir une machine ne consiste pas uniquement à appliquer au mieux les recommandations d'experts sécurités ou de tels ou tels outils d'audit.
Il faut savoir que ce que l'on fait et qu'elle vont être les éventuels impactes sur le comportement du système.
Durcir un système nécessite une connaissance approfondie du système.
Nous verrons brièvement dans le second article, pourquoi le fait de n'utiliser qu'un seul outils d'audit n'est pas une bonne idée pour sécuriser les serveurs.
Nous allons donc corriger ce que nous avons vu dans l'article précédent : Grub: changer son passe root
Secure Grub
Afin d'éviter que n'importe qui puisse changer le mot de passe root, nous allons devoir effectuer une petite modification qui va nous apporter une contrainte au boot.
Bon, après ce n'est pas bien méchant, on reboot pas des serveurs tous les jours comme des pc, ni toutes les semaines, et si c'est le cas, et bien faudra un choix.
Mais ... chut ! On va remédier à cela aussi.
Si j'apporte de la "sécurité", faut pas non plus que cela nous ralentisse hein ?
Bien qu'est ce que l'on va faire pour éviter cela ?
Simplement ajouter un user et un password au boot.
Sans ce couple user/password, pas de changement de mot de passe, mais pas de boot de la machine non plus.
Comment ?
En ajoutant 5 lignes, oui seulement 5, à un fichier de conf de Grub, mais pas n'importe lequel, même si cela fonctionne.
Et l'on va ajouter une toute petite option également, dans le même fichier, bien plus facile à administrer.
On va commencer par créer le couple user/password et récupérer le hash sha 512 du password
Attention : pensez bien au fait que le mot de passe devra être tapé en QWERTY dans grub
grub-mkpasswd-pbkdf2
Copier et garder précieusement le password généré.
grub.pbkdf2.sha512.10000.05C6B2313553A5D7754F0EDD26B951BA712DC2F775138224DA7B8A512641B6D295E3B11B0362849E36C419BE1D360320F427FDD113753024C9E2C902F553EB65.0A875FBD1E0F96FE22CAC3A20B41462AFC1B21450F55BB719F9CFCABEE40A041B38FF2FFD68E1524CFF83EAA3999A11CD453E06DE006C6525F9345BA1E057747
Le superuser ou le user ne doivent pas être stockés/contenus dans /etc/grub.d/00_header
Car ce fichier est susceptible d'être mis à jour et les données écrasées.
Donc nous allons le placer dans /etc/grub.d/10_linux.
voici ce que nous allons insérer à la fin du fichier /etc/grub.d/10_linux:
cat <<EOF
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.05C6B2313553A5D7754F0EDD26B951BA712DC2F775138224DA7B8A512641B6D295E3B11B0362849E36C419BE1D360320F427FDD113753024C9E2C902F553EB65.0A875FBD1E0F96FE22CAC3A20B41462AFC1B21450F55BB719F9CFCABEE40A041B38FF2FFD68E1524CFF83EAA3999A11CD453E06DE006C6525F9345BA1E057747
EOF
J'ai choisi root, mais je peux très bien mettre n'importe quoi comme superusers (toto, dfgt, moi, owner, etc...), ou créer des users
On finalise par:
update-grub
On reboot et on admire:
Dans le 3e screen, j'ai laissé le mot de passe vide
Sachez que le pavé numérique ne fonctionne pas à cette étape.
Bon tu nous as dit que l'on devait pouvoir booter sans avoir à jouer cette étape.
Comment?
Dans notre fichier /etc/grub.d/10_linux
Recherchons cette ligne:
CLASS="--class gnu-linux --class gnu --class os"
Et modifions-là comme ceci:
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
A nouveau:
update-grub
Reboot et observez la magie opérée !
Par contre si vous tentez de modifier le mot de passe root comme vu dans l'article précédent: Grub: changer son passe root, là, il vous faudra entrer ce couple user/passwd.
Ils ne vous reste plus qu'à approfondir pour configurer cela aux petits oignons.
Enjoy !!!