IPTables로 인해 Fail2Ban과 충돌이 발생함

IPTables로 인해 Fail2Ban과 충돌이 발생함

OS: 우분투 서버 18.04

Fail2ban: v0.10.2

나는 Fail2ban 설치의 버그를 이해하려고 노력하고 있습니다. (나는 내가 만든 것을 믿습니다.) 다음을 사용하여 사전 정의된 목록으로 iptables를 채우는 cron 작업이 있습니다.

iptables -A INPUT -s <ip address> -j DROP
iptables -A INPUT -s <ip address> -j DROP
etc
etc

이 스크립트의 시작 부분에서 다음이 실행됩니다.

iptables -F INPUTINPUT 체인을 플러시합니다. 이 cron 작업은 악의적인 행위자를 동적으로 금지하기 위해 Fail2ban을 설치하기 전에 서버에 존재했습니다. 그러나 특정 IP가 이라는 알림을 많이 받기 시작했다는 것을 알았습니다 already banned. iptables cron 작업 실행을 중지했을 때 이 오류는 사라지고 아무런 문제 없이 실행되었습니다.

iptables -F INPUT내 질문은: Fail2ban이 계속 실행되는 동안 실행하면 어떤 종류의 충돌이 발생합니까 ? 금지된 IP가 해당 체인에 배치되므로 이 명령은 괜찮지 않습니까 f2b-<jail>, 아니면 오해하고 있습니까? 이 iptables 스크립트를 실행해야 하는 경우 Fail2ban 데이터베이스에 대해서도 작업(제거 등)을 수행해야 합니까?

감사합니다.

답변1

Fail2ban은 또한 각 개별 감옥에 대해 정의한 체인을 호출하기 위해 INPUT 체인에 규칙을 배치해야 합니다. 이를 제거하면 해당 규칙이 적용되지 않고 금지되어야 하는 IP 주소가 여전히 통과되며, Fail2ban은 해당 규칙이 이미 금지되었다고 경고합니다.

이와 같이 INPUT 체인을 플러시할 이유가 없어야 합니다. 대신 크론 작업은 자체 사용자 정의 체인을 생성하고 해당 사용자 정의 체인을 호출하는 규칙만 INPUT 체인에 추가해야 합니다. 더 좋은 점은 성능이 더 좋고 변경하고 싶을 때 원자적으로 교환할 수 있는 ipset을 사용해야 한다는 것입니다. (같은 이유로 Fail2ban에서는 ipset도 사용해야 합니다.)

관련 정보