通过限制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文章中,我们将学习有关这些命令类型的更多信息。继续阅读!