다른 컴퓨터의 redsocks + 양말 서버

다른 컴퓨터의 redsocks + 양말 서버

나는 다음과 같은 설정을 가지고 있습니다 :

  • 양말 서버로 사용할 수 있도록 ssh -D를 실행하는 Host-X(192.168.1.100)입니다.
  • Host-X로 구성된 redsock을 양말로 실행하는 Host-Y(192.168.1.101).

다른 컴퓨터와 함께 동일한 네트워크에 있습니다. redsocks를 활용하기 위해 일부 컴퓨터에서 Host-Y를 게이트웨이로 사용하고 싶습니다. Host-Y의 IP 전달이 활성화되었습니다.

이것은 redsocks 구성입니다.

base {
    log_info = on;
    log = "file:/var/log/redsocks.log";
    daemon = on;
    redirector = iptables;
}
redsocks {
    local_ip = 0.0.0.0;
    local_port = 2001;
    ip = 192.168.1.100;
    port = 2000;
    type = socks5;
}

내 iptables 규칙은 다음과 같습니다.

iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS

로그에서 Host-Y의 redsocks로 들어오는 트래픽을 볼 수 있지만 Host-Y를 게이트웨이로 사용하는 컴퓨터에서는 인터넷을 검색할 수 없습니다. 분명히 몇 가지 iptables 규칙이 누락되어 있습니다. redsocks 출력 트래픽을 양말 서버로 보내는 규칙인 것 같습니다. 누가 도와줄 수 있나요?

감사합니다!

답변1

마지막 규칙을 첫 번째 규칙으로 설정하면 모든 것이 올바르게 작동하는 것 같습니다. 따라서 해결책은 다음 iptables 규칙을 사용하는 것입니다.

iptables -t nat -N REDSOCKS
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001

관련 정보