Security Configurations for NGINX
Dalam tutorial ini, kami akan menunjukkan cara menyiapkan konfigurasi keamanan tambahan untuk aplikasi PHP Anda yang di-hosting dengan server aplikasi NGINX.
Anda dapat menggunakan jenis konfigurasi keamanan berikut:
A. Security through authentication
Untuk menyediakan ini, ikuti langkah-langkah berikut:
-
Hasilkan hash dari kata sandi Anda. Untuk itu, Anda dapat menggunakan alat htpasswd apa pun atau layanan online (misalnya,
http://www.htpasswdgenerator.net/
). -
Buat file teks sederhana dengan hash yang dihasilkan sebelumnya.
-
Klik tombol Config untuk server Anda.
-
Unggah file yang dibuat ke direktori /var/www/webroot/ROOT.
-
Di direktori /etc/nginx, buka file nginx.conf dan modifikasi konfigurasi direktori:
-
autentikasi untuk seluruh aplikasi Modifikasi konfigurasi lokasi dengan menambahkan string berikut:
auth_basic “Restricted area”;
auth_basic_user_file /var/www/webroot/ROOT/.htpasswd; -
autentikasi untuk direktori terpisah
Tambahkan string location berikut yang menunjukkan jalur ke direktori yang diperlukan:
location ~/directory_path { auth_basic, "Restricted"; auth_basic_user_file /var/www/webroot/ROOT/.htpasswd; }_
-
-
Simpan perubahan dan mulai ulang NGINX
Akibatnya, saat mengakses aplikasi atau direktori yang dilindungi, pengguna akan diminta untuk melakukan autentikasi.
B. Security through setting up criteria
Anda dapat menyediakan keamanan untuk aplikasi Anda dengan menetapkan kriteria berbeda, misalnya, mengizinkan atau menolak akses berdasarkan alamat IP.
- Direktif Allow dan Deny digunakan untuk menentukan klien mana yang diizinkan atau tidak diizinkan mengakses server. Aturan diperiksa secara berurutan sampai ditemukan kecocokan pertama.
- Buka file nginx.conf di direktori /etc/nginx dan tambahkan direktif yang diperlukan:
-
menolak akses ke seluruh aplikasi Modifikasi konfigurasi location menggunakan string tipe berikut:
deny xx.xx.xx.x;
allow xx.xx.xx.x;
deny all;
-
menolak akses ke direktori terpisah
Tambahkan string location berikut yang menyatakan jalur ke directory yang diperlukan:location /directory_path {
deny xx.xx.xx.x;
allow xx.xx.xx.x;
deny all;_
}
-
Akibatnya, pengguna dengan IP selain yang diizinkan akan melihat kesalahan 403 saat mencoba membuka aplikasi Anda.
Catatan:
- Menolak akses melalui IP hanya masuk akal jika Anda menggunakan fitur Public IP.
- Pembatasan akses berdasarkan kriteria dan autentikasi berbasis kata sandi dapat diterapkan secara bersamaan. Dalam hal ini, direktif Satisfy digunakan untuk menentukan bagaimana kedua set pembatasan berinteraksi. Informasi lebih lanjut dapat Anda dapatkan di sini.