Bagaimana untuk mengelakkan ddos ​​berniat jahat merangkak pada nginx
黄舟
黄舟 2017-05-16 17:30:17
0
4
1044

Pertama sekali, saya tidak membantah orang lain merangkak kandungan tapak web saya. Saya tidak semestinya mengehadkan perayapan orang lain secara ketat, tetapi beberapa orang merangkak tidak mempunyai garis bawah sama sekali laman web tertentu secara serentak Kandungan pelayan tidak berbeza dengan ddos.

Pelayan saya sedang mengalami situasi sedemikian pada masa ini Merangkak berniat jahat tanpa jeda telah menjejaskan analisis log kami dengan serius dan juga meningkatkan beban pada pelayan.

Bagaimana untuk mengelakkan tingkah laku seperti ini? Saya menggunakan pelayan nginx Setakat yang saya tahu, ia hanya boleh menggunakan IP tertentu, tetapi penafian masih akan muncul dalam log pada masa hadapan, tetapi ia akan menjadi 403. Selain itu, penafian manual terlalu pasif Bolehkah anda dengan bijak menentukan bahawa bilangan lawatan ke IP tertentu telah meningkat dengan mendadak, dan kemudian mengharamkannya? deny

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(4)
某草草

1. ngx_http_limit_conn_module boleh digunakan untuk mengehadkan bilangan sambungan untuk satu IP
http://nginx.org/en/docs/http/ngx_htt...

2. ngx_http_limit_req_module boleh digunakan untuk mengehadkan bilangan permintaan sesaat untuk satu IP
http://nginx.org/en/docs/http/ngx_htt...

3. nginx_limit_speed_module boleh digunakan untuk mengehadkan kelajuan IP
https://github.com/yaoweibin/nginx_li...

世界只因有你

Saya juga akan menyediakan penyelesaian, terutamanya menggunakan fail2ban (http://www.fail2ban.org/). fail2ban secara tak segerak menentukan sama ada untuk melarang menggunakan iptable dengan mengimbas log, jadi ia mempunyai kesan yang agak kecil pada sistem asal dan tidak memerlukan konfigurasi semula nginx. Tetapi saya tidak tahu sama ada bilangan lawatan akan terlalu besar.

Tambah dahulu /etc/fail2ban/jail.conf里加入

[http-get-dos]
enabled = true
port = http,https
filter = nginx-bansniffer
logpath = /usr/local/nginx/logs/segmentfault.log
maxretry = 120
findtime = 120
bantime = 3600
action = iptables[name=HTTP, port=http, protocol=tcp]

然后找到/etc/fail2ban/filter.d/nginx-bansniffer.conf,把里面针对404的判断改成

[Definition]

failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =

最后重启fail2ban dalam /etc/fail2ban/jail.conf rrreee

Kemudian cari /etc/fail2ban/filter.d/nginx-bansniffer.conf dan tukar penghakiman untuk 404 kepada 🎜 rrreee 🎜Akhirnya mulakan semula perkhidmatan fail2ban Dalam konfigurasi di atas, kami melarang IP dengan lebih daripada 120 lawatan setiap 120 saat selama 1 jam. 🎜
小葫芦

1. Cegah merangkak labah-labah berdasarkan Ejen Pengguna

## Block download agents ##
     if ($http_user_agent ~* WebZIP|wget) {
            return 403;
     }
##

2. Cipta peraturan dalam Firewall sistem pengendalian untuk mengehadkan bilangan sambungan serentak dari IP yang sama
Mengambil iptables di bawah Linux sebagai contoh, konfigurasi berikut akan mengehadkan penubuhan maksimum 15 sambungan untuk IP yang sama dalam satu minit yang melebihi sambungan akan dibuang oleh iptables dan tidak akan mencapai nginx

/sbin/iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
/sbin/iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60  --hitcount 15 -j DROP
service iptables save

3 Tulis skrip bash untuk mengira kekerapan akses setiap IP, dan secara automatik membuang IP yang kekerapannya melebihi had atas yang anda tetapkan ke dalam senarai hitam
. Untuk IP dalam senarai hitam, gunakan skrip untuk menulisnya secara automatik ke dalam iptables atau nginx.conf, sekatnya selama beberapa minit atau kurangkan kekerapan akses yang dibenarkan

Saya pernah menggunakan modul apache yang dipanggil YDoD (Yahoo! Department of Defense) semasa saya berada di Yahoo, saya boleh menyesuaikan peraturan untuk mengelakkan penyalahgunaan perkhidmatan WEB kami Selepas saya datang ke Taobao, saya menukar nama saya kepada tdod mencari di sekeliling, saya tidak menemuinya. Cari sumber terbuka. Tetapi prinsipnya sama dengan apa yang saya katakan di atas.

PHPzhong

Cuba ngx_lua_waf
https://github.com/loveshell/ngx_lua_waf
Fungsi:

防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
防止svn/备份之类文件泄漏
防止ApacheBench之类压力测试工具的攻击
屏蔽常见的扫描黑客工具,扫描器
屏蔽异常的网络请求
屏蔽图片附件类目录php执行权限
防止webshell上传
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan