포트 스캔을 감지하고 기록하기 위해 다음 iptables 명령을 실행합니다.
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on FORWARD: "
이것은 훌륭하게 작동합니다! 그러나 모든 65535 포트에 대해 포트 스캔을 실행했을 때 로그 파일이 33MB 증가했습니다. 이는 iptables가 20번째 새 포트 연결 이후에 한 번 기록되고 그 이후에는 다른 모든 연결이 기록되기 때문입니다.
처음 20번의 연결 이후에만 또는 20번의 연결이 이루어질 때마다 기록하려면 어떤 유형의 명령을 실행해야 합니까?
답변1
나는 방법을 알아냈다:
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "Port Scan on FORWARD: "
기본적으로 규칙이 처음 적중된 후 1분으로 제한하고 있습니다.