IoT 장치를 외부 인터넷에 노출시킬 때 포트 전달을 피하려면 어떻게해야합니까?


15

IoT 장치 용 개인 클라우드를 만들려면 무엇이 필요합니까? 라는 질문에 대한 좋은 답변을 받았습니다 . 내가 거기서 이해 한 것 중 하나는 허브 나 게이트웨이를 외부 인터넷에 "노출"해야한다는 것입니다. 이에 대한 제안 된 솔루션은 포트 포워딩 입니다.

나는 이것을 모든 질문에 대한 주석으로 제대로 추적하기가 어려울 수 있기 때문에 누군가 별도의 질문으로 만들었습니다. 또한이 정보는 비슷한 질문이있는 사람에게 유용 할 수 있습니다.

라우터 구성으로 이동하여 포트 전달을 구성해야한다는 생각이 마음에 들지 않습니다. 즉, IoT 인프라의 일부 임에도 불구하고 "내"장치가 아닌 장치를 구성해야하기 때문입니다. 기존 홈 네트워크를 최대한 방해하지 않아야합니다. 또한 특정 라우터의 관리자 암호를 모르는 인스턴스가있어서 실제로 얻는 것이 어려웠습니다.

더 강력한 IoT HUB가 Linux를 실행하고 있다는 것을 의미하더라도 그 방법을 알 수는 없습니다. "대체"방식으로 해당 포트 전달 구성을 피할 수 있으면 조금 더 복잡한 허브를 사용하는 것이 좋습니다.

팀 뷰어와 같은 응용 프로그램이 포트 전달을 구성 할 필요가없는 방법에 대해 생각할 방법이 있다고 확신합니다.

문제는 누구나 포트 포워딩을 포함하지 않는 전세계 어디에서나 액세스하기 위해 IoT 임베디드 장치를 외부 인터넷에 "노출"하는 방법을 알고 있습니까?

답변:


10

라우터를 포트 포워드 할 수없는 경우 홀 펀칭 을 사용해야합니다 .

홀 펀칭은 하나 또는 둘 다 방화벽 뒤에 있거나 NAT (Network Address Translation)를 사용하는 라우터 뒤에있는 두 당사자간에 직접 연결을 설정하기위한 컴퓨터 네트워킹 기술입니다. 구멍을 뚫기 위해 각 클라이언트는 무제한의 타사 서버에 연결하여 각 클라이언트의 외부 및 내부 주소와 포트 정보를 임시로 저장합니다. 그런 다음 서버는 각 클라이언트의 정보를 다른 클라이언트로 릴레이하고 해당 정보를 사용하여 각 클라이언트가 직접 연결을 시도합니다. 유효한 포트 번호를 사용하는 연결의 결과로 제한 방화벽 또는 라우터는 각 쪽에서 들어오는 패킷을 수락하고 전달합니다.

라우터 의 NAT 는 네트워크 외부의 클라이언트가 네트워크 내부 의 열린 장치 포트에 연결할 수 없지만 네트워크의 장치 가 '브로커'에 연결되는 것을 제한하지는 않습니다. 약간의 간접적 인 사용을 사용 하면 실제로 포트를 열지 않고도 두 장치간에 직접 연결을 설정할 수 있습니다. 이는 본질적으로 Skype 및 Hamachi와 같은 서비스가 수행하는 것입니다.

물론 연결을 조정하려면 외부 서버가 필요하며 홀 펀칭을 수행 한 서버를 신뢰하고 싶을 것입니다.

Bryan Ford, Pyda Srisuresh 및 Dan Kegel의 네트워크 주소 변환기 간 피어 투 피어 통신 은 홀 펀칭 메커니즘과 안정성에 대한 자세한 정보를 제공합니다.


훌륭한! 그러나 한 가지 질문은 타사 서버 또는 "브로커"도 내 집 안에있을 수 있습니까? 그리고 예를 들어 임베디드 리눅스 보드입니까? 그렇지 않으면,이 접근 방식은 IoT 배포에 외부 타사 요소가있는 것과 관련하여 더 큰 문제가 발생할 수 있습니다. 임베디드 리눅스 보드가 이것이라면 불가능할까요?
m4l490n

3
@ m4l490n : 어떤 식 으로든 네트워크 외부에 있어야합니다 . 나는 그것이 클라우드 서버 곳이 될 수 상상 경우, 또는 당신은 리눅스 보드를 사용할 수 있습니다 포트 전달했다. UDP 홀 펀칭은 인터넷에서 공개적으로 액세스 할 수있는 서버 / 장치가있는 경우에만 작동합니다. 그것은 이상적인 건 아니지만, 당신은 사실 주변에 얻을 수없는 무언가가 공개적으로 연결하기 위해 인터넷에 나가이어야합니다. 귀하의 홈 네트워크에 내장 된 Linux 보드 이점이 없다고 생각합니다. 당신은 단지 앞으로 포트가 대신 만약 IoT 장치의.
Aurora0001

