세 번째 컴퓨터없이 NAT와 방화벽 뒤에있는 두 대의 컴퓨터를 ssh하는 방법


9

집에서 리눅스 박스에 ssh하려고합니다. 내 집은 기숙사 스타일의 환경입니다-아치 리눅스를 실행하는 개인용 랩톱이있는 NAT 및 방화벽. 내 작품은 회사 스타일의 Windows 7-NAT 및 프록시 방화벽이며 관리자 권한이 없습니다.

두 개의 실행중인 Team Viewer 휴대용을 연결할 수 있습니다. 그러나 이것은 내가 실제로 찾고있는 것과 맞지 않습니다. 집에있는 Linux 상자에 SSH로 연결하여 Linux 상자가 완전히 로그 아웃 된 상태로 유지하려고합니다. 기본적으로 내가없는 경우 머리가 없습니다.

터널링에 대해 읽었지만 터널링을 올바르게 이해하면 두 컴퓨터 모두에 연결할 수있는 타사 서버가 필요합니다. 나는 그런 서버가 없으며 그런 것도 지불하고 싶지 않습니다.


직장에서 랩톱으로 SSH를 연결하는 간단하고 안전한 솔루션은 무엇입니까? 무료의 안전한 '제 3 서버'가 있습니까? Google을 위아래로 움직 였지만 점점 더 혼란스러워하는 것 같습니다.


2
라우터에 액세스 할 수 있습니까? 일반적으로 NAT 설정을 조정하여 내부 SSH 서버의 공용 IP 주소가 이와 같은 작업을 수행하도록해야합니다.
jmreicha

아니요, 라우터 액세스 권한이 없으며 NAT 설정을 조정할 수 없습니다.
user1026169

이 경우 팀 뷰어 옵션이 작동하지 않으면 세 번째 서버를 통해 프록시를 연결해야합니다.
jmreicha

ssh의 프록시로만 사용할 수있는 서버를 누가 제공합니까?
user1026169

클라우드 기반 VPS가 트릭을 수행 할 것이라고 확신합니다.
jmreicha

답변:


16

pwnat 는이 문제를 해결하는 오픈 소스 도구입니다. 그것은 말한다 :

pwnat는 NAT를 뒤에 클라이언트의 수와 별도의 NAT 뒤에 서버와 통신 할 수있는 도구입니다 어떤 포트 포워딩과 직접적으로 서로 통신하기 위해 어떤 라우터에 DMZ 설정. 서버는 연결을 시도하는 클라이언트에 대해 아무것도 알 필요가 없습니다.

중개인, 프록시, 타사, UPnP / STUN / ICE, 스푸핑 및 DNS 트릭이 없습니다.

더 중요한 것은 클라이언트가 원격 호스트의 호스트 또는 포트 또는 서버가 결정한 고정 호스트 및 포트에 연결할 수 있다는 것입니다.

pwnat는 이러한 종류의 연결을 설정합니다.

머신 A (IP : 192.168.1.3)-> NAT A (IP : 122.xxx)-> 인터넷-> NAT B (IP : 59.xxx)-> 머신 B (192.168.2.10)

pwnat는 Linux에만 배포되지만 PWNAT : Windows Complied Version 기사 에는 Windows 버전이 포함되어 있습니다 . 동일한 저자의 PWNAT : Example 도 참조하십시오 .

pwnat이 사용하는 방법은 믿을 수 없을 정도로 영리하지만 환경에서 작동한다는 보장은 없습니다.


1
참고 : pwnat는 작동하는 ICMP에 의존합니다. 특히 icmp echo 및 Time 초과 메시지입니다. ICMP는 상태 비 저장이므로 작동합니다.
shadowbq

나를 위해 작동하지 않습니다. NAT 라우터는 표준을 구현할만큼 똑똑하지도 않고의 작성자도 이해할만큼 똑똑하지 않습니다 pwnat. 영리함을 위해 여전히 +1.
Quantum

나는 또한 성공없이 pwnat를 시도했다. 그러나 구성에 문제가있을 수 있습니다. 도움을 줄 수있는 성공한 사람이 있습니까?
robguinness

5

개인적으로 터널링은 세 번째 서버를 가지고 있지 않더라도 최선의 선택이라고 생각합니다.

