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.
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.
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.
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.