![如果我的 root 密码非常强,我真的需要禁用 root 访问权限吗?](https://linux22.com/image/1208673/%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%20root%20%E5%AF%86%E7%A0%81%E9%9D%9E%E5%B8%B8%E5%BC%BA%EF%BC%8C%E6%88%91%E7%9C%9F%E7%9A%84%E9%9C%80%E8%A6%81%E7%A6%81%E7%94%A8%20root%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%E5%90%97%EF%BC%9F.png)
所以如果我编辑我的/etc/ssh/sshd_config
文件,PermitRootLogin
你可以关闭 root 登录。
然而,这也意味着我无法使用像 Filezilla 这样的文件上传服务,因为存在权限错误,因为我无法从我的非 root 帐户之一从 Filezilla 调用“sudo”。
因此,一个替代方法是保留 root 登录。
如果我的密码很长(32 个以上字符)且熵值很高(小写、大写、特殊符号、数字等),这难道不能完全阻止暴力攻击吗?否则保留 root 登录名会有什么风险吗?
答案1
您已经知道了应该禁用 root 登录的主要原因sshd_config
。暴力攻击从定义上来说非常残酷,只要有足够的时间,任何密码都可以被破解。这是因为攻击者已经知道了访问您机器所需信息的 50%:有效的特权用户名。
话虽如此,非常长的高熵密码确实可以降低实际被破解的风险。
对你的问题的回答是:不,非常强的密码不会完全阻止暴力攻击。它们只会帮助降低风险。
实际上,如果您管理的是一台高价值(对黑客来说)的计算机,那么允许 ssh root 访问(或一般的 root 登录)是非常不明智的。但如果是这种情况,应该制定政策来阻止这样做。
如果你能承受风险,那就去做吧。最糟糕的情况就是有人安装了一个 rootkit,导致你的电脑无法使用。
答案2
这可能只是个人观点。我建议您使用密钥,以便 root 无需密码即可登录,并配置 iptables,在一定次数的尝试失败后锁定用户。对于文件传输,您可能需要增加尝试次数。
添加/编辑 /etc/ssh/sshd_config
PermitRootLogin without-password
首先确保你可以使用密钥登录
http://bodhizazen.com/Tutorials/SSH_keys/
然后禁用密码验证。
iptables
iptables -A INPUT -p tcp -m tcp --dport 22 -m tcp -m state --state NEW -m recent --set --name SSH --rsource
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 600 --hitcount 20 --rttl --name SSH --rsource -j REJECT --reject-with icmp-host-prohibited
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
如果你愿意,你可以增加或减少点击次数
看http://bodhizazen.com/Tutorials/iptables
通过这些更改、密钥和/或一些 iptables 规则,我认为允许 root 通过 ssh 登录是合理的。
答案3
我建议您甚至不要使用密码,切换到 SSH 密钥!
本教程的第 2 步,使用授权密钥代替密码登录 在我看来非常好。它几乎可以与所有版本的 Ubuntu 配合使用。