Fail2Ban 정규 표현식 - NGNIX - 사용자 정의 정규 표현식

Fail2Ban 정규 표현식 - NGNIX - 사용자 정의 정규 표현식

특정 이벤트를 캡처하기 위해 Fail2ban NGNIX 로그에 대한 사용자 정의 로그 파일을 생성하려고 합니다. 정규식은 나에게 아직 상대적으로 새로운 것이므로 개선하기 위해 노력하고 있습니다. 이것은 사용자 정의 필터에 들어가지만 지금은 Fail2ban-regex를 사용하겠습니다.

다음은 로그의 예입니다.

1.1.1.1 - - [05/Feb/2021:11:19:48 +0000] "GET /images.php?id=bXlzcWwgLS11c2VyPWFuZ2VscyAtLXBhc3N3b3JkPXNjb690ZXJzCg== HTTP/1.1" 200 31 "-" "curl/7.58.0"

저는 "bXlzcWwg"를 일치시키고 싶습니다. 그 이유는 이것이 일관성이 있고 이와 비슷하게 보일 것이라고 믿기 때문입니다.

^<HOST>.*bXlzcWwg

테스트를 실행하면 항목이 괜찮은 것 같지만 오류가 발생합니다.

sudo fail2ban-regex "^<HOST>.*bXlzcWwg" /var/log/nginx/access.log 

Running tests
=============

Use   failregex file : /var/log/nginx/access.log
Wrong config file: File contains no section headers.
file: '/var/log/nginx/access.log', line: 1
'192.168.6.254 - - [05/Feb/2021:10:54:55 +0000] "GET / HTTP/1.1" 200 241 "-" "curl/7.58.0"\n'
ERROR: failed to load filter /var/log/nginx/access.log

테스트에서 날짜 형식을 지원하는 것으로 알고 있습니다.

sudo failure2ban - 정규식 "05/2월/2021:11:33:25 +0000"

Running tests
=============

Use   failregex line : <HOST>
Use      single line : 05/Feb/2021:11:33:25 +0000


    Results
    =======
    Failregex: 0 total
    Ignoreregex: 0 total
    Date template hits:
    |- [# of hits] date format
    |  [1] {^LN-BEG}Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
    `-
    Lines: 1 lines, 0 ignored, 0 matched, 1 missed
    [processed in 0.01 sec]
    |- Missed line(s):
    |  05/Feb/2021:11:33:25 +0000

답변1

sudo fail2ban-regex /var/log/nginx/access.log "^<HOST>.*bXlzcWwg"

Regex and log options were reversed..

Running tests
=============

Use   failregex line : ^<HOST>.*bXlzcWwg
Use         log file : /var/log/nginx/access.log
Use         encoding : UTF-8


Results
=======

Failregex: 268 total
|-  #) [# of hits] regular expression
|   1) [268] ^<HOST>.*bXlzcWwg
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [841] Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
`-

Lines: 841 lines, 0 ignored, 268 matched, 573 missed
[processed in 0.06 sec]

Missed line(s): too many to print.  Use --print-all-missed to print all 573 lines

이 기사는 다른 사람이 벽에 머리를 부딪히는 데 도움이 될 수 있습니다.

관련 정보