인터넷에서 LAN에있는 장치에 연결


18

다음과 같이 PC와 동일한 라우터에 연결된 경우 이더넷 IP를 통해 프로그래밍 할 수있는 내장 장치가 있습니다.

여기에 이미지 설명을 입력하십시오

인터넷을 통해 전체 트래픽을 전송하고 여전히 프로그래밍 할 수 있습니까? 좀 더 명확하게하려면 다음과 같이하십시오.

여기에 이미지 설명을 입력하십시오


6
"이더넷 IP"? 단순한 LAN과 같은 네트워크가 아닌가?
grawity

“이더넷 IP를 통한 프로그래밍”-정확히 무슨 의미입니까? 무슨 장치와 IDE를 사용하고 있는지 지정할 수 있다면 도움이 될 것입니다. IDE가 주어진 IP 주소와 TCP 포트의 장치에 연결되어 명령을 수신한다고 가정합니다.
slhck

@grawity yes 그것은 일반 LAN입니다. 네트워크와 마찬가지로 slhck에서 codesys IDE와 codesys Runtime이있는 장치를 사용하고 있습니다!
엔진

3
물론 정답은 IPv6입니다.
마이클 햄튼

1
@grawity Ethernet / IP 는 산업 자동화 프로토콜이며 IP over Ethernet과 혼동하지 마십시오 :(
richardb

답변:


50

간단하고 안전하지 않은 방법

찾고있는 것을 포트 포워딩 [ 1 ] [ 2 ]라고 합니다.

예를 들어 다음을 가정 해 봅시다.

  • 프로그래머블 장치는 포트에서 작동 22하며 IP192.168.1.5

  • 공개 IP는 122.176.11.55

그런 다음 라우터 설정으로 이동하여 WAN 포트 (예 :)를로 전달할 8022192.168.1.5:22있습니다.

이제 IDE 122.176.11.55:8022대신 액세스하여 인터넷을 통해 어디서나 장치에 원격으로 액세스 할 수 있습니다 192.168.1.5:22.

고정 IP가 없으면 공개 IP가 언제든지 변경 될 수 있으며이 경우 동적 DNS 서비스를 확인해야 합니다 .

참고 : 장치에 인증 방법이 없으면 악의적 인 의도를 가진 사람이 거의 확실하게 공개 웹에서 해당 장치에 액세스 할 수 있습니다. 안전한 대안은 아래를 참조하십시오.

안전한 (정직하게는 더 복잡하지 않은) 방법

는 PC (또는 나무 딸기 파이, 또는 이와 유사한 것) 네트워크에 연결 및 액세스 남겨 원격으로 대신 뭔가 SSH 등의 안전, 다음을 통해 LAN을 통해 그것을 통해 장치를 프로그램합니다. 또한 장치가 TCP 또는 UDP를 사용하지 않더라도 작동하는 이점이 있습니다. :)

조금 지루합니다. 그러나 안전합니다.


10
OP가이를 위해 포트 포워딩을 열면 전 세계의 모든 사람들이 잠재적으로 코드를 변경할 수 있다는 점에 주목하는 것도 도움이 될 것입니다. 인증 형식이없는 한 조만간 포트 스니퍼는 포트를 찾고 해커가 침입을 시도 할 것입니다. 이는 보증입니다.
LPChip

@LPChip 과연! 내가 말 했어야했는데 내 나쁜.
rahuldottech는 Monica

좋은 추가. :) 나는 당신에게 +1을 줄 것이지만, 경고하지 않더라도 이미 좋은 대답 이었기 때문에 이미 더 일찍 그것을주었습니다. :)
LPChip

2
@FreeMan은 나중에 사용하는 포트에 따라 봇 크롤러가 등장하기까지 며칠이 걸릴 수 있지만, 운이 좋지 않으면 몇 분 안에 발생할 수 있다는 점에서 더 빠릅니다.
LPChip

1
@IsmaelMiguel 물론, 확실한 기본 보안 작업을 모두 수행해야합니다. 나는이 특별한 경우에 그들이 무엇인지 알 방법이 없습니다.
rahuldottech는 Monica

11

정답은 "VPN"일 수 있습니다.

라우터가 장치를 방화벽으로 구성하지 않고 모든 ISP, 장치 및 랩톱이 IPv6을 지원한다고 가정하면 IPv6을 사용하면 "작동"할 수 있지만 포트 전달과 같은 이유로 끔찍한 아이디어입니다.

다른 잘 알려진 IPv6의 선전에 의해 추진보다, 당신은 실제로하지 않는 이제까지 당신의 LAN이 고유하게 식별하거나 인터넷에서조차 접근 할 수있는의 장치 중 하나를합니다. 아니, 그건 좋지 않아

포트 포워딩은 오래된 IPv4와 함께 "작동"할 수 있지만 장치는 사용자뿐만 아니라 모든 사람이 액세스 할 수 있습니다. 아무도 몰라요, 문제 없습니다, 그렇죠?
글쎄, 연중 무휴 24 시간 운영되는 자동화 된 포트 스캐너 군이 있으며 어디에서나 응답 할 수있는 임의의 주소 / 포트를 스캔하므로 일반적으로 외부 요청에 온라인으로 응답 하는 장치가 최적이 아닙니다. 장치가 네트워크를 통해 들어오는 것에 따라 행복하게 프로그래밍 되면, 그것은 재난을 피하는 방법입니다.
위의 원칙은 VPN에도 적용되지만 액세스를 원할 경우 얻을 수있는만큼 좋습니다. 유일하게 안전한 유일한 것은 인터넷에 연결되어 있지 않으므로 명백한 이유로 실용적인 옵션이 아닙니다. "인터넷 없음"에 대한 가장 안전한 방법은 VPN입니다. 정확히 하나의 장치에 하나의 포트가 있고 (최대 3 개의 포트에 따라 다름) VPN을 노출 하고 인터넷에 포트 포워딩되는 포트는 없습니다 .

VPN을 사용하면 같은 LAN에있는 것처럼 인터넷 통해 LAN의 장치에 액세스 할 수 있습니다 . 무단 액세스를 방지하고 기밀성과 데이터 무결성을 제공합니다.

거의 모든 라우터는 기본적으로 하나 이상의 VPN을 지원합니다. 불행히도, 사용하는 라우터 모델에 따라 VPN의 맛이 나쁘거나 원격 컴퓨터를 구성하는 방법이 문서화되어 있지 않을 수 있습니다. 그럼에도 불구하고 구성 방법을 알아내는 번거 로움에도 불구하고 더 나은 것이 없다면 가장 좋은 방법입니다!
대부분의 일반적인 NAS 박스는 2 ~ 3 개의 VPN을 지원하며, 20 달러의 신용 카드 크기의 3W 컴퓨터는 VPN 서버를 실행할 수 있습니다. 대부분의 최신 휴대 전화에서도 추가 소프트웨어를 설치하지 않고도 VPN을 지원하므로 휴대 전화의 모바일 인터넷을 사용하는 경우 (개인 핫스팟을 통해) 홈 네트워크에 액세스 할 수도 있습니다.

예를 들어, L2TP / IPSec이 가장 훌륭한 선택은 아니지만 99 % 양호하며 Disk Station과 Samsung 전화에 설치하는 데 1 분이 걸립니다. 내 Windows 랩톱이 전화와 독립적으로 사용되는 경우 1 분이 더 있습니다. 추가 소프트웨어가 필요하지 않습니다.
OpenVPN은 랩톱에 클라이언트 소프트웨어를 다운로드하여 설치해야하므로 3-5 분 정도 걸립니다. 그러나 더 큰 그림에서는 5 분 설정이 완전히 안전하지 않은 것과 비교하여 "0"으로 계산됩니다.


5
타사 서비스를 구매하는 것이 유일한 대답은 아닙니다. SSH 또는 RDP와 동일한 효과를 얻을 수 있습니다.
jpaugh

4
정답은 VPN 또는 SSH 터널입니다 ... 일부 VPN 프로토콜은 MITM을 막는
데도

5
SSH는 훨씬 저렴하고 편리하며 설정하기 쉬우 며 아마도이 시나리오에서 더 나은 옵션 일 것입니다.
rahuldottech는

@jpaugh : VPN에는 타사 서비스가 포함되지 않습니다. SSH를 사용할 수 있다는 점에 쉽게 동의하지만 SSH는 설치가 쉽고 설치가 필요 없으며 범용성이 없으며 마지막으로 원활한 사용 성과 관련하여 VPN과 거의 동일하지 않습니다. . 자, RDP에 대해 ... 당신은 물론 농담하고 있습니까? 실제 구현 (또는 적어도 상위 5 개)에서 아마도 가장 많이 이용 된 소프트웨어 일뿐 아니라 프로토콜 자체는 본질적으로 안전하지 않으며, 깨진 (이론적 인 것이 아닌) 암호를 사용하는 TLS 버전입니다. 10 년 전에 대체되었습니다.
Damon

