IPtables 위장에서 Src 포트를 제한하는 방법이 있습니까?

IPtables 위장에서 Src 포트를 제한하는 방법이 있습니까?

내 모든 노드의 iptables에 kube-proxy를 통해 다음과 같은 체인 설정이 있습니다.

Chain KUBE-POSTROUTING (1 references)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0            /* kubernetes service traffic requiring SNAT */ 

내 모든 노드는 공급자의 무상태/정적 방화벽 뒤에 있습니다. 다음 규칙 설정을 사용합니다.

tcp_established: &tcp_established
  name: tcp established
  ip_version: ipv4
  dst_port: '32768-65535'
  action: accept
  protocol: tcp
  tcp_flags: ack

이는 아웃바운드 트래픽의 역방향 연결을 보장하기 위해 포트 32768-65535 TCP/ACK에서만 어디에서든 트래픽이 허용된다는 의미입니다.

내 모든 노드(Ubuntu 16.04)에서 다음 시스템 설정이 설정됩니다.

cat /proc/sys/net/ipv4/ip_local_port_range
32768   60999

예를 들어 컬 및 http를 통해 원격 서버에 액세스하려고 하면 32768보다 낮은 소스 포트에서 들어오는 연결이 끊어집니다(TCP 스퓨리어스 재전송).

3   1.051525000 80→20092 [SYN, ACK] Seq=0 Ack=1 Win=64876 Len=0 MSS=1336 SACK_PERM=1 TSval=1259153497 TSecr=1768475026 WS=128   THETARGETIP THESOURCEIP TCP 74

4   2.079464000 [TCP Spurious Retransmission] 20092→80 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=1768476055 TSecr=0 WS=128 THESOURCEIP THETARGETIP TCP 74

iptables masquarde를 사용하여 소스 포트의 범위를 제한하도록 iptables, kube-proxy 및/또는 커널에 "알리는" 방법이 있습니까?

답변1

그만큼MASQUERADE 문서옵션 을 문서화합니다 --to-ports.

--to-ports 옵션은 나가는 패킷에 사용할 소스 포트를 설정하는 데 사용됩니다. ...

관련 정보