
나는 뛰고있어 Debian 8
. 모든 패킷을 가로채려고 하고 있으며 현재 iptables
다음을 위해 사용하고 있습니다.
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-port 5000
이는 작동하는 것처럼 보이지만 패킷에서 원래 대상 포트를 얻을 가능성을 제거합니다.
내가 읽은 TPROXY
것은 NAT
.
REDIRECT
나는 이것으로 바꾸려고 노력했습니다 :
iptables -t mangle -A PREROUTING -p tcp -j TPROXY --tproxy-mark 0x1/0x1 --on-port 5000
하지만 그렇게 할 때 내 서비스의 어떤 패킷도 가로채지 않습니다...
답변1
커널 트리의 Documentation/networking/tproxy.txt에는 다음 내용이 언급되어 있습니다.
'TPROXY' 대상은 NAT에 의존하지 않고 유사한 기능을 제공합니다. 위의 iptables 규칙 세트에 다음과 같은 규칙을 추가하기만 하면 됩니다.
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY \ --tproxy-mark 0x1/0x1 --on-port 50080
이것이 작동하려면 청취 소켓에 대해 (SOL_IP, IP_TRANSPARENT)를 활성화하도록 프록시를 수정해야 합니다.
앱의 청취 소켓에 위에서 언급한 옵션을 설정하셨나요?
또한 위 문서에서는 패킷을 로컬로 전달하려면 적절한 IP 라우팅 규칙과 테이블을 추가해야 한다고 언급하고 있습니다.