Konfigurasi sekatan akses Nginx untuk menghalang akses berniat jahat dan serangan perangkak

PHPz
Lepaskan: 2023-07-04 10:25:12
asal
2527 orang telah melayarinya

Konfigurasi sekatan akses Nginx untuk menghalang akses berniat jahat dan serangan perangkak

Pengenalan:
Dalam era Internet hari ini, akses hasad dan serangan perangkak telah menjadi ancaman keselamatan yang hebat. Sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, Nginx boleh menyekat akses melalui beberapa konfigurasi untuk melindungi tapak web daripada serangan ini. Artikel ini akan memperkenalkan beberapa konfigurasi sekatan akses Nginx yang biasa digunakan, dengan contoh kod.

1. Sekatan senarai hitam IP dan senarai putih

  1. Sekatan senarai hitam IP
    Jika anda ingin menyekat akses kepada alamat IP tertentu, anda boleh menggunakan modul ngx_http_access_module yang disertakan dengan Nginx.
http {
    # 创建一个blacklist.conf文件来存储黑名单的IP地址
    include blacklist.conf;
    server {
        location / {
            # 在这里设置黑名单的访问规则
            deny 192.168.1.100;
            deny 192.168.1.0/24;
            deny 10.0.0.0/8;
            # 其他配置...
        }
    }
}
Salin selepas log masuk

Konfigurasi di atas adalah mudah dan jelas Anda boleh menggunakan deny terus dalam blok lokasi untuk menolak akses kepada alamat IP atau julat alamat IP yang ditentukan.

  1. Sekatan senarai putih IP
    Bertentangan dengan senarai hitam IP, jika anda hanya mahu membenarkan akses kepada alamat IP tertentu dan menafikan alamat IP lain, anda boleh menggunakan arahan membenarkan.
http {
    # 创建一个whitelist.conf文件来存储白名单的IP地址
    include whitelist.conf;
    server {
        location / {
            # 在这里设置白名单的访问规则
            allow 192.168.1.100;
            allow 192.168.1.0/24;
            allow 10.0.0.0/8;
            # 最后拒绝所有其他访问
            deny all;
            # 其他配置...
        }
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, gunakan perintah benarkan untuk membenarkan akses kepada alamat IP atau julat alamat IP yang ditentukan, dan tolak semua untuk menolak akses kepada semua alamat IP lain.

2. Sekatan Ejen Pengguna
Sesetengah serangan perangkak akan menggunakan Ejen Pengguna palsu untuk mengakses, jadi kami boleh menghalang serangan tersebut dengan menyekat Ejen Pengguna.

http {
    server {
        location / {
            # 在这里设置拒绝某些特定User-Agent的访问
            if ($http_user_agent ~* (curl|wget) ) {
                return 403;
            }
            # 其他配置...
        }
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, gunakan perintah if ditambah ungkapan biasa untuk memadankan Ejen Pengguna tertentu, dan kemudian gunakan arahan kembali untuk mengembalikan 403 Forbidden.
Dengan cara ini, permintaan cuba mengakses tapak web menggunakan alatan seperti curl atau wget akan ditolak.

3. Had Kekerapan
Untuk mengelakkan serangan DDoS dan keretakan kekerasan, anda boleh menetapkan had kekerapan akses.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
    server {
        location / {
            # 在这里设置访问频率限制
            limit_req zone=one burst=10 nodelay;
            # 其他配置...
        }
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, gunakan perintah limit_req_zone untuk mencipta kawasan memori untuk menyimpan alamat IP, saiznya ialah 10m, dan kekerapan akses ditetapkan kepada 2r/s. Kemudian gunakan perintah limit_req dalam blok lokasi untuk mengehadkan kekerapan Parameter pecah menunjukkan saiz penimbal apabila capaian melebihi, dan nodelay menunjukkan bahawa permintaan harus diproses dengan segera.

Ringkasan:
Melalui contoh konfigurasi sekatan senarai hitam dan putih IP di atas, sekatan Ejen Pengguna dan sekatan kekerapan, kami boleh menghalang akses berniat jahat dan serangan perangkak dengan berkesan. Sudah tentu, konfigurasi khusus boleh diselaraskan mengikut keperluan sebenar. Akhir sekali, saya berharap kandungan di atas dapat membantu konfigurasi sekatan akses Nginx anda.

Atas ialah kandungan terperinci Konfigurasi sekatan akses Nginx untuk menghalang akses berniat jahat dan serangan perangkak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!