Cegah bom fork di dalam wadah buruh pelabuhan

8

Saat ini saya berjuang dengan membatasi jumlah proses untuk pengguna yang saya panggil sandbox.

Saya mengkonfigurasi batas proses di dalam /etc/security/limits.confseperti ini:

sandbox            hard    nproc            100

Tetapi jika saya ingin terhubung ke wadah sebagai sandboxpengguna, ssh mengembalikan:

shell request failed on channel 0

Jadi saya masuk sebagai rootdan memeriksa berapa banyak proses yang berjalan oleh sandboxpengguna, tetapi kurang dari 5.

Jadi apa yang bisa mencegah saya untuk masuk melalui ssh?
Tanpa pengaturan batas ssh login untuk sandboxpengguna berfungsi ok.

Atau adakah cara lain untuk mencegah serangan bom garpu?

eXPi
sumber

Jawaban:

2

kesalahan apa pun saat menyambung ke sshd masuk ke /var/log/auth.log (dalam OS berbasis debian, atau keamanan dalam sistem berbasis redhat)

Jika tidak, diatur LogLevel VERBOSEdalam /etc/ssh/sshd_configdan sshd ulang. Ini akan menunjukkan kepada Anda mengapa sshd menolak koneksi Anda berikutnya.

Yang mengatakan, kembali ke pembatas garpu-bom Anda: mesin buruh pelabuhan didasarkan pada LXC, sistem wadah untuk Linux. LXC menggunakan CGROUPS untuk mengelola batas sumber daya untuk setiap kontainer.

di / sys / fs / cgroups, Anda dapat mengatur batas apa pun untuk LXC yang sedang berjalan, dan di / Var / lib / lxc / vmname / config, Anda dapat mengatur batas yang akan diberlakukan pada boottime.

Membatasi jumlah proses dalam cgroup dilakukan oleh subsistem penghitung tugas (ditambahkan dalam kernel Linux pada 2011 http://lkml.iu.edu//hypermail/linux/kernel/1109.0/01455.html )

Dengan kernel linux yang cukup baru, membatasi jumlah proses yang diizinkan untuk cgroup dilakukan dengan menambahkan jenis baris ini ke file konfigurasi lxc Anda:

lxc.cgroup.tasks.limit = 1024 

untuk maksimum 1024 proses

(disclaimer: informasi yang tidak diperiksa pada mesin nyata, untuk dikonfirmasi)

Benjamin Sonntag
sumber
1
Terima kasih. Untuk koreksi wadah Docker terbaru tidak didasarkan pada LXC, LXC tersedia sebagai driver. Docker container driver asli didasarkan langsung pada ruang nama kernel. Tapi saya sangat suka ide dengan cgroups saya tidak tahu bahwa itu mungkin membatasi proses hitungan. Saya pasti akan mencobanya.
eXPi
2
Sampai hari ini sub sistem counter tugas masih belum mendarat di kernel resmi.
Fabian Jakobs