一个叉炸弹是针对基于Linux系统的拒绝服务(DoS)攻击。它利用fork操作创建无限进程,被称为“兔子病毒或兔子”。系统进程会不断复制自身以耗尽可用的系统资源,从而导致资源不足,系统变慢或崩溃。本文提供了有关–如何防止Linux系统中的fork炸弹攻击的见解。
叉子炸弹使用bash代码并重复执行。Linux系统管理员通常使用bash功能来测试用户进程限制,并且可以在/etc/security/limits.conf 文件中配置此特定进程。在Linux系统中激活前叉炸弹后,可能无法找回,因为在正常系统下,直到重新引导系统为止。
可以在Bash代码中按以下方式定义fork()-
:(){ :|:& };:
:() –这被称为fork函数,该函数将不接受任何参数。
:|: –这称为递归和管道。它用于调用自身以及也调用另一个函数。
& –用于在后台调用。
; –终止函数定义。
: –用于调用AKA 功能 来设置前叉炸弹。
可读的fork()炸弹代码应如下所示-
bomb() { bomb | bomb & }; bomb
受限的用户进程对于运行稳定的系统更重要,并且该用户进程在/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文件,请使用以下命令–
$ 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文章中,我们将学习有关这些命令类型的更多信息。继续阅读!