iptables 최근 모듈: 다음보다 오래된 항목 제거

iptables 최근 모듈: 다음보다 오래된 항목 제거

나는 iptables recent모듈을 사용하고 있습니다 :

-A INPUT -m recent --rsource --name PORTSCAN --set -j DROP

위의 줄은 문제의 IP 주소를 /proc/net/xt_recent/PORTSCAN.

n이제 이 목록을 주기적으로 확인하고(cron 작업) 몇 시간이 지난 항목을 삭제하는 방법을 찾고 있습니다 .

내가 사용하고 있는 xt_recent.ip_pkt_list_tot=1옵션 recent. 이것은 내가 패킷을 볼 때 그것을 한 번 이상 붙잡지 않는다는 것을 의미합니다. 나는 패킷을 마지막으로 본 시간만 보관합니다.

목록은 /proc/net/xt_recent/PORTSCAN다음과 같습니다.

src=185.242.5.46 ttl: 240 last_seen: 4312349727 oldest_pkt: 1 4312349727
src=184.100.29.188 ttl: 57 last_seen: 4312673918 oldest_pkt: 1 4312673918
src=184.157.25.107 ttl: 57 last_seen: 4312086204 oldest_pkt: 1 4312086204

n몇 시간 미만의 항목 만 남도록 이 목록을 주기적으로 "제거"하려면 어떻게 해야 합니까 ?

iptables이를 수행할 수 있는 방법이 있습니까 ? 아니면 일부 사용자 정의 스크립트를 사용하여 수행해야 합니까?

답변1

--reap이것이 바로 당신이 찾고 있는 것 같습니다 .iptables 확장 매뉴얼 페이지, 다음 부분에 관한 부분 recent:

--reap 이 옵션은 에서만 사용할 수 있습니다 --seconds. 이 옵션을 사용하면 마지막으로 지정된 시간(초)보다 오래된 항목이 지워집니다.

작동 방식은 다음과 같습니다.Linux 커널의 관련 소스 코드 부분.

관련 정보