
IP 블록이 아닌 모든 외부 연결을 포트에 기록하고 싶습니다. 단일 범위의 경우 규칙은 다음과 같습니다.
-A INPUT ! -s 10.20.0.0/16 -p tcp -m tcp --dport 8443 -m state --state NEW -j LOG --log-level 1 --log-prefix "New 8443 Connection"
논리적으로 아이디어는 또는 8443
에서 오는 포트에 대한 연결을 기록하지 않는 것입니다 . iptables에 대한 잘못된 논리로 문제를 공격하고 있습니까? iptables로도 가능합니까?10.20.0.0/16
10.30.0.0/16
이는 로그 항목 작성을 중단하려는 IP 범위가 아닌 샘플 IP 범위일 뿐입니다.
답변1
IPset을 사용할 수 있습니다.
-A INPUT -p tcp -m tcp --dport 8443 -m set ! --match-set OUR_IP4 src -j LOG
IPset은 별도의 도구(부팅 시 생성/복원 포함)를 사용하여 유지 관리해야 합니다.
서브체인을 사용할 수 있습니다:
-A INPUT -p tcp -m tcp --dport 8443 -j FOOSERVICE
-N FOOSERVICE
-A FOOSERVICE -s 10.20.0.0/16 -j RETURN
-A FOOSERVICE -s 10.30.0.0/16 -j RETURN
-A FOOSERVICE -j LOG --log-prefix "New connection to foo: "
-A FOOSERVICE -j RETURN
# optional; subchains always return at the end