수동 금지를 위해 Fail2ban에 대체 감옥 만들기

수동 금지를 위해 Fail2ban에 대체 감옥 만들기

정상적으로 실행되는 Fail2ban 인스턴스가 있습니다.

그러나 나는 때때로 로그를 수동으로 검사하고 표준 f2b 정의를 해결하는 시스템 프로브를 식별하는 것을 좋아합니다.

내가 찾고 있는 것은 오랫동안 지속될 감옥을 정의하는 방법이며 다음과 같은 명령으로 수동으로 사용할 수 있습니다.

fail2ban-client set $JAIL banip $IP

로그 파일에서 실제로 실행되지 않는 사용자 정의 감옥(또는 실제로 실행되지 않는 일부 조건이 있는 표준 감옥일 수도 있음)을 구성 파일에 지정하는 구문을 누군가 나에게 제공할 수 있고 수동으로 선언할 수 있습니까? 내가 원하는 것은 로그를 볼 때 개인적으로 식별한 수동 금지에 대해 더 긴 금지 시간을 갖는 것입니다.

답변1

이게 내가 한 일이야...

나는 이것을jail.local에 추가합니다:

[manban]
enabled  = true
filter   = manban
action   = iptables[name=HTTP, port="80,443,110,995,25,465,143,585,993,587,21,22", protocol=tcp]
logpath  = /var/log/manban.log
maxretry = 1
# 1 month
bantime  = 2592000
findtime = 3600

그런 다음 /etc/fail2ban/filter.d/manban.conf 파일을 추가했습니다.

[Definition]
failregex = ^\[\w{1,3}.\w{1,3}.\d{1,2}.\d{1,2}:\d{1,2}:\d{1,2} \d{1,4}. \[error] \[client.<HOST>].File does not exist:.{1,40}roundcube.{1,200}
ignoreregex =

다른 필터의 필터링 프로토콜을 복사했지만 존재하지 않는 파일을 가리킨 다음 더미 파일을 만들었습니다.

touch /var/log/manban.log

그런 다음 다음 명령을 실행합니다.

fail2ban-client reload

이제 한 달 동안 IP 주소를 수동으로 금지하려면 다음을 입력하십시오.

fail2ban-client set manban banip <IP>

이것은 효과가 있었습니다.

이제 일부 클라이언트는 Fail2ban 금지 시간을 "학습"하고 금지되지 않도록 시스템 프로브를 자동으로 조정합니다. 그러나 로그를 보면 이것이 시스템 프로브라는 것이 분명합니다. 차단 시간을 극도로 길게 설정하면 시스템을 망칠 수 있습니다. 또한 특정 기준과 일치하는 IP를 특수 금지 로그에 덤프하고 오랜 기간 동안 해당 IP를 실패2반 금지하도록 하는 스크립트를 작성할 수도 있습니다.

답변2

위 구성에서 오류가 발생합니다.

iptables v1.6.0: 80,443,110,995,25,465,143 지정된 포트/서비스가 잘못되었습니다.

여러 포트에 iptables를 적용하려면 다음과 같은 작업을 수행해야 합니다.iptables-멀티포트:

[manban]
enabled  = true
filter   = manban
action   = iptables-multiport[name=HTTP, port="80,443,110,995,25,465,220,585,587,8000,9600", protocol=tcp]
logpath  = /var/log/manban.log
maxretry = 1
# 1 month
bantime  = 2592000
findtime = 3600

이 구성은 작동하고 iptables 규칙 세트를 올바르게 업데이트합니다.

관련 정보