Mengelola user secara baik pada Linux akan membantu system administrator dalam melakukan audit dan membuat linux tersebut lebih aman. Beberapa hal yang perlu diperhatikan dalam mengelola user yaitu:
- Membuat sudo user
- Disable user root
- Policy dan Privilege User
- Menghapus user dan group
Membuat sudo user
Mendaftarkan group super user ke user yang telah ada
$ sudo usermod -a -G wheel userA$ sudo useradd -G wheel userBwheel dan untuk debian-based adalah sudoDisable User root
Biasanya ketika mengaktifkan vps pada cloud, kita diberikan user root dan sebaiknya user root ini segera di-disable. Caranya:
- Buat sudo user terlebih dahulu dengan user root
- Logout dari user root dan masuk ke sudo user yang baru dibuat
- Dalam sudo user disable user root
$ sudo passwd -l rootSudo Policy File
Policy file adalah file yang mengatur kebijakan dalam sudo user. Jika kita menggunakan banyak server dan ingin menambahkan beberapa user untuk dijadikan super user, bisa dengan cara mengedit policy file di /etc/sudoers
$ sudo visudo# User_Alias ADMINS = userA, userBADMINS ALL=(ALL) ALLuserA ALL=(ALL) ALL/etc/sudoers dengan text editor tidak akan berfungsi, oleh karena itu cara yang terbaik adalah dengan sudo visudoPrivilege Khusus pada Sudo User
Terkadang ketika membuat user kita hanya ingin user tersebut melakukan pekerjaan-pekerjaan khusus. Sebagai contoh di sini userA dan userB hanya dapat melakukan update dan install paket.
User_Alias SOFTWAREADMINS = userA, userBcommand alias untuk SOFTWARECmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yumSOFTWAREADMINS ALL=(ALL) SOFTWAREHost_Alias WEBSERVERS = webserver1, webserver2
User_Alias WEBADMINS = userA, userB
Cmnd_Alias WEBCOMMANDS = /usr/bin/systemctl status httpd, /usr/bin/systemctl start httpd, /usr/bin/systemctl stop httpd, /usr/bin/systemctl restart httpd
WEBADMINS WEBSERVERS=(ALL) WEBCOMMANDSMembatasi Password Sudo
Secara default ketika mengerjakan perintah sudo pertama kalinya akan diminta untuk memasukkan password dan sebelum 5 menit ketika menjalankan perintah sudo lainnya (kedua, ketiga) kita tidak akan diminta memasukkan password. Fitur ini bisa di-disable dengan menambahkan baris berikut.
$ sudo visudo
...
Defaults timestamp_timeout = 0
......
Defaults:userA timestamp_timeout = 0
...Mencegah Shell Escape
Shell Escape memungkinkan user melakukan perintah sudo dari dalam perintah lainnya. Aplikasi yang mendukung shell escape ini antara lain vim, emacs, less, view, more dan lainnya. Untuk menghindari hal tersebut bisa pada policy file bisa menggunakan sudoedit
Berikut contoh ketika userA hanya bisa mengedit file sshd_config
userA ALL=(ALL) sudoedit /etc/ssh/sshd_configMembatasi Perintah Sudo User
Terkadang kita hanya ingin memberikan user tertentu dengan perintah tertentu. Misalnya userB hanya bisa bekerja dengan servis sshd, jika hanya diberikan perintah systemctl maka userB tersebut dapat pula melakukan reboot server. Oleh karena itu perintah nya harus bisa lebih spesifik.
userB ALL=(ALL) /usr/bin/systemctl * sshduserB ALL=(ALL) /usr/bin/systemctl status sshd, /usr/bin/systemctl restart sshdMengunci Direktori Home User - RedHat based
Ketika membuat user, secara otomatis centos akan membuat direktori home dengan permission 700. Hal ini bisa dicek pada file /etc/login.defs dan perhatikan baris berikut
...
CREATE_HOME yes
UMASK 077
...Mengunci Direktori Home User - Debian based
Secara default ketika menambahkan user pada debian based, tidak akan membuat secara langsung direktori home user tersebut. Jika ingin membuat user seperti pada centos-based bisa dengan perintah berikut
sudo useradd -m -d /home/userC -s /bin/bash userCHal ini bisa diubah dengan cara edit file
/etc/login.defs dan ubah nilai dari UMASK 022 menjadi UMASK 077 seperti pada centos-based.Fitur Adduser - Debian based
Kelebihan adduser dari useradd adalah adduser dapat langsung mengenkripsi direktori home.
Install terlebih dahulu paket ecryptfs-utils.
$ sudo apt install ecryptfs-utils$ sudo adduser --encrypt-home userD$ ecryptfs-unwrap-passphraseEnforcing Password Policy
Pwquality adalah modul dari PAM (Pluggable Authentication Module) teknologi terbaru dari modul cracklib. Edit file konfigurasi di /etc/security/pwquality.conf
...
minlen = 20
...
minclass = 3
...
maxclassrepeat = 5- minlen = minimum karakter dari password
- minclass = multiple character (jenis karakter)
Mengatur masa aktif Akun
mengatur masa aktif akun bisa dengan perintah chage
$ sudo chage -E 2021-02-28 -I 4 -m 3 -M 90 -W 4 userA
$ sudo chage -l userA
Last password change : Oct 06, 2017
Password expires : Jan 04, 2018
Password inactive : Jan 08, 2018
Account expires : Feb 28, 2021
Minimum number of days between password change : 3
Maximum number of days between password change : 90
Number of days of warning before password expires : 4Mengunci Akun
Mengunci akun bisa dengan dua cara yaitu:
- usermod
- passwd
Untuk mengunci akun dengan usermod bisa dengan perintah berikut
$ sudo usermod -L userB$ sudo usermod -U userB$ sudo passwd -l userB$ sudo passwd -u userBMenghapus user dan group
Menghapus user dapat menggunakan perintah
$ sudo userdel userB$ sudo userdel -r -f userB$ sudo groupdel -f groupAMenghapus user dari Group
Mengeluarkan user dari salah satu group. Sebagai contoh menghapus userA dari GroupA
$ sudo deluser userA groupA