4
-1 제목에서 "하나만"의 경우 포트 전달 기능이있는 SSH도 전체 네트워크, 한 장치의 한 포트만 원격으로 액세스 할 필요가없고 대부분 가능성이 있기 때문에 완전히 유효하며 더 안전합니다. 구성하기 쉽고 거의 사용하지 않는 기능의 라우터의 임의 소프트웨어 구현에 의존하지 않습니다.
Bill K

2

라우터 / 보안 게이트웨이 어플라이언스 또는 해당 상자로 포트가 전달되는 다른 상자에서 VPN을 호스팅합니다. 원격으로 작업 할 때마다 VPN에 연결하면 내장 장치가 마치 로컬 네트워크에있는 것처럼 보입니다. 아마에, 고립 된 서브넷에 포함 된 장치를 배치하는 좋은 아이디어가 될 것입니다 도움 은 VPN 또는 내장 장치가 손상 될 경우 주요 네트워크에 대한 공격을 방지 할 수 있습니다.


1

sshd를 실행하여 IDE가없는 Windows PC를 Linux PC로 안전하게 구성하십시오. 라우터에서 Linux 시스템의 SSH 포트로 포트 포워드하십시오. SSH 터널을 사용하여 내장 장치 IP에 연결하십시오. 그런 다음 IDE를 사용하여 원격 시스템에서 프로그래밍 할 때 LAN IP 대신 로컬 호스트에 연결됩니다.

SSH와 같은 강화 된 서비스로 인터넷에서 듣는 것은 합리적으로 안전합니다. 개발과 인터넷에 직접 듣기 어떤 것은 엄청나게 나쁜 생각이다. SSH는 게이트 키퍼입니다. 호스트 키를 확인하면 MITM으로부터 절대적으로 보호됩니다. 좋은 암호를 사용합니다. 터널링 설정에는 라우팅 또는 브리징이 필요하지 않지만 SSHD 시스템에서 직접 연결하는 것처럼 보입니다. 올바르게 설정하는 것이 훨씬 간단합니다.


Windows에서 SSH 서버를 실행하면 Linux 가 필요 하지 않습니다 .
rahuldottech는 Monica를 지원합니다 : Monica

"그런 다음 IDE를 사용하여 원격 시스템에서 프로그래밍 할 때는 LAN IP 대신 로컬 호스트에 연결됩니다." 이 비트는 이해가되지 않습니까?
rahuldottech는 Monica

@rahuldottech SSH 포트 전달은 tcp 수준에서 작동합니다. 서버에서 sshd는 로컬 LAN의 리소스에 대한 연결을 열고 해당 소켓의 내용을 SSH를 통해 전달합니다. 원격 시스템에서 ssh 클라이언트는 로컬 호스트 포트에서 청취합니다. 해당 포트의 로컬 호스트에 연결하면 SSH 클라이언트이며 tcp 연결을 함께 연결합니다. IP 라우팅이 없기 때문에 이상하지만 실제로 다목적입니다!
trognanders

-1

최근에 개인 전용 원격 액세스를위한 더 나은 솔루션을 접했습니다. 먼저 문제의 범위를 논의 해 봅시다. nat, ip 주소 및 보안의 세 가지 문제가 있습니다. 예를 들어 홈 네트워크에서 ssh 또는 웹 서버를 실행하려는 일반적인 경우에는 기존의 접근 방식이 포트 포워딩 및 동적 DNS 및 업계 표준 보안 모범 사례입니다. 기기에 표준 보안이 없기 때문에이 경우 단점이 있습니다. 인터넷에 기기를 여는 대신 ssh 포트 포워딩을 사용하면이를 완화 할 수 있습니다.

그러나 더 간단한 해결책이 있으며 그것이 숨겨진 서비스라고 생각합니다. 숨겨진 서비스는 기본적으로 포트 포워드로 작동하지만 자동으로 nat 순회를 처리하며 주소 변경이 없으므로 동적 dns가 필요하지 않습니다. 물론 양파 주소는 기억하기 어려운 문제가 있지만, 유일한 사용자 인 경우 프로젝트 파일 중 하나에 적을 수 있습니다. 인증을 제공하기 위해 이것을 ssh 서버와 구문 분석하는 것이 좋지만 긴 양파 주소로 충분하다고 결정할 수 있습니다. 또한 tor hidden 서비스는 마지막 홉을 제외하고 전체 링크의 암호화를 제공하므로 더 나은 방법은 엔드 투 엔드 암호화 뿐이지 만 프로그래밍하는 장치에 따라 다릅니다.


4
양파 서비스를 사용 만 더와 복잡 이런 식으로 할 것 없이 추가 혜택을. Tor가 유용 할 수 있습니다. 이 경우에는 없습니다.
rahuldottech는 Monica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.