Nginx에 fall2ban을 사용하는 방법은 무엇입니까?

Nginx에 fall2ban을 사용하는 방법은 무엇입니까?

Nginx 서버에서 fall2ban을 어떻게 사용할 수 있나요? Jails.conf에 넣을 규칙은 무엇입니까?

답변1

아래부터 시작하세요 http://snippets.aktagon.com/snippets/554-How-to-Secure-an-nginx-Server-with-Fail2Ban

/etc/fail2ban/nginx-dos.conf의 새 필터:

# Fail2Ban configuration file
#
# Generated on Fri Jun 08 12:09:15 EST 2012 by BeezNest
#
# Author: Yannick Warnir
#
# $Revision: 1 $
#

[Definition]
# Option:  failregex
# Notes.:  Regexp to catch a generic call from an IP address.
# Values:  TEXT
#
failregex = ^<HOST> -.*"(GET|POST).*HTTP.*"$

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Jail.local에는 다음이 있습니다(파일 끝에):

[nginx-dos]
# Based on apache-badbots but a simple IP check (any IP requesting more than
# 240 pages in 60 seconds, or 4p/s average, is suspicious)
# Block for two full days.
# @author Yannick Warnier
enabled = true
port    = http,8090
filter  = nginx-dos
logpath = /var/log/nginx/*-access.log
findtime = 60
bantime  = 172800
maxretry = 240

물론 사이트의 모든 리소스(이미지, CSS, js 등)를 로깅하는 경우 일반 사용자로서 해당 숫자를 얻는 것은 정말 쉽습니다. 이를 방지하려면 다음과 같이 Nginx의 access_log off 지시어를 사용하세요.

 # Serve static files directly
        location ~* \.(png|jpe?g|gif|ico)$ {
                expires 1y;
                access_log off;
                try_files $uri $uri/ @rewrite;
                gzip off;
        }
        location ~* \.(mp3)$ {
                expires 1y;
                access_log off;
                gzip off;
        }
        location ~* \.(css)$ {
                expires 1d;
                access_log off;
        }
        location ~* \.(js)$ {
                expires 1h;
                access_log off;
        }

관련 정보