CPanel Fork Bomb Protection
From Leo's Notes
Last edited on 1 September 2019, at 06:22.
The cPanel Fork Bomb Protection feature modifies the following files:
- /etc/bashrc
- /etc/profile
- /etc/profile.d/limits.sh
- /etc/profile.d/limits.csh
It will append the following lines to the files:
#cPanel Added Limit Protections -- BEGIN
#unlimit so we can run the whoami
ulimit -n 4096 -u 14335 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
LIMITUSER=$USER
if [ -e "/usr/bin/whoami" ]; then
LIMITUSER=`/usr/bin/whoami`
fi
if [ "$LIMITUSER" != "root" ]; then
ulimit -n 100 -u 35 -m 200000 -d 200000 -s 8192 -c 200000 -v unlimited 2>/dev/null
else
ulimit -n 4096 -u 14335 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
fi
#cPanel Added Limit Protections -- END
And the following to the csh profile script:
#cPanel Added Limit Protections -- BEGIN
setenv LIMITUSER $USER
if ( -e /usr/bin/whoami ) then
setenv LIMITUSER `whoami`
endif
if ( "$LIMITUSER" != "root" ) then
limit descriptors 100
limit maxproc 35
limit memoryuse 200000
limit datasize 200000
limit stacksize 8192
limit coredumpsize 200000
else
limit descriptors 4096
limit maxproc 14335
limit memoryuse unlimited
limit datasize unlimited
limit stacksize 8192
limit coredumpsize 1000000
endif
#cPanel Added Limit Protections -- END
This will cause non-root users to have a limit on certain resources as listed below.
Fork Bomb Protection Disabled | Fork Bomb Protection Enabled |
---|---|
leo@webtwo:/home/leo% ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 10240
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 1024
-n: file descriptors 1024
-l: locked-in-memory size (kb) 64
-v: address space (kb) unlimited
-x: file locks unlimited
-i: pending signals 513812
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
|
leo@webtwo:/home/leo% ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) 200000
-s: stack size (kbytes) 8192
-c: core file size (blocks) 200000
-m: resident set size (kbytes) 200000
-u: processes 35
-n: file descriptors 100
-l: locked-in-memory size (kb) 64
-v: address space (kb) unlimited
-x: file locks unlimited
-i: pending signals 513812
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
|
See Also