Membatasi IP Tertentu Mengakses Situs dengan Nginx


Membatasi suatu IP tertentu agar bisa atau tidaknya mengakses suatu situs bukanlah hal yang aneh dan sudah menjadi lumrah. Motif dari tujuan pembatasan tersebut berbeda-beda, misalnya ingin agar halaman administrasi atau beberapa aplikasi web lainnya hanya bisa diakses menggunakan IP local saja.

Kali ini kita akan membahas mengenai pembatasan (restriction) suatu IP tertentu mengakses situs dengan memanfaatkan bawaan web server Nginx. Langsung saja.

Persiapan

Masuk ke server Anda dan ubah konfigurasi Nginx-nya. Misalnya di /etc/nginx/nginx.conf atau dari tiap-tiap server block Anda misalnya di /etc/nginx/sites-availables/default.

Lalu masukan kode di bawah ini. Pembatasan melalui IP. Kita bisa menggunakn 2 metode yakni whitelist dan blacklist.

Whitelist

Ini berarti hanya semua IP ditolak kecuali yang masuk dalam daftar:

server {
    ...
   location / {
      allow 10.0.0.0/8;
      allow 1.2.3.4;
      deny all;
      ...
   }
   ...
}

Blacklist

Kebalikan dari whitelist, yang berarti semua boleh akses kecuali dalam daftar hitam (blacklist), berikut kodenya:

server {
    ...
   location / {
      allow all;
      deny 10.0.0.0/8;
      deny 1.2.3.4;
      ...
   }
   ...
}

Jika sudah selesai jangan lupa restart nginx nya.

sudo service nginx restart

atau

sudo systemctl restart nginx

Oke semoga bermanfaat.