Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Proksi terbalik Nginx melindungi daripada serangan Bot

Proksi terbalik Nginx melindungi daripada serangan Bot

王林
王林asal
2023-06-10 19:48:081376semak imbas

Dengan perkembangan teknologi Internet, mencegah serangan web telah menjadi isu penting untuk keselamatan tapak web. Sebagai alat serangan automatik, Bot telah menjadi salah satu bentuk utama serangan web. Khususnya, Nginx, yang berfungsi melalui proksi terbalik, telah digunakan secara meluas kerana kecekapan, kestabilan, fleksibiliti dan penyesuaiannya. Artikel ini akan menyediakan beberapa langkah pencegahan yang berkesan terhadap serangan Bot di bawah proksi terbalik Nginx.

1. Hidupkan Log Akses

Nginx menyediakan fungsi Log Akses, yang boleh merekodkan protokol HTTP, IP sumber, masa permintaan, kod status respons dan maklumat lain bagi setiap permintaan. Dengan menghidupkan Log Akses, serangan Bot boleh dikesan dengan lebih mudah.

Tambah kandungan berikut dalam fail konfigurasi Nginx:

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    ……
}

2 Tambah IP terhad

Tambah kaedah untuk menyekat IP dalam fail konfigurasi Nginx, yang boleh menghalang dengan berkesan. serangan IP Serantau tertentu. Sebagai contoh, menambah yang berikut boleh menghalang serangan dari tanah besar China:

http {
    deny   61.135.0.0/16;
    deny   118.25.0.0/16;
    ……
}

3 Gunakan modul GeoIP

Modul GeoIP Nginx boleh memadankan IP sumber akses dengan lokasi geografinya. Hanya pasang modul GeoIP dan perpustakaan GeoIP dan gunakan pembolehubah GeoIP untuk mengesan kawasan asal IP. Contohnya:

http {
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    geoip_city    /usr/share/GeoIP/GeoIPCity.dat;

    server {
        location / {
            if ($geoip_country_code = CN) {
                return 403;
            }

            if ($geoip_city_name ~* "moscow") {
                return 403;
            }
        }
    }
}

4. Tambah pengesahan Perujuk HTTP

Perujuk HTTP boleh digunakan untuk mengesahkan sumber permintaan. Cuma tambah kandungan berikut dalam fail konfigurasi Nginx:

http {
      server {
            if ($http_referer ~* (blacklist1|blacklist2|blacklist3)) {
                    return 403;
            }
      }
}

5. Gunakan Nginx untuk menghalang serangan CC

Nginx menyediakan beberapa ciri untuk menghalang serangan CC. Hanya tetapkan dalam fail konfigurasi Nginx:

http {
      limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

      server {
            location / {
                  limit_req zone=one burst=5;
                  ……
            }
      }
}

6 Dayakan sijil SSL

Dengan mendayakan sijil SSL, anda boleh menghalang kecurian data dan serangan man-in-the-middle pada protokol HTTP. tahap. Pada masa yang sama, mekanisme HTTP Strict Transport Security (HSTS) boleh didayakan untuk menghalang permintaan HTTP daripada ditukar secara paksa kepada permintaan HTTP, dengan itu membolehkan semua akses diakses sebagai HTTPS pada masa hadapan.

http {
      server {
            listen 443 ssl;

            ssl_certificate /path/to/cert;
            ssl_certificate_key /path/to/key;

            add_header Strict-Transport-Security "max-age=315360000; includeSubDomains; preload;";
      }
}

Ringkasan

Keselamatan pelayan proksi terbalik Nginx secara langsung mempengaruhi keselamatan keseluruhan sistem aplikasi Web. Untuk serangan Bot, dengan menghidupkan Log Akses, menambah IP terhad, menggunakan modul GeoIP, menambah pengesahan Perujuk HTTP, menggunakan Nginx untuk menghalang serangan CC dan mendayakan sijil SSL, dsb., anda boleh membantu pelayan proksi terbalik Nginx mengelakkan permintaan palsu dan serangan berniat jahat, dan melindungi keselamatan sistem aplikasi Web.

Atas ialah kandungan terperinci Proksi terbalik Nginx melindungi daripada serangan Bot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn