Supprimer ou reconfigurer rpcbind de Debian pour regagner un peu en sécurité

closeCet article a été publié il y a 9 ans 28 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Même si vous avez pris le pli d’utiliser un pare-feu sur votre machine Debian, j’ai remarqué qu’une installation par défaut « embarquait » le démon rpcbind, qui écoute et répond à tout va sur le port 111. Wut ? Fort heureusement, s’il ne vous sert pas, on peut le supprimer très simplement.

Non, rpcbind n’est pas toujours inutile

De nos jours, rpcbind n’est plus utilisé que pour NFS, pour Network File System, qui permet de « monter » un système de fichier distant comme s’il était local. La plupart des gens (dont je fais partie) lui préférera CIFS/Samba, qui est une implémentation du partage de fichiers made in Microsoft, ce qui est plus pratique pour partager des dossiers avec leurs OS.

Et c’est à peu près tout, les deux autres usages d’rpcbind sont abandonnés depuis.

Si vous ne vous en servez pas ? Suppression

Si dans certaines anciennes versions de Debian, supprimer rpcbind équivalait à un parcours du combattant, le paquet est bien mieux construit aujourd’hui, rendant l’opération triviale. J’opte pour l’option purge qui permet de supprimer tous les fichiers de configuration en même temps que le programme lui-même :

On constate donc qu’il a supprimé les ressources communes d’nfs (et les fichiers de configuration correspondants) en même temps. Par la suite, j’ai découvert (un peu par hasard, sur une autre machine) qu’on pouvait supprimer des paquets supplémentaires à l’aide d’une deuxième commande :

Et hop, deux paquets en moins aussi.

Et si on utilise NFS ? On revoit la sécurité

En effet, il ne s’agirait pas non plus que n’importe qui accède au serveur NFS en attaquant comme ça. Il faut de préférence restreindre l’accès aux seules machines autorisées et à qui sont destinées ces partages.

Et on peut le faire au niveau d’rpcbind, en modifiant les fichiers hosts.allow et hosts.deny. Ces fichiers permettent de définir respectivement autorisation et interdiction aux machines soit globalement, soit service par service.

On commence donc par interdire toute communication sur rpcbind qui viendrait de l’extérieur :

Ensuite, il suffit d’ajouter les noms ou les adresses IP des machines autorisées :

Solution annexe : le pare-feu

J’ai déjà expliqué sur le wiki d’homeserver.diy comment configurer le pare-feu du noyau Linux au moyen d’un script de démarrage pour iptables. Il est possible d’agir à ce niveau pour sécuriser un peu plus sa machine 🙂

1 Commentaire
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
bilal
bilal
04/09/2016 16:36

Merci pour cet article ! Ça m’a mis la puce à l’oreille et je suis allé vérifier sur mes systèmes Debian, rpcbind écoutait bien en TCP sur 0.0.0.0 port 111. Pour ceux qui utilisent systemd, on peut facilement désactiver rpcbind en lançant :

$ sudo systemctl stop rpcbind.service
$ sudo systemctl disable rpcbind.service

Mais il se peut qu’une mise à jour via apt-get réactive rpcbind … Adjoindre une règle pare-feu évitera les mauvaises surprises.