S'assurer que le service rsyncd est désactivé
Garantit que le service rsyncd.service (démon rsync autonome) n'est ni activé au démarrage ni en cours d'exécution, sauf si un partage rsync est réellement nécessaire.
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
Le démon rsync (rsyncd, en écoute sur le port TCP 873) sert des fichiers via un protocole non chiffré et, par défaut, non authentifié, identifiants et données circulent en clair et les modules peuvent être lisibles par tous s'ils ne sont pas explicitement verrouillés. Un rsyncd exposé a maintes fois conduit à de l'exfiltration de données et à des écritures non autorisées, et il élargit la surface d'attaque réseau. À noter : ceci est distinct de rsync sur SSH, qui est chiffré et non concerné. Si aucun partage rsync en mode démon n'est requis, le service doit être arrêté et désactivé ; les transferts sécurisés doivent passer par SSH.
Ce que vérifie Pavois
Pavois lit l'état effectif de rsyncd.service depuis systemd, en vérifiant qu'il n'est ni enabled ni running. Comme pour rpcbind, rsync peut être activé par socket via rsync.socket/rsyncd.socket, si bien qu'une unité de service paraissant au repos peut tout de même démarrer le démon sur une connexion au port 873. Auditer l'état systemd réel reflète mieux la réalité que de vérifier /etc/rsyncd.conf (qui peut exister alors que le démon est éteint, ou être absent alors qu'un drop-in le démarre).
describe service('rsync.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 rsyncd.service et systemctl is-active rsyncd.service ; attendez disabled/masked et inactive. Vérifiez aussi systemctl is-active rsync.socket et confirmez qu'aucun service n'écoute avec ss -tlnp | grep :873.
Inspecter et investiguer
Inspectez journalctl -u rsyncd.service -u rsync.socket pour les événements d'activation et liés aux transferts. systemctl show rsyncd.service -p ActiveState -p UnitFileState donne l'état lisible par machine. Confirmez la fermeture du port 873 avec ss -tlnp | grep :873.
Remédiation
Le plan de durcissement de Pavois agit sur la ressource service nommée rsyncd avec les actions disable puis stop : il supprime l'activation au démarrage et arrête le démon. Appliqué avec pavois harden apply. Si rsync.socket est actif, masquez-le également pour fermer totalement le port 873.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | disable, stop |
|---|---|
| name | rsync.service |
| 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 rsyncd casse tout pull/push visant rsync://hôte/module ou hôte::module, miroirs, tâches de sauvegarde et synchronisation de paquets/dépôts qui s'appuient sur le protocole démon de rsync. rsync sur SSH (rsync -e ssh ...) n'est PAS affecté. Avant d'appliquer : recherchez dans les crontabs, outils de sauvegarde et CI les cibles rsync:// ou ::, et inspectez /etc/rsyncd.conf pour les modules servis. Si un partage en mode démon est réellement nécessaire, excluez cette règle ou basculez les clients vers rsync sur SSH.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.1.13, 2.2.4 | direct | per OS, see the benchmark table | haute |
| PCI DSS | 2.2.4 | support | 4.0.1 | 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.