Appuyez sur Entrée pour rechercher

Sécuriser SSH sur IBM i : guide pratique

Author Avatar
Thomas Vermeersch
Senior system engineer

 Sur bon nombre des systèmes IBM i que je rencontre, SSH a été installé et activé il y a des années. Tout le monde l’utilise, et personne n’a jamais jeté un œil au fichier sshd_config depuis.  

 Il est compréhensible que, sur la plupart des systèmes IBM i, le 5250 reste le principal moyen d’accès. SSH a tendance à jouer le rôle de « porte de service ». Pourtant, SSH est largement utilisé dans le cadre des efforts de modernisation. La plupart des gens savent que la connexion est chiffrée, ce qui leur donne un sentiment de sécurité. Mais « chiffré » et « renforcé » ne sont pas synonymes.

 Après une énième audit de sécurité au cours de laquelle j’ai ouvert le fichier de configuration SSH pour constater, une fois de plus, que rien n’avait été modifié, j’ai pensé qu’il valait la peine de consigner par écrit les mesures à prendre pour renforcer cette configuration. Il s’agit d’un durcissement standard de SSH, appliqué à IBM i.  

 

Point de départ technique

 Le fichier de configuration dont vous avez besoin :

/QOpenSys/QIBM/UserData/SC1/OpenSSH/etc/sshd_config

Protocol

La version 1 de SSH présentait des problèmes. Des problèmes graves. La communauté de la sécurité l’a abandonnée dès 2001. SSH2 est un protocole totalement différent, doté de contrôles d’intégrité plus rigoureux et d’une meilleure prise en charge des clés. 
 
Définissez-le explicitement : 

Protocol 2

Je rencontre encore des systèmes où ce paramètre n’est pas explicitement défini, ce qui signifie qu’un client pourrait théoriquement négocier un protocole inférieur, que personne ne devrait utiliser avec des identifiants de production. 

Afficher une bannière avant la connexion

Cette mesure surprend souvent, car elle ressemble davantage à une formalité administrative qu’à une mesure de sécurité. Pourtant, une bannière de connexion crée un moment de clarté avant l’authentification, durant lequel l’utilisateur est informé des règles. 

Banner /QOpenSys/QIBM/UserData/SC1/OpenSSH/etc/ssh_banner

Cette mesure surprend souvent, car elle ressemble davantage à une formalité administrative qu’à une mesure de sécurité. Pourtant, une bannière de connexion crée un moment de clarté avant l’authentification, durant lequel l’utilisateur est informé des règles. 

Voici la bannière de connexion de l’un de nos systèmes de développement : 

Désactiver l’authentification basée sur l’hôte

L’authentification basée sur l’hôte (host-based authentication) fait confiance à la machine, et non à la personne. Si l’hôte A est approuvé, n’importe quel utilisateur de l’hôte A pourrait potentiellement se connecter à l’hôte B sans passer par l’authentification utilisateur habituelle. 

HostbasedAuthentication no

Imposer l’authentification par clé

Les connexions par mot de passe via SSH sont la première chose que testent les attaquants. Désactivez-les et exigez des clés à la place. Profitez-en pour interdire les mots de passe vides et la connexion en root. (Remarque : configurez et testez d’abord l’accès par clés, faute de quoi vous risquez de vous verrouiller l’accès SSH, ainsi qu’à vos collègues.) 

PasswordAuthentication no
KbdInteractiveAuthentication no
PermitEmptyPasswords no
PermitRootLogin no

Limiter le nombre de tentatives d’authentification

MaxAuthTries définit le nombre de tentatives d’authentification autorisées sur une même connexion avant que celle-ci ne soit interrompue. 

Dès que le nombre d’échecs atteint la moitié de cette valeur, le système commence à écrire dans syslog, ce qui vous donne un signal qu’il se passe quelque chose. 

LoginGraceTime 30
MaxAuthTries 3

 Trente secondes suffisent pour s’authentifier, et trois tentatives par connexion limitent les attaques par force brute sans pour autant bloquer les administrateurs soigneux..

Tout le monde n’a pas besoin d’un accès SSH

C’est le point qui suscite le plus de résistance, et c’est aussi le plus important. 

Par défaut, dès lors qu’un profil utilisateur existe sur le système, son titulaire peut probablement se connecter en SSH, sauf indication contraire. OpenSSH sur IBM i met quatre leviers à votre disposition : 

Directive     Fonction 
AllowUsers     Seuls ces utilisateurs peuvent se connecter 
AllowGroups     Seuls les membres de ces groupes peuvent se connecter 
DenyUsers     Bloque certains utilisateurs spécifiques 
DenyGroups     Bloque certains groupes spécifiques 


Vous devez en configurer au moins une. Utilisez des noms de profils et de groupes plutôt que des identifiants numériques, et évitez les caractères génériques. Ma préférence va généralement à la combinaison AllowUsers et AllowGroups : tous les utilisateurs et groupes qui ne sont pas explicitement définis sont ainsi exclus d’office. 

Exemple :

AllowUsers deploy admin
AllowGroups sshusers

 

Désactiver le forwarding et les tunnels

À moins que quelqu’un dans votre équipe n’ait réellement besoin de tunnels TCP, désactivez-les. Ils élargissent le périmètre accessible à partir d’une session compromise. 

AllowTcpForwarding no

Redémarrer le daemon, sinon rien ne change

Modifier sshd_config n’a aucun effet tant que le démon SSH n’a pas pris en compte les changements. Redémarrez sshd après vos modifications. Si vous préférez, regroupez tous les changements et ne redémarrez qu’une seule fois.

Cela s’effectue côté IBM i :

ENDTCPSVR SERVER(*SSHD)
STRTCPSVR SERVER(*SSHD)

Pour conclure

Aucun de ces réglages ne requiert un consultant en sécurité ni une semaine de projet. Ce sont des modifications que l’on réalise pendant une fenêtre de maintenance, que l’on teste d’abord sur une partition hors production, puis que l’on déploie. 

Si vous avez des questions ou des remarques sur le contenu de cet article, n'hésitez pas à nous contactez.

Bonne chance pour la sécurisation de votre serveur SSH IBM i. 

Offres d'emploi actuelles

Nous sommes toujours à la recherche de nouveau collègues

Si vous partagez nos valeurs et que vous êtes à la recherche d'un emploi stimulant au sein du meilleur lieu de travail de Belgique, visitez notre site web.

Postule maintenant

Abonnez-vous

Suivez-nous

  

Partage cet article