• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Cara Memblokir User Agent dengan Nginx

Last Updated on 25 November 2020 By tommy Leave a Comment

Bila situs anda menjadi target SPAM ataupun BOT SCANNER dengan mengirim berbagai request random, bisa di block dengan bantuan web server NGINX. Contoh server block nginx

server {
    listen 80;
    server_name loadbalancer.prod.jaranguda.com default_server;
    root /var/www/loadbalancer.prod.jaranguda.com;
    index index.php index.html;
    location / {
      try_files $uri /index.html;
    }
}

cek log nginx, biasanya berada di /var/log/nginx, sebagai contoh saya ambil potongan log sebagai berikut

192.168.1.2 - - [25/Nov/2020:13:52:32 +0700] "GET / HTTP/2.0" 200 617 "-" "Mozilla/5.0 (Linux; Android 4.4.4; SM-G720N0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36" "-"
192.168.1.2 - - [25/Nov/2020:13:55:31 +0700] "GET /jadi-orang-terkenal HTTP/2.0" 200 3948 "https://www.google.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" "-"
192.168.1.2 - - [25/Nov/2020:13:56:35 +0700] "GET /harga-pasar-saat-ini HTTP/2.0" 200 5898 "https://www.google.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" "-"
192.168.1.2 - - [25/Nov/2020:13:56:38 +0700] "GET /perhitungan-pajak-yang-benar HTTP/2.0" 200 627 "https://www.google.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" "-"
192.168.1.2 - - [25/Nov/2020:13:57:06 +0700] "GET / HTTP/1.1" 200 28931 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm);googlebot|baiduspider|baidu|spider|sogou|bingbot|bot|yahoo|soso|sosospider|360spider|youdaobot|jikeSpider;)" "-"
192.168.1.2 - - [25/Nov/2020:14:05:03 +0700] "GET / HTTP/2.0" 200 28918 "-" "curl/7.69.1" "-"

Cara blokir user agent

User agent yang ada sangat banyak dan bisa saja dibuat asal-asalan, untuk itu ada baiknya di cek log dari server anda agar lebih tepat sasaran. Nginx memiliki variable $http_user_agent yang bisa digunakan untuk mendeteksi user agent dari client. Formatnya sebagai berikut

if ($http_user_agent ~ (useragent)) {
    return 403 "Rejected!";
}

untuk memblokir banyak user agent sekaligus bisa ditambahkan |, contoh kita akan memblokir curl yang ada di potongan log nginx

if ($http_user_agent ~ (useragent|useragentlain|userAgentLainLagi|curl)) {
    return 403 "Rejected!";
}

Bila user agent memiliki space harus di escape dengan \, contoh untuk user agent Buah Manis

if ($http_user_agent ~ (useragent|useragentlain|userAgentLainLagi|curl|Buah\ Manis)) {
    return 403 "Rejected!";
}

Case Sensitive atau Case Insensitive

Di nginx kita bisa menggunakan ~ untuk case sensitive dan ~* untuk case insensitive. Seperti contoh terakhir diatas

if ($http_user_agent ~ (useragent|useragentlain|userAgentLainLagi|curl|Buah\ Manis)) {
    return 403 "Rejected!";
}

akan memblokir user agent

useragent
useragentlain
userAgentLainLagi
Buah Manis

tetapi tidak dengan kombinasi huruf besar kecil yang disatukan

Useragent
userAgentlain

solusinya adalah dengan menggunakan ~*

if ($http_user_agent ~* (useragent|useragentlain|userAgentLainLagi|curl|Buah\ Manis)) {
    return 403 "Rejected!";
}

Lengkapnya server block menjadi

server {
    listen 80;
    server_name loadbalancer.prod.jaranguda.com default_server;
    root /var/www/loadbalancer.prod.jaranguda.com;
    index index.php index.html;
    location / {
      try_files $uri /index.html;
    }
 
  if ($http_user_agent ~* (useragent|useragentlain|userAgentLainLagi|curl|Buah\ Manis)) {
      return 403 "Rejected!";
  }
 
}

Setelah merubah konfigurasi nginx, service nginx harus direload atau di restart

systemctl reload nginx

Testing Blokir User Agent

Untuk test kita akan menggunakan curl, contoh

curl http://DOMAIN.com
# output
rejected!

coba ganti user agent menjadi LALALALA, harusnya bisa mengakses website seperti normal

curl -H 'User-Agent: LALALALA' http://DOMAIN.com

Tulisan menarik lainnya

  • Cara Memblokir Youtube dengan Mikrotik

    Bila anda menggunakan Layer 7 untuk memblokir Youtube, cara tersebut akan gagal total, dikarenakan Youtube…

  • Cara Menambah Kuota User ownCloud

    Login sebagai user admin ownCloud, klik di pojok kanan atas klik Users Di User settings,…

  • NGINX Rewrite URL dengan sub_filter

    Contoh untuk merubah URL di nginx dengan bantuan modul sub_filter, sebagai contoh saya menggunakan aplikasi…

  • Cara Mengatasi worker_connections exceed open file Nginx

    Error yang muncul di log 2015/07/12 09:23:31 [warn] 4253#0: 2048 worker_connections exceed open file resource…

Filed Under: Linux

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Mengganti Port Screen Sharing macOS
  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey

Komentar

  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Alief on Password Router Huawei HG8245H5 Indihome

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.8k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153k views
  • Cara Reset Password ZTE F609 Indihome 147.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.5k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java