Product SiteDocumentation Site

5.13. Sécurisation des services RPC

Vous devriez désactiver RPC si vous n'en avez pas besoin.
Les appels de procédure à distance (« Remote Procedure Call » ou RPC) sont un protocole que les programmes peuvent utiliser pour demander des services de la part d'autres programmes liées sur différents ordinateurs. Le service portmap contrôle les services RPC en convertissant les numéros de programme RPC en numéros de port du protocole DARPA ; il doit fonctionner pour pouvoir faire des appels RPC.
Les services basés sur RPC ont eu un mauvaise historique de trous de sécurité, bien que le portmapper lui-même n'en a pas (mais il fournit des informations à un attaquant distant). Notez que certaines des attaques DDoS (déni de service distribué) exploitent RPC pour entrer dans le système et agir en tant qu'agent ou gestionnaire.
Vous n'avez besoin de RPC que si vous utilisez un service basé sur RPC. Les services basés sur RPC les plus communs sont NFS (Network File System) et NIS (Network Information System). Consultez la section précédente pour plus d'informations à propos de NIS. Le File Alteration Monitor (FAM) fourni par le paquet fam est également un service RPC et dépend donc de portmap.
Les services NFS sont assez importants dans certains réseaux. Si c'est le cas pour vous, vous aurez alors besoin de trouver un équilibre entre la sécurité et l'utilisabilité du réseau (plus de renseignements à propos de la sécurité NFS sont disponibles dans le http://www.tldp.org/HOWTO/NFS-HOWTO.html ou /usr/share/doc/HOWTO/fr-txt/NFS-HOWTO.txt.gz).

5.13.1. Désactivation des services RPC

La désactivation de portmap est assez simple. Il y a différentes méthodes. La plus simple sur un système Debian 3.0 et versions supérieures est de désinstaller le paquet portmap. Si vous exécutez une version plus ancienne, vous devrez désactiver le service comme expliqué dans Section 3.5.1, « Désactivation de services démon », cela est dû au fait que le programme fait partie du paquet netbase (qui ne peut être désinstallé sans endommager le système).
Notez que certains environnements de bureau (notamment, GNOME) utilisent des services RPC et ont besoin du portmapper pour certaines fonctionnalités de gestion de fichiers. Si c'est votre cas, vous pouvez limiter l'accès aux services RPC comme décrit ci-dessous.

5.13.2. Limiter l'accès aux services RPC

Malheureusement, dans certains cas, supprimer les services RPC du système n'est pas une option. Certains services de bureau local (notamment fam de SGI) sont basés sur RPC et ont donc besoin d'un portmapper local. Cela veut dire que dans certains circonstances, des utilisateurs installant un environnement de bureau (comme GNOME) installera également le portmapper.
Il y a différentes façons de limiter l'accès au portmapper et aux services RPC :
  • bloquer l'accès aux ports utilisés par ces services avec un pare-feu local (consultez Section 5.14, « Ajouter des capacités au pare-feu ») ;
  • bloquer l'accès à ces services en utilisant l'encapsulation TCP, car le portmapper (et certains services RPC) sont compilés avec libwrap (consultez Section 4.12, « Utilisation de tcpwrappers »). Cela veut dire que vous pouvez en bloquer l'accès par la configuration des fichiers hosts.allow et hosts.deny de l'encapsulation TCP ;
  • depuis la version 5-5, le paquet portmap peut être configuré pour n'écouter que sur l'interface loopback. Pour faire cela, modifiez /etc/default/portmap, décommentez la ligne suivante : #OPTIONS="-i 127.0.0.1" et redémarrez le portmapper. Cela est suffisant pour autorisez les services locaux et en même temps pour prévenir les systèmes distants à y accéder (consultez, cependant, Section 4.18.5, « Désactiver les problèmes d'hôtes weak-end »).