Cara Mengonfigurasi Otentikasi HTTP Dasar di Nginx
Otentikasi HTTP dasar adalah mekanisme keamanan untuk membatasi akses ke situs web/aplikasi Anda atau beberapa bagiannya dengan menyiapkan otentikasi nama pengguna/kata sandi sederhana. Pada dasarnya ini dapat digunakan untuk melindungi seluruh server HTTP, blok server individual (host virtual di Apache) atau blok lokasi.
Baca Juga: Cara Mengatur Virtual Host Berbasis Nama dan IP (Blok Server) dengan NGINX
Seperti namanya, ini bukanlah metode yang aman untuk diandalkan; Anda harus menggunakannya bersama dengan langkah-langkah keamanan lain yang lebih andal. Misalnya, jika aplikasi web Anda berjalan di HTTP, maka kredensial pengguna dikirimkan dalam bentuk teks biasa, jadi Anda harus mempertimbangkan untuk mengaktifkan HTTPS.
Tujuan panduan ini adalah membantu Anda menambahkan lapisan keamanan kecil namun berguna untuk melindungi konten pribadi/hak istimewa di aplikasi web Anda (seperti, namun tidak terbatas pada sisi administrator). Anda juga dapat menggunakannya untuk mencegah akses ke website atau aplikasi yang masih dalam tahap pengembangan.
Persyaratan
- Instal LEMP Stack di CentOS/RHEL 7
- Instal LEMP Stack di Ubuntu/Debian
Buat File Pengguna Otentikasi HTTP
Anda harus mulai dengan membuat file yang akan menyimpan pasangan nama pengguna:kata sandi
. Kami akan menggunakan utilitas htpasswd dari Apache HTTP Server, untuk membuat file ini.
Pertama periksa apakah apache2-utils atau httpd-tools, paket yang menyediakan utilitas htpasswd telah terinstal di sistem Anda, jika tidak, jalankan perintah yang sesuai untuk distribusi Anda untuk menginstalnya:
yum install httpd-tools [RHEL/CentOS]
sudo apt install apache2-utils [Debian/Ubuntu]
Selanjutnya, jalankan perintah htpasswd di bawah ini untuk membuat file kata sandi dengan pengguna pertama. Opsi -c
digunakan untuk menentukan file passwd, setelah Anda menekan [Enter], Anda akan diminta memasukkan kata sandi pengguna.
htpasswd -c /etc/nginx/conf.d/.htpasswd developer
Tambahkan pengguna kedua, dan jangan gunakan opsi -c
di sini.
htpasswd /etc/nginx/conf.d/.htpasswd admin
Sekarang setelah Anda menyiapkan file kata sandi, lanjutkan untuk mengonfigurasi bagian server web Anda yang ingin Anda batasi aksesnya. Untuk melihat konten file kata sandi (yang mencakup nama pengguna dan kata sandi terenkripsi), gunakan perintah cat di bawah.
cat /etc/nginx/conf.d/.htpasswd
Konfigurasikan Otentikasi HTTP untuk Nginx
Seperti yang kami sebutkan sebelumnya, Anda dapat membatasi akses ke server web Anda, satu situs web (menggunakan blok servernya) atau arahan lokasi. Dua arahan yang berguna dapat digunakan untuk mencapai hal ini.
- auth_basic – mengaktifkan validasi nama pengguna dan sandi menggunakan protokol “Otentikasi Dasar HTTP ”.
- auth_basic_user_file – menentukan file kata sandi.
Lindungi Kata Sandi Host Virtual Nginx
Untuk menerapkan otentikasi dasar untuk seluruh server web, yang berlaku untuk semua blok server, buka file /etc/nginx/nginx.conf dan tambahkan baris di bawah ini dalam konteks http:
http{
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
……...
}
Lindungi Kata Sandi Situs Web atau Domain Nginx
Untuk mengaktifkan autentikasi dasar bagi domain atau sub-domain tertentu, buka file konfigurasinya di /etc/nginx/conf.d/ atau /etc/nginx/conf/sites-available (tergantung cara Anda menginstal Nginx), lalu tambahkan konfigurasi di bawah ini dalam blok atau konteks server:
server {
listen 80;
server_name example.com;
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
location / {
……..
}
……...
}
Direktori Web Lindungi Kata Sandi di Nginx
Anda juga dapat mengaktifkan autentikasi dasar dalam arahan lokasi. Pada contoh di bawah, semua pengguna yang mencoba mengakses blok lokasi /admin
akan diminta untuk mengautentikasi.
server {
listen 80;
server_name example.com www.example.com;
location / {
……..
}
location /admin/ {
auth_basic "Restricted Access!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
location /public/{
auth_basic off; #turns off basic http authentication off for this block
}
……..
}
Jika Anda telah mengkonfigurasi otentikasi HTTP dasar, semua pengguna yang mencoba mengakses server web Anda atau sub-domain atau bagian tertentu dari sebuah situs (tergantung di mana Anda menerapkannya), akan dimintai nama pengguna dan kata sandi seperti yang ditunjukkan pada gambar di bawah .
Jika autentikasi pengguna gagal, kesalahan “401 Otorisasi Diperlukan ” akan ditampilkan seperti yang ditunjukkan di bawah ini.
Anda dapat menemukan informasi lebih lanjut di membatasi Akses dengan Otentikasi HTTP Dasar.
Anda mungkin juga ingin membaca panduan berguna terkait server HTTP Nginx berikut ini.
- Cara Melindungi Direktori Web dengan Kata Sandi di Nginx
- Panduan Utama untuk Mengamankan, Memperkuat, dan Meningkatkan Kinerja Nginx
- Menyiapkan HTTPS dengan Mari Enkripsi Sertifikat SSL Untuk Nginx
Dalam panduan ini, kami menunjukkan cara menerapkan otentikasi HTTP dasar di server web HTTP Nginx. Untuk mengajukan pertanyaan, gunakan formulir umpan balik di bawah.