방화벽에서 포트를 열지 않고도 외부에서 MQTT 브로커에 액세스 할 수 있습니까?


9

홈 네트워크 외부에서 MQTT 브로커에 액세스 할 수 있기를 원하지만 방화벽에서 포트를 여는 것을 꺼려합니다. 그리고 내 집 IP를 사용하고 싶지 않습니다.

집에 암호화되지 않은 오픈 브로커를 두는 것이 매우 편리하지만 노출하려고하면 작동하지 않습니다. 다른 옵션이 있습니까?


@Bence Kaulics가 내 답변에서 빠진 부분에 대한 제안이 있습니까?
hardillb

1
@hardillb 귀하의 답변은 좋은 요약이지만 각 요점에 대한 자세한 내용을 알려주는 것이 도움이 될 것입니다. 예를 들어 두 브로커간에 이러한 브리지를 설정하는 방법 또한이 아이디어가 있으면 내가 찾을 수있는 가장 좋은 것입니다. 당신의 대답도 저절로 서 있습니다. "충분히주의를 기울이지 않았습니까"이유를 선택했을 수도 있습니다.
Bence Kaulics

비전문가로서, 2 점 (답변의 가장 가치있는 부분)이 조금 더 정교해질 수 있다는 데 동의합니다. 어쩌면 사용법에 대한 링크가있을 수도 있습니다.
Sean Houlihane

불행히도 각 유형의 브로커마다 브리지를 구성하는 방법이 다르기 때문에 일반적인 답변을 제공하는 것은 불가능합니다 (인증 / TLS 설정과 마찬가지로)
hardillb

답변:


10

포트를 전달하지 않으려면 기본적으로 3 가지 옵션이 있습니다.

  1. 클라우드의 브로커를 사용하여 집의 클라이언트가 항상 연결하십시오. 다른 사람이 원치 않는 메시지를 도청하거나 주입 할 수 없도록 TLS 및 인증을 사용하십시오.
  2. 클라우드 브로커를 사용하고 내부 브로커와 클라우드 브로커 사이에 브릿지를 설정하십시오 (클라우드 브로커에서 사용자 이름 / 암호를 암호화하고 설정하려는 경우). 인터넷 연결이 끊어지면 내부 작업이 계속 작동한다는 이점이 있습니다.
  3. 홈 네트워크에 액세스 할 수있는 모든 외부 장치의 VPN

그러나 포트를 올바르게 구성된 (클라우드 브로커와 거의 같은) 포트로 전달하는 것은 실제로 위험하지 않습니다.


1
클라우드 홈 브리지 아이디어가 마음에 듭니다. 이는 로컬 브로커가 탈퇴하더라도 홈 네트워크 외부의 모든보고 서비스가 여전히 정상적으로 작동한다는 추가 보너스가 있습니다. 그리고 로컬 브로커는 온라인 상태가되면 "누락 된"데이터를받습니다. 큰! :)
Thomas Jensen

3

브로커는 서버이므로 클라이언트가 연결하려면 하나 이상의 포트를 열어야합니다.

따라서 문제는 인터넷에 서비스를 노출하는 특별한 경우가됩니다.

이는 DMZ를 통해 프록시 또는 기본 서비스보다 엄격한 인증을 시행하는 다른 방법을 통해 수행되었습니다. 프록시가 클라우드에 있으면 DMZ가 클라우드로 확장됩니다.

가장 간단한 방법은 브로커를 강화하고 (익명 클라이언트 사용 안함) 방화벽을 통해 브로커에 연결할 수있는 사람을 제한하는 것입니다 (사전 알고있는 경우 특정 클라이언트 IP 주소 만 허용).


3
맞지 않습니다. 로컬 브로커를 클라우드 브로커와 연결했습니다. 브리지 연결은 내 홈 네트워크 내부에서 시작되므로 포트를 열 필요가 없습니다.
토마스 젠슨

3

@hardillb는 좋은 대답을했지만 "실제"터치를 추가하는 몇 가지 세부 사항을 추가하려고합니다.

  1. 공개 할 수있는 일부 MQTT 브로커를 선택하십시오. HiveMQ는 좋은 예제가 될 수 있습니다 당신은 시작할 수 있습니다 시도 아웃 브로커에 연결하는 방법을 설명하는 페이지 :

공개 중개인에 연결

호스트 : broker.hivemq.com

포트 : 1883

웹 소켓 포트 : 8000

  1. 가장 적합한 클라이언트를 선택하여 공용 MQTT 브로커와의 내부 브로커 상호 연결에 사용하십시오. 예를 들어 C 클라이언트는 Paho MQTT 일 수 있습니다 . 클라이언트는 SSL / TLS를 지원하므로 보안 수준이 높습니다.

  2. 외부 장치에 Paho MQTT 임베디드 를 선택할 수 있습니다.

  3. HiveMQ에는 종량제 라이센스 정책이 있으므로 신중하게 고려할 수 있습니다. 어쨌든 이 페이지 에서 사용 가능한 클라우드 및 사용 가능한 MQTT 브로커 목록을 확인할 수 있습니다.

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