Haruskah kita menghapus kata sandi root, menonaktifkan login jarak jauh dan pada dasarnya mengharuskan administrator untuk menggunakan sudo untuk melakukan tindakan administratif?
21
Semua server saya menonaktifkan akun root ( sp_pwdp
disetel ke *
). Ini diperlukan sudo
untuk semua akses root. [1] Tujuannya adalah agar semua kegiatan pengguna super diaudit, sehingga orang dapat melihat apa yang telah dilakukan pada sistem.
Untuk opsi yang lebih hardcore, Anda dapat membuat sudo
menulis ke file log (tidak seperti syslog
), dan membuat file hanya-append (menggunakan chattr
di Linux, atau chflags
di BSD). Dengan cara ini, tidak ada yang bisa mengedit audit sesudahnya.
[1] Saya juga memiliki kebijakan untuk tidak menjalankan shell root, atau melakukan shell escape dari proses root. ( sudo sh -c '...'
Meskipun demikian, tidak apa-apa digunakan untuk melakukan penyaluran pipa atau pengalihan.)
Saya dengan tegas merekomendasikan agar tidak menonaktifkan pengguna root. Nonaktifkan atau batasi login root (melalui securetty dan via sshd_config dan via PAM dan melalui apa pun yang Anda miliki) Jika sistem Anda mengizinkannya, batasi hak akses root atau pisahkan peran root (mirip dengan cara RSBAC melakukannya). Tapi tolong, tolong , lakukan tidak menonaktifkan akun root dengan menghapus kata sandi, jika tidak maka akan menjadi mustahil untuk masuk ke sistem melalui
sulogin
.sulogin
digunakan oleh semua skrip init yang saya tahu jika ada kesalahan serius yang dilaporkan oleh fsck - dan itu berarti Anda akan dikunci dari sistem jika sistem file root rusak.Untuk memperjelas: Dengan "menonaktifkan akun root dengan menghapus kata sandi" maksud saya berbagai mekanisme yang berakhir dengan! atau * di bidang kata sandi / etc / shadow, atau serupa. Maksud saya bukan "ubah mekanisme login root sehingga Anda tidak dimintai kata sandi."
sumber
su
atausudo
di sistem Anda tersedia untuk pengguna berarti lebih banyak risiko keamanan yang dapat Anda hindari jika Anda hanya memiliki pengguna root khusus. Itu posisi yang dianjurkan oleh penulis distribusi aman Owl (dan desainer Solar di antara mereka) - unix.stackexchange.com/questions/8581/… mencoba menyajikan posisi mereka dengan referensi.fastboot
opsi, membuka kunci akun root dan memulai kembali untuk akhirnya berjalanfsck
secara manual.Saya memiliki akun root diaktifkan di semua server saya. Semua administrator memiliki pengguna mereka sendiri dan harus masuk melalui itu. Dari sana mereka beralih ke root. (root ssh dinonaktifkan)
Biarkan penghitungan administrator rendah. Hanya orang-orang yang benar-benar membutuhkan akses root di server yang memiliki kata sandi.
Saya bukan penggemar sudo. Terlalu mudah untuk melakukan 'sudo bash' untuk sebuah shell root. Saya sadar ini bisa dinonaktifkan tetapi mengapa repot-repot? Batasi pengguna yang dapat melakukan tugas administrator dan berbicara satu sama lain. Kami memiliki kebijakan untuk tidak membiarkan terminal root terbuka tanpa pengawasan. Jadi itu masuk, su, lakukan pekerjaan, keluar.
Catatan: Saya bekerja di sebuah perusahaan yang cukup kecil (50-an karyawan) dan kami bergaul dengan hanya 2 admin paruh waktu (1 windows / 1 linux). Cara melakukan hal-hal ini mungkin bukan yang terbaik ketika Anda memiliki pesanan lebih banyak pengguna. Saya pribadi masih tidak akan menggunakan sudo. Ada cara lain untuk mencatat aktivitas root.
sumber
Menonaktifkan kata sandi root adalah "ide bagus" yang salah. Hari Anda akan membutuhkannya, Anda akan benar-benar - membutuhkannya. (sesuai dengan konfigurasi Anda, Anda mungkin memerlukannya untuk masuk ke mode pengguna tunggal sebagai contoh)
Menonaktifkan login jarak jauh root mungkin relevan tetapi hanya jika Anda dapat masuk secara lokal.
Dan ya, sudo harus diinstal pada setiap server Anda. Ini berguna dan mudah dikonfigurasi. Mengapa Anda tidak menggunakannya?
sumber
Disabling root remote login might be relevant but only if you are able to log on locally.
Ini benar-benar salah. Anda dapat login dari jarak jauh dengan akun apa pun ; menonaktifkan login jarak jauh root tidak membatasi Anda untuk akses lokal.Saya hanya menonaktifkan akses SSH untuk root dan meminta pengguna (seringkali hanya pengembang) untuk menggunakan kunci ssh. Terlalu banyak serangan kamus dan mengubah port SSH bukanlah pilihan bagi kami.
Dengan begitu Anda tidak harus percaya pada kemampuan siapa pun untuk menulis kata sandi yang baik. Setelah masuk, admin hanya memiliki izin untuk sudo.
sumber
Saya tahu utas ini benar-benar tua tetapi ada beberapa kelemahan utama dalam logika artikel yang ditautkan dan saya merasa "rant'ie" - sudo memungkinkan daftar putih dan daftar hitam. Bukan hanya hitam seperti yang mereka tentukan dalam artikel tertaut - Ini melompati gagasan AAA (Otentikasi, Otorisasi & Audit) - su & sudo memungkinkan otentikasi bertingkat dan akuntabilitas.
Skenario 1 Seorang administrator secara tidak sengaja memperkenalkan beberapa kode jahat ke suatu sistem, login sebagai root kode memiliki akses lengkap dan administrator mungkin tidak pernah tahu apa yang terjadi. Setidaknya dengan info masuk bertingkat (mis. Su / sudo) administrator akan diminta untuk mengotentikasi jika kode jahat mencoba menggunakan hak yang ditinggikan ... Jika tidak meningkat maka terbatas pada hak pengguna yang harus mengakibatkan kerusakan minimal.
Skenario 2 Administrator jahat ingin mendapatkan info / melakukan perubahan. Mereka terhubung ke konsol (akses konsol fisik, HP iLo / serupa, atau akses konsol vGuest), masuk sebagai root dan melakukan apa pun yang mereka inginkan. Kecuali jika ada kartu akun / akses bernama yang digunakan untuk mendapatkan akses konsol, mungkin tidak banyak jejak audit.
sumber
Anda harus meminta semua orang menggunakan sudo untuk setiap perintah root sebagai kebijakan. Tidak pernah ada alasan untuk menjalankan "sudo bash" atau sejenisnya, itu hanya untuk kenyamanan, karena ketidaktahuan, atau untuk menutupi jejak seseorang.
Jika Anda menonaktifkan login ke akun root secara langsung, Anda melumpuhkan kemampuan Anda untuk memperbaiki sistem ketika ada masalah parah.
Jika Anda tidak dapat meyakinkan admin Anda untuk login sebagai diri mereka sendiri dan menjalankan sudo untuk setiap perintah yang dijalankan sebagai root, dan untuk tidak memecahnya menjadi sebuah shell, Anda memiliki masalah serius yang tidak ada solusi teknisnya.
sumber
Para penulis distribusi aman Owl (dan perancang surya) memiliki pandangan yang berlawanan secara hati-hati; lihat, misalnya, jawabannya /unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660 untuk presentasi klaim mereka. Masalah mengaudit tindakan pengguna super (orang yang melakukan apa) juga dibahas dalam sudut pandang mereka (pada dasarnya, solusinya adalah memiliki beberapa pengguna root dengan nama yang berbeda).
sumber