为什么sshd默认会允许root登录?


7

我目前正在努力加强服务器的安全性,以防止遭受黑客攻击;除其他外,我正在尝试以root身份通过ssh登录。当我实现了fail2ban时,我想知道为什么默认情况下允许root登录开始?即使使用非基于sudo的发行版,我也始终可以以普通用户身份登录并进行切换-因此,我想知道在ssh上允许root登录是否有任何明显的优势,还是没有人可以更改?

Answers:


8

允许在ssh上进行根登录有明显的优势

有些备份系统需要远程系统上的root才能实际执行备份。看到使用基于密钥的身份验证来设置事物以在远程系统上执行维护任务的情况并不少见。

我强烈希望默认值将从PermitRootLogin yes至少更改为PermitRootLogin without-password,这将仅允许基于密钥的身份验证。几乎不需要对根帐户进行远程密码身份验证。

在系统(例如Ubuntu)上,使用具有禁用密码的root帐户来设置系统变得越来越普遍。默认设置没有太大风险,因为无法直接使用禁用的密码对帐户进行身份验证。

还应考虑到,如果您的root帐户具有足够复杂的密码,则尝试通过ssh进行暴力破解以成功登录root的可能性很小。禁用root帐户确实提供了额外的安全性,但是如果您的密码很强,则可能不需要。如果将强密码与反应性工具(例如denyhosts和fail2ban)结合使用,通常几乎没有尝试强行使用root密码的风险。

在安装完成后,根据网络的风险和要求,对系统进行加固始终是一个好习惯。一个不重要且没有用户数据的系统实际上不需要与存储医疗或银行记录的系统相同级别的强化。


2

我不确定,但是我认为他们想确保进行外部安装的人员可以登录。首次登录可能需要是root用户,因为还没有其他用户。

但是,在创建用户并赋予他sudo权限后,必须确保在sshd配置中禁用以root用户身份登录选项

我还建议您将SSH端口更改为22以外的端口。虽然它不能使您的计算机更安全-却可以阻止所有那些浪费/烦人的请求。


我真的不同意从标准端口更改。使用数据包过滤。
华纳2010年

真?这有什么不好?我刚开始这样做是因为我看到受人尊敬的管理员正在这样做……
Xeoncross 2010年

这是人们在运行没有过滤或网络隔离的共置服务器时采用的。
华纳2010年

@Warner,但是,我不明白,对于大多数人来说,更改标准端口不是一个抵御大多数尝试的简单方法吗?
卡米洛·马丁

2

考虑防止root登录作为额外保护。几年前,蛮力达到顶峰,如今,他们倾向于通过恶魔(apache,pureftpd等)看到的漏洞来寻找漏洞。如果明天发现SSHD可以利用,则防止root登录成为一个好主意。虽然SSHD既成熟又安全,但您永远不会知道。最近,这些漏洞更多地利用了内核的特权升级或将第三方应用程序与内核一起使用,因此防止root登录不会改变任何事情。

基于Debian的发行版已经做出了转换,而基于RedHat的发行版建议了(如果您阅读了他们的最佳实践文档)


1

好吧,因为root是有效用户,而sshd会允许它进行工作。例如,在OpenBSD(与OpenSSH相同)上,系统不会要求您创建用户,因此您需要使用root来访问您的设备。

一些基于桌面的发行版迫使您创建其他用户,但是对于服务器,您实际上不需要一个。

同样,这些关于sudo或su比以root用户身份登录更安全的说法是一个神话。例如,在Ubuntu上,用户默认可以使用sudo运行ANY命令,因此任何进入的攻击者都可以以root用户身份运行ANY命令。从安全角度来看,这是毫无用处的。


另一方面,攻击者需要猜测用户名和密码-而不是仅仅强行强制使用密码。我还要指出sudo仅限于sudoers文件中的用户-因此在大多数情况下sudo只是第一位用户
Journeyman Geek 2010年

0

这几乎是特定于发行版的。有些允许,有些则不允许。

如果我要管理发行版,则应将系统配置为在安装时尽可能加强。最好忘记启用某些功能,而不要忘记禁用某些功能。


如果您还试图让许多最终用户在台式机上使用您的系统,则尽可能地强化系统变得充满挑战。您需要妥协和加固系统,以在默认情况下保护用户,但允许高级用户修改系统以满足他们的需求。
Zoredache
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.