Saya telah sukarela oleh bos saya untuk menjadi sysadmin untuk server redhat produksi kami. Dia meminta saya untuk memperketat keamanan untuk menghindari kecelakaan seperti rm -f *
yang terjadi belum lama ini.
Saat ini, kami memiliki 53 pengguna yang tiba-tiba masuk ke dalam mesin dan ini merupakan mimpi buruk audit. Saya bertanya-tanya apakah mungkin mengizinkan akses pengguna hanya pada hari-hari tertentu dalam seminggu.
Misalnya, dapatkah saya meminta pengguna 'Joe' untuk masuk pada hari Selasa dan Kamis HANYA dan 'Jane' hanya pada hari Minggu? Bisakah etc/sudoers
dikustomisasi untuk memungkinkan ini?
Apakah ada cara yang lebih baik daripada menggunakan sudoers?
permissions
security
sudo
Chris
sumber
sumber
rm -rf /
.Jawaban:
sudo
melakukan otentikasi melalui PAM, seperti hampir semua yang lain pada kotak Linux.Jadi Anda harus dapat menggunakannya
pam_time.so
untuk melakukan ini.Secara default setidaknya di Debian, modul itu tidak diaktifkan. Anda perlu menambahkan garis yang terlihat seperti ini:
baik
/etc/pam.d/sudo
untuk mengaktifkan hanya sudo atau/etc/pam.d/common-account
(setelah blok pembaruan-pam-auth) untuk memungkinkan semua program pada sistem.Kemudian edit
/etc/security/time.conf
untuk mengatur batasan Anda. Nama layanan harussudo
. Misalnya, untuk mengizinkan Fred menggunakansudo
hanya antara jam 15.00 dan 17.00 pada hari Jumat:(CATATAN: Saya belum menguji ini.)
sunting: Agar jelas, saya setuju dengan jawaban lain dan berbagai komentator, Anda tampaknya memiliki terlalu banyak orang yang menjalankan terlalu banyak perintah sebagai root, dan Anda benar-benar harus memperbaikinya. Dan tentu saja jika mereka dapat menjadi root, mereka dapat mengedit konfigurasi pam ...
sumber
Saya akan mempertanyakan mengapa 53 pengguna perlu sudo untuk melakukan pekerjaan sehari-hari mereka - untuk sebagian besar pengguna (bahkan pengembang), sudo harus menjadi pengecualian yang jarang, bukan hal yang rutin sehingga seseorang dengan santai menjalankan
sudo rm -rf *
perintah.Bisakah Anda menggunakan izin grup (atau bahkan ACL yang lebih canggih) untuk memberi orang akses ke file yang mereka butuhkan untuk menyelesaikan pekerjaan mereka, mungkin dengan beberapa skrip atau binari setuid atau sudo'ed untuk membiarkan mereka melakukan hal-hal seperti memulai kembali layanan? (perhatikan bahwa sulit untuk menulis skrip setuid / sudo yang aman, jadi lebih baik untuk menjaga orang jujur jujur).
Bahkan jika Anda dapat membatasi orang untuk akses sudo satu hari seminggu, itu masih 53 orang dengan akses sudo dalam waktu seminggu, jadi itu tidak benar-benar membantu dengan masalah inti Anda.
Dalam hal ini, saya akan mempertanyakan apakah banyak pengguna yang memerlukan akses ke server produksi sama sekali - dapatkah Anda mengirimkan log atau data / file apa pun yang mereka perlukan ke mesin non-produksi?
sumber
vi/cp/mv/rm
. Hanyacd
danmore
. Tidak ada lagi.Cara paling sederhana adalah menggunakan suders.d (via inludedir) untuk konfigurasi Anda. Anda kemudian dapat memiliki pekerjaan cron yang dapat menempatkan aturan untuk setiap pengguna ke direktori itu untuk waktu yang Anda inginkan.
Arahan #includedir dapat digunakan di / etc / sudoers untuk membuat direktori sudo.d yang bisa Anda gunakan untuk memasukkan aturan sudoers sebagai bagian dari aturan Anda .. Misalnya, diberikan:
#includedir /etc/sudoers.d
sudo akan membaca setiap file di /etc/sudoers.d, melewatkan nama file yang diakhiri dengan '~' atau mengandung '.' karakter untuk menghindari menyebabkan masalah dengan manajer paket atau editor file sementara / cadangan. File diuraikan dalam urutan leksikal yang diurutkan. Yaitu, /etc/sudoers.d/01_first akan diuraikan sebelum /etc/sudoers.d/10_second. Ketahuilah bahwa karena pengurutan bersifat leksikal, bukan numerik, /etc/sudoers.d/1_whoops akan dimuat setelah /etc/sudoers.d/10_second. Menggunakan angka nol terkemuka yang konsisten dalam nama file dapat digunakan untuk menghindari masalah seperti itu.
Perhatikan bahwa tidak seperti file yang disertakan melalui #include, visudo tidak akan mengedit file dalam direktori #includedir kecuali salah satu dari mereka mengandung kesalahan sintaksis. Dimungkinkan untuk menjalankan visudo dengan flag tof untuk mengedit file secara langsung.
/etc/sudoers.d/joe akan hadir ketika Anda ingin joe memiliki akses dan Anda cukup menghapus file untuk mengambil akses.
sumber
Anda bisa menambahkan crontab untuk menempatkan pengguna di grup sudo, dan kemudian crontab kedua untuk mengeluarkan pengguna itu.
sumber