我目前正在努力加强我的服务器,以防止黑客攻击,其中包括我试图通过sshlogin。 虽然我已经实现了fail2ban,我想知道,为什么根login将被默认允许开始? 即使使用非基于sudo的发行版,我仍然可以以普通用户身份login并切换 – 所以我想知道在ssh上允许rootlogin有什么明显的优势吗?或者只是没有人愿意更改?
在ssh上允许rootlogin有任何明显的优势
有一些备份系统需要远程系统上的root来实际执行备份。 通过使用基于密钥的身份validation来设置远程系统上的维护任务并不罕见。
我强烈地希望将默认值从PermitRootLogin yes更改为至lessPermitRootLogin without-password ,这将仅允许基于密钥的身份validation。 远程密码authentication到根帐户几乎是不需要的。
在系统(比如Ubuntu)上这个系统变得越来越常见了,因为系统被设置为具有禁用密码的root帐户。 默认设置没有太大的风险,因为没有办法直接通过validation密码被禁用的帐户。
另外,如果你有一个拥有足够复杂密码的root账户,那么通过ssh尝试远程login到根目录的暴力破解成功率很低。 禁用root帐户确实提供了额外的安全层,但如果您拥有强大的密码,则可能不需要。 如果将强密码与denyhosts和fail2ban等被动工具组合在一起,通常几乎没有冒用暴力破解root密码的风险。
根据networking的风险和要求,在安装完成后加固系统总是一个很好的做法。 一个不重要且没有用户数据的系统并不需要与存储医疗或银行logging的系统相同程度的强化。
我不确定,但我会假设他们想确保外国人安装的人可以login。 第一次login可能需要为root,因为还没有其他用户。
但是,在创build用户并给予他sudo权限后,必须确保在sshd config中以root用户身份禁用login 。
我还build议您将SSH端口更改为22以外的值。虽然它不会使您的计算机更安全,但它确实可以阻止所有这些浪费/烦人的请求。
考虑防止根login作为额外的保护。 几年前,蛮力已经到了高峰,现在,他们倾向于通过deamons(apache,pureftpd,…)来看待漏洞。 如果明天在SSHD上发现漏洞,防止根login成为一个好主意。 虽然SSHD是成熟和安全的,你永远不知道。 最近,这些漏洞已经越来越多地被内核所利用,或者在内核中使用第三方应用程序,所以防止根login不会改变事物。
基于Debian的发行版已经做出了改变,而基于RedHat的发行版则提示了它(如果你阅读他们的最佳实践文档)
那么,因为root是一个有效的用户和sshd它允许它的工作。 例如,在OpenBSD(与OpenSSH相同的人)中,在安装过程中不会要求您创build用户,因此您需要使用root访问您的盒子。
一些基于桌面的发行版迫使你创build额外的用户,但是对于你实际上不需要的服务器。
而且,这些sudo或su比以rootlogin更安全的论点是一个很大的神话。 例如,在Ubuntu上,用户可以默认使用sudo运行ANY命令,所以任何进入的攻击者也可以以root身份运行ANY命令。 从安全angular度来看,这是毫无用处的。
这是非常具体的发行。 有些允许,有些则不允许。
如果我正在pipe理一个发行版,我会在安装时将系统configuration为尽可能硬化。 忘记启用某些function比忘记禁用某些function更好。