Toutes les solutions ci-dessus sont excellentes et fonctionnent, mais si je peux me permettre, je vais un peu compliquer les choses. J'utilise un sshd_config
sur un grand nombre de serveurs et de versions, ce qui fait de la configuration un processus de réflexion délibéré, et c'est ce que j'utilise.
Mon cas d'utilisation :
- L'accès à la racine est limité aux clés provenant de deux adresses IP spécifiques.
- Les utilisateurs d'automatisation (par exemple ansible) sont limités à des clés uniquement à partir de serveurs spécifiques (par exemple RunDeck, Jenkins, etc.).
- Les utilisateurs de l'application ne peuvent pas se connecter du tout en utilisant ssh
- Les administrateurs et les utilisateurs peuvent utiliser une clé ou un mot de passe
Tout d'abord, j'utilise principalement Allow_Groups
Il est plus facile à gérer sur plusieurs boîtes avec une pléthore d'utilisateurs différents. Pour les utilisateurs communs à toutes les boîtes (par exemple l'automatisation ou la surveillance), allow_Users
fonctionne également bien, mais je préfère encore utiliser les groupes.
Passons maintenant à la configuration proprement dite /etc/ssh/sshd_config
:
Tout d'abord, l'accès SSH est réservé à des groupes (ou utilisateurs) spécifiques :
AllowGroups sshusr
Cela signifie essentiellement que les utilisateurs doivent être membres du groupe de travail de l'Union européenne. sshusr
pour pouvoir utiliser SSH. Pour empêcher les utilisateurs d'applications d'accéder à SSH, il suffit de s'assurer qu'ils sont no un membre de la sshusr
groupe. NOTE : Cela inclut la racine, vous devez donc ajouter root
に、その sshusr
groupe !
Pour l'accès à la racine par clé uniquement, utiliser :
PermitRootLogin without-password
Pour restreindre les groupes à l'utilisation de l'authentification par clé uniquement :
Match Group ansible,monitor
PasswordAuthentication no
Par défaut, je désactive des éléments tels que port forwarding
y X11 forwarding
etc. mais pour des groupes spécifiques, vous pouvez l'activer et autoriser l'authentification par mot de passe (habituellement on
par défaut, mais pour les environnements sécurisés, vous pouvez le désactiver. off
pour que les clés soient utilisées par défaut)
Match Group sysadmin,dbadmin
PasswordAuthentication yes
AllowTcpForwarding yes
PermitTunnel yes
X11Forwarding yes
Il y a ensuite des cas particuliers comme sftp
uniquement les utilisateurs :
Match Group sftp
ForceCommand internal-sftp
PermitTTY no
MaxSessions 5
Il s'agit maintenant de restreindre les clés pour autoriser l'accès à partir d'IP spécifiques uniquement. Cela fonctionne également pour les FQDN, mais je ne l'ai pas utilisé ici. Dans le ~/.ssh/authorized_keys
précède le fichier from=
restriction à la (aux) clé(s) applicable(s)
from="10.1.1.1,10.2.2.2,10.3.3.0/24" ssh-rsa AAAAB3NTheRestOfMyKeyxyz
Cela permettra d'utiliser la clé à partir de ces IP spécifiques uniquement.
J'espère que ces informations vous aideront et qu'elles seront utiles à beaucoup d'autres personnes.