Linux에 SSH 터널이 설정되어 있고 이를 통해 모든 네트워크 트래픽을 라우팅하고 싶습니다. 단, Tor도 실행 중이고 Tor 트래픽이 SSH 터널을 통과하는 것을 원하지 않습니다. 다음을 사용하여 SSH 터널을 통해 모든 트래픽을 라우팅할 수 있습니다 redsocks
(SSH가 SOCKS 프록시를 실행하도록 하고 을 실행한 후 모든 트래픽을 로 리디렉션하는 규칙 redsocks
을 사용하므로 모든 트래픽이 터널을 통과합니다).iptables
redsocks
그러나 Tor가 터널을 피하고 직접 연결하도록 하는 방법을 모르겠습니다... 예전에는 이에 딱 맞는 옵션이 iptables
있었지만 제대로 구현되지 않았기 때문에 제거되었습니다.--pid-owner
그렇다면 지금 가장 좋은 방법은 무엇입니까? (SSH 터널 접근 방식은 고정되어 있습니다. 다른 종류의 VPN으로 전환할 수 없습니다.)
답변1
tor
실행 중인 동일한 시스템에서 실행하세요redsocks
.tor
원격 시스템의 양말 포트 9050 에 대해 예외를 만드십시오 .iptables
이를 허용하는 등의 규칙을 두십시오.- Tor를 사용하려면 localhost 대신 {remote system IP}:9050에 연결하도록 브라우저에 지시하세요.
- 로컬에서도 실행하는 경우
privoxy
원격 시스템에서도 실행하는 것이 좋습니다.
또 다른 방법은 특정 포트를 다른 로컬 프록시 서버로 전달할 수 있는 다른 SOCKS 프록시를 사용하는 것입니다. 내 생각에는 squid
당신이 이것을 할 수 있다고 생각합니다.
답변2
iptables 옵션은 일치 --uid-owner
의 일부 -m owner
이므로 찾는 데 많은 어려움을 겪었을 수 있습니다.
다음과 같은 규칙이 작동합니다.
-A OUTPUT -m owner --uid-owner 998 -m conntrack --ctstate NEW -j ACCEPT
여기서 998은 대신 Tor의 UID입니다. 그리고 이를 기존 방화벽에 적용합니다.