Semua orang di Internet menyarankan untuk menonaktifkan login root melalui SSH karena itu adalah praktik yang buruk dan lubang keamanan dalam sistem, tetapi tidak ada yang menjelaskan mengapa begitu.
Apa yang sangat berbahaya dalam mengaktifkan login root (terutama dengan login password yang dinonaktifkan)?
Dan apa perbedaan antara nama pengguna simbol X dan kata sandi simbol Y atau nama pengguna root dan kata sandi simbol X + Y dari sudut pandang keamanan jika otentikasi kata sandi dibolehkan?
su -
atausudo -i
agar login mereka yang sebenarnya dapat direkam. Ini membuat pencabutan semua akses ke seseorang menjadi lebih mudah sehingga bahkan jika mereka memiliki kata sandi root, mereka tidak dapat melakukan apa-apa dengannya.Jawaban:
Mengapa membasmi SSH itu buruk
Ada banyak bot di luar sana yang mencoba masuk ke komputer Anda melalui SSH. Bot ini bekerja dengan cara berikut.
Mereka mengeksekusi sesuatu seperti
ssh root@$IP
dan kemudian mereka mencoba kata sandi standar seperti "root" atau "password123". Mereka melakukan ini selama mungkin, sampai mereka menemukan kata sandi yang tepat. Pada server yang dapat diakses di seluruh dunia Anda dapat melihat banyak entri log dalam file log Anda. Saya bisa mencapai 20 per menit atau lebih.Ketika penyerang memiliki keberuntungan (atau cukup waktu), dan menemukan kata sandi, mereka akan memiliki akses root dan itu berarti Anda dalam masalah.
Tetapi ketika Anda melarang root untuk login lebih dari SSH, bot pertama-tama perlu menebak nama pengguna dan kemudian kata sandi yang cocok. Jadi katakanlah daftar kata sandi yang masuk akal memiliki
N
entri dan daftar pengguna yang masuk akal adalahM
entri yang besar. Bot memiliki serangkaianN*M
entri untuk diuji, jadi ini membuatnya sedikit lebih sulit untuk bot dibandingkan dengan kasus root di mana ia hanya seperangkat ukuranN
.Beberapa orang akan mengatakan bahwa tambahan
M
ini bukan keuntungan nyata dalam keamanan dan saya setuju bahwa ini hanya peningkatan keamanan kecil. Tetapi saya menganggap ini lebih sebagai gembok kecil ini yang dengan sendirinya tidak aman, tetapi mereka menghalangi banyak orang dari akses yang mudah. Ini tentu saja hanya valid jika mesin Anda tidak memiliki nama pengguna standar lainnya, seperti tor atau apache.Alasan yang lebih baik untuk tidak mengizinkan root adalah root dapat melakukan lebih banyak kerusakan pada mesin daripada yang dapat dilakukan pengguna standar. Jadi, jika dengan keberuntungan mereka menemukan kata sandi Anda, seluruh sistem hilang sementara dengan akun pengguna standar Anda hanya dapat memanipulasi file-file dari pengguna tersebut (yang masih sangat buruk).
Dalam komentar disebutkan bahwa pengguna normal dapat memiliki hak untuk menggunakan
sudo
dan jika kata sandi pengguna ini akan ditebak sistemnya juga hilang sama sekali.Singkatnya saya akan mengatakan bahwa tidak masalah kata sandi pengguna mana yang didapat penyerang. Ketika mereka menebak satu kata sandi, Anda tidak dapat lagi mempercayai sistem. Seorang penyerang dapat menggunakan hak-hak pengguna itu untuk menjalankan perintah
sudo
, penyerang juga dapat mengeksploitasi kelemahan dalam sistem Anda dan mendapatkan hak akses root. Jika penyerang memiliki akses ke sistem Anda, Anda tidak bisa mempercayainya lagi.Yang perlu diingat di sini adalah bahwa setiap pengguna di sistem Anda yang diizinkan masuk melalui SSH adalah kelemahan tambahan. Dengan menonaktifkan root, Anda menghapus satu kelemahan yang jelas.
Mengapa kata sandi lebih dari SSH buruk
Alasan untuk menonaktifkan kata sandi sangat sederhana.
Seluruh gagasan mencoba kata sandi hanya berfungsi ketika kata sandi dapat ditebak. Jadi ketika pengguna memiliki kata sandi "pw123" sistem Anda menjadi tidak aman. Masalah lain dengan kata sandi yang dipilih oleh orang adalah bahwa kata sandi mereka tidak pernah benar-benar acak karena itu akan sulit untuk diingat.
Selain itu, pengguna cenderung menggunakan kembali kata sandi mereka, menggunakannya untuk masuk ke Facebook atau akun Gmail mereka dan ke server Anda. Jadi ketika seorang hacker mendapatkan kata sandi akun Facebook pengguna ini, ia bisa masuk ke server Anda. Pengguna dapat dengan mudah kehilangan itu melalui phishing atau server Facebook mungkin diretas.
Tetapi ketika Anda menggunakan sertifikat untuk masuk, pengguna tidak memilih kata sandinya. Sertifikat ini didasarkan pada string acak yang sangat panjang dari 1024 Bit hingga 4096 Bit (~ 128 - 512 karakter kata sandi). Selain itu, sertifikat ini hanya ada untuk masuk ke server Anda dan tidak digunakan dengan layanan luar.
Tautan
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
Artikel ini berasal dari komentar dan saya ingin memberikannya posisi yang sedikit lebih menonjol, karena masuk sedikit lebih dalam ke masalah botnet yang mencoba masuk melalui SSH, bagaimana mereka melakukannya, bagaimana file log terlihat seperti dan apa yang bisa dilakukan untuk menghentikan mereka. Ini ditulis oleh Peter Hansteen.
sumber
N*M > N
. Karena sebagian besar * nix host memilikiroot
pengguna, jika Anda mengizinkan root untuk login langsung dari host jarak jauh, ukuran matriks tes adalah jumlah kata sandi yang harus dicoba; tidak mengizinkan login root langsung, jumlah kombinasi yang mungkin dikalikan dengan jumlah nama pengguna yang ingin Anda uji (dan masih belum ada jaminan bahwa Anda akan menguji nama pengguna yang valid!).# of X length words
*# of Y length words
kemungkinan kombinasi untuk dicoba. Ketika nama pengguna sudah diperbaiki (mis. Root) tetapi kata sandinya panjang X + Y, ada# of X+Y length words
kemungkinan kata sandi. Dan# of X+Y length words
=# of X length words * # of Y length words
Ini bisa menjadi beberapa alasan mengapa login root langsung tidak diizinkan.
Tapi ini hanya TIP gunung es. Anda perlu mengonfigurasi pembatasan dan konfigurasi lain seperti:
sumber
sudo
pengaturan default . Pembunuh sebenarnya adalah efek multiplikasi ketika Anda tidak memiliki satu nama pengguna yang Anda anggap valid pada host mana pun.Anda benar bahwa nama pengguna root dan kata sandi simbol X + Y secara kriptografis setidaknya seaman kata sandi simbol nama pengguna + simbol Y. Bahkan itu bahkan lebih aman, karena nama orang mudah ditebak (bot mungkin hanya mencoba john, mike, tagihan, dll ... dan btw: itulah yang banyak dari mereka lakukan daripada mencoba root). Dan Anda terutama kurang beruntung jika itu serangan yang ditargetkan, karena jika seseorang ingin memecahkan server perusahaan itu tidak akan menjadi masalah untuk mengetahui nama (nick) dari sysadmin.
Dan segera setelah penyerang memiliki akses ke akun yang sysadmin gunakan untuk login ssh (dan kemudian menggunakan
su
atausudo
untuk melakukan tugasnya) ia dapat menginfeksi sesi pengguna itu dengan sebuah program yang akan mengirimkan kata sandi root penyerang ketika sysadmin mengetik yang berikutnya waktu.Ini salah jenis login root yang (atau harus) dianggap praktik buruk dari sudut pandang keamanan. Login pengguna "normal" -> su / sudo chain menambahkan jejak audit. Dalam bahasa Inggris yang sederhana: memungkinkan untuk mengetahui siapa yang melakukan apa.
Kasus khusus mungkin adalah kasusnya, di mana hanya satu orang yang memiliki akses root. Dalam hal menggunakan tambahan "normal" pengguna tidak akan menambah banyak nilai (setidaknya saya tidak pernah bisa melihat nilai itu). Tapi bagaimanapun - Anda seharusnya memiliki pengguna sederhana pada sistem (untuk tugas-tugas non-administratif, menjalankan wget, dll ;-)).
sumber
Penyerang (bot / botnet / hacker) hanya perlu menebak kata sandi dan memiliki kendali penuh atas sistem Anda, jika Anda terbuka untuk internet. Selain itu, tidak ada akun sistem (www-data, proksi, dll.) Yang dapat masuk melalui SSH, karena alasan yang sama.
Jika Anda menonaktifkan login kata sandi (menggunakan kunci publik, misalnya), pertimbangkan bahwa siapa pun yang memegang kunci privat mendapatkan kendali penuh atas sistem Anda. Lihat mengapa menggunakan kunci publik dengan pengguna lebih baik di bawah ini.
Nama pengguna tambahan dapat menambahkan lapisan keamanan karena: a) penyerang harus mengetahui pasangan, nama pengguna dan kata sandi; b) dalam hal penyerang melanggar sistem Anda, itu tidak akan memiliki akses langsung ke akun istimewa menambahkan sedikit nuansa bagi penyerang.
Dalam hal ini kunci publik juga merupakan nilai tambah, karena:
sumber
Ini tidak terlalu buruk selama Anda mengambil tindakan pencegahan keamanan. Sebagai contoh, Anda dapat menginstal CSF (Configure Server Firewall) dan mengaturnya jumlah upaya kegagalan yang diizinkan, jadi jika seseorang mencoba, katakanlah lebih dari 5 upaya kegagalan ?, maka mereka secara otomatis diblokir. Jadi seluruh bagian pertama dari penjawab terbaik tidak akan menjadi masalah sama sekali. Ini terjadi pada saya berkali-kali, dan untungnya semua pengantar diblokir secara permanen. Saya kira untuk server itu bukan masalah besar jika Anda adalah satu-satunya orang yang mengelola server, tetapi tentu saja jika ada banyak admin sistem, atau jika Anda bekerja di suatu organisasi, maka jelas tidak menggunakan akar. Juga untuk PC desktop, saya kira menggunakan akun lain lebih baik karena ada risiko keamanan karena Anda menggunakan banyak perangkat lunak, tetapi di server, Anda tidak Untuk menggunakan perangkat lunak acak yang tidak Anda percayai, pastikan Anda menyimpannya serendah mungkin. Jadi kesimpulannya adalah, Tidak, itu tidak benar-benar berbahaya jika Anda tahu cara mengelola server dengan benar.
sumber