티스토리 뷰
앞서 구축한 RabbitMQ Broker 서버와 MQTT Client를 이용하여 publish/subscribe 하고 burpsuite로 통신 과정을 확인한다.
> Ubuntu에 RabbitMQ 서버 구축하기 (tistory.com)
[테스트 환경]
MQTT Client : MQTT.fx 1.7.1 (Debian 5.10.13), MQTT Client (Android 7.0)
RabbitMQ Broker Server : Ubuntu 18.04, RabbitMQ 3.9.1, Erlang 24.0.5
1. MQTT Client 설치 및 테스트 (Debian)
1)MQTT.fx 설치
- 환경에 맞는 MQTT.fx를 다운로드하여 설치한다.
- 설치 주소 : jensd.de/apps/mqttfx/1.7.1/
// deb 파일 설치
# sudo dpkg -i *deb
2) MQTT.fx 설정
- 설치한 MQTT.fx를 실행하여 이전에 구축한 브로커 서버의 주소로 설정한다.
3) publish 테스트
- 설정한 브로커서버에 연결한 후, publish를 시도한다.
- topic 형태의 publish가 들어온 것을 확인할 수 있다.
2. MQTT Client 설치 및 테스트 (Android 7.0)
1) MQTT Client 설치
- 플레이스토어에서 MQTT Client를 설치한다.
2) MQTT Client 설정
- 설치한 MQTT Client를 실행하여 이전에 구축한 브로커 서버의 주소로 설정한다.
3) publish 테스트
- 설정한 브로커서버에 연결한 후, publish를 시도한다.
- 브로커 서버에서 publish를 확인할 수 있다.
3. MQTT 통신 Burpsuite로 확인하기
MQTT 클라이언트와 브로커서버 사이의 통신을 로컬PC에서 Burpsuite를 이용하여 확인하기 위해 mitm 설정을 해준다.
(안드로이드도 adb로 접속하여 동일하게 설정한다.)
1) iptables 설정
- MQTT 클라이언트가 설치된 칼리리눅스에서 iptables 설정을 한다.
# iptables -A OUTPUT -t nat -p tcp -d {mqtt server ip} --dport {mqtt server port} -j DNAT --to-destination {local ip:port}
mqtt server ip -> 구축한 브로커 서버 IP
mqtt server port -> 구축한 브로커 서버 port (1883)
local ip:port -> burpsuite를 이용할 로컬PC의 IP와 relay 받아올 임의의 port
2) mitm_relay 다운로드 및 실행
- Burpsuite를 이용할 pc에 mitm_relay를 다운로드하여 실행한다.
- 다운로드 주소: github.com/jrmdev/mitm_relay
cmd> python mitm_relay.py -l {local ip} -p 127.0.0.1:8080 -r {port:mqtt server ip:mqtt server port}
local ip -> 로컬PC IP
port -> iptables에서 설정했던 relay port
mqtt server ip -> MQTT 브로커 서버 IP
mqtt server port -> MQTT 브로커 서버 port (1883)
3) burpsuite 실행
- burpsuite 프록시 설정 후 mqtt 통신을 확인할 수 있다.
4. 두개의 client로 publish/subscribe 통신
칼리리눅스와 안드로이드 환경으로 두개의 MQTT Client 환경을 구성하였다.
같은 브로커서버를 이용하여 한쪽은 publish를 하고 한쪽은 subscribe하여 메세지를 받아오도록 테스트하였다.
1) MQTT Client - publish
모바일에 구축한 MQTT Client로 publish 한다.
2) MQTT Client - subscribe
칼리리눅스에 구축한 MQTT Client로 subscribe 하면, publish 메시지를 받아오는 것을 확인할 수 있다.
'Study > IoT' 카테고리의 다른 글
[RabbitMQ] RabbitMQ TLS 보안 설정하기 (1) | 2021.08.02 |
---|---|
[RabbitMQ] Ubuntu에 RabbitMQ 서버 구축하기 (0) | 2021.07.27 |
IoT 분석에 필요한 기초 지식들 (0) | 2021.01.28 |
- Total
- Today
- Yesterday