
저는 centos8 +fail2ban + haproxy를 사용합니다
다음 설정을 사용하는 특수 감옥 "my-haproxy404"가 있습니다.
[my-haproxy404]
enabled = true
port = http,https
filter = my-haproxy404
logpath = /var/log/my-haproxy.log
backend = poller
journalmatch =
maxretry = 3
bantime = 86400
findtime = 3600
및 필터 :
[Definition]
failregex = .*:<HOST>(?::\d+)?\s+.*\d* 404
내 예제 로그 줄은 다음과 같습니다.
Sep 19 14:38:21 localhost haproxy[53925]: 77.77.77.77:55763 [19/Sep/2021:14:38:21.483] backend1 line1/test1 0/0/12/88/100 404 687 - - ---- 1/1/0/0/0 0/0 "GET /test/string HTTP/1.1"
그래서...이것이 작동할 수도 있지만, failure2ban.log에 다음과 같은 IP가 표시됩니다.
INFO [my-haproxy404] Found 0.0.217.211 - 2021-09-19 14:38:21
이것은 실제 IP가 아닙니다(실제 IP는: 77.77.77.77). Fail2ban 이 IP(0.0.217.211)를 차단합니다. ....하지만(77.77.77.77)은 여전히 작동합니다.
나도 정규식에 문제가 있는 걸 알아
이 404 문자열에 대한 올바른 정규식 규칙을 알려주세요.
Sep 19 14:38:21 localhost haproxy[53925]: 77.77.77.77:55763 [19/Sep/2021:14:38:21.483] backend1 line1/test1 0/0/12/88/100 404
문안 인사
답변1
failregex = ^\s*\S+ haproxy\[\d+\]: <ADDR>:\d+(?: \[[^\]]+\])? \S+ \S+ \d+(?:/\d+)+ 404\b
"잘못된" 코드를 일치시키기 위해 다음 으로 404\b
대체 할 수도 있습니다 (인증 핸드셰이크를 적절하게 고려하려면 몇 가지 전제 조건이 필요하며 이를 위해 사용할 수 있는 필터가 있습니다 ).(?!401)[45]\d\d\b
4xx
5xx
401
haproxy-http-auth