iptables를 사용하여 적응형 방화벽을 작성하려고 하는데 최근 모듈이 어떻게 작동하는지 잘 모르겠습니다. 예를 들어http://blog.zioup.org/2008/iptables_recent/
내 iptables 조각:
...input stuff, established, etc...
-A INPUT -m conntrack --ctstate NEW -j limiter
... more input stuff...
# very end of chain, nothing matches. Likely unauthorized port
-A INPUT -m conntrack --ctstate NEW -m recent --name PORTSCAN --set
# limiter table
-A limiter -m recent --update --name PORTSCAN
-A limiter -m recent --rcheck --name PORTSCAN --hitcount 10 --seconds 300 -j LOG
이 설정이 작동합니다. /proc/net/xt_recent/PORTSCAN을 관찰하고 닫힌 포트에서 nmap을 실행하여 내 IP를 추가한 다음 포트 80(열림)에 연결을 시도하여 목록을 업데이트했습니다. 또한 열려 있는 포트에만 연결하면 목록에 추가되지 않습니다.
내 문제는 리미터 테이블의 두 행을 하나로 병합하려고 하면 더 이상 작동하지 않는다는 것입니다.
#-A limiter -m recent --update --name PORTSCAN
#-A limiter -m recent --rcheck --name PORTSCAN --hitcount 10 --seconds 300 -j LOG
-A limiter -m recent --update --name PORTSCAN --hitcount 10 --seconds 300 -j LOG
열린 포트가 닫힌 후 검색하면 목록이 업데이트되지 않습니다(단, 10패킷/300초 제한이 초과되면 기록됩니다).
내 이해는 업데이트된 행이 다른 두 행과 동일하다는 것입니다. 왜 안 돼?