Login sebagai pengguna root Linux adalah praktik yang buruk. Masuk sebagai root melalui koneksi SSH bahkan lebih buruk. Kami memberi tahu Anda alasannya, dan menunjukkan cara mencegahnya.
Anda memerlukan seseorang dengan wewenang untuk memiliki dan mengelola bagian-bagian dari sistem operasi Anda yang terlalu penting atau terlalu sensitif untuk ditangani oleh pengguna biasa. Di situlah root masuk. root adalah superuser yang sangat kuat dari sistem operasi Unix dan Linux.
Akun pengguna root, seperti semua akun, dilindungi oleh kata sandi. Tanpa kata sandi pengguna root, tidak ada orang lain yang dapat mengakses akun itu. Itu berarti hak istimewa dan kekuatan root tidak dapat digunakan oleh orang lain. Sisi sebaliknya adalah bahwa satu-satunya pertahanan antara pengguna jahat dan kekuatan root adalah kata sandi itu. Kata sandi, tentu saja, dapat ditebak, disimpulkan, ditulis di suatu tempat, atau brute-forced.
Jika penyerang jahat menemukan kata sandi root, mereka dapat masuk dan melakukan apa pun yang mereka suka ke seluruh sistem. Dengan hak istimewa root yang ditinggikan, tidak ada batasan pada apa yang dapat mereka lakukan. Seolah-olah pengguna root telah meninggalkan terminal tanpa keluar, memungkinkan akses oportunistik ke akun mereka.
Karena risiko ini, banyak distribusi Linux modern tidak mengizinkan root untuk login ke komputer secara lokal, apalagi SSH. Pengguna root ada, tetapi mereka tidak memiliki kata sandi yang ditetapkan untuk mereka. Namun, seseorang harus dapat mengelola sistem. Solusi untuk teka-teki itu adalah sudo command.
sudo memungkinkan pengguna yang dinominasikan untuk sementara menggunakan hak tingkat root dari dalam akun pengguna mereka sendiri. Anda perlu mengautentikasi untuk menggunakan sudo, yang Anda lakukan dengan memasukkan kata sandi Anda sendiri. Ini memberi Anda akses sementara ke kemampuan root.
Kekuatan root Anda mati saat Anda menutup jendela terminal tempat mereka digunakan. Jika Anda membiarkan jendela terminal terbuka, mereka akan kehabisan waktu, secara otomatis mengembalikan Anda ke status pengguna biasa. Ini memberikan jenis perlindungan lain. Ini melindungi Anda dari diri Anda sendiri.
Jika Anda biasa masuk sebagai root, bukan akun biasa, kesalahan apa pun yang Anda buat pada baris perintah bisa menjadi bencana besar. Harus menggunakan sudo untuk melakukan administrasi berarti Anda lebih mungkin untuk fokus dan berhati-hati dengan apa yang Anda ketik.
Mengizinkan login root melalui SSH meningkatkan risiko karena penyerang tidak harus lokal; mereka dapat mencoba untuk memaksa sistem Anda dari jarak jauh.
Pengguna root dan Akses SSH
Anda lebih mungkin menemukan masalah ini ketika Anda mengelola sistem untuk orang lain. Seseorang mungkin telah memutuskan untuk menyetel kata sandi root sehingga mereka dapat masuk. Pengaturan lain perlu diubah agar root dapat masuk melalui SSH.
Hal ini tidak akan terjadi secara kebetulan. Tapi itu bisa dilakukan oleh orang-orang yang tidak mengerti risiko yang terkait. Jika Anda mengambil alih administrasi komputer dalam keadaan itu, Anda harus memberi tahu pemiliknya mengapa itu ide yang buruk, dan kemudian mengembalikan sistem ke kerja yang aman. Jika itu adalah sesuatu yang dikonfigurasi oleh administrator sistem sebelumnya, pemiliknya mungkin tidak mengetahuinya.
Ini adalah pengguna di komputer yang menjalankan Fedora, membuat koneksi SSH ke komputer Ubuntu sebagai pengguna root komputer Ubuntu.
ssh root@ubuntu- 22-04.local
Komputer Ubuntu memungkinkan pengguna root untuk masuk melalui SSH. Di komputer Ubuntu, kita dapat melihat bahwa koneksi langsung sedang berlangsung dari pengguna root.
who
Yang tidak dapat kita lihat adalah siapa yang menggunakan sesi itu. Kami tidak tahu apakah orang di ujung lain koneksi SSH adalah pengguna root atau seseorang yang telah berhasil mendapatkan kata sandi root.
Menonaktifkan Akses SSH untuk root
Untuk menonaktifkan akses SSH untuk pengguna root, kami perlu membuat perubahan pada SSH berkas konfigurasi. Ini terletak di "/etc/ssh/sshd_config." Kita harus menggunakan sudo untuk menulis perubahan padanya.
sudo gedit /etc/ssh/sshd_config
Scroll melalui file atau cari string "PermitRootLogin."
Setel ini ke "tidak" atau beri komentar baris dengan menempatkan hash " #” sebagai karakter pertama di baris. Simpan perubahan Anda.
Kita perlu memulai ulang daemon SSH agar perubahan kita berlaku.
sudo systemctl restart ssh
Jika Anda juga ingin mencegah login lokal, nonaktifkan kata sandi root. Kami mengambil pendekatan sabuk dan kawat gigi dan menggunakan opsi -l (kunci) dan -d (hapus kata sandi).
sudo passwd root -ld
Ini mengunci akun dan menghapus kata sandi akun ke dalam tawar-menawar. Bahkan jika pengguna root secara fisik duduk di depan komputer Anda, mereka tidak akan dapat masuk.
Cara Lebih Aman untuk Mengizinkan Akses SSH root
Terkadang Anda akan menghadapi penolakan manajerial untuk menghapus akses root melalui SSH. Jika mereka benar-benar tidak mau mendengarkan, Anda mungkin berada dalam posisi di mana Anda harus mengembalikannya. Jika ini masalahnya, Anda harus dapat berkompromi dengan cara yang mengurangi risiko dan masih mengizinkan login jarak jauh dari pengguna root.
Menggunakan kunci SSH untuk membuat koneksi melalui SSH masih jauh lebih aman daripada menggunakan kata sandi. Karena tidak ada kata sandi yang terlibat, kata sandi tidak dapat dipaksakan, ditebak, atau ditemukan.
Sebelum Anda mengunci akun root lokal, atur kunci SSH di komputer jarak jauh sehingga pengguna root dapat terhubung ke komputer lokal Anda. Kemudian lanjutkan dan hapus kata sandi mereka dan kunci akun lokal mereka.
Kita juga perlu mengedit file "sshd_config" sekali lagi.
sudo gedit /etc/ssh/sshd_config
Ubah baris "PermitRootLogin" sehingga menggunakan "larangan-sandi ” option.
Simpan perubahan Anda dan mulai ulang daemon SSH.
sudo systemctl restart ssh
Sekarang, bahkan jika seseorang mengembalikan kata sandi pengguna root, mereka tidak akan dapat masuk melalui SSH menggunakan kata sandi.
Ketika pengguna root jarak jauh membuat koneksi SSH ke komputer lokal Anda, kuncinya dipertukarkan dan diperiksa. Jika mereka lolos otentikasi, pengguna root terhubung ke komputer lokal Anda tanpa memerlukan kata sandi.
ssh root@ubuntu-22-04.local
Menolak koneksi jarak jauh dari pengguna root adalah pilihan terbaik. Mengizinkan root terhubung menggunakan kunci SSH adalah yang terbaik kedua, tetapi masih jauh lebih baik daripada menggunakan kata sandi.
Itulah berita seputar
Bagaimana (dan Mengapa) Menonaktifkan Login Root Melalui SSH di Linux, semoga bermanfaat.
Disadur dari HowToGeek.com.