透過限制Linux使用者程序來防止fork炸彈
fork炸彈是一種針對基於Linux的系統的拒絕服務(DoS)攻擊。它利用fork操作建立無限程序,也被稱為“兔子病毒”或“wabbit”。系統程序不斷自我複製,耗盡可用的系統資源,導致資源匱乏,使系統速度變慢或崩潰。本文深入探討了如何在Linux系統中防止fork炸彈攻擊。
Fork炸彈使用bash程式碼並反覆執行。Linux系統管理員經常使用bash函式來測試使用者程序限制,這個特定程序可以在/etc/security/limits.conf檔案中配置。一旦Fork炸彈在Linux系統中被啟用,可能無法恢復到正常系統狀態,直到重新啟動系統。
理解Bash程式碼
fork()可以在Bash程式碼中定義如下:
:(){ :|:& };:
:() – 這被稱為fork函式,此函式不接受任何引數。
:|: – 這被稱為遞迴和管道。它用於呼叫自身並呼叫另一個函式。
– 用於在後臺呼叫。
; – 用於終止函式定義。
: – 用於呼叫AKA函式來設定Fork炸彈。
理解Fork()炸彈
人類可讀的fork()炸彈程式碼應如下所示:
bomb() { bomb | bomb & }; bomb
透過限制使用者程序來防止Fork炸彈
限制使用者程序對於執行穩定的系統非常重要,使用者程序在/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
為了防止“fork炸彈”攻擊,需要對limits.conf檔案進行一些更改。要開啟limits.conf檔案,請使用以下命令:
$ vi /etc/security/limits.conf
新增以下幾行以防止“fork炸彈”攻擊:
tp hard nproc 300 @student hard nproc 50 @faculty soft nproc 100 @pusers hard nproc 150
上述命令描述了tp使用者只有300個程序,student組有50個程序,類似地,faculty組有100個程序,pusers組有150個程序。如果超過限制,則Linux系統會自動終止多餘的程序。現在儲存並退出limits.conf檔案。
使用以下命令透過投放fork炸彈來測試新系統:
$ :(){ :|:& };:
恭喜!現在,您知道了“如何透過限制Linux使用者程序來防止fork炸彈”。我們將在下一篇文章中學習更多關於此類命令的內容。繼續關注!