Cara Melindungi Direktori Web dengan Kata Sandi di Nginx


Manajer proyek web sering kali perlu melindungi pekerjaan mereka dengan satu atau lain cara. Seringkali orang bertanya bagaimana cara melindungi situs web mereka dengan kata sandi saat masih dalam pengembangan.

Dalam tutorial ini, kami akan menunjukkan kepada Anda teknik sederhana namun efektif tentang cara direktori web dilindungi kata sandi saat menjalankan Nginx sebagai server web.

Jika Anda menggunakan server web Apache, Anda dapat memeriksa panduan kami untuk melindungi direktori web dengan kata sandi:

  1. Direktori Web yang Dilindungi Kata Sandi di Apache

Persyaratan

Untuk menyelesaikan langkah-langkah dalam tutorial ini, Anda harus memiliki:

  • Server web Nginx diinstal
  • Akses root ke server

Langkah 1: Buat Pengguna dan Kata Sandi

1. Untuk melindungi direktori web kami dengan kata sandi, kami perlu membuat file yang berisi nama pengguna dan kata sandi kami yang terenkripsi.

Saat menggunakan Apache, Anda dapat menggunakan utilitas “htpasswd”. Jika Anda menginstal utilitas tersebut di sistem Anda, Anda dapat menggunakan perintah ini untuk membuat file kata sandi:

htpasswd -c /path/to/file/.htpasswd username

Saat menjalankan perintah ini, Anda akan diminta untuk mengatur kata sandi untuk pengguna di atas dan setelah itu file .htpasswd akan dibuat di direktori yang ditentukan.

2. Jika Anda belum menginstal alat tersebut, Anda dapat membuat file .htpasswd secara manual. File tersebut harus memiliki sintaks berikut:

username:encrypted-password:comment

Nama pengguna yang akan Anda gunakan bergantung pada Anda, pilih sesuka Anda.

Bagian yang lebih penting adalah cara Anda membuat kata sandi untuk pengguna tersebut.

Langkah 2: Hasilkan Kata Sandi Terenkripsi

3. Untuk membuat sandi, gunakan fungsi “crypt” yang terintegrasi dari Perl.

Berikut adalah contoh perintah itu:

perl -le 'print crypt("your-password", "salt-hash")'

Contoh kehidupan nyata:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Sekarang buka file dan masukkan nama pengguna Anda dan string yang dihasilkan, dipisahkan dengan titik koma.

Begini caranya:

vi /home/tecmint/.htpasswd

Masukkan nama pengguna dan kata sandi Anda. Dalam kasus saya, tampilannya seperti ini:

tecmint:1xV2Rdw7Q6MK.

Simpan file dengan menekan “Esc” diikuti dengan “:wq”.

Langkah 3: Perbarui Konfigurasi Nginx

4. Sekarang buka dan edit file konfigurasi Nginx yang terkait dengan situs yang sedang Anda kerjakan. Dalam kasus kami, kami akan menggunakan file default di:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

Dalam contoh kita, kita akan melindungi root direktori nginx dengan kata sandi, yaitu: /usr/share/nginx/html.

5. Sekarang tambahkan bagian dua baris berikut di bawah jalur yang ingin Anda lindungi.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Sekarang simpan file dan restart Nginx dengan:

systemctl restart nginx
OR
service nginx restart

6. Sekarang salin/tempel alamat IP tersebut di browser Anda dan Anda akan dimintai sandi:

Itu dia! Direktori web utama Anda sekarang terlindungi. Bila Anda ingin menghapus proteksi kata sandi di situs, cukup hapus dua baris yang baru saja Anda tambahkan ke file .htpasswd atau gunakan perintah berikut untuk menghapus pengguna yang ditambahkan dari file kata sandi.

htpasswd -D /path/to/file/.htpasswd username