Amazon EC2는 프리 티어 요금 옵션을 제공하여 신규 고객이 1 년 동안 최대 750 시간 / 월 동안 Linux / Windows의 마이크로 인스턴스를 무료 로 실행할 수 있습니다. 나는 서비스를 직접 사용하지는 않았지만 필요할 때 가상 서버 만 실행하면 SSH 터널이 무료로 실행된다고 가정합니다. 비용을 지불 할만큼 저렴한 서비스를 찾을 수도 있습니까?

Hak5 는 터널링에 대한 좋은 소개를 주었다 (지속성 있음). EC2 인스턴스를 시작한 후 몇 분 안에 랩톱에 액세스 할 수 있도록 가상 서버에 연결을 시도하도록 CRON 트리거 스크립트를 설정할 수도 있습니다.


감사합니다. 일부 포럼의 도움을 받아 무료 VPS를 찾았습니다.
user1026169

1
또한 750 시간은 31.25 일입니다. 기본적으로 1 t2.micro년 동안 한 개의 인스턴스가 무료로 제공됩니다.
Attie

3

가장 좋은 방법은 가능하면 포트 전달을 설정하는 것이지만 캠퍼스에서 방화벽을 수행하고 포트 전달을 직접 수행 할 수없는 경우이 제안을 사용하십시오.

예, 무료 3 차 서버가 있으며 이미 TeamViewer를 사용하고 있습니다. TeamViewer를 서비스로 설치했는지 확인하십시오 (또는 Linux와 동등한 것이면 Windows 버전 만 사용합니다). 그런 다음 회사와 집에서 VPN 드라이버를 설치하십시오. 그런 다음 직장에서 VPN을 사용하여 연결할 수 있으며 가정용 컴퓨터의 IP 주소는 7.xxx입니다. 그런 다음 터미널 세션에 들어가려면 VPN 링크를 통해 SSH를 실행하십시오.

VPN 설치 옵션이 고급 설정에 있습니다. 여기에 이미지 설명을 입력하십시오

연결 유형에 대한 "VPN"옵션이 추가됩니다. 여기에 이미지 설명을 입력하십시오


1
자세한 도움말 및 스크린 샷에 대해 대단히 감사합니다. 그래도 TeamViewer 휴대용을 사용하고 있으며 관리자 권한이 없습니다. VPN 옵션이 회색으로 표시되어 사용할 수 없습니다.
user1026169

1

홈 라우터 / 방화벽에서 포트 포워딩 (포트 22)을 설정할 수 있어야합니다. 그런 다음 직장에서 집의 공용 IP 주소에 연결하십시오. 집에 고정 공용 IP가 없으면 dyndns와 같은 것을 사용할 수 있습니다.


서비스를 제공하는 네트워크로 인해 어느 컴퓨터에서도 포트 전달이 불가능합니다. IP 설정이 없지만 기기를 연결하는 데 사용할 수있는 포트가 없습니다.
user1026169

0

공용 XMPP / Tox 서버를 "제 3 서버"로 사용할 수 있습니다. 즉, 이러한 인스턴트 메시징 프로토콜을 전송 계층으로 사용하는 TuntoxPPPoAT (PPP over Any Transport) 와 같은 프로젝트가 있습니다 .

XMPP를 지원하는 PPPoAT를 시도했지만 PWNAT와 달리이 메커니즘은 실제로 효과적입니다.

이를 사용하려면 공용 서버에 두 개의 XMPP 계정이 필요합니다. 하나는 로그인하려는 서버용이고 다른 하나는 클라이언트 용입니다. 당신이 시작하면 pppoat다음 클라이언트 (적절한 구성 매개 변수를 모두)에, 서버에 즉시 예를 들어 같은 연결을 시작할 수 있습니다

ssh username@10.0.0.2

물론 직접 연결보다 속도가 느리며 속도는 선택한 XMPP 서버에 따라 다르지만 일반적인 콘솔 활동에서는 충분합니다.

보안과 관련하여 SSH는 이미 자체 암호화를 구현하므로 완전히 안전하지 않은 네트워크에서 작동 할 수 있으므로 SSH를 사용할 때 XMPP 기반 연결의 보안 여부는 실제로 관련이 없습니다.

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