나는 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 커널의 관련 소스 코드 부분.