
라우터에서 PC로 포트를 전달하는 방법을 검색하는 데 하루를 보냈지만 성공하지 못했습니다. 그리고 지금은 리드가 부족하고... 좌절했습니다. 설명과 가능한 해결 방법이 포함된 많은 페이지를 보았지만 왠지 정답이 보이지 않습니다. 따라서 이것이 반복되는 질문이라면 변명하자면, 저는 그렇게 생각하지 않습니다.
제가 하려고 하는 것은 다음과 같습니다. 직장에 있을 때 집에 있는 PC에 액세스하고 싶습니다. 이를 위해 ddns 서비스를 사용합니다.
작동하는 일부 시나리오와 작동하지 않는 일부 시나리오: 이것이 나의 '표준' 구성입니다.
저는 데스크탑과 노트북 두 대의 PC를 가지고 있습니다. 둘 다 SSH 서버(bitvise)와 SSH 클라이언트(PuTTY)가 있습니다. 데스크톱은 Windows 10을 실행하고 노트북은 Windows 7을 실행하고 있습니다. 데스크톱에서 노트북으로 또는 그 반대로 SSH 연결을 만들 수 있습니다. 나에게 포트 22는 두 컴퓨터 모두에서 열려 있습니다. 오른쪽?
ISP
|
ZyXEL VMG8324-B10A (forward port 22 to 192.168.1.105)
| .1 (192.168.1.x)
|
+- .105 PC (desktop, W10, SSH server on port 22)
|
+- .107 PC (laptop, W7, SSH server on port 22)
ddns 서비스를 사용하면 홈 네트워크에 연결할 수 있습니다. 포트 80을 연결하려고 하면 라우터에 대한 로그인 화면만 표시되며 아무런 문제가 없습니다. 포트 8080에 대해 구성된 두 번째 라우터와 이 두 번째 서버에 포트 8080을 전달하는 원래 서버를 사용하여 시도하기도 했습니다. 괜찮아요.
이것이 그 설정의 모습입니다.
ISP
|
ZyXEL VMG8324-B10A (forward port 8080 to 192.168.1.2)
| .1 (192.168.1.x)
|
| .2
LinkSys E3000 (configuration available on port 8080)
| .1 (10.233.1.x)
ddns 공급자를 통해 LinkSys 구성(포트 8080)에 연결하는 데 성공했습니다. 거기에는 문제가 없습니다. 오른쪽?
앞서 말했듯이 192.168.1.105 SSH 클라이언트와 192.168.1.107 SSH 서버 간의 연결을 설정하고 192.168.1.107 SSH 클라이언트와 192.168.1.105 SSH 서버 간의 연결을 설정할 수 있습니다.
하지만 ddns를 통해 SSH 서버에 연결할 수 없습니다.
이제 ZyXEL 및 LinkSys E3000(포워딩 포트 8080 작동)에 대한 구성 페이지(포트 80)를 볼 수 있습니다. 포트 22에서는 왜 작동하지 않습니까?
전달을 위한 ZyXEL의 규칙은 다음과 같습니다.
# Status Name WAN WAN_IP ServerIP TriggerStart End TranslationStart End Protocol
1 active SSH wan - 192.168.1.105 22 22 22 22 TCP/UDP
2 active http8080 wan - 192.168.1.105 8080 8080 8080 8080 TCP/UDP
여기에는 이상한 것이 없습니다. 그리고 PC와 노트북 사이의 SSH 통신이 가능하며 이상한 점은 없습니다. ddns에서 PC로의 통신을 어디서 찾아야 합니까? 내가 무엇을 잊었나요?
어떤 제안이라도 환영합니다!
편집: 2016년 9월 5일.
문제 해결됨! 아래 도움말 양식을 통해 일부 구성 문제를 해결할 수 있었고 몇 분 전에 Android에서 PC로 RDC를 이동할 수 있었습니다. 멋진!
답변1
네트워크 내부에 있다고 썼는데 다음과 같은 일이 발생합니다.
ddns 서비스를 사용하면 홈 네트워크에 연결할 수 있습니다. 포트 80에 연결하려고 하면 라우터의 로그인 화면만 나타납니다.
이는 라우터가 NAT 루프백을 지원하지 않음을 의미합니다. 포트 전달을 올바르게 테스트하려면 로컬 네트워크 외부에 있어야 합니다. 예를 들어 모바일 광대역 기능이 있는 휴대폰을 사용하여 테스트할 수 있습니다.
Ping은 대부분의 소비자급 라우터에서 기본적으로 필터링됩니다. 물론 그것은 모호함을 통한 보안입니다. 또한 문제 진단이 불필요하게 어려워지므로 해당 옵션을 비활성화하면 됩니다.
또한:
라우터의 내부 소프트웨어도 제대로 작동하지 않습니다. 외부 IP 주소를 탐색하면 웹 인터페이스가 열립니다. 이것은 매우 위험합니다! 내부 네트워크 구조를 알지 못한 채 공격자는 크로스 사이트 스크립팅 등을 통해 라우터를 제어할 수 있습니다.
답변2
"데스크톱에서 노트북으로 또는 그 반대로 SSH 연결을 만들 수 있는데, 이는 포트 22가 두 컴퓨터 모두에 열려 있다는 것을 의미합니다. 그렇죠?"
예. 이는 SSH 서버가 실행 중이고 (두 시스템 모두에서) 소프트웨어 기반 방화벽이 해당 트래픽을 차단하지 않음을 나타냅니다.
이는 다른 네트워크에서 SSH로 연결할 수 있다는 의미는 아닙니다. Windows 방화벽에는 네트워크가 "개인", "공용" 또는 "게스트"로 표시되는지 여부에 따라 다른 규칙이 적용될 수 있습니다. 따라서 소프트웨어 방화벽이 하나의 연결을 허용한다고 해서 다른 연결이 작동한다는 의미는 아닙니다. 이것이 문제의 원인일 가능성이 높다고 말하는 것은 아니지만 만약 그렇다면 그것에 대해 생각하지 않으면 감지하기가 매우 까다로울 수 있습니다.
또한 "개방형 포트"가 무엇인지 이해했는지 확인하겠습니다. 우리는 TCP 포트 번호와 UDP 포트 번호를 참조하고 있습니다. 이러한 "포트"는 단순히 숫자입니다. "포트"가 열려 있으면 해당 포트에 연결할 수 있다는 의미입니다.
따라서 누군가가 집의 IP 주소로 SSH 요청을 보내려고 하면 ISP는 해당 트래픽을 건물의 라우터로 성실하게 전달합니다. 결과적으로 연결이 성공하면 포트가 열린 것입니다.
이제 라우터가 포트를 열어두는 방식으로 해당 트래픽을 처리할 수 있는 두 가지 방법이 있습니다.
그 방법 중 하나는 라우터가 해당 포트에 응답하는 프로그램을 실행하는 것입니다. 따라서 포트 22의 경우 일반적으로 라우터가 SSH 서버를 실행한다는 의미입니다. (그리고 포트 80의 경우 일반적으로 라우터가 "웹 서버"라고 부르는 HTTP 서버를 실행하고 있음을 의미합니다.)
또 다른 가능한 접근 방식은 라우터가 트래픽을 다른 장치로 전달하는 것입니다. 이는 일반적으로 다른 서브넷의 장치로 트래픽을 전송하여 수행됩니다. 장치가 이 작업을 수행하면 트래픽이 "라우팅"됩니다. 이것이 바로 우리가 이러한 것들을 종종 "라우터"라고 부르는 이유입니다.
두 번째 접근 방식이 작동하려면 라우터가 트래픽을 보낼 시스템을 알아야 합니다. 이는 "포트 전달"이라는 프로세스를 사용하여 수행할 수 있습니다. 실제로 관련된 모든 "포트 전달"은 라우터에 트래픽이 도착할 것으로 예상되는 포트 번호와 트래픽이 어떤 시스템으로 가는지 알려주는 것입니다.
이제 라우터 구성을 확인하면 "포트 전달" 섹션이 비어 있음을 알 수 있습니다. 그렇다면 이 경우 SSH를 어떻게 라우팅할 수 있습니까? 많은 라우터에는 "DMZ"로 축약되는 "비무장지대"라는 구성 섹션이 있습니다. 이 DMZ가 작동하는 방식은 실제로 포트 포워딩에 대한 다소 특별한 규칙입니다. 라우터가 사용할 컴퓨터를 지정하면 "포트 전달" 섹션에 더 구체적인 규칙이 지정되어 있지 않는 한 라우터는 모든 포트를 해당 컴퓨터로 보냅니다. 대부분의 라우터는 일반적으로 DMZ를 포트 전달 섹션에 배치하지 않는 것 같습니다. 아마도 DMZ 구성으로 인해 라우터가 해당 포트 이외의 IP 트래픽을 전달할 수 있기 때문일 것입니다.
일반적으로 포트 22에서 들어오는 트래픽에 대해 한 가지 작업만 수행할 수 있습니다. 알겠습니다. 예를 들어 시애틀 사무실의 트래픽은 노트북으로 이동하고 도쿄의 트래픽은 데스크탑. 그러나 이러한 복잡한 설정은 일반적이지 않습니다. 훨씬 더 일반적인 방법은 포트 전달이 다른 포트(예: 2222)를 다른 컴퓨터로 보내고 해당 컴퓨터가 비표준 포트에서 수신하도록 하는 것입니다.
(또는 라우터가 일부 변환을 수행하여 포트 2222에서 들어오는 트래픽이 다른 시스템의 표준 포트 22로 리디렉션됩니다. 그러나 트래픽을 수신하는 시스템은 포트 2222가 사용되었다는 사실조차 알 필요가 없습니다. 이러한 정보를 숨길 수 있습니다. 로그를 덜 유용하게 만들면 라우터가 이러한 변환을 수행한다는 점을 기억해야 합니다. 대신 포트 2222를 듣는 것보다 상황이 더 명확해지는 경우가 많습니다.
ICMP(ping 및 다중 경로 추적 구현에 사용됨)는 TCP 포트나 UDP 포트를 사용하지 않습니다. (ICMP는 IP 위에 위치합니다. 그러나 IP가 OSI 네트워킹 모델의 "계층 3"을 사용하더라도 ICMP는 실제로 OSI 모델의 "계층 4"에 있는 프로토콜로 적합하지 않습니다. "레이어 4" 프로토콜을 구별하는 경향이 있는 일반적인 대화 추적 기능입니다.)
이제 라우터에서 포트 22를 열어도 두 시스템 모두 SSH 트래픽을 얻는 데 반드시 도움이 되는 것은 아니라는 것을 알 수 있습니다.
귀하의 ZyXEL에는 두 개의 IPv4 주소가 있을 가능성이 높다는 점을 이해하십시오(귀하의 인터넷이 IPv4를 사용한다고 가정). 하나는 192.168.1.1입니다. 해당 주소는 에 나열된 주소이므로 알려주는 것이 안전합니다.RFC 1918. 다른 하나는 공개 주소입니다. DynDNS를 사용하기 때문에 주소가 변경된 것 같습니다. 그 주소는 알려주지 마세요. (대화의 경우 "203.0.113."으로 시작하는 것처럼 가장할 수 있습니다. 이는 실제로 예제/문서용으로 예약된 주소 집합입니다.RFC 5735 5페이지.)
동적 DNS를 사용하지 않고 ISP로부터 고정 IP를 받으면 더 쉽게 시간을 보낼 수 있습니다. 제가 있는 지역(미국)에는 요청 시 고정 IP(고객에게)를 무료로 제공할 수 있는 ISP 지역이 있습니다. 그들은 귀하에게 비용을 청구할 수도 있습니다(그렇다면 귀하는 8개의 블록인 /29의 가격이 얼마인지 물어볼 수도 있습니다. 그 중 5개는 일반적으로 고객이 사용할 수 있습니다). 이는 동적 DNS 경로가 작동하지 않는다는 의미는 아니지만 고려할 다른 옵션을 던지는 것뿐입니다.
ddns 서비스를 사용하면 홈 네트워크에 연결할 수 있습니다. 포트 80을 연결하려고 하면 라우터에 대한 로그인 화면만 표시되며 아무런 문제가 없습니다.
80번 포트에 연결할 때 어떤 IP 주소를 사용하는지 말씀하지 않으셨는데요. 그런데 DDNS 사용에 대해 말씀하신 직후에 말씀하셨으니, 공인 IP 주소를 사용한다는 말씀으로 들리네요. 실제로 그렇다면 마지막 문단은다니엘 B의 답변매우 유효한 경고입니다. 소비자 등급 라우터는 웹 인터페이스에 대한 보안이 충분하지 않은 것으로 악명 높으므로 유선 LAN 연결을 통해서만 웹 인터페이스에 액세스할 수 있도록 지정하는 옵션을 찾으십시오. (인터넷 연결이나 Wi-Fi 연결을 모두 신뢰하지 마세요.)