Cara Mengkonfigurasi Otentikasi HTTP Dasar di Nginx

Cara Mengkonfigurasi Otentikasi HTTP Dasar di Nginx

Otentikasi HTTP Dasar adalah mekanisme keamanan untuk membatasi akses ke situs web/aplikasi Anda atau beberapa bagiannya dengan mengatur nama pengguna/kata sandi sederhana. Ini pada dasarnya dapat digunakan untuk melindungi seluruh server HTTP, blok server individual (host virtual di Apache) atau blok lokasi.

Baca juga: Cara Mengatur Nama Berbasis Nama dan Host Virtual Berbasis IP (Blok Server) dengan Nginx

Seperti namanya, ini bukan 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 ditransmisikan dalam teks biasa, jadi Anda harus mempertimbangkan untuk mengaktifkan https.

Tujuan dari panduan ini adalah untuk membantu Anda menambahkan lapisan keamanan kecil namun berguna untuk melindungi konten pribadi/istimewa pada aplikasi web Anda (seperti, tetapi tidak terbatas pada sisi administrator). Anda juga dapat menggunakannya untuk mencegah akses ke situs web atau aplikasi yang masih dalam fase pengembangan.

Persyaratan

  1. Instal Lemp Stack di Centos/Rhel 7
  2. Instal Lemp Stack di Ubuntu/Debian

Buat File Pengguna Otentikasi HTTP

Anda harus mulai dengan membuat file yang akan menyimpan Nama pengguna: Kata sandi pasangan. Kami akan menggunakan htpasswd Utilitas dari Apache HTTP Server, untuk membuat file ini.

Pertama periksa itu Apache2-utils atau httpd-tools, paket yang menyediakan htpasswd Utilitas diinstal pada sistem Anda, jika tidak jalankan perintah yang sesuai untuk distribusi Anda untuk menginstalnya:

# yum instal httpd-tools [rhel/centos] $ sudo apt install apache2-utils [debian/ubuntu] 

Selanjutnya, jalankan htpasswd Perintah di bawah ini untuk membuat file kata sandi dengan pengguna pertama. Itu -C Opsi digunakan untuk menentukan file passwd, setelah Anda menekan [Memasuki], Anda akan diminta untuk memasukkan kata sandi pengguna.

# htpasswd -c/etc/nginx/conf.D/.Pengembang HTPASSWD 

Tambahkan pengguna kedua, dan jangan gunakan -C opsi di sini.

# htpasswd/etc/nginx/conf.D/.HTPASSWD Admin 

Sekarang Anda sudah menyiapkan file kata sandi, lanjutkan untuk mengkonfigurasi bagian -bagian server web Anda yang ingin Anda batasi akses. Untuk melihat konten file kata sandi (yang mencakup nama pengguna dan kata sandi terenkripsi), gunakan perintah CAT di bawah ini.

# Cat/etc/nginx/conf.D/.htpasswd 
Lihat File Kata Sandi HTTP

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 ini.

  • AUTH_BASIC - menyalakan validasi nama pengguna dan kata sandi menggunakan “Otentikasi Dasar HTTPProtokol.
  • AUTH_BASIC_USER_FILE - Menentukan file kata sandi.

Kata sandi melindungi host virtual nginx

Untuk mengimplementasikan otentikasi dasar untuk seluruh server web, yang berlaku untuk semua blok server, buka /etc/nginx/nginx.conf file dan tambahkan baris di bawah ini dalam konteks http:

http auth_basic "akses terbatas!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd;… 

Situs web atau domain Lindungi Kata Sandi

Untuk mengaktifkan otentikasi dasar untuk domain atau sub-domain tertentu, buka file konfigurasinya di bawah /etc/nginx/conf.D/ atau /etc/nginx/conf/situs yang tersedia (Tergantung pada bagaimana Anda menginstal NGINX), lalu tambahkan konfigurasi di bawah ini di blok server atau konteks:

server dengarkan 80; Contoh server_name.com; AUTH_BASIC "Akses terbatas!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd; Lokasi / ... ... 

Direktori Web Protect Password di Nginx

Anda juga dapat mengaktifkan otentikasi dasar dalam arahan lokasi. Dalam contoh di bawah ini, semua pengguna mencoba mengakses /admin Blok lokasi akan diminta untuk mengotentikasi.

server dengarkan 80; Contoh server_name.com www.contoh.com; Lokasi / ... Lokasi /admin/ auth_basic "Akses terbatas!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd;  Lokasi /publik /auth_basic off; #turns Off Outentikasi HTTP Dasar Mati untuk Blok ini… 

Jika Anda telah mengkonfigurasi otentikasi HTTP dasar, semua pengguna yang mencoba mengakses server web Anda atau sub-domain atau bagian tertentu dari suatu situs (tergantung di mana Anda menerapkannya), akan diminta nama pengguna dan kata sandi seperti yang ditunjukkan pada tangkapan layar di bawah ini.

Otentikasi Dasar Nginx

Dalam hal otentikasi pengguna yang gagal, A “401 otorisasi diperlukan"Kesalahan akan ditampilkan seperti yang ditunjukkan di bawah ini.

401 Otorisasi yang Diperlukan Kesalahan

Anda dapat menemukan informasi lebih lanjut tentang membatasi akses dengan otentikasi HTTP dasar.

Anda mungkin juga ingin membaca panduan terkait server Nginx HTTP yang berguna ini.

  1. Cara Melindungi Direktori Web di Nginx
  2. Panduan Utama untuk Mengamankan, Mengeraskan, dan Meningkatkan Kinerja Nginx
  3. Menyiapkan HTTPS dengan Let's Encrypt SSL Certificate untuk Nginx

Dalam panduan ini, kami menunjukkan cara mengimplementasikan otentikasi HTTP dasar di server web nginx http. Untuk mengajukan pertanyaan, gunakan formulir umpan balik di bawah ini.