Memanfaatkan Nginx Password Authentication untuk Keamaan Server

Tulisan kemarin kita telah membahas mengenai pemanfaatan .htpasswd untuk membuat Password Authentication dengan Apache, sekarang lanjut kita terapkan untuk Nginx.

Langsung saja kita mulai praktek.

Khusus pengguna Debian/Ubuntu dan derivatifnya, Anda perlu memasang apache2-utils:

$ sudo apt-get install apache2-utils

Kemudian lakukan perintah berikut:

$ sudo htpasswd -c /lokasi/yg/anda/inginkan/.htpasswd ali

Kalau untuk distro lainnya tidak perlu Anda memasang paket apache2-utils,  karena paket htpasswd berada dalam satu pake Apache, jadi hanya memasang Apache saja.

Jika Anda ingin pure tanpa adanya paket Apache sama sekali di sistem (berlaku pada pengguna Debian/Ubuntu), Anda bisa memanfaatkan openssl untuk mendapatkan generated password tersebut. Berikut ini caranya:

$ printf "USER:$(openssl passwd -apr1 PASSWORD_ANDA)\n" > /dir/Anda/.htpasswd

Ganti USER dan PASSOWD_ANDA disesuaikan dengan username dan password yang Anda inginkan.

Kemudian kita sunting pengaturan Nginx Anda dengan nano, vi, atau vim.

Untuk pengguna Debian/Ubuntu dan derivatifnya:

$ sudo nano /etc/nginx/sites-available/default

Untuk pengguna Fedora/Centos/RHEL/Arch Linux dan derivatifnya:

$ sudo vi /etc/nginx/nginx.conf

Lalu tambahkan berikut di location / { atau direktori yg Anda anggap penting untuk dilindungi:

location / {
    auth_basic "Restricted";
    auth_basic_user_file /dir/Anda/.htpasswd;
}

Contoh pada direktori lain misalnya nama direktorinya rahasia :

location /rahasia/ {
    auth_basic "Restricted";
    auth_basic_user_file /dir/Anda/.htpasswd;
}

Kemudian untuk memastikan pengaturan Anda sudah benar atau belum, bisa menggunakan perintah berikut:

$ sudo nginx -t

Jika sudah seperti tulisan di bawah ini:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Artinya Nginx sudah sukses, langsung saja Anda restart Nginx nya:

$ sudo service nginx restart
atau
$ sudo systemctl nginx restart

Jika sudah langsung saja Anda tes di peramban Anda, jika sudah keluar password authentication-nya artinya Anda telah sukses mengikuti tutorial ini.

Semoga bermanfaat 😊