4 Cara Disable Login Root di Linux

Akun root adalah akun utama di Linux dan sistem operasi Unix lainnya. Akun ini memiliki akses ke semua perintah dan file di sistem dengan izin baca, tulis, dan eksekusi penuh. Root digunakan untuk melakukan segala jenis tugas pada suatu sistem; untuk membuat / memperbarui / mengakses / menghapus akun pengguna lain, menginstal / menghapus / meningkatkan paket perangkat lunak, dan banyak lagi lainnya.

Baca Juga: Mencari Lokasi Geografis IP Address

Karena pengguna root memiliki kekuatan absolut, setiap tindakan yang dilakukannya sangat penting pada sistem. Dalam hal ini, setiap kesalahan oleh pengguna root mungkin memiliki implikasi besar pada operasi normal suatu sistem. Selain itu, akun ini juga dapat disalahgunakan dengan menggunakannya secara tidak patut atau tidak tepat baik secara tidak sengaja, jahat, atau melalui kebodohan yang dibuat-buat.

Oleh karena itu, disarankan untuk menonaktifkan akses root di server Linux Anda, sebagai gantinya, buat akun administratif yang harus dikonfigurasi untuk mendapatkan hak istimewa pengguna root menggunakan perintah sudo, untuk melakukan tugas-tugas penting di server.

Pada artikel ini, kami akan menjelaskan empat cara untuk menonaktifkan/disable login akun pengguna root di Linux.

Perhatian: Sebelum Anda memblokir akses ke akun root, pastikan Anda telah membuat akun administratif, yang mampu menggunakan perintah sudo untuk mendapatkan hak istimewa pengguna root, dengan perintah useradd dan memberikan kata sandi yang kuat pada akun pengguna ini. flag -m berarti membuat direktori home pengguna dan -c memungkinkan untuk menentukan komentar:

# useradd -m -c "Admin User" admin
# passwd admin

Selanjutnya, tambahkan pengguna ini ke grup administrator sistem yang sesuai menggunakan perintah usermod, di mana switch -a berarti menambahkan akun pengguna dan -G menentukan grup untuk menambahkan pengguna (roda atau sudo tergantung pada distribusi Linux Anda):

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu

Setelah Anda membuat pengguna dengan hak administratif, beralihlah ke akun itu untuk memblokir akses root.

# su admin

Di bawah ini 4 cara untuk Disable Login Root di Linux

1. Mengubah root User’s Shell

Metode paling sederhana untuk menonaktifkan login pengguna root adalah dengan mengganti shellnya dari /bin/bash (atau shell lain yang mengizinkan login pengguna) ke /sbin/nologin, di file /etc/passwd, yang Anda dapat buka dan edit menggunakan editor favorit Anda seperti yang ditunjukkan.

$ sudo vim /etc/passwd

Ubah menjadi

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Simpan file dan tutup.

Mulai sekarang, ketika pengguna root masuk, ia akan mendapatkan pesan “This account is currently not available.” Ini adalah pesan default, tetapi, Anda dapat mengubahnya dan mengatur pesan khusus di file /etc/nologin.txt.

Metode ini hanya efektif dengan program yang membutuhkan shell untuk login pengguna, jika tidak, sudo, ftp dan klien email dapat mengakses akun root.

2. Disable root Login melalui Console Device (TTY)

Metode kedua menggunakan modul PAM yang disebut pam_securetty, yang memungkinkan akses root hanya jika pengguna masuk pada TTY “secure”, seperti yang didefinisikan oleh daftar di /etc/securetty.

File di atas memungkinkan Anda untuk menentukan perangkat TTY mana pengguna root diizinkan untuk masuk, mengosongkan file ini mencegah login root pada perangkat apa pun yang terpasang pada sistem komputer.

Untuk membuat file kosong, jalankan.

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

Metode ini memiliki beberapa batasan, hanya memengaruhi program seperti login, manajer tampilan (i.e gdm, kdm dan xdm) dan layanan jaringan lainnya yang meluncurkan TTY. Program seperti su, sudo, ssh, dan alat openssh terkait lainnya akan memiliki akses ke akun root.

3. Disable SSH Root Login

Cara paling umum untuk mengakses server jarak jauh atau VPS adalah melalui SSH dan untuk memblokir login pengguna root di bawahnya, Anda perlu mengedit file /etc/ssh/sshd_config.

$ sudo vim /etc/ssh/sshd_config

Kemudian hilangkan komentar (jika dikomentari) pada PermitRootLogin dan atur nilainya menjadi NO seperti yang ditunjukkan pada tangkapan layar.

#PermitRootLogin NO

menjadi

PermitRootLogin NO

Setelah selesai, simpan dan tutup file. Kemudian restart layanan sshd untuk menerapkan perubahan konfigurasi terbaru.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart

Seperti yang mungkin sudah Anda ketahui, metode ini hanya memengaruhi set alat openssh, program seperti ssh, scp, sftp akan diblokir untuk mengakses akun root.

4. Membatasi akses root Melalui PAM

Pluggable Authentication Modules (PAM) adalah metode otentikasi terpusat, pluggable, modular, dan fleksibel pada sistem Linux. PAM, melalui modul /lib/security/pam_listfile.so, memungkinkan fleksibilitas yang besar dalam membatasi hak istimewa akun tertentu.

Modul di atas dapat digunakan untuk referensi daftar pengguna yang tidak diizinkan masuk melalui beberapa layanan target seperti login, ssh dan program sadar PAM.

Dalam hal ini, kami ingin menonaktifkan akses pengguna root ke suatu sistem, dengan membatasi akses ke layanan login dan sshd. Pertama buka dan edit file untuk layanan target di direktori /etc/pam.d/ seperti yang ditunjukkan.

sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Selanjutnya, tambahkan konfigurasi di bawah ini di kedua file.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Setelah selesai, simpan dan tutup setiap file. Kemudian buat file biasa /etc/ssh/deniedusers yang harus berisi satu item per baris dan tidak dapat dibaca dunia.

Tambahkan root nama di dalamnya, lalu simpan dan tutup.

$ sudo vim /etc/ssh/deniedusers

Juga atur izin yang diperlukan untuk ini.

$ sudo chmod 600 /etc/ssh/deniedusers

Metode ini hanya memengaruhi program dan layanan yang sadar akan PAM. Anda dapat memblokir akses root ke sistem melalui ftp dan klien email dan banyak lagi.

Untuk informasi lebih lanjut, lihat halaman manual yang relevan.

$ man pam_securetty
$ man sshd_config
$ man pam