fall2ban-regex가 작동해야 한다고 말하는데도 내 사용자 정의 fall2ban 감옥이 로드되지 않습니다.

fall2ban-regex가 작동해야 한다고 말하는데도 내 사용자 정의 fall2ban 감옥이 로드되지 않습니다.

내 서비스에 로그인하기 위해 사용자 정의 감옥과 필터를 Fail2ban에 작성했습니다. 로그 파일을 찾았 /var/log/motion/motion.log으며 로그인에 실패하면 다음 줄이 생성됩니다.

[0:ml1] [ALR] [STR] [Nov 02 11:42:59] handle_basic_auth: motion-stream - failed auth attempt from <ip>

내 감옥은 /etc/fail2ban/jail.local다음과 같습니다

[motion-auth]

enabled = true
port     = 8008
filter = motion-auth.conf
logpath  = /var/log/motion/motion.log
banaction = %(banaction_allports)s
maxretry = 3
findtime = 10800
bantime = 259200

내 명명된 필터는 다음 /etc/fail2ban/filter.d과 같습니다 motion-auth.conf.

[Definition]
failregex = \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: motion-stream - failed auth attempt from <HOST>

이것을 실행하면 fail2ban-regex /var/log/motion/motion.log /etc/fail2ban/filter.d/motion-auth.conf필터가 실제로 예상대로 실행되고 있다는 확인을 받습니다.

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

Use   failregex filter file : motion-auth, basedir: /etc/fail2ban
Use         log file : /var/log/motion/motion.log
Use         encoding : UTF-8


Results
=======

Failregex: 186 total
|-  #) [# of hits] regular expression
|   1) [186] \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: motion-stream - failed auth attempt from <HOST>
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [2640] (?:DAY )?MON Day %k:Minute:Second(?:\.Microseconds)?(?: ExYear)?
`-

Lines: 2929 lines, 0 ignored, 186 matched, 2743 missed
[processed in 1.06 sec]

하지만 새 필터를 추가하기 위해 Fail2ban을 다시 로드/다시 시작하려고 하면 다음과 같은 메시지가 나타납니다.

Found no accessible config files for 'filter.d/motion-auth.conf' under /etc/fail2ban
 Unable to read the filter 'motion-auth.conf'
 Errors in jail 'motion-auth'. Skipping...
OK

내가 뭘 잘못하고 있는지 아는 사람 있나요?

답변1

jam.conf에서 필터 라인은 파일 이름이 아닌 이름과 함께 사용해야 합니다. 이와 같이:

[motion-auth]
...
filter = motion-auth

관련 정보