더 이상 갈 수 없기 때문에 누군가 나를 도울 수 있기를 바랍니다.
나는 다음과 같은 설정을 가지고 있습니다 :
시스템 1: PC Windows(192.168.240.2) 시스템 2: PC Ubuntu(192.168.240.3)
Ubuntu 시스템에서 VPN 공급자에 대한 SSH 연결을 열었습니다.
Ubuntu 시스템의 로컬 포트는 5080이고 VPN 공급자의 원격 포트는 3128(http 프록시)입니다.
ssh -N -oUserKnownHostsFile=perfect_privacy_known_hosts -L 5080:127.0.0.1:3128 -v[이메일 보호됨]
Ubuntu 시스템에서 Firefox와 Foxy Proxy를 사용하고 localhost:5080에 연결하면 트래픽이 SSL 터널을 통해 VPN 공급자로 이동하고 모든 것이 잘 작동합니다.
이제 Ubuntu 클라이언트를 통해 Windows 클라이언트에서 VPN 공급자에 연결하고 싶습니다. 그래서 저는 똑같은 일을 했습니다. Window 클라이언트에서 Ubuntu 클라이언트의 IP 주소 192.168.240.3과 포트 5080을 의심스러운 프록시에 넣었습니다. 하지만 이것은 작동하지 않습니다. (우분투 클라이언트의 ssh 터널이 192.168.240.3 대신 localhost를 수신하기 때문에 생각합니다)
작동하게 하려면 어떻게 해야 합니까?
안부 인사 상구르
답변1
이를 수행하는 한 가지 방법이 있습니다.
또한 추가
ExitOnForwardFailure=yes
옵션ssh
... 실수로 둘 이상을 유지하는 것을 방지합니다 . 그럼에도 불구하고, 포트를 가장 먼저 열 수 있는 사람만이 전달된 포트를 처리할 수 있습니다.ssh
더 이상 청취에 127.0.0.1을 사용하지 않도록 명령을 변경하십시오 .아니면 192.168.240.3을 들어보세요
...이 선택적 IP 주소를
-L
범위. 이는 Firefox 프록시를 127.0.0.1:5080 대신 192.168.240.3:5080으로 업데이트해야 함을 의미합니다.ssh -N -o ExitOnForwardFailure=yes -o UserKnownHostsFile=perfect_privacy_known_hosts -L 192.168.240.3:5080:127.0.0.1:3128 -v [email protected]
또는 0.0.0.0을 들어보세요
INADDR_ANY
... 특히 Ubuntu 호스트에 동적 IP 주소가 있고 알려진 DNS가 없는 경우 Firefox 프록시 설정 변경을 방지하려면 IPv4 와일드카드 주소에 바인딩하세요.ssh -N -o ExitOnForwardFailure=yes -o UserKnownHostsFile=perfect_privacy_known_hosts -L 0.0.0.0:5080:127.0.0.1:3128 -v [email protected]
참고: 이
-g
옵션(예:-o GatewayPorts=yes
)는 다음에 바인딩된다는 점을 제외하면 위와 동일한 효과를 갖습니다.in6addr_any(::
) 주소이므로 IPv6 방화벽이 없어도 IPv6 액세스가 제한되지 않습니다.-g
이 방법은 피하는 것이 가장 좋습니다.
선택사항: 제한된 액세스 사용iptables. 필요하지 않으면 완전히 생략할 수 있습니다.
OP가 추가되었으므로iptables또한 태그는 호스트 자체와 192.168.240.2만 이 포트에 액세스하도록 허용합니다. OP가 이를 요청하지 않았기 때문에 (거의) 다른 액세스에는 영향을 미치지 않으며 이는 실제로 주제에서 벗어나기 시작합니다.
지금은 하나도 없을까 고려 중이야iptables(UFW/방화벽도 아님)이 제자리에 있습니다. 제공된 도구 업데이트를 고려하세요.iptables규칙(해당 도구가 있는 경우) 아래 규칙은 먼저 작동하도록 해야 하므로 가능한 방화벽 도구 앞에 추가된 규칙보다 먼저 추가되도록 허용하는
-I
대신 + 숫자(오름차순을 유지하기 위해)를 사용하고 있지만-A
시작 시 자동 설정에는 별로 도움이 되지 않습니다. 위로.iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -I INPUT 2 -i lo -j ACCEPT iptables -I INPUT 3 -m conntrack --ctstate INVALID -j DROP iptables -I INPUT 4 -p tcp -s 192.168.240.2 --dport 5080 -j ACCEPT iptables -I INPUT 5 -p tcp --dport 5080 -j REJECT --reject-with tcp-reset
이렇게 하면 이전 연결과 호스트 자체의 모든 연결이 계속 허용되고 192.168.240.2에서 포트 5080에 대한 액세스만 허용됩니다.
참고: 이는 규칙
... INVALID -j DROP
이 있는 경우 필수입니다(이 항목 참조).REJECT
범죄기술적인 세부 사항을 알아보세요.)