我最近开始查看我的auth-logs,并惊奇地发现来自中国的机器人试图在这方面强行推进(没有努力)。我全力以赴改变机器人永远不会检查的许多事情,并且更加强硬。
我的问题是:
我正在尝试查找可以通过SSH登录我的服务器的所有用户的列表。我知道/ etc / passwd有一个包含所有用户的列表,但我不知道是否可以登录其中任何一个(1除外)。
我的目标是只有一个用户可以登录,并且该用户拥有真正的强密码。
答案 0 :(得分:36)
Read man sshd_config
了解更多详情,但您可以使用AllowUsers
中的/etc/ssh/sshd_config
指令来限制可以登录的用户组。
e.g。
AllowUsers boris
意味着只有boris
用户才能通过ssh登录。
答案 1 :(得分:26)
/etc/passwd
中具有有效shell的任何用户都可以登录。如果要提高安全性,请使用公钥身份验证设置SSH(在执行此操作时Web上有大量信息),在一个用户的~/.ssh/authorized_keys
文件中安装公钥,并禁用基于密码的身份验证。这将阻止除一个用户之外的任何人登录,并且将要求用户拥有匹配的私钥。确保私钥具有合适的密码。
为防止僵尸程序试图进入,请在22以外的端口(即3456)上运行SSH。这不会提高安全性,但会阻止脚本小子和机器人在尝试失败的情况下混乱日志。
答案 2 :(得分:7)
/etc/passwd
中登录shell设置为交互式shell的任何用户都可以登录。我不认为有一种完全可靠的方法来判断一个程序是否是一个交互式shell;检查它是否在/etc/shells
中可能与你能得到的一样好。
其他用户也可以登录,但他们运行的程序不应该允许他们获得对系统的大量访问权限。并且根本不允许登录的用户应该使用/etc/false
作为他们的shell - 这将立即将其注销。