Fork bomb adalah jenis serangan denial-of-service (DoS) yang membuat proses terus bertambah tanpa batas. Akibatnya, server bisa menjadi sangat lambat, tidak responsif, atau bahkan crash. Kondisi ini juga dapat terjadi karena penulisan kode yang buruk, kesalahan konfigurasi, maupun aktivitas berbahaya (malicious).
Selain fork bomb, aktivitas intensif seperti script mining cryptocurrency juga dapat menyebabkan server overload dan akhirnya crash.
Mengaktifkan Shell Fork Bomb Protection #
Untuk mencegah penyalahgunaan terminal, kita dapat membatasi jumlah proses dan resource yang dapat dibuat oleh setiap user. Cara ini membantu menjaga kestabilan sistem apabila terjadi fork bomb atau pemakaian resource berlebihan.
Edit file berikut:
/etc/bashrc
/etc/profileLalu tambahkan script berikut pada baris paling bawah:
# start_shell_fork
# Default limits (lebih longgar, untuk admin)
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
# Terapkan limit ketat hanya untuk user non-root dan bukan anggota wheel/sudo
if [ "$LIMITUSER" != "root" ] &&
! id -Gn | grep -qsP '(^| )(wheel|sudo)( |$)' &&
[ "$(id -u)" -ge "$( (grep -s '^UID_MIN' /etc/login.defs || echo 'x 500') | awk '{print $2}')" ]
then
# Limit untuk user biasa
ulimit -n 100 -u 35 -m 200000 -d 200000 -s 8192 -c 200000 -v unlimited 2>/dev/null
else
# Limit untuk admin / root
ulimit -n 4096 -u 14335 -m unlimited -d unlimited -s 8192 -c 1000000 -v unlimited 2>/dev/null
fi
# end_shell_forkPenjelasan Limit untuk User Biasa:
| Parameter | Fungsi | Nilai |
|---|---|---|
-n |
Maksimal file terbuka | 100 |
-u |
Maksimal jumlah proses per user | 35 |
-m |
Batas memori resident (RAM) | 200.000 |
-d |
Batas ukuran data segment | 200.000 |
-s |
Batas ukuran stack | 8.192 |
-c |
Maksimal ukuran core file | 200.000 |
-v |
Batas memori virtual | unlimited |
Setelah konfigurasi selesai, reboot server agar semua limit diterapkan ke seluruh user.
Membatasi Akses Compiler #
Anda juga dapat membatasi penggunaan compiler (misalnya gcc) hanya untuk group tertentu. Contohnya:
groupadd compiler
chmod 750 /bin/gcc
chown root:compiler /bin/gccDengan cara ini, hanya user dalam group compiler yang dapat menjalankan perintah gcc.