Hướng dẫn cài đặt MQTT Broker lên Synology NAS

Hướng dẫn cài đặt MQTT Broker lên Synology NAS

MQTT là một giao thức Smarthome khá phổ biến và sẽ được sử dụng nhiều trong các dự án nhà thông minh DIY. Tiếp nối nội dung về sử dụng NAS như một local server cho nhà thông minh như là host server Home Assistant, bài viết này mình sẽ hướng dẫn các bạn cài đặt và host một local MQTT Broker.

Bài này sẽ gồm cài đặt MQTT Broker và bảo mật cơ bản cho MQTT Broker. Hầu hết sẽ dùng giao diện người dùng cơ bản, không phải SSH hay code quá nhiều. Mình đã dùng thử một vài cách thì thấy đây sẽ là cách dễ nhất cho người mới bắt đầu mà vẫn đảm bảo các bạn có thể tuỳ biến MQTT Broker trong tương lai theo ý muốn một cách dễ dàng nhất.

Cài đặt MQTT Broker trên Synology NAS

Để chuẩn bị cài đặt, các bạn cần làm 2 việc trước. Đầu tiên là vào Package Center để tải về Text Editor, đây là ứng dụng để edit text cơ bản, các bước sau sẽ dùng đến.

Và tải thêm ứng dụng Container Manager (Docker) nếu các bạn chưa có.

Kế tiếp, dùng File Station vào folder docker, tạo 1 folder mới tên là ‘mosquitto’, và trong folder đó tạo tiếp 3 folder con là ‘config’, ‘data’ và ‘log’.

Copy file mosquitto.conf rồi upload vào folder config. File này là mình đã config cơ bản trước, phần sau mình sẽ hướng dẫn edit chi tiết hơn. Tải file mosquitto.log rồi upload vào folder log. Các bạn có thể download 2 file đó tại Google Drive của mình.

Vậy là xong bước chuẩn bị.

Tiếp tục cài đặt, vào Container Manager → Registry → search eclipse-mosquitto và Download

Sau đó vào Image → chọn eclipse-mosquitto rồi ấn Run

General Settings: các bạn có thể chọn bật auto-restart để MQTT server sẽ tự chạy sau khi NAS khởi động. Sau đó ấn Next.

Advanced Settings, các bạn kéo xuống phần Volume. Làm 2 việc để ra kết quả như hình minh hoạ:

  • Add Folder, chọn đến folder config đã tạo lúc trước, rồi điền /mosquitto/config vào ô bên phải
  • Add File, chọn đế file mosquitto.log đã upload lên folder log lúc trước, rồi điền /mosquitto/log/mosquitto.log vào ô bên phải

Kéo xuống phần Environment, chọn Add thêm mục TZAsis/Ho_Chi_Minh như hình để đặt chuẩn timezone.

Tiếp tục kéo xuống phần Network chọn host. Sau đó nhấn Next.

Review lại cài đặt trong trang Summary rồi ấn Done.

Các bạn vào mục Container thấy eclipse-mosquitto chạy sáng xanh như thế này mà không báo lỗi gì thì cơ bản là đã thành công.

Các bạn có thể mở file log đã upload lên lúc trước, từ 1 file trắng sẽ thành file có thông tin như hình dưới, như vậy là MQTT Broker đã chạy.

Lúc này, có thể sử dụng MQTT Explorer để kết nối đến Broker để kiểm tra thêm.

Nếu connect được như hình dưới tức là MQTT Broker đã hoạt động.

Tuy nhiên, MQTT Broker hiện chưa có được bảo mật gì cả. Mình sẽ hướng dẫn các bạn tiếp về bảo mật cơ bản với mật khẩu (để dùng trong mạng local) và bảo mật nâng cao với mã hoá TLS/SSL (để dùng với internet)

Bảo mật cơ bản với username và mật khẩu cho MQTT Broker

Các bạn vẫn vào mục Container và chọn Detail

Sau đó chọn Action → Open Terminal

Ấn vào mũi tên bên cạnh mục Create và chọn Launch with command

Điền ‘ash’ vào command và ấn OK

Chúng ta sẽ có được phần command giống như hình.

Các bạn gõ những lệnh sau:

Trỏ vào thư mục config bằng lệnh dưới (để sau này file username và password sẽ nằm trong này và chúng ta sẽ phải sửa file config ở bước sau)

cd /mosquitto/config

