当前位置: 首页 > 编程笔记 >

通过限制Linux中的用户进程来防止fork炸弹

鱼渝
2023-03-14
本文向大家介绍通过限制Linux中的用户进程来防止fork炸弹,包括了通过限制Linux中的用户进程来防止fork炸弹的使用技巧和注意事项,需要的朋友参考一下

一个叉炸弹是针对基于Linux系统的拒绝服务(DoS)攻击。它利用fork操作创建无限进程,被称为“兔子病毒兔子”。系统进程会不断复制自身以耗尽可用的系统资源,从而导致资源不足,系统变慢或崩溃。本文提供了有关–如何防止Linux系统中的fork炸弹攻击的见解。

叉子炸弹使用bash代码并重复执行。Linux系统管理员通常使用bash功能来测试用户进程限制,并且可以在/etc/security/limits.conf 文件中配置此特定进程。在Linux系统中激活前叉炸弹后,可能无法找回,因为在正常系统下,直到重新引导系统为止。

了解Bash代码

可以在Bash代码中按以下方式定义fork()-

:(){
   :|:&
};:

:() –这被称为fork函数,该函数将不接受任何参数。

:|:  –这称为递归和管道。它用于调用自身以及也调用另一个函数。

&  –用于在后台调用。

; –终止函数定义。

–用于调用AKA 功能 来设置前叉炸弹。

了解叉子()炸弹

可读的fork()炸弹代码应如下所示-

bomb() {
   bomb | bomb &
}; bomb

通过限制用户进程来防止前叉炸弹

受限的用户进程对于运行稳定的系统更重要,并且该用户进程在/etc/security/limits.conf文件中。

了解/etc/security/limits.conf文件

limits.conf中的结构应如下所示–

<domain><type> <item> <value>

样本输出应如下所示–

#<domain>    <type>    <item>    <value>
#*          soft       core        0
#root       hard       core      100000
#*          hard       rss       10000
#@student   hard       nproc      20
#@faculty   soft       nproc      20
#@faculty   hard       nproc      50
#ftp        hard      nproc       0
#ftp        -         chroot     /ftp
#@student   -         maxlogins   4
......

配置limits.conf

为了防止“叉子炸弹”攻击,需要在limits.conf文件中进行一些更改。要打开limits.conf文件,请使用以下命令–

$ vi /etc/security/limits.conf

添加以下行以防止“叉炸弹”攻击–

tp hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 150

上面的命令描述,tp用户只有300个进程,学生组有50个进程,类似的教员组由100个进程组成,而pusers组将有150个进程。如果限制超载,那么Linux系统将自动终止额外的进程。现在保存并从limits.conf文件退出。

使用以下命令通过投下前叉炸弹来测试新系统–

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

恭喜你!现在,您知道“如何通过限制Linux中的用户进程来防止fork炸弹”。在下一篇Linux文章中,我们将学习有关这些命令类型的更多信息。继续阅读!

 类似资料:
  • 从父进程派生出子进程,子进程完全拷贝父进程的stack,data,heap segment。 两者并不共享地址空间,所以的变量是独立的,一方修改,另一方不会变化。 函数原型 #include <unistd.h> pid_t fork(void); 特点 一次调用,两次返回

  • 问题内容: 我正在通过SSH(Putty)在Linux机器上工作。我需要让一个进程在夜间运行,所以我想可以通过在后台启动该进程(在命令末尾使用&号)并将stdout重定向到文件来实现。 令我惊讶的是,这行不通。一旦关闭“腻子”窗口,该过程就会停止。 如何防止这种情况发生? 问题答案: 检出“ nohup ”程序。

  • 我有一个SPA React应用程序,它使用MSAL登录用户并获取令牌以查询MS Graph。当前,创建用户时,他/她可以有两个不同的角色,即: 管理员 查看器 照这样,每个用户都可以从AAD获得相同的范围——无论他们是一个角色还是另一个角色。 这带来了一个问题,因为任何用户在调用MS Graph时都可能拥有相同的权限,即他们可以自己获取令牌并请求具有完整作用域的Graph。 查看器角色应该只能具有

  • 我目前在PHP上使用Imagick库,并使用Image Magick的调整大小功能。我刚刚了解了减压炸弹以及ImageMagick是如何容易受到它的攻击的。 我已经检查了如何ping图像并验证图像的尺寸,而不实际将其加载到内存/磁盘中。限制ImageMagick的内存和磁盘限制也更安全,这样它就不会只在磁盘上写一个大文件。 我已经读过了,我可以用setResourceLimit()实现这一点。ht

  • 本文向大家介绍Shell脚本经典之Fork炸弹的分析与预防,包括了Shell脚本经典之Fork炸弹的分析与预防的使用技巧和注意事项,需要的朋友参考一下 fork炸弹介绍 众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能。这样的一款shell中自然不会缺少函数这个元素来帮助程序进行模块化的高效开发与管理。于是产生了由于其特殊的特性,bash拥有了fork炸弹。Jaromil在

  • 本文向大家介绍Django中对通过测试的用户进行限制访问的方法,包括了Django中对通过测试的用户进行限制访问的方法的使用技巧和注意事项,需要的朋友参考一下 限制访问可以基于某种权限,某些检查或者为login视图提供不同的位置,这些实现方式大致相同。 一般的方法是直接在视图的 request.user 上运行检查。 例如,下面视图确认用户登录并是否有 polls.can_vote权限: 并且Dj