Saya ingin menjalankan server shell sekolah lama untuk beberapa orang, yaitu. di mana pengguna mendapatkan akses ssh sehingga mereka dapat menjalankan perangkat lunak (sendiri atau disediakan). Kekhawatiran saya adalah pemisahan yang tepat antara pengguna.
Saya tidak ingin mereka melihat satu sama proses lainnya, mengakses file masing-masing (kecuali diizinkan secara eksplisit), dll. Akan lebih baik untuk tidak digigit oleh setiap bug eskalasi hak istimewa atau memulai kembali server dengan setiap pembaruan kernel kecil. Akan sempurna untuk mempertahankan opsi menjalankan layanan umum (seperti web dan hosting email) dengan langkah-langkah keamanan ini di tempat.
Kembali pada hari saya menggunakan grsec tetapi ini membutuhkan tetap pada kernel yang lebih tua dan berurusan dengan kerumitan kompilasi sendiri. Apakah ada cara Ubuntu yang lebih modern dan lebih memastikan pemisahan pengguna pada server bersama?
Mungkin Anda bisa melakukan sesuatu dengan AppArmor untuk efek itu? Atau mungkin ada repositori kernel yang sudah dikonfigurasi untuk lingkungan bersama? Atau solusi berdasarkan wadah? Ini telah menjadi mode akhir-akhir ini.
Jawaban:
hidepid
procfs
di Linux sekarang mendukunghidepid
opsi. Dariman 5 proc
:Jadi, pemasangan
/proc
denganhidepid=2
cukup untuk menyembunyikan detail proses pengguna lain di Linux> 3.3. Ubuntu 12.04 hadir dengan 3.2 secara default, tetapi Anda dapat menginstal kernel yang lebih baru. Ubuntu 14.04 dan di atas dengan mudah cocok dengan persyaratan ini.ACL
Sebagai langkah pertama, hapus
rwx
izin untuk orang lain dari setiap direktori home (dan untuk grup juga, jika Anda memerlukannya). Saya berasumsi, tentu saja, bahwa folder yang berisi direktori home tidak memiliki izin menulis kepada siapa pun kecuali root.Kemudian, berikan layanan seperti server web dan server surat akses ke direktori yang sesuai menggunakan ACL. Misalnya, untuk memberikan akses proses server web ke halaman beranda pengguna, dengan anggapan
www-data
adalah pengguna dan~/public_html
tempat halaman beranda disimpan:Demikian pula, tambahkan ACL untuk proses surat dan direktori kotak surat.
ACL diaktifkan secara default pada ext4 setidaknya pada Ubuntu 14.04 ke atas.
/tmp
danumask
Masalah lainnya adalah
/tmp
. Aturumask
agar file tidak dapat dibaca kelompok atau dunia, sehingga file sementara pengguna tidak dapat diakses oleh pengguna lain.Dengan ketiga pengaturan ini, pengguna seharusnya tidak dapat mengakses file pengguna lain, atau memeriksa proses mereka.
sumber
/tmp
adalah paketlibpam-tmpdir
: paket ini menciptakan direktori yang dimiliki oleh root, tidak dapat dibaca oleh dunia/tmp/user
dan direktori yang dimiliki pengguna, tidak dapat dibaca dunia, tidak dapat dilintasi-dunia/tmp/user/$UID
untuk setiap pengguna (berdasarkan yang pertama log-in) dan set variabel lingkunganTMP_DIR
untuk menunjuk ke yang terakhir. Sebagian besar program bermain bagus dan menempatkan file sementara mereka di dalam$TMP_DIR
jika diatur.