iptables는 바이트 계산을 통해 포트 트래픽을 다른 포트로 전달합니다.

iptables는 바이트 계산을 통해 포트 트래픽을 다른 포트로 전달합니다.

질문

'redirect'한 포트에서 다른 포트로의 트래픽을 원합니다 . 하지만 해당 포트를 통해 통신할 때 사용되는 INPUTAND 바이트 수를 계산할 수 있어야 합니다.OUTPUT

반쯤 이해됨

iptables -t nat -A PREROUTING -p udp --dport 50000 -j REDIRECT --to-port 3478

솔루션은 모든 트래픽을 여기에 있는 모든 항목 50000으로 리디렉션하는데 문제가 없지만 포트를 통과하는 트래픽 3478은 셀 수 없습니다 . 이것은 중요한 질문입니다.INPUT & OUTPUT50000

현재 설정

firewall-cmd --zone=public --add-port=50000/udp;
iptables -I INPUT -p udp --dport 50000;
iptables -I OUTPUT -p udp --sport 50000;

INPUT이 설정을 사용하여 얼마나 많은 AND 데이터가 사용되는지 계산 OUTPUT하지만 이는 가 아닌 경우에만 작동합니다 'redirected'.

흐름?

Packet -> 50000(adds bytes to INPUT) -> 3478;
Packet <- 50000(adds bytes to OUTPUT) <- 3478

더 좋은 방법이 있다면 iptables제안을 받겠습니다.

답변1

다음이 필요합니다.

# Tag UDP packets of the "connection" with mark 50000
iptables -t mangle -A PREROUTING -p udp --dport 50000 -j CONNMARK --set-mark 50000

# Make the port redirection
iptables -t nat -A PREROUTING -p udp --dport 50000 -j REDIRECT --to-port 3478

# Count the bytes with mark 50000
iptables -m connmark -t mangle -A OUTPUT -p udp --sport 3478 --mark 50000

iptables -t mangle -nvL그러면 다음이 표시됩니다:

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    4   132 CONNMARK   udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:50000 CONNMARK set 0xc350
...
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    2    66            udp  --  *      *       0.0.0.0/0            0.0.0.0/0            connmark match  0xc350 udp spt:3478

설명하다:

  • 실제 패킷에 UDP 소스 포트 50000 네트워크 캡처가 표시 되더라도 -j REDIRECT포트 50000의 연결을 위해 나가는 모든 패킷은 일치 --sport 3478하지만 일치하지 않기 때문에 포트 50000에서 나가는 패킷을 일치시키는 규칙을 만들 수 없습니다. --sport 50000이것이 버그인지 예상된 동작인지 모르겠습니다(iptables 1.8.2(nf_tables)로 테스트)
  • 이 문제를 해결하기 위해 우리는 다음을 사용할 수 있습니다.CONNMARK표적PREROUTING 측에서 임의의 32비트 정수로 연결의 모든 패킷에 태그를 지정한 다음 동일한 태그를 다음과 결합합니다.코맥 모듈출력측에.

관련 정보