Rap*_*ens 72
有很多机器人会尝试通过 SSH 登录到您的计算机。这些机器人按以下方式工作。
他们执行类似的操作ssh root@$IP
,然后尝试使用标准密码,例如“root”或“password123”。他们会尽可能地这样做,直到找到正确的密码。在全球可访问的服务器上,您可以在日志文件中看到许多日志条目。我可以达到每分钟 20 次或更多。
当攻击者运气好(或有足够的时间)并找到密码时,他们将拥有 root 访问权限,这意味着您遇到了麻烦。
但是,当您禁止 root 通过 SSH 登录时,bot 需要先猜测用户名,然后再猜测匹配的密码。因此,假设可信密码列表有N
条目,而可信用户列表的M
条目很大。机器人有一组N*M
要测试的条目,因此与只有一组 size 的根情况相比,这使得机器人更难N
。
有些人会说这种额外的M
安全性并不是真正的收益,我同意这只是一个小的安全性增强。但我认为这更多是因为这些小挂锁本身并不安全,但它们阻碍了很多人轻松访问。这当然仅在您的机器没有其他标准用户名(如 tor 或 apache)时才有效。
不允许 root 的更好理由是 root 对机器的破坏比标准用户可以做的要多得多。因此,如果他们运气不好找到了您的密码,则整个系统都会丢失,而使用标准用户帐户您只能操作该用户的文件(这仍然非常糟糕)。
在评论中提到普通用户可以有使用权sudo
,如果该用户的密码被猜到,系统也会完全丢失。
总之,我会说攻击者获得哪个用户的密码并不重要。当他们猜出一个密码时,您就无法再信任系统了。攻击者可以使用该用户的权限来执行命令sudo
,攻击者还可以利用您系统中的弱点并获得 root 权限。如果攻击者可以访问您的系统,您就不能再信任它了。
这里要记住的是,系统中允许通过 SSH 登录的每个用户都是一个额外的弱点。通过禁用 root,您可以消除一个明显的弱点。
禁用密码的原因非常简单。
尝试密码的整个想法只有在密码可以猜测时才有效。因此,当用户拥有密码“pw123”时,您的系统就会变得不安全。人们选择密码的另一个问题是他们的密码从来都不是真正随机的,因为那样会很难记住。
此外,用户倾向于重复使用他们的密码,用它来登录 Facebook 或他们的 Gmail 帐户以及您的服务器。因此,当黑客获得该用户的 Facebook 帐户密码时,他就可以进入您的服务器。用户很容易通过网络钓鱼丢失它,或者 Facebook 服务器可能会被黑客入侵。
但是当您使用证书登录时,用户不会选择他的密码。该证书基于一个随机字符串,长度从 1024 位到 4096 位(~ 128 - 512 个字符的密码)不等。此外,此证书仅用于登录您的服务器,不用于任何外部服务。
@Philip Couling的评论应该是一个答案:
禁用 root 是有管理原因的。在商业服务器上,您总是希望控制人员访问。根永远不是一个人。即使您允许某些用户具有 root 访问权限,您也应该强制他们通过自己的用户登录,然后 su - 或 sudo -i 以便可以记录他们的实际登录。这使得撤销对个人的所有访问权限变得更加简单,因此即使他们拥有 root 密码,他们也无法对其进行任何操作。– 菲利普·库林
我还要补充一点,它允许团队通过适当的 sudo 配置来执行最小权限原则(但写一个听起来更容易)。这使团队能够更好地分发不加批判的东西,而不会泄露城堡的钥匙。
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
这篇文章来自评论,我想给它一个更突出的位置,因为它更深入地探讨了尝试通过 SSH 登录的僵尸网络的问题,它们是如何做到的,日志文件的外观和可以做些什么来阻止他们。它是由彼得·汉斯汀 (Peter Hansteen) 撰写的。
小智 14
这些可能是不允许直接 root 登录的一些原因。
但这只是冰山一角。您需要配置其他限制和配置,例如:
您是对的,root 用户名和 X+Y 符号密码在密码学上至少与 X 符号用户名 + Y 符号密码一样安全。事实上,它更安全,因为人们的名字很容易猜到(机器人可能只是尝试 john、mike、bill 等……顺便说一句:这是他们中的许多人所做的,而不是尝试 root)。如果是有针对性的攻击,你就特别不走运,因为如果有人想破坏公司的服务器,找出系统管理员的名字(昵称)不是问题。
一旦攻击者可以访问系统管理员用于 ssh 登录的帐户(然后使用su
或sudo
执行他的任务),他就可以用一个程序感染该用户的会话,当系统管理员键入下一个时,该程序将向攻击者发送 root 密码时间。
从安全的角度来看,它是(或应该)被视为不良做法的任何类型的 root 登录。“普通”用户登录 -> su/sudo 链添加了审计跟踪。用简单的英语:它可以找出谁做了什么。
一种特殊情况可能是只有一个人具有 root 访问权限的情况。在那种情况下,使用额外的“普通”用户不会增加太多价值(至少我永远看不到那个价值)。但无论如何 - 你应该在系统上有一个简单的用户(对于非管理任务,运行 wget 等 ;-) )。
启用 root 登录(尤其是禁用密码登录)有何危险?
如果您对互联网开放,攻击者(机器人/僵尸网络/黑客)只需猜测密码即可完全控制您的系统。此外,出于同样的原因,任何系统帐户(www-data、代理等)都不应能够通过 SSH 登录。
如果您禁用密码登录(例如使用公钥),请考虑到拥有私钥的人将完全控制您的系统。下面了解为什么对用户使用公钥更好。
如果允许密码身份验证,从安全角度来看,X 符号用户名和 Y 符号密码或 root 用户名和 X+Y 符号密码之间有什么区别?
额外的用户名可以增加一层安全性,因为: a) 攻击者应该知道用户名和密码对;b) 如果攻击者破坏您的系统,您将无法立即访问特权帐户,这会给攻击者带来一些细微差别。
在这种情况下,公钥也是一个优点,因为:
归档时间: |
|
查看次数: |
47927 次 |
最近记录: |