GNU/Linux >> Belajar Linux >  >> Linux

Cara membatasi Akses ke Direktori dan Subdirektori di Nginx

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


Linux
  1. Cara Menemukan Jumlah File dalam Direktori dan Subdirektori

  2. Bagaimana cara mengunduh seluruh direktori dan subdirektori menggunakan wget?

  3. Bagaimana cara mengkonfigurasi Kibana 4 dan elasticsearch di belakang nginx?

  1. Cara Menghitung Jumlah File dan Subdirektori di dalam Direktori yang Diberikan

  2. Cara mengakses phpMyAdmin dan phpPgAdmin di cPanel

  3. Cara Mengakses Sistem File Linux di Windows 10 dan WSL 2

  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Bagaimana cara menghapus direktori dan folder di Linux?

  3. Bagaimana cara mengambil string dalam direktori dan semua subdirektorinya?