Cara Melindungi Mode Pengguna Tunggal dengan Kata Sandi di CentOS 7


Di salah satu artikel kami sebelumnya, kami menjelaskan cara mem-boot ke mode pengguna tunggal di CentOS 7. Ini juga dikenal sebagai “mode pemeliharaan ”, di mana Linux hanya memulai beberapa layanan untuk fungsi dasar yang memungkinkan satu pengguna (biasanya pengguna super) melakukan tugas administratif tertentu seperti menggunakan fsck untuk memperbaiki sistem file yang rusak.

Dalam mode pengguna tunggal, sistem mengeksekusi shell pengguna tunggal di mana Anda dapat menjalankan perintah tanpa kredensial login apa pun (nama pengguna dan kata sandi), Anda langsung masuk ke shell terbatas dengan akses ke seluruh sistem file.

Ini adalah lubang keamanan yang sangat besar karena memberikan akses langsung kepada penyusup ke shell (dan kemungkinan akses ke seluruh sistem file). Oleh karena itu, penting untuk melindungi mode pengguna tunggal dengan kata sandi di CentOS 7 seperti yang dijelaskan di bawah.

Di CentOS/RHEL 7, penyelamatan dan target darurat (yang juga merupakan mode pengguna tunggal) adalah kata sandi dilindungi secara default.

Misalnya ketika Anda mencoba mengubah target (runlevel) melalui systemd menjadi rescue.target (juga emergency.target), Anda akan dimintai kata sandi root seperti yang ditunjukkan pada tangkapan layar berikut.

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

Namun, jika penyusup mempunyai akses fisik ke server, dia dapat memilih kernel untuk boot dari item menu grub dengan menekan tombol e untuk mengedit opsi boot pertama.

Pada baris kernel yang dimulai dengan “linux16“, dia dapat mengubah argumen ro menjadi “rw init=/sysroot/bin/sh ” dan boot ke mode pengguna tunggal di CentOS 7 tanpa sistem meminta kata sandi root, meskipun baris SINGLE=/sbin/sushell diubah menjadi SINGLE=/sbin/sulogin di file /etc/sysconfig/init.

Jadi, satu-satunya cara untuk melindungi mode pengguna tunggal dengan kata sandi di CentOS 7 adalah dengan melindungi GRUB dengan kata sandi menggunakan petunjuk berikut.

Cara Melindungi Grub dengan Kata Sandi di CentOS 7

Pertama buat kata sandi terenkripsi yang kuat menggunakan utilitas grub2-setpassword seperti yang ditunjukkan.

grub2-setpassword

Hash untuk kata sandi disimpan di /boot/grub2/user.cfg & pengguna yaitu ”root” didefinisikan di / boot/grub2/grub.cfg, Anda dapat melihat kata sandi menggunakan perintah cat seperti yang ditunjukkan.

cat /boot/grub2/user.cfg

Sekarang buka file /boot/grub2/grub.cfg dan cari entri boot yang ingin Anda lindungi dengan kata sandi, dimulai dengan menuentry. Setelah entri ditemukan, hapus parameter --unrestricted dari entri tersebut.

Simpan file dan tutup, sekarang coba reboot sistem CentOS 7 dan ubah entri boot dengan menekan tombol e, Anda akan diminta untuk memberikan kredensial seperti yang ditunjukkan.

Itu dia. Anda telah berhasil melindungi menu GRUB CentOS 7 Anda dengan kata sandi.