Fail2Banを使用しており、必要に応じて構成しました。これはnginx/error.logからログを読み取り、maxretryとタイミングセットに関する構成に応じて動作しています。問題は、これがステータスコードに応じて異なるルールを持つことが可能であるということです。
たとえば、10 404 Status code
5分後、ただし3を取得するユーザーをブロックする403 Status code
。
事前に感謝します。
/etc/fail2ban/filter.d/
に適切な名前のフィルターを追加する必要があります。 nginx-{403,404}.conf
。
次のような行が含まれている必要があります。
nginx-403.conf:
[Definition]
failregex = ^<Host> -.*"(GET|POST|HEAD).*HTTP.*" 403
ignoreregex =
nginx-404.conf:
[Definition]
failregex = ^<Host> -.*"(GET|POST|HEAD).*HTTP.*" 404
ignoreregex =
次に、jail.confまたはconfファイルが何であれ、それらを呼び出す必要があります。
403の場合:
[nginx-403]
enabled = true
port = http,https
filter = nginx-403
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 300
そして404の場合:
[nginx-404]
enabled = true
port = http,https
filter = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 10
findtime = 300