#include <stdlib.h>
#include <unistd.h>
int main()
{
while(1)
fork();
}
Ini adalah kode untuk bom fork.
Di kampus kami, kami terhubung melalui telnet yaitu protokol melayani klien. Sekitar 100 sistem terhubung ke server. Tiba-tiba kami melihat server menjadi lambat, dan setelah beberapa waktu crash. Saya jadi tahu bahwa sombody menerapkan bom fork.
Bagaimana kita bisa mendeteksi pada sistem mana bom garpu diterapkan? Dan bagaimana kita bisa menghentikannya?
Salah satu metode adalah membatasi jumlah proses maksimum yang dimiliki oleh satu pengguna. Apakah ada metode untuk menghentikannya dan untuk mengetahui dari sistem mana ia telah diterapkan?
c
process
operating-systems
telnet
Rajesh M.
sumber
sumber
Jawaban:
Salah satu caranya adalah membatasi jumlah proses, yang bisa dijalankan pengguna.
Cukup login sebagai root, dan edit file ini, untuk menambah pengguna dan mengonfigurasi, batasnya.
Tambahkan baris ini ke file
Sekarang pengguna john hanya dapat membuat 10 proses.
sumber
/etc/security/limits.conf
berlaku.Untuk menghentikan bom fork yang sedang berjalan, Anda mungkin dapat menggunakannya
killall <name>
untuk membunuh semua proses bom. Namun, karena bom fork biasanya menghasilkan beban yang sangat tinggi pada sistem Anda mungkin tidak dapat SSH ke dalamnya atau menjalankannya. Jadi reboot mungkin diperlukan atau setidaknya lebih cepat.Jika setiap pengguna memiliki akun sendiri di sistem, Anda cukup memeriksa direktori home semua orang dan mencari yang dapat dieksekusi. Peluangnya bagus, dia juga mengunggah kode sumber, jadi tidak terlalu sulit. Jika itu akun bersama untuk semua siswa, Anda kurang beruntung. Terutama setelah sesi telnet atau ssh dari pengguna diakhiri, Anda tidak memiliki kesempatan untuk mencari tahu siapa yang memulainya.
Namun, alih-alih menghukum pengguna yang meledakkan bom fork Anda lebih baik memperbaiki konfigurasi sistem untuk melucuti bom fork. Anda dapat menetapkan batas proses per-pengguna dengan menggunakan
/etc/security/limits.conf
dan dengan demikian mencegah bom fork keluar dari kendali - dengan misalnya hanya 50 proses bom fork tidak akan menghasilkan banyak kerusakan.sumber