Gõ lệnh để tạo file password, mục passwordfilename các bạn tuỳ ý đặt (vd: pwfile), username cũng tuỳ ý đặt (vd: ngonboxe) rồi ấn Enter.

mosquitto_passwd -c passwordfilename username

Màn hình Terminal sẽ yêu cầu các bạn nhập Password. Các bạn nhập password mong muốn, lưu ý là khi nhập trên màn hình sẽ không hiển thị gì cả. Sau đó enter là sẽ bắt nhập password lần 2, các bạn nhập đúng password và Enter là được.

Sau khi xong, terminal có warning đề nghị fix permission cho file password vừa tạo, các bạn gõ đúng lệnh đó theo hướng dẫn rồi enter nữa là xong, như trường hợp của mình là gõ lệnh dưới rồi enter:

chmod 0700 pwfile

Vậy là xong bước tạo file Password, các bạn có thể đóng Terminal lại.

Giờ các bạn vào lại thư mục config của Mosquitto bằng File Station sẽ thấy file pwfile nằm trong thư mục config, như vậy là đã tạo file password xong, giờ các bạn mở file mosquitto.conf (cứ nhấn đúp vào file là NAS sẽ mở nó bằng Text Editor đã cài đặt lúc trước)

Tại dòng 2, các bạn đổi allow_anonymous true thành allow_anonymous false và sau đó thêm 1 dòng ở cuối file: password_file /mosquitto/config/pwfile rồi Save file lại và đóng Text Editor.

Rồi sau đó quay lại Container Manager và Restart container.

Như vậy là đã thành công. Giờ các bạn có thể dùng MQTT Explorer để thử kết nối đến MQTT broker trên NAS, nếu không điền đúng username và mật khẩu sẽ không kết nối được, và ngược lại, phải điền đúng là sẽ kết nối bình thường.

Về cơ bản như vậy là đã xong.

Bảo mật nâng cao với TLS/SSL

Phần này là để cấu hình bảo mật TLS/SSL khi kết nối đến MQTT Server thông qua internet bằng domain name, tức là các bạn đã phải nắm rõ những thứ cơ bản dưới đây, mình sẽ không nhắc lại nữa:

  • Mở port – Port Forwarding
  • Cấu hình Firewall
  • Cài đặt DDNS cho NAS (domain)
  • Lấy chứng chỉ Let Encrypt cho DDSN

Mình sẽ hướng dẫn các bạn sử dụng chính chứng chỉ TLS/SSL Let Encrypt đã lấy cho domain của NAS để có thể tích hợp vào MQTT Broker và sử dụng MQTT thông qua TLS/SSL đó.

Các bạn vào Control Panel → Sercurity → Certificate để Export Certificate các bạn muốn dùng cho MQTT Broker, chúng ta sẽ có 1 file zip gồm nhiều file nhưng sẽ dùng đến 3 file sau: cert.pem, chain.pem và privkey.pem

Các bạn upload 3 file đó vào thư mục config của mosquitto. Sau đó mở file mosquitto.config và thêm những dòng sau:

  • listener 8883
  • cafile /mosquitto/config/chain.pem
  • certfile /mosquitto/config/cert.pem
  • keyfile /mosquitto/config/privkey.pem

Sau đó save file lại và restart container.

Như vậy là các bạn có thể kết nối đến MQTT Broker thông qua DDNS và internet với kết nối bảo mật thông qua TLS/SSL. Để truy cập sẽ theo cấu trúc mqtt://domain.name:8883

Hi vọng bài viết này sẽ giúp ích các bạn.

Nếu thấy nội dung bài viết hữu ích, hãy chia sẻ cho bạn bè và người thân. Đừng quên theo dõi Ngon Bổ Xẻ qua Facebook và Youtube để luôn cập nhật các nội dung mới nhất. Ngoài ra, mình cũng có lập Group FB chuyên chia sẻ các deal hời cho anh em về công nghệ, điện từ, gia dụng… các bạn cũng có thể tham gia nha. Một lần nữa, chân thành cám ơn các bạn và hẹn gặp lại trong những nội dung kế tiếp ❤️


Chia sẻ bài viết:

Long

Mình thường đánh giá chi tiết những món đồ mà mình đã sử dụng, phân tích nguyên lý hoạt động của các thiết bị và giải pháp của vấn đề, so sánh những thứ có thể đặt lên bàn cân và chia sẻ những kinh nghiệm cá nhân mà mình đã tích luỹ được

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Nội dung này đã được bảo vệ bởi DMCA. Vui lòng không sao chép.