Halo teman teman. Dalam posting ini, kami akan melanjutkan dengan beberapa trik untuk Nginx. Jadi hari ini, Anda akan belajar cara membatasi akses ke direktori dan subdirektori di Nginx. Ayo lakukan.
Pertama, haruskah kita melakukan ini?
Jawaban singkatnya adalah YA. Pastinya. Karena dalam sebuah aplikasi atau website, terdapat banyak folder yang berisi file sensitif agar bisa berfungsi.
Karena hal di atas, disarankan untuk menetapkan aturan untuk melarang akses ke folder ini dan dengan demikian meningkatkan keamanan situs.
Pembatasan ini dapat diterapkan berdasarkan alamat IP, yang memungkinkan kami memiliki fleksibilitas untuk menerapkan konfigurasi yang kami butuhkan.
Hal ini tanpa usaha. Ayo lakukan.
Prasyarat
Sebelum melanjutkan, kita harus memastikan bahwa kita memenuhi persyaratan untuk menyelesaikan postingan tanpa masalah
- Anda harus menginstal dan mengkonfigurasi Nginx. Jadi, pastikan Anda memilikinya menggunakan repositori resmi distribusi Linux Anda.
- Versi Nginx harus lebih tinggi dari 1.9.5 Anda seharusnya tidak memiliki masalah untuk memilikinya karena sebagian besar distribusi menyertakan versi terbaru.
- Memiliki pengetahuan dasar tentang penggunaan terminal.
- Pengguna dengan akses sudo atau akses root.
Ayo lakukan.
Cara membatasi akses ke direktori dan subdirektori di Nginx
Adalah normal untuk memiliki beberapa Blok Server di server. Tetapi jika Anda ingin menerapkan konfigurasi secara global, atau Anda belum membuatnya, Anda harus memodifikasi /etc/nginx/nginx.conf
– Jika tidak, Anda harus mengedit file konfigurasi setiap Blok Server. Misalnya,
sudo nano /etc/nginx/sites-enabled/domain.conf
Untuk posting ini, saya akan bekerja dengan folder bernama data
di root situs web. Oleh karena itu, jalur relatifnya adalah /data
.
Arahan Nginx yang melakukan penolakan akses adalah Deny
tetapi kita harus menentukannya di dalam skrip yang merujuk ke direktori.
Jika Anda ingin membatasi akses ke direktori itu, Anda harus memasukkannya ke dalam file konfigurasi
location /data {
...
deny all;
...
}
Anda juga dapat membatasi akses ke alamat IP tertentu. Misalnya:
location /data {
...
deny 192.168.2.5;
...
}
Jika ada beberapa alamat IP, Anda dapat menentukannya seperti ini
location /data {
...
deny 192.168.2.5;
deny 192.168.2.9;
...
}
Anda juga dapat menggunakan rentang alamat IP
location /data {
...
Deny 192.168.1.0/24;
...
}
Simpan perubahan dan tutup editor. Untuk menerapkan perubahan, mulai ulang Nginx.
sudo systemctl restart nginx
Dan Anda selesai.
Direktori perlindungan kata sandi di Nginx
Opsi berguna lainnya adalah menambahkan kata sandi. Metode ini sangat aman dan juga memberi Anda kontrol lebih besar atas siapa yang dapat mengaksesnya.
Untuk melakukannya, instal apache2-utils
paket di Debian, Ubuntu dan turunannya; dan httpd-tools
di RHEL, Rocky Linux, dan turunannya.
Kemudian, buat file tempat kata sandi akan di-host diikuti oleh pengguna. Misalnya:
sudo htpasswd -c /home/username/.htpasswd user
Saat Anda menjalankannya, Anda akan diminta memasukkan kata sandi baru untuk pengguna.
Kami mengedit file konfigurasi Nginx atau ServerBlocks
sudo nano /etc/nginx/sites-enabled/domain.conf
Dan tambahkan sesuatu seperti ini
location /data {
auth_basic "Restricted";
auth_basic_user_file /home/username/.htpasswd;
}
Simpan perubahan Anda, tutup editor dan mulai ulang Nginx.
sudo systemctl restart nginx
Sekarang ketika Anda ingin mengakses folder tersebut, Anda akan dimintai kata sandi.
Kesimpulan
Dalam posting singkat dan sederhana ini, kami telah menjelaskan sesuatu yang sama pentingnya dengan membatasi akses ke folder di server web kami.
Dokumentasi Nginx