Désactiver le service vsftpd
Garantit que le serveur FTP vsftpd.service est désactivé et arrêté afin que l'hôte n'expose pas un service FTP en clair.
Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.
Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
Exécuter un serveur FTP (vsftpd) ouvre une voie d'attaque réseau et doit être désactivé lorsqu'il n'est pas explicitement requis. Le FTP en clair transmet identifiants et données sans chiffrement, exposant à l'interception et au vol d'identifiants, et le service lui-même constitue un démon supplémentaire à corriger et durcir. Conformément au principe de moindre fonctionnalité, les hôtes qui n'ont pas besoin de servir des fichiers en FTP ne doivent pas exécuter vsftpd ; utilisez SFTP/HTTPS lorsque le transfert de fichiers est nécessaire.
Ce que vérifie Pavois
Pavois lit l'état effectif de l'unité via service('vsftpd.service') (systemctl is-enabled / is-active), en tenant compte des surcharges drop-in et de l'activation par socket. Cela détecte un service vsftpd réellement activé/en cours même si /etc/vsftpd.conf semble dormant, c'est l'état d'exécution, et non le fichier de configuration, qui expose le réseau.
describe service('vsftpd.service') do
it { should_not be_enabled }
it { should_not be_running }
endComment vérifier qu’elle est appliquée
Exécutez systemctl is-enabled vsftpd.service (attendu disabled/masked/introuvable) et systemctl is-active vsftpd.service (attendu inactive). Confirmez que rien n'écoute sur TCP/21 avec ss -lntp | grep ':21' (attendu : aucune sortie).
Inspecter et investiguer
Les transitions d'unité et l'activité des connexions sont dans journalctl -u vsftpd.service ; les logs de transfert/connexion de vsftpd sont par défaut dans /var/log/vsftpd.log (et les tentatives d'authentification dans /var/log/auth.log). Confirmez la disparition du service avec ss -lntp | grep ':21'.
Remédiation
Le plan de durcissement de Pavois agit sur la ressource service nommée vsftpd : il exécute disable et stop pour que le serveur FTP ne démarre pas au boot et soit arrêté maintenant. Il s'applique avec pavois harden apply. Si FTP n'est pas du tout nécessaire, supprimez aussi le paquet vsftpd pour éliminer entièrement le binaire et son socket.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | disable, stop |
|---|---|
| name | vsftpd |
| resource | service |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactiver vsftpd casse tout flux qui dépend de cet hôte pour servir des fichiers en FTP (téléversements anciens, intégrations d'équipements, dépôts anonymes). Précautions : inventoriez les clients utilisant TCP/21 avant de désactiver ; migrez-les vers SFTP (via le service SSH existant) ou HTTPS ; et si FTP est réellement requis, ne le conservez qu'avec FTPS/TLS, restreignez-le au segment réseau nécessaire et filtrez les ports de données/contrôle.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.1.6 | direct | per OS, see the benchmark table | haute |
| NIST | CM-7(a), CM-7(b), CM-6(a) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.