Saya ingin tahu apa pendekatan terbaik untuk melacak aktivitas pengguna super di lingkungan Linux.
Secara khusus, saya mencari fitur ini:
- A) Pencatatan penekanan tombol ke server syslog yang diamankan
- B) Kemampuan untuk memutar ulang sesi shell (sesuatu seperti scriptreplay)
- C) Idealnya, ini harus menjadi sesuatu yang mustahil (atau cukup sulit) untuk dielakkan tanpa memiliki akses fisik ke server.
Pikirkan hal ini dari sudut pandang keamanan / audit, dalam lingkungan di mana sysadmin yang berbeda (atau bahkan pihak ketiga) perlu diizinkan untuk melakukan operasi istimewa di server.
Setiap administrator akan memiliki akun nominalnya sendiri, dan setiap sesi interaktif harus sepenuhnya dicatat, dengan kemungkinan untuk mengulanginya jika perlu (misalnya, jika seseorang menggunakan mc untuk menghapus atau mengubah file penting, itu tidak akan cukup untuk ketahuilah bahwa orang itu mengeluarkan perintah mc; harus ada cara untuk melihat dengan tepat apa yang dilakukan setelah meluncurkan mc).
Catatan tambahan :
- Seperti yang ditunjukkan oleh womble, mungkin opsi terbaik adalah tidak meminta orang untuk masuk dengan hak root untuk melakukan perubahan pada server, tetapi melakukan hal itu melalui sistem manajemen konfigurasi. Jadi mari kita asumsikan situasi di mana kita tidak memiliki sistem seperti itu dan kita perlu memberikan akses tingkat root ke orang yang berbeda melalui server yang sama .
- Saya sama sekali tidak tertarik melakukan hal ini secara diam-diam: setiap orang yang masuk ke server dengan hak akses root akan sepenuhnya sadar bahwa sesi akan direkam (dengan cara yang sama, misalnya, operator pusat panggilan tahu bahwa percakapan mereka adalah sedang direkam)
- Tidak ada yang akan menggunakan akun pengguna super umum ("root")
- Saya menyadari ttyrpld dan sepertinya melakukan apa yang saya cari. Tetapi sebelum seperti itu, saya ingin tahu apakah ini dapat diselesaikan dengan menggunakan kernel yang tidak dimodifikasi. Saya ingin tahu apakah ada alat untuk Debian pada khususnya (atau Linux pada umumnya) yang memungkinkan audit penuh akun superuser tanpa menambal shell atau kernel.
Jawaban:
Untuk lingkungan dengan banyak admin, jangan gunakan root - jika memungkinkan.
Gunakan sudo untuk semuanya - sudo sangat bisa dikonfigurasi dan mudah didata.
Log semua / semua login atau su untuk me-root & menyelidikinya karena seseorang kemudian berkeliling di sekitar aturan yang Anda buat.
sumber
Pertama, jenis akses pengguna root apa yang ingin Anda pantau? Kesalahan admin bodoh atau orang dalam yang jahat? Yang pertama - Anda akan menginginkan solusi manajemen konfigurasi yang baik, seperti yang telah disarankan. Yang terakhir - jika mereka tahu apa yang mereka lakukan, Anda hanya bisa berharap untuk menangkap cukup untuk menunjukkan sesuatu terjadi layak diselidiki. Anda hanya ingin tahu bahwa beberapa bentuk kegiatan tidak sah dimulai, dan waspadai fakta itu. Jika mereka cerdas, mereka akan menonaktifkan sebagian besar pembuatan log yang Anda buat (dengan mengubah status server atau dengan membawa alat mereka sendiri) tetapi mudah-mudahan Anda dapat mengetahui awal dari insiden tersebut.
Yang sedang berkata, saya sarankan beberapa alat yang dapat Anda gunakan. Pertama, mulailah dengan kebijakan sudo yang baik (yang sudah disarankan). Kedua, periksa sudoshell jika Anda perlu memberikan akses shell root admin tersebut. Ketiga, mungkin taruhan terbaik Anda (meskipun paling intensif), lihatlah audit kernel linux.
sumber
Apa yang bisa Anda lakukan adalah menggunakan pustaka ini untuk sudo, beri semua orang akun pengguna mereka sendiri dan masukkan sudo -i di profil everyones. Dengan begitu mereka memiliki akses root instan dan setiap perintah yang mereka gunakan sedang dicatat.
sumber
Mereka punya root. Yang terbaik yang bisa Anda harapkan adalah setidaknya melihat kapan mereka memutuskan untuk keluar dari utopia pemantauan kecil Anda, tetapi di luar itu yang mereka lakukan adalah dugaan siapa pun.
Pilihan "terbaik" yang dapat saya pikirkan adalah untuk mengamanatkan penggunaan otomatisasi dan manajemen konfigurasi yang luas, dan mengelola manifes Anda menggunakan sistem kontrol revisi dan menyebarkan pembaruan melalui itu. Kemudian cegah login root yang sebenarnya ke server. (Darurat "oh noes I Break something" akses dapat disediakan oleh kata sandi atau kunci SSH yang tidak didistribusikan dan tidak didistribusikan setelah digunakan setiap kali, dan semua orang dapat menonton sysadmin yang mengacaukan untuk memastikan mereka tidak ubah apapun).
Ya, ini akan merepotkan dan menyebalkan, tetapi jika Anda cukup paranoid untuk ingin memantau tindakan semua orang sampai tingkat ini, saya kira Anda berada di lingkungan yang tidak nyaman dan cukup menjengkelkan dengan cara lain yang dimenangkan ini. sepertinya masalah besar.
sumber
Seperti yang dikatakan orang lain, hampir tidak ada cara untuk login pengguna dengan akses root penuh dengan cara mereka tidak dapat menonaktifkan, tetapi jika Anda menjalankan debian / ubuntu lihat snoopy , yang datang cukup dekat dengan apa yang Anda inginkan
sumber
Saya setuju dengan komentar disableleopard tentang menggunakan sudo untuk semuanya. Ini tentu membuat hal-hal sedikit lebih mudah untuk dicatat.
Saya juga menambahkan cadangan file sejarah bash secara berkala. Tampaknya sering diabaikan tetapi kadang-kadang bisa menjadi sumber informasi yang bagus ... tanyakan saja pada Goldman Sachs. ;-)
http://www.guardian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov
sumber
Itu akan sulit ...
root dapat berjalan dengan hati-hati skrip yang diuji dengan baik yang dapat melanggar semua langkah-langkah keamanan (membunuh proses pemantauan), rusak file log / potong mereka dll ... Tapi masih ...
Dengan asumsi beberapa admin diberikan privilege root bekerja sebagai sebuah tim. Dan root juga dapat membunuh proses pemantauan. Dan sayangnya, login / kata sandi itu menjadi publik. Atau mereka mendapatkan perusahaan yang tidak diinginkan.
Membuat beberapa akun root dengan UID 0 meskipun tidak disarankan, mungkin berlaku di sini.
Di / etc / ssh / sshd_config Mengubah baris menjadi: PermitRootLogin no
direkomendasikan. Jadi, Di sini, pengguna log in menggunakan akun normalnya (stempel waktu dicatat bersama (mungkin Alamat IP palsu)) Lalu beralih ke root. menggunakan perintah su
Dan Direct login sebagai root dicegah seperti ini.
Kita harus berpikir, apa yang tidak bisa dilakukan root di sini.
sudo harus bagus. Mencadangkan direktori / etc File Konfigurasi harus baik. / var / direktori File log harus diemail secara berkala atau disimpan di NFS terpisah.
Bagaimana dengan Menulis Skrip yang mengintegrasikan API dari perusahaan Gateway Mobile yang mengelompokkan SMS ke semua ponsel pengguna root, yang salah satunya di luar rumah untuk bekerja. Saya tahu itu akan menjengkelkan, tapi tetap saja.
Melanggar SSH sebagian besar dari pertanyaan.
sumber
Kami memiliki pengaturan berikut di situs pelanggan:
Ini akan mencatat setiap penggunaan sudo di server dan juga melacak perubahan apa pun pada file, pemasangan paket, proses yang mencurigakan, dll.
sumber
Kami memiliki beberapa server terminal untuk mengakses semua peralatan kami, itu artinya seseorang dapat login ke apa saja baik dari server terminal atau jika seseorang memiliki akses fisik.
Sshd pada server terminal ditambal dengan http://www.kdvelectronics.eu/ssh-logging/ssh-logging.html , berfungsi dengan baik, tetapi tidak diperbarui untuk waktu yang lama. Saya telah sedikit memodifikasinya untuk bekerja pada openssh 4.7, tetapi gagal melakukannya dengan 5.1. Patch sshd segfaults, dan selama saya tidak punya cukup waktu untuk memperbaikinya, saya hampir beralih ke ttyrpld.
sumber
Sejauh ini, inilah yang saya miliki:
Apakah Anda tahu ada alat serupa lainnya yang tidak melibatkan menambal kernel atau komponen sistem lainnya?
sumber