제한적인 방화벽을 통해 OpenVPN을 사용하는 방법은 무엇입니까?


13

나는 현재 지나치게 제한적인 방화벽을 통한 연결을 위해 개인용 VPS에서 OpenVPN을 설정하려고 시도하고 있습니다. 아래에 언급 된 모든 설정은 방화벽을 적절히 연결하여 사용할 때 작동합니다.

나는 시도했다 :

  1. 표준 포트에서 실행되는 OpenVPN
  2. 포트 443에서 실행중인 OpenVPN
  3. OpenVPN에 액세스하고 DPI를 회피하기 위해 포트 443에서 실행되는 STunnel. 이것은 가장 성공적이며 연결을 강제로 종료하기 전에 ~ 10-20 초 동안 VPN을 통한 연결 및 인터넷 액세스를 허용합니다.

시도 할 수있는 다른 것이 있습니까?


1
친애하는 주님, VPN을 실행하지 못하도록 얼마나 "개인 VPS"제공 업체를 보유하고 있습니까? 또한 VPS를 OpenVPN 서버로 사용하려고하는지 또는 클라이언트로 하려는지 확실하지 않습니까?
allquixotic

웁스! 나는 더 분명 했어야했다. VPS 제공 업체는 Linode이며 확실히 차단하지 않습니다. ;) 문제는 인터넷 액세스가 방화벽이 심한 클라이언트 (내 랩톱)에서 VPN에 연결하고 있다는 것입니다.
RL Stine

1
일반적으로 VPN 솔루션은 당신이 암시 한 것처럼 상태 저장 패킷 검사를 수행하는 모든 것에 의해 상당히 쉽게 감지됩니다. 강력한 연결 끊김은 트래픽 분석 방법으로 인해 stunnel의 https 연결을보고 "1 분 정도 기다립니다. 표준 HTTP 요청 / 응답 연결은 그다지 좋지 않습니다!" 본질적으로 당신은 붙어 있습니다. 그래도 HTTPS 프록시를 시도 할 수 있습니다. 어쩌면 요청을 HTTP 본문 (SSL을 통해)으로 서블릿에 전달하고 요청을 전달하는 곳 ... o_O
allquixotic

3
회사 방화벽에 의해 구현 된 제한을 무시하면 회사 정책을 위반할 가능성이 있습니다. 방화벽 관리자에게 문제에 대해 문의하는 것이 좋습니다.
Ansgar Wiechers

답변:


11

일정 시간 후에 연결이 끊어지면 초당 바이트 유형의 제한을 나타내는 경우가 있습니다. VPN 연결 속도가 느려지는지 확인하십시오. 또한 UDP 시도 TCP에 대해 OpenVPN을 구성한 경우 (443 UDP는 차단 될 수 있지만 443 TCP는 감지되지 않을 수 있음).

SSL을 사용하는 잘 알려진 사이트를 방문하여 인증서를 확인하십시오. 그런 다음 집에서도 똑같이하십시오. 일치하지 않으면 사용자의 위치가 투명한 HTTPS SSL 프록시를 사용하고 실제로 HTTPS 트래픽을 볼 수 있습니다.

포트 443이 아닌 것이 그렇게 면밀히 감시되지 않을 수 있습니다. 22를 시도하십시오.

어리석은 소리가 들릴 수도 있지만 포트 80을 통해 시도해보십시오. 또한 트래픽이 HTTP 요청처럼 보이도록 사용자와 VPS간에 HTTP 터널을 설정하려고 할 수 있습니다.

미친 느낌이 든다면 요오드를 사용해보십시오 .


2
+1, 특히 요오드의 경우!
0xC0000022L

5

나는 왜 stunnel 방법이 그렇게 행동하는지 알고 있다고 생각합니다. stunnel 서버에 대해 "정적 경로"를 설정하기 때문입니다. 설명해 드리겠습니다. openvpn 서버에 연결하면 openvpn 패킷을 제외하고 라우팅 테이블이 변경되고 VPN을 통해 모든 패킷이 라우팅됩니다. 실제로 openvpn은 서버 IP 주소에 대한 경로를 추가합니다. 그러나 stunnel을 사용하여 openvpn 서버에 연결하면 openvpn을 루프백 인터페이스에 연결하고 VPN 외부로 서버에 대한 경로가 없으므로 stunnel 패킷은 서버로 이동하여 VPN으로 이동하고 VPN 패킷으로 이동합니다. 기절시키기 위해 :)

따라서 VPN (가정용 라우터) 외부로가는 서버 IP에 경로를 추가해야합니다.

그리고 방법 포트 443의 문제에 대해서는 아마도 SPI 또는 DPI를 사용하는 방화벽이 https (ssl) 패킷에서 다른 openvpn 패킷을 쉽게 만들 수 있다고 말합니다. 따라서 가장 좋은 방법은 stunnel을 사용하거나 방화벽이 SSL 패킷을 차단하는 경우 obfsproxy 또는 fteproxy를 사용하여 바이 패스하는 것이 좋습니다.

(나는 게시물이 오래되었다는 것을 알고 있지만 몇 주 동안 같은 문제에 대한 답을 찾고 있었으므로 이것에 대해 배운 것을 공유하고 싶었습니다)


이것은 질문에 대한 답변을 제공하지 않습니다. 작성자의 의견을 비판하거나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물 에 댓글 수 있으며 평판 이 충분 하면 게시물댓글 수 있습니다 .
Ramhound

3

Reza Askari의 답변은 세 번째 질문에 대한 답변이었습니다. 이것은 내 Linux 컴퓨터와 Android 모두에서 발생했습니다.

컴퓨터에서 OpenVPN에 연결하기 전에

sudo openvpn --config configFile.ovpn

OpenVPN 터널에서 stunnel 서버를 제거하는 규칙을 추가해야합니다.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

그런 다음 OpenVPN 서버에 연결하십시오. 완료되면 다음을 통해 해당 규칙을 제거 할 수 있습니다.

sudo /sbin/ip route del stunnel_ip

더 쉽게 잊어 버리지 않도록 규칙을 추가하고 OpenVPN을 실행하는 쉘 스크립트를 작성하십시오. OpenVPN이 종료되면 규칙이 삭제됩니다.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

Android에서는 "Arne Schwabe"의 "OpenVPN for Android"클라이언트 및 "Balint Kovacs"의 "SSLDroid"를 사용하십시오.

그런 다음 OpenVPN 클라이언트에서 stunnel을 통과하는 VPN 프로파일에서 "SSLDroid"를 제외하십시오.

나는 Reza의 답변을 찬성하거나 의견을 말하고 싶었지만이 명성 점수 규칙으로 인해 나를 막았습니다.


1

나는 그것을 시도하지 않았지만 (그렇지 않으면 lemme이 알고 있는지!) 443 이상의 ssh 터널링을 사용하여 샷을 제공하고 터널을 통해 OpenVPN을 실행하십시오. 계정이없는 있지만, 예를 들어 여기이 있다면 당신은 443에서 수신하도록 별도의 원격 호스트를해야 할 수도 있습니다 http://www.anonyproz.com/openvpnsshtunnel.pdf : 자신의 프록시 서비스 [편집자 주 사용하는 이 뒤로 기계 링크를 더 안전 할 수도 있지만] 또한 다음과 같습니다.

https://www.google.com/search?q=ssh%20tunnel%20openvpn .

또한 직원들이 인기를 끌 때 dice.com과 같은 구직 사이트에 대한 액세스를 차단했기 때문에이 방법을 프록시로 사용하는 사람들도 알고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.