web-dev-qa-db-fra.com

Liste de tous les utilisateurs pouvant se connecter via SSH

J'ai récemment commencé à regarder mes journaux d'authentification et, de manière surprenante, j'ai trouvé des bots de Chine essayant de forcer brutalement leur chemin dans ce domaine (je n'ai pas essayé durement). Je me suis efforcé de changer de nombreuses choses que les bots ne vérifieraient jamais et j'ai rendu plus difficile le travail brutal.

Ma question est:

J'essaie de trouver une liste de tous les utilisateurs pouvant se connecter à mon serveur via SSH. Je sais que/etc/passwd contient une liste de tous les utilisateurs, mais je ne sais pas si certains d’entre eux (à l’exception de 1) peuvent être connectés.

Mon objectif est de n'avoir qu'un seul utilisateur pouvant être connecté et de disposer d'un mot de passe fort.

40
tommydrum

Lis man sshd_config pour plus de détails, mais vous pouvez utiliser la directive AllowUsers dans /etc/ssh/sshd_config pour limiter le nombre d'utilisateurs pouvant se connecter.

par exemple.

AllowUsers boris

cela signifierait que seul l'utilisateur boris peut se connecter via ssh.

37
dave4420

Tout utilisateur possédant un shell valide dans /etc/passwd peut potentiellement se connecter. Si vous souhaitez améliorer la sécurité, configurez SSH avec une authentification à clé publique (vous y trouverez de nombreuses informations sur le Web), installez une clé publique dans ~/.ssh/authorized_keys fichier et désactivez l'authentification par mot de passe. Cela empêchera quiconque, à l'exception de cet utilisateur, de se connecter et nécessitera que l'utilisateur ait en sa possession la clé privée correspondante. Assurez-vous que la clé privée a une phrase secrète décente.

Pour empêcher les robots d’essayer d’entrer, exécutez SSH sur un port autre que 22 (c’est-à-dire 3456). Cela n'améliore pas la sécurité, mais empêche les script-kiddies et les bots d'encombrer vos journaux avec des tentatives infructueuses.

26
Jim Garrison

Tout utilisateur dont le paramètre Shell de connexion est défini dans /etc/passwd est un shell interactif peut se connecter. Je ne pense pas qu'il existe un moyen totalement fiable de savoir si un programme est un shell interactif. vérifier si c'est dans /etc/shells est probablement aussi bon que vous pouvez obtenir.

Les autres utilisateurs peuvent également se connecter, mais le programme qu'ils exécutent ne devrait pas leur permettre d'avoir beaucoup d'accès au système. Et les utilisateurs qui ne sont pas autorisés à se connecter devraient avoir /etc/false comme leur shell - cela les déconnectera immédiatement.

7
Barmar