iptables의 POSTROUTING 체인에는 로그 항목이 하나만 있습니다.

iptables의 POSTROUTING 체인에는 로그 항목이 하나만 있습니다.

내 테이블과 체인 iptables규칙은 다음과 같습니다.natPOSTROUTING

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning prefix " packet-pre-snat"
MASQUERADE  all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere             LOG level warning prefix " packet-post-snat"

호스트 간에 HTTP 요청을 보낸 다음 로그를 살펴보면 항목이 하나만 표시됩니다.

Mar 15 08:41:55 vpn-instance5 kernel: [  385.657182]  packet-pre-snatIN= OUT=ens5 SRC=10.132.0.2 DST=10.0.0.24 LEN=60 TOS=0x00 PREC=0x00 TTL=61 ID=40 DF PROTO=TCP SPT=53896 DPT=443 WINDOW=65320 RES=0x00 SYN URGP=0 

왜 기사가 하나만 보이나요?

  1. TCP 연결을 설정하기 위해 교환되는 패킷이 많기 때문에 적어도 일부 항목이 있을 것으로 예상됩니다.
  2. Snet 이전 로그 항목이 표시됩니다. snat 이후 항목을 볼 수 없는 이유(iptables의 세 번째 규칙)

답변1

MASQUERADE는 종료 대상이고 LOG는 종료되지 않는 대상이기 때문에 세 번째 규칙은 절대 실행되지 않으므로 post-snat 항목이 표시되지 않습니다.

pre-snat LOG 규칙이 활성화되면 iptables는 체인의 규칙 처리를 계속하여 MASQUERADE 규칙으로 이동하고, MASQUERADE 규칙이 활성화되면 iptables는 체인의 규칙 처리를 중지하므로 아래의 snat 후 LOG 규칙은 다음과 같습니다. 수신된 모든 패킷은 처리되지 않으므로 아무 것도 기록되지 않습니다.

대상 종료: 대상 종료는 체인 내 평가를 종료하고 제어권을 netfilter 후크로 반환하는 작업을 수행합니다. 남은 것이 있으면 다음 체인으로 이동합니다.

비종료 대상: 비종료 대상은 작업을 수행하고 체인 내에서 평가를 계속합니다.

관련 정보