1
우수한! 귀하의 답변의 직접적인 의도가 아니고 제 질문의 원래 의도는 아니지만 IoT 인프라에서 클라우드 서버의 역할을 마침내 이해하고 있습니다.
m4l490n

내가 이해한다면, 라우터 상태가 수정되는 포트 포워딩과 달리 구멍은 일종의 가상입니다. 링크의 각 끝은 서버와 만 통신합니까? 일반적인 네트워크가 많기 때문에 이것이 IoT의 전형적인 모델이라고 생각합니다.
Sean Houlihane 2012

7

장치에 외부 연결로 인한 원하지 않는 트래픽을 처리 할 리소스가 적은 IoT 세계에서 물론 라우터의 모든 포트 전달 및 방화벽 문제를 처리해야하는 경우 많은 IoT 백엔드 솔루션에서 볼 수있는 다음과 같은 접근 방식이 발생했습니다.

장치는 원치 않는 네트워크 정보를 허용하지 않습니다. 모든 연결 및 경로는 장치에 의해 아웃 바운드 전용 방식으로 설정됩니다. 따라서 장치는 아웃 바운드 연결을 열므로 방화벽 / 라우터 조정이 필요하지 않으며 필요한 한 채널을 열린 상태로 유지합니다.

좋은 기사 여잔 세계에서 통신 문제 및 솔루션에 대한.


MQTT의 경우 디바이스는 클라이언트 (게시자 또는 구독자 또는 둘 다)이며 브로커 (서버)에 대한 연결을 시작합니다.
Gambit Support 17

" 아웃 바운드 연결 에서 원하지 않는 트래픽을 처리 할 수있는 리소스가 적은 장치가 있습니다" 전혀 말이되지 않습니다. 아웃 바운드 연결은 네트워크 에서만 시작할 수 있습니다 .
Chris Stratton

@ChrisStratton, NAT를 사용하는 경우 아웃 바운드 연결을 포트 전달을 사용하여 장치로 직접 연결할 수 있습니다. 또한 자체 IP를 가질 수 있으며 인터넷에서 직접 액세스 할 수 있습니다.
shachar

"아웃 바운드"라는 단어의 의미를 잘못 이해하고 실제로 의미하는 것이 "인바운드"인 경우 실수로 사용하는 것 같습니다. 아웃 바운드 연결은 클라우드 서버에 연결하는 IoT 장치입니다. 인바운드 연결은 홈 네트워크 외부 (예 : 길을 걷고있는 동안 전화)가 네트워크 내부의 장치에 연결하려고하는 것입니다.
Chris Stratton

@ChrisStratton, 당신은 맞습니다. 아웃 바운드를 쓸 때 외부에서 오는 트래픽을 의미했습니다. 기본적으로 센서의 "인바운드"연결입니다. 내 답변을 편집했습니다, 감사합니다
shachar

3

Port Knocking을 사용해보십시오 . 여전히 포트 포워딩을해야하지만 핑의 비밀 조합 (선택)을 보낸 후에 만 ​​포트가 열려 있습니다. 그런 다음 다른 비밀 핑 콤보로 포트를 닫을 수 있습니다. 그것은 OpenWrt와 와이파이 라우터와 같은 임베디드 리눅스에서 실행할 수 있습니다.


3

퍼블릭 인터넷에서 IoT 장치에 접근 할 수있는 것은 권장하지 않지만 IPv6을 사용하여이를 달성 할 수 있습니다.

ISP 및 로컬 네트워크가 IPv6 용으로 구성되어 있고 IoT 장치가이를 지원하면 인터넷 어디에서나 라우팅 가능한 IPv6 주소를 자동으로 얻을 수 있습니다 (IPv6은 NAT 및 포트 전달이 필요 없습니다). 상태 저장 방화벽 (라우터)이 각 장치로의 트래픽을 허용하도록 구성되어 있는지 확인하면됩니다. 일부는 이것을 기본적으로 (안전하지 않은) 허용 할 수 있습니다.


2

집에서 VPN 서버를 설정 한 다음 어디서나 VPN 서버에 연결하십시오. 모든 유형의 IoT 장치를 공개 인터넷에 노출시키는 것보다 훨씬 안전하다고 생각합니다.


그것은 일종의 게이트웨이가 아닌가?
Helmar

흠? VPN은 장치와 네트워크 사이의 지점 간 (일반적으로 암호화 된) 연결입니다. 연결 장치가 마치 네트워크의 일부인 것처럼 작동하게합니다. 게이트웨이라고 생각할 수 있지만 서비스입니다.
Maurice

물론이 서비스는 여전히 홈 라우터를 통과해야합니다 (일반적으로 포트 전달 또는 논스톱 아웃 바운드 연결을 통해).
헬 마르

예, 여전히 VPN이 실행되는 포트를 포트 포워드해야합니다. 그러나 그것은 (당신이 달성하려고하는지에, 상점 가능성이 적은 편리를 따라) 개별 장치를 노출보다 더 안전입니다
모리스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.