Épurer un serveur

Épurer son serveur c’est la première chose à faire pour l’hardener. L’épuration consiste tout simplement à supprimer touts les éléments présents par défaut qui ne sont pas utiles. Parmi eux on retrouve les services, les paquets, les utilisateurs ainsi que les groupes.

L’épuration d’un serveur peut être une étape assez dangereuse puisque vous pouvez totalement casser votre serveur si vous supprimez le mauvais paquet/service/utilisateur.

La meilleure méthode pour apprendre à épurer un serveur, en tout cas c’est celle que j’ai utilisé, c’est de partir d’une machine debian bureautique installée avec tous les packages de base (environnement graphique, serveur web, serveurs d’impression etc…) et de supprimer petit à petit tout ce qui est inutile.

I/ Supprimer les services inutiles

Sur une machine bureautique standard tournent de nombreux services. Par exemple sur mon PC personnel j’ai 85 services qui tournent (openvpn, serveur x11, serveur d’impression etc). Sur un serveur debian vous vous devez de supprimer tous ces services inutiles. Pour cela on pourra commencer par lister l’ensemble des services activés sur notre serveur via la commande suivante :

systemctl list-unit-files | grep enabled

Ce qui nous donnera le résultat suivant :

capture-du-2019-10-01-15-12-59-e1570292417264.png

Sur la liste ci-dessus je vois deux services activés qui n’ont rien à faire sur un serveur : cups (service d’impression) et bluetooth. Ces service on pourra les désactiver :

sudo systemctl stop {cups,bluetooth}
sudo systemctl disable {cups,bluetooth}

Puis les supprimer :

sudo apt purge {'bluez*','cups'}

En faisant cela nous réduisons drastiquement la surface d’attaque pour un attaquant. Attention cependant à ne pas supprimer n’importe quel service. Par exemple nous aurons toujours besoin d’un serveur mail (exim4 ou postfix) pour nous envoyer les alertes que nous configurerons dans de prochains articles.

II/ Supprimer les paquets inutiles

Pour les mêmes raisons que pour les services il est important de supprimer les paquets inutiles. Par exemple sur un serveur web il est très peu probable que vous ayez besoin d’installer python. Il faudra vraiment épurer au maximum le nombre de paquets installés sur votre serveur. A titre d’informations un serveur debian classique dispose d’environ 380 paquets à l’installation.

Pour lister les paquets installés sur votre serveur on pourra utiliser la commande :

dpkg -l

Que l’on pourra piper avec le binaire wc pour obtenir le nombre total de paquets installés :

dpkg -l | wc -l

De même on pourra lister les paquets par taille sur votre système. Pour cela j’utilise cette commande via un alias:

dpkg-query --show --showformat="\${Installed-Size}\t\${Package}\n" | sort -rh | awk "{print  \$1/1024, \$2}"

Qui me donne l’output suivant sur mon PC perso :

Capture du 2019-10-05 18-42-30.png

Il sera possible d’obtenir le même ouput en installant l’utilitaire wajig (le seul souci étant que cet utilitaire repose sur python et donc nous serons obligés d’installer un environnement python).

III/ Supprimer les utilisateurs/groupes inutilisés

La dernière étape consiste à supprimer les utilisateurs et groupes non utilisés. Pour cela on utilisera les binaires deluser et delgroup. Globalement voici la liste des utilisateurs que vous pouvez supprimer en étant sûr de ne rien casser : uucp, news, games, lp, usbmux, hplip, irc et proxy.

Quant aux groupes vous pourrez supprimer les groupes audio et bluetooth à minima. Si vous supprimez un mauvais utilisateur par erreur, à tous hasard l’utilisateur ssh, il vous suffira de lancer la commande :

dpkg-reconfigure openssh-server

Pour que ce dernier soit recréé dans de bonnes conditions.

Voilà avec ça nous aurons une bonne base pour notre serveur 🙂 !

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s