Shell Fork Bomb Protection

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/profile
Lalu 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_fork
Penjelasan 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/gcc
Dengan cara ini, hanya user dalam group compiler yang dapat menjalankan perintah gcc.


