네트워크 네임스페이스를 통한 포트 전달 양말5 프록시

네트워크 네임스페이스를 통한 포트 전달 양말5 프록시

마침내 작동하는 netns veth openvpn 연결을 설정하고 systemd 서비스 파일을 재정의하여 openvpn이 netns 싱글 샷 서비스와 openvpn 서비스의 토르에 의존하도록 했습니다. 적어도 로그로 판단하면 Tor는 작동하지만 액세스할 수 없습니다. 내 현재 netns-vpn.service파일은 다음과 같습니다

# netns
ExecStartPre=-ip netns delete openvpn
ExecStartPre= ip netns add openvpn

# links
ExecStartPre=ip link add vpn0 type veth peer name vpn1
ExecStartPre=ip link set vpn1 netns openvpn

# set links and localhost for vpn
ExecStartPre=ip            link set dev vpn0 up
ExecStartPre=ip -n openvpn link set dev   lo up
ExecStartPre=ip -n openvpn link set dev vpn1 up

# assign ips to them, and loop traffic from vpn1 to vpn0
ExecStartPre=ip            addr  add 10.0.0.0/24 dev vpn0
ExecStartPre=ip -n openvpn addr  add 10.0.0.1/24 dev vpn1
ExecStartPre=ip -n openvpn route add default via 10.0.0.0

# port forwarding
ExecStartPre=iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9049 -j DNAT --to-destination 10.0.0.1:9049
ExecStartPre=iptables -t nat -A PREROUTING -p udp -i eth0 --dport 9049 -j DNAT --to-destination 10.0.0.1:9049
ExecStartPre=iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 9049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ExecStartPre=iptables -A FORWARD -p udp -d 10.0.0.1 --dport 9049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# packet forwarding from eth0 to vpn0 and back
ExecStartPre=iptables -A FORWARD -i eth0 -o vpn0 -j ACCEPT
ExecStartPre=iptables -A FORWARD -o eth0 -i vpn0 -j ACCEPT

# idk
ExecStartPre=iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

포트 전달 부분은 양말5 프록시에서 작동하지 않습니다. 내가 수집한 것에서는 필터를 사용해야 -A OUTPUT하지만 이를 이해하기 위한 네트워크 네임스페이스 및 양말5 프록시가 포함된 예를 찾을 수 없습니다. 이것은 나에게 모두 새로운 것입니다. Tcp 전달은 Python http.server로 테스트되어 작동합니다. UDP에서도 마찬가지라고 생각합니다. 저는 socat네임스페이스 간 솔루션이나 다른 프록시를 찾고 있지 않습니다 .

관련 정보