良许Linux教程网 干货合集 Linux中可怕的fork炸弹

Linux中可怕的fork炸弹

Linux中的Fork炸弹是什么

Fork炸弹(Fork Bomb)是一种拒绝服务攻击的形式,它利用了操作系统中的“fork()”系统调用。Fork()系统调用用于创建新进程,该进程是调用进程的副本。Fork炸弹利用此系统调用创建大量子进程,以消耗系统资源,例如内存和CPU时间,从而使系统不可用。

可以使用以下代码实现Fork炸弹:

:(){ :|:& };:

该代码使用了一种称为“镜像递归”的技术,其中一个进程通过创建另一个进程来反复复制自身,以迅速创建大量进程。管道符号(|)使进程从一个进程传递到另一个进程,以在更快的时间内创建更多进程。“:”和“;”字符分别定义了shell函数和结束该函数的语法。

一旦激活了Fork炸弹,它会快速生成许多进程,消耗系统资源,导致系统崩溃或变得不可用。为了避免这种攻击,Linux系统管理员可以限制每个用户创建进程的数量,或者禁用fork()系统调用。

Fork Bomb 基本上就是无限地创建 fork 的过程,直到您的系统没有剩余资源。

Fork炸弹命令解析

  • :() 定义了一个名称为 : 的函数,不接受任何参数。
  • {} 是函数开始和结束的地方。简而言之,它包含最终会崩溃您的机器的命令。
  • :|: 是递归开始的地方(调用自身的函数)。更准确地说,它会将一个 : 函数加载到内存中,将其输出管道 (|) 其自身的输出到另一个已加载到系统内存中的 : 函数。
  • & 将执行整个函数后台,以便不会杀死任何子进程。
  • ; 将每个子函数从多个执行的链中分离。
  • : 运行最近创建的函数,因此链式反应开始了!

如何预防

限制登录用户可以运行的最大进程数量,先查看当前用户可以使用的最大进程数量

ulimit -u

然后编辑 /etc/security/limits.conf 文件

vim /etc/security/limits.conf
@wheel           hard    nproc           5000
rumenz           hard    nproc           5000

这样,这些用户的最大进程数量将被限制在 5000 个进程以内,这有助于防止 Fork Bomb 对系统造成太大的影响。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部