Bagaimana (dan Mengapa) Menonaktifkan Login Root Melalui SSH di Linux

Diterbitkan: 2022-09-29
Laptop Linux menampilkan prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Masuk 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.

Pedang Bermata Dua

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 pengguna super 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 dipaksakan.

Jika penyerang jahat menemukan kata sandi root, mereka dapat masuk dan melakukan apa pun yang mereka suka ke seluruh sistem. Dengan hak akses root yang lebih tinggi, tidak ada batasan pada apa yang dapat mereka lakukan. Seolah-olah pengguna root telah meninggalkan terminal tanpa keluar, memungkinkan akses oportunistik ke akun mereka.

Mengapa Anda Tidak Harus Masuk Ke Sistem Linux Anda Sebagai Root
TERKAIT Mengapa Anda Tidak Harus Masuk Ke Sistem Linux Anda Sebagai Root

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 perintah sudo .

sudo memungkinkan pengguna yang dinominasikan untuk sementara menggunakan hak akses 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 ketika 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 alih-alih akun biasa, kesalahan apa pun yang Anda buat pada baris perintah bisa menjadi bencana besar. Harus menggunakan sudo untuk melakukan administrasi berarti Anda lebih cenderung 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.

TERKAIT: Cara Meninjau Penggunaan Perintah Sudo di Linux

Pengguna root dan Akses SSH

Anda lebih mungkin menemukan masalah ini ketika Anda mengelola sistem untuk orang lain. Seseorang mungkin telah memutuskan untuk menetapkan 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 yang tidak mengerti risiko yang terkait. Jika Anda mengambil alih administrasi komputer dalam keadaan itu, Anda harus memberi tahu pemiliknya mengapa itu adalah ide yang buruk, dan kemudian mengembalikan sistem ke kerja yang aman. Jika itu adalah sesuatu yang dikonfigurasi oleh administrator sistem sebelumnya, pemilik mungkin tidak mengetahuinya.

Berikut adalah pengguna di komputer yang menjalankan Fedora, membuat koneksi SSH ke komputer Ubuntu sebagai pengguna root komputer Ubuntu.

 ssh [email protected] 

Pengguna root yang terhubung ke komputer jarak jauh menggunakan SSH

Komputer Ubuntu memungkinkan pengguna root untuk masuk melalui SSH. Di komputer Ubuntu, kita dapat melihat bahwa koneksi langsung sedang berlangsung dari pengguna root.

 siapa 

Menggunakan perintah who untuk membuat daftar pengguna yang masuk

Yang tidak bisa kita lihat adalah siapa yang menggunakan sesi itu. Kami tidak tahu apakah orang di ujung lain koneksi SSH adalah pengguna root atau seseorang yang berhasil mendapatkan kata sandi root.

Menonaktifkan Akses SSH untuk root

Untuk menonaktifkan akses SSH untuk pengguna root, kita perlu membuat perubahan pada file konfigurasi SSH. Ini terletak di "/etc/ssh/sshd_config." Kita harus menggunakan sudo untuk menulis perubahan padanya.

 sudo gedit /etc/ssh/sshd_config 

Mengedit file sshd-config

Gulir file atau cari string "PermitRootLogin."

Setel ini ke "tidak" atau komentari baris dengan menempatkan hash " # " sebagai karakter pertama di baris. Simpan perubahan Anda.

Kita perlu me-restart daemon SSH agar perubahan kita berlaku.

 sudo systemctl restart ssh 

Mulai ulang daemon sshd

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 

Mengunci akun root dan menghapus kata sandi root

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 root SSH

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.

Cara Membuat dan Menginstal Kunci SSH Dari Shell Linux
TERKAIT Cara Membuat dan Menginstal Kunci SSH Dari Shell Linux

Menggunakan kunci SSH untuk membuat koneksi melalui SSH 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 

Mengedit file sshd-config

Ubah baris “PermitRootLogin” sehingga menggunakan opsi “larangan-sandi”.

Simpan perubahan Anda dan mulai ulang daemon SSH.

 sudo systemctl restart ssh 

Mulai ulang daemon sshd

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 lulus otentikasi, pengguna root terhubung ke komputer lokal Anda tanpa perlu kata sandi.

 ssh [email protected] 

Pengguna root yang terhubung ke komputer jarak jauh menggunakan SSH tanpa kata sandi

Dilarang masuk

Menolak koneksi jarak jauh dari pengguna root adalah pilihan terbaik. Mengizinkan root untuk terhubung menggunakan kunci SSH adalah yang terbaik kedua, tetapi masih jauh lebih baik daripada menggunakan kata sandi.

TERKAIT: Cara Mengontrol Akses Sudo di Linux