4 Cara Menonaktifkan Akun Root di Linux


Akun root adalah akun utama di Linux dan sistem operasi mirip Unix lainnya. Akun ini memiliki akses ke semua perintah dan file pada sistem dengan izin penuh membaca, menulis, dan mengeksekusi. Ini 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.

Karena pengguna root memiliki kekuasaan absolut, tindakan apa pun yang dilakukannya sangatlah penting pada sistem. Dalam hal ini, kesalahan apa pun yang dilakukan oleh pengguna root dapat berdampak besar pada pengoperasian normal sistem. Selain itu, akun ini juga dapat disalahgunakan dengan menggunakannya secara tidak semestinya atau tidak tepat, baik secara tidak sengaja, jahat, atau karena ketidaktahuan yang dibuat-buat terhadap kebijakan.

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

Pada artikel ini, kami akan menjelaskan empat cara untuk menonaktifkan 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 root hak istimewa pengguna, dengan perintah useradd dan berikan 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, dengan tombol -a berarti menambahkan akun pengguna dan -G menentukan grup untuk menambahkan pengguna di (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 tersebut untuk memblokir akses root.

su admin

1. Ubah Shell Pengguna root

Metode paling sederhana untuk menonaktifkan login pengguna root adalah dengan mengubah shell-nya dari /bin/bash atau /bin/bash (atau shell lain yang mengizinkan login pengguna) menjadi /sbin/nologin, dalam file /etc/passwd, yang dapat Anda buka untuk diedit menggunakan editor baris perintah favorit Anda seperti yang ditunjukkan.

  
sudo vim /etc/passwd

Ubah baris:

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, dia akan mendapatkan pesan “Akun ini saat ini tidak tersedia. ” Ini adalah pesan default, namun Anda dapat ubah dan atur pesan khusus di file /etc/nologin.txt.

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

2. Nonaktifkan Login root melalui Perangkat Konsol (TTY)

Metode kedua menggunakan modul PAM yang disebut pam_securetty, yang mengizinkan akses root hanya jika pengguna masuk pada TTY “aman”, sebagai ditentukan oleh listingan di /etc/securetty.

File di atas memungkinkan Anda menentukan perangkat TTY mana yang boleh digunakan oleh pengguna root, mengosongkan file ini akan mencegah login root pada perangkat apa pun yang terhubung ke 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 keterbatasan, hanya mempengaruhi program seperti login, pengelola tampilan (yaitu 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. Nonaktifkan Login Root SSH

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 batalkan komentar (jika dikomentari) direktif PermitRootLogin dan tetapkan nilainya menjadi no seperti yang ditunjukkan pada tangkapan layar.

Setelah selesai, simpan dan tutup file. Kemudian mulai ulang layanan sshd untuk menerapkan perubahan konfigurasi terkini.

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Seperti yang mungkin sudah Anda ketahui, metode ini hanya mempengaruhi kumpulan alat openssh, program seperti ssh, scp, sftp akan diblokir dari mengakses akun root.

4. Batasi Akses root ke Layanan Melalui PAM

Modul Otentikasi yang Dapat Dicolokkan (singkatnya PAM) adalah metode autentikasi yang terpusat, dapat dicolokkan, modular, dan fleksibel pada sistem Linux. PAM, melalui modul /lib/security/pam_listfile.so, memberikan fleksibilitas besar dalam membatasi hak istimewa akun tertentu.

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

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 pada 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 oleh dunia.

Tambahkan nama root di dalamnya, lalu simpan dan tutup.

sudo vim /etc/ssh/deniedusers

Atur juga izin yang diperlukan untuk ini.

sudo chmod 600 /etc/ssh/deniedusers

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

Untuk informasi lebih lanjut, lihat halaman manual yang relevan.

man pam_securetty
man sshd_config
man pam

Itu saja! Pada artikel ini, kami telah menjelaskan empat cara menonaktifkan login (atau akun) pengguna root di Linux. Apakah Anda mempunyai komentar, saran atau pertanyaan, jangan ragu untuk menghubungi kami melalui formulir umpan balik di bawah.