Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengelakkan ddos ​​berniat jahat merangkak pada nginx

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

黄舟黄舟2712 hari yang lalu1008

membalas semua(4)saya akan balas

  • 某草草

    某草草2017-05-16 17:32:17

    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...

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:32:17

    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. 🎜

    balas
    0
  • 高洛峰

    高洛峰2017-05-16 17:32:17

    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.

    balas
    0
  • PHPz

    PHPz2017-05-16 17:32:17

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

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

    balas
    0
  • Batalbalas