如何保护Ubuntu免受叉炸弹袭击

我听说有人在谈论一个叉炸弹,我做了一些研究,发现了一些关于一些奇怪的人物的可怕信息,人们可以让你在命令行输入,因此在计算机上做坏事。 我当然不会发出我不理解的命令,但我永远不会知道会发生什么。

我听说有些操作系统允许管理员对用户进程施加一些限制以减轻fork炸弹的影响,默认情况下这是Ubuntu中的保护还是具有sudo权限的人必须设置这个? 如果是这样,怎么样?

您可以通过修改/etc/security/limits.conf轻松限制可以在Ubuntu和大多数其他Linux发行版中生成的进程数量

 sudoedit /etc/security/limits.conf 

然后将此行添加到该文件的底部:

 * hard nproc nnn 

哪里:

  • hard设置内核级别的限制,以便在不重新启动的情况下无法更改。
  • nproc是每个用户的最大进程数。
  • nnn是您应该通过以下方式为系统计算的数字:

     ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1 

上面的命令将列出所有用户的所有进程, 包括线程 ,总结它们并列出具有最大进程数量的用户名。 为了安全起见,在运行上述命令之前打开尽可能多的应用程序,然后将该数字加倍以确保安全。

在实施此限制后,您需要重新启动,但它会影响系统上的每个非root用户。 因此,如果任何非root用户执行fork炸弹,它将具有该硬限制。

默认情况下,组和通配符限制不适用于root用户 。 如果要将规则应用于超级用户,请在规则中使用文字用户名root

此外,如果你不想在短时间内重新启动,你可以使用sudo ulimit -u 800 ,它将限制仅限于正在运行的会话, 但可以通过具有sudo权限的fork炸弹轻松绕过!

重新启动后,将使用/etc/security/limits.conf任何内容。

关于fork炸弹的一些其他信息:它们不是恶意软件或任何可怕的东西。 它们通常包含一些基本的东西,一个自称两次的脚本 – 从而以指数方式增加它在机器上的存在。 即使它们具有较小的内存占用,但是它们的速度很快,它们可以快速填充所有可用的RAM并且机器冻结或重新启动。 唯一的危险是丢失未保存的信息。 我将forkbomb分类为恶作剧而不是恶意软件。

一个重要的提醒:

当你没有98%确定它的动作时,你应该很少在命令行中执行任何操作。 如果您无法读取正在执行的命令 – 请勿执行此操作。 这适用于不可读的hex / base64字符块,可用于掩盖各种恶意。 如果您不确定命令,您可以随时在Ubuntu联机帮助页中搜索它的操作,并且在使用sudo时要格外小心,因为它将以root用户身份执行。

我喜欢的一个简单方法是创建一个别名,虽然别名’并不总是应用,请检查上面的答案。

alias :="echo No."

现在

$ :(){ :|: & };:

bash: syntax error near unexpected token `('