← Toutes les règles
SOCLE-CLD-SSH-027// SSHmoyenneruntime effectif

Définir la limite SSH MaxSessions

Plafonner à 10 le nombre de sessions multiplexées par connexion SSH via MaxSessions.

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.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 2 normes

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

MaxSessions borne le nombre de canaux shell, de connexion ou de sous-système ouverts pouvant être multiplexés sur une seule connexion SSH. Sans plafond raisonnable, un client (ou un attaquant exploitant un point d'appui) peut ouvrir un grand nombre de sessions simultanées sur une connexion et consommer les ressources du démon, menaçant la disponibilité des connexions légitimes. Le fixer à 10 préserve un multiplexage normal tout en empêchant un déni de service par inondation de canaux.

Ce que vérifie Pavois

Pavois vérifie que la sortie effective de sshd -T rapporte maxsessions 10. Lire le démon en cours d'exécution reflète la valeur après fusion de tous les Include et des drop-ins de /etc/ssh/sshd_config.d/, un scan de fichiers peut manquer une surcharge et signaler un faux résultat.

describe command('sshd -T') do
  its('stdout') { should match(/^maxsessions\s+([1-9]|10)$/i) }
end

Comment vérifier qu’elle est appliquée

Exécuter sshd -T | grep -i maxsessions. Sortie attendue :

  • maxsessions 10

Inspecter et investiguer

L'activité des sessions et des canaux est journalisée dans /var/log/auth.log (Debian/Ubuntu) ou via journalctl -u ssh / journalctl -u sshd (famille RHEL). Les canaux supplémentaires refusés sont signalés au client par error: no more sessions.

Remédiation

Le plan de durcissement de Pavois règle la ressource sshd_setting pour la directive maxsessions sur 10, valide la configuration candidate avec sshd -t, puis déclenche un reload du service ssh. À appliquer avec pavois harden apply.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

directivemaxsessions
notifyaction: reload, service: ssh.service
resourcesshd_setting
value2
verifysshd -t -f %{path}
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Une limite de 10 est généreuse pour un usage interactif, mais les flux reposant fortement sur le multiplexage de connexion (p. ex. ControlMaster/ControlPersist, sessions distantes d'IDE, scp/sftp parallèles sur une connexion, Ansible avec pipelining) peuvent la dépasser et voir de nouveaux canaux refusés. Examinez ces outils avant d'appliquer, augmentez la valeur si une charge légitime l'exige, gardez une seconde session ouverte, et appuyez-vous sur la validation intégrée sshd -t.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS2.2.6, 5.1.17, 5.1.18, 5.1.19directper OS, see the benchmark tablehaute
PCI DSS2.2.6support4.0.1moyenne

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.

Sources & références