Eclipse Mosquitto הוא Mqtt Broker בקוד פתוח המיישם את פרוטוקולי MQTT גרסאות 5.0, 3.1.1 ו- 3.1. . Mosquitto היא מערכת קלת משקל ועל כן ניתן להתקנה על מגוון מכשירים, החל ממחשבי לוח יחיד כמו Raspberry pi ועד לשרתים.
פרוטוקול MQTT מספק שיטה קלה לביצוע העברת הודעות באמצעות מודל פרסום/רישום נושאים. מתאים במיוחד לרכיבי IOT אשר צריכים להעביר מידע בצורה יעילה ומהירה בינם לבין עצמם או כל מערכת אחרת שאמורה לקבל את המידע (כמו למשל תקשורת בין חישנים לבית חכם).
במדריך זה אתמקד בהתקנה של MQTT באמצעות docker-compose, אך לפני שנתחיל יש לוודא כי התקנתם docker + docker-compose על פי המדריך הבא. (ניתן להתקין גם ישירות על לינוקס על פי המדריך הבא).
שלב א – התקנת הקונטיינר
על מנת להתקין את הקונטיינר, ערכו את קובץ ה docker-compose.yaml שלכם עלי ידי הפקודה הבאה:
nano docker-compose.yaml
והדביקו פנימה את הטקסט הבא:
version: "3.7"
services:
mosquitto:
image: eclipse-mosquitto
hostname: mosquitto
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./mosquitto:/etc/mosquitto
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
שלב ב – הגדרות אבטחה
כברירת מחדל, שרת ה Mosquitto מגיע ללא אבטחה, מה שאומר שכל אחד יכול להתחבר לשרת, להרשם ולפרסם נושאים. על מנת לאבטח אותו לשימוש באמצעות שם משתמש וסיסמה עקבו אחר ההוראות הבאות:
אם תשימו לב, בקובץ ה yaml יש שתי שורות תחת volumes:
- ./mosquitto:/etc/mosquitto
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
הראשונה, תפקידה למפות את התיקיה בה יושבים קבצי ההגדרות של ה Mosquitto למקום בו נוכל לערוך את הקבצים.
השניה, מיפוי של קובץ ההגדרות מתוך הקונטיינר ל HOST למקום בו נוכל לערוך ולשנות את ההגדרות.
כעת, צרו את התיקיה אליה תמפו את ה Volume על פי הפקודה הבאה:
mkdir ./mosquitto
וודאו לשנות את השורות בהתאם למקום בו יצרתם את התיקיה.
כעת, צרו את קובץ ה mosquitto.conf על ידי הפקודה הבאה:
nano ./mosquitto/mosquitto.conf
והדביקו פנימה את הטקסט הבא:
allow_anonymous false
password_file /etc/mosquitto/passwd
כאשר:
- allow_anonymous fals – מציין כי לא תתאפשר התחברות אנונימית ללא משתמש וסיסמה.
- password_file /etc/mosquitto/passwd – מציין את מיקום קובץ הסיסמאות שישמשו להתחברות.
כעת, ערכו את קובץ הסיסמאות על ידי הפקודה הבאה:
nano ./mosquitto/passwd
וכתבו פנימה את שם המשתמש והסיסמה בהם תרצו להשתמש במבנה הבא:
username:pass
ושמרו אותו.
כעת נבצע התקנה של הקונטיינר באמצעות הפקודה הבאה:
sudo docker-compose up -d
ואם ביצעתם הכל כראוי תוכלו לראות שהקונטיינר רץ:
רגע, עדיין לא סיימנו.
נכון שהגדרנו סיסמה אך היא עדיין איננה תקפה ויש צורך להצע הצפנה של הסיסמה בפורמט ש Mosquitto יוכל להשתמש בה.
לצורך כך, הריצו את הפקודה הבאה:
docker exec mosquitto mosquitto_passwd -U /etc/mosquitto/passwd
ותוכלו לראות כי הסיסמה הוצפנה:
yossi:$6$gFAhK1B8Aq8R9AJ5$8XkKSrzxYN8fRAC4gw1uMcSZNateml5UvwBtD/8yDGsY4V3oonEl6Dxbywz33r2R0ZXx4S0/LMlvDCBFnBSw2Q==
במידה ותרצו להוסיף משתמשים למערכת יש לכתוב את הפקודה הבאה:
docker exec mosquitto mosquitto_passwd -b /etc/mosquitto/passwd user password
זכרו! לאחר כל החלפת / הוספת משתמש יש לאתחל את הקונטיינר על מנת שההגדרות יכנסו לתוקף.
בהצלחה!
Leave a Reply