Mosquitto MQTT Mesajlaşma Aracısını Ubuntu 18.04 Üzerine Kurulumu ve Güvenliği [Hızlı Başlangıç]
MQTT (Message Queuing Telemetry Transport), özellikle kısıtlı kaynaklara sahip cihazlar ve düşük bant genişliğine sahip ağlar için tasarlanmış, hafif bir yayınla/abone ol (publish/subscribe) mesajlaşma protokolüdür. Nesnelerin İnterneti (IoT) projelerinde, sensör verilerinin toplanmasından cihaz kontrolüne kadar geniş bir kullanım alanına sahiptir. Mosquitto ise, MQTT protokolünü uygulayan açık kaynaklı, hafif ve güvenilir bir mesajlaşma aracısıdır (broker). Bu makalede, Ubuntu 18.04 işletim sistemi üzerine Mosquitto MQTT aracısının nasıl kurulacağını ve güvenli hale getirileceğini adım adım inceleyeceğiz. Bu “hızlı başlangıç” kılavuzu, özellikle güvenlik adımlarına odaklanarak, Mosquitto’yu üretim ortamlarına yakın bir şekilde kullanıma hazır hale getirmeyi amaçlamaktadır.
MQTT ve Mosquitto’ya Giriş
MQTT, TCP/IP üzerinde çalışan bir uygulama katmanı protokolüdür. Client’lar (istemciler) bir aracıya (broker) bağlanır, belirli konulara (topics) abone olur veya bu konulara mesajlar yayınlar. Aracı, mesajları ilgili konulara abone olan tüm istemcilere iletmekten sorumludur. Bu model, doğrudan bağlantı kurmak zorunda kalmadan birçok cihazın birbiriyle iletişim kurmasını sağlar.
Mosquitto, Eclipse Vakfı tarafından geliştirilen ve C dilinde yazılmış, MQTT v3.1, v3.1.1 ve v5.0 standartlarını destekleyen popüler bir MQTT aracı uygulamasıdır. Hafif yapısı, düşük sistem kaynakları tüketimi ve kolay yapılandırılabilir olması nedeniyle IoT projelerinde sıklıkla tercih edilir. Ancak, varsayılan kurulumda Mosquitto genellikle anonim erişime izin verir ve şifreleme kullanmaz, bu da onu güvenlik açıkları açısından savunmasız hale getirir. Bu makale, bu güvenlik açıklarını nasıl kapatacağınızı detaylıca açıklayacaktır.
Ön Gereksinimler
Bu kılavuzu takip etmek için aşağıdaki ön gereksinimlere sahip olmanız gerekmektedir:
* Ubuntu 18.04 Sunucusu: SSH erişimine sahip bir Ubuntu 18.04 sanal veya fiziksel sunucu.
* Sudo Yetkileri: Komutları çalıştırmak için sudo yetkisine sahip bir kullanıcı.
* Temel Linux Bilgisi: Terminal komutları ve dosya düzenleme konularında temel düzeyde bilgi.
Kurulum işlemine başlamadan önce sunucunuzun güncel olduğundan emin olalım:
sudo apt update
sudo apt upgrade -y
Bu komutlar, sisteminizdeki paket listelerini günceller ve mevcut tüm paketleri en son sürümlerine yükseltir.
Mosquitto Kurulumu
Ubuntu 18.04’ün varsayılan depolarında Mosquitto’nun eski bir sürümü bulunabilir. En güncel özellikleri ve güvenlik yamalarını almak için Mosquitto geliştiricileri tarafından sağlanan PPA (Personal Package Archive) deposunu kullanmak en iyi yaklaşımdır.
Mosquitto PPA Deposunu Ekleme
İlk olarak, PPA deposunu sistemimize eklememiz gerekiyor:
sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -y
Bu komut, Mosquitto PPA’sını sisteminizin yazılım kaynaklarına ekler. Depoyu ekledikten sonra, yeni paket listelerini almak için apt update komutunu tekrar çalıştırmalısınız:
sudo apt update
Mosquitto ve İstemcilerini Kurma
Şimdi Mosquitto aracısını ve onunla birlikte gelen istemci araçlarını (test amaçlı kullanacağımız mosquitto_pub ve mosquitto_sub) kurabiliriz:
sudo apt install mosquitto mosquitto-clients -y
Kurulum tamamlandıktan sonra, Mosquitto servisi otomatik olarak başlayacak ve sistem başlangıcında etkinleştirilecektir.
Kurulumu Doğrulama
Mosquitto servisinin çalışıp çalışmadığını kontrol edelim:
systemctl status mosquitto
Çıktıda Active: active (running) ifadesini görmelisiniz. Bu, Mosquitto aracısının başarıyla çalıştığı anlamına gelir.
Temel Yapılandırma ve İlk Test
Mosquitto, varsayılan olarak /etc/mosquitto/mosquitto.conf dosyasından yapılandırma ayarlarını okur. Varsayılan kurulumda, Mosquitto genellikle anonim erişime izin verir ve herhangi bir kimlik doğrulama veya şifreleme kullanmaz. Bu, hızlı testler için uygun olsa da, gerçek dünya uygulamaları için kesinlikle güvenli değildir.
Anonim Erişimle İlk Test
Şu anki yapılandırmada, Mosquitto anonim erişime izin verdiği için, herhangi bir kullanıcı adı veya şifre olmadan mesaj yayınlayabilir ve abone olabilirsiniz.
Bir terminal penceresinde bir abone (subscriber) başlatalım:
mosquitto_sub -h localhost -t "test/topic"
Bu komut, localhost adresindeki Mosquitto aracısına bağlanır ve test/topic konusuna abone olur.
Başka bir terminal penceresinde bir yayıncı (publisher) başlatalım:
mosquitto_pub -h localhost -t "test/topic" -m "Merhaba MQTT!"
mosquitto_sub penceresinde “Merhaba MQTT!” mesajını görmelisiniz. Bu, Mosquitto kurulumunuzun başarılı olduğunu ve temel işlevselliğinin çalıştığını gösterir.
Güvenlik Adımları – Vazgeçilmez Bir Gereklilik
Mosquitto’yu üretim ortamında veya internete açık bir şekilde kullanmayı düşünüyorsanız, güvenlik adımları hayati öneme sahiptir. Aşağıdaki adımlar, Mosquitto kurulumunuzu daha güvenli hale getirecektir:
1. Anonim Erişimi Devre Dışı Bırakma
2. Kullanıcı Adı ve Şifre Doğrulaması Ekleme
3. Erişim Kontrol Listeleri (ACL’ler) ile Yetkilendirme
4. TLS/SSL ile İletişim Şifrelemesi
1. Anonim Erişimi Devre Dışı Bırakma
İlk ve en önemli güvenlik adımı, anonim kullanıcıların aracıya bağlanmasını engellemektir. Bu, yetkisiz kişilerin mesajlarınıza erişmesini veya sisteminize yük bindirmesini önler.
Mosquitto yapılandırma dosyasını düzenleyelim:
sudo nano /etc/mosquitto/mosquitto.conf
Dosyanın herhangi bir yerine (genellikle sonuna doğru) aşağıdaki satırı ekleyin:
allow_anonymous false
Değişikliği kaydetmek için CTRL+O, ardından ENTER ve CTRL+X tuşlarına basın.
Mosquitto servisini yeniden başlatın ki değişiklikler etkin olsun:
sudo systemctl restart mosquitto
Şimdi anonim olarak abone olmaya veya yayınlamaya çalışırsanız, Mosquitto bağlantıyı reddedecektir:
mosquitto_sub -h localhost -t "test/topic"
Çıktı: Connection Refused: not authorised.
Bu beklenen bir davranıştır ve Mosquitto’nun anonim erişimi başarıyla engellediğini gösterir.
2. Kullanıcı Adı ve Şifre Doğrulaması
Anonim erişimi devre dışı bıraktığımıza göre, artık yetkili kullanıcıların bağlanabilmesi için kullanıcı adı ve şifre tabanlı kimlik doğrulamasını yapılandırmamız gerekiyor. Mosquitto, şifreleri güvenli bir şekilde saklamak için bir parola dosyası kullanır.
Parola Dosyası Oluşturma
Mosquitto, mosquitto_passwd yardımcı programını kullanarak şifreleri hash’lenmiş biçimde bir dosyaya kaydeder. İlk kullanıcıyı oluştururken -c (create) bayrağını kullanırız.
sudo mosquitto_passwd -c /etc/mosquitto/passwd
Örneğin, mqttuser adında bir kullanıcı oluşturalım:
sudo mosquitto_passwd -c /etc/mosquitto/passwd mqttuser
Komutu çalıştırdıktan sonra, sizden yeni bir şifre girmeniz ve onaylamanız istenecektir.
Daha sonra ek kullanıcılar eklemek için -c bayrağını kullanmayın, aksi takdirde mevcut dosyanın üzerine yazılır ve önceki kullanıcılar silinir. Sadece yeni kullanıcı adı ile komutu çalıştırın:
sudo mosquitto_passwd /etc/mosquitto/passwd
Örneğin, adminuser adında ikinci bir kullanıcı ekleyelim:
sudo mosquitto_passwd /etc/mosquitto/passwd adminuser
Parola dosyasının içeriğini kontrol edebilirsiniz (şifreler hash’lenmiş olmalıdır):
sudo cat /etc/mosquitto/passwd
Mosquitto’yu Parola Dosyasını Kullanacak Şekilde Yapılandırma
Şimdi Mosquitto’ya bu parola dosyasını kullanmasını söylememiz gerekiyor. Yapılandırma dosyasını tekrar düzenleyelim:
sudo nano /etc/mosquitto/mosquitto.conf
allow_anonymous false satırının altına veya uygun bir yere aşağıdaki satırı ekleyin:
password_file /etc/mosquitto/passwd
Dosyayı kaydedip Mosquitto servisini yeniden başlatın:
sudo systemctl restart mosquitto
Kullanıcı Adı ve Şifre ile Test Etme
Şimdi oluşturduğunuz kullanıcı adı ve şifre ile abone olmaya ve yayınlamaya çalışın:
# Abone ol
mosquitto_sub -h localhost -t "test/topic" -u mqttuser -P
Yayınla
mosquitto_pub -h localhost -t "test/topic" -m "Merhaba Yetkili Kullanıcı!" -u mqttuser -P
Mesajın başarıyla iletildiğini görmelisiniz. Eğer yanlış kullanıcı adı veya şifre girerseniz, Connection Refused: not authorised. hatası alırsınız.
3. Erişim Kontrol Listeleri (ACL’ler)
Kullanıcı adı ve şifre doğrulaması, kimlerin bağlanabileceğini kontrol eder. Erişim Kontrol Listeleri (ACL’ler) ise, bağlanan kullanıcıların hangi konulara (topics) okuma ve yazma erişimine sahip olacağını belirlemenizi sağlar. Bu, farklı kullanıcıların farklı yetkilere sahip olmasını sağlamak için kritik öneme sahiptir.
ACL Dosyası Oluşturma
Mosquitto için bir ACL dosyası oluşturalım:
sudo nano /etc/mosquitto/acl.conf
Bu dosyaya kullanıcıların ve konuların erişim kurallarını ekleyeceğiz. İşte bir örnek:
# Varsayılan olarak tüm kullanıcılara tüm konulara erişimi reddet
Bu, spesifik olarak izin verilmeyen her şeyin yasaklanmasını sağlar
Bu satırın aktif olması için Mosquitto yapılandırmasında 'allow_anonymous false' ve 'password_file' tanımlı olmalıdır.
Sadece 'user' tanımlamaları ile izin verilir.
'mqttuser' kullanıcısı sadece 'sensörler/oda1' konusuna okuma erişimine sahip
user mqttuser
topic read sensörler/oda1
'adminuser' kullanıcısı tüm konulara okuma ve yazma erişimine sahip
user adminuser
topic readwrite #
Yukarıdaki örnekte:
* mqttuser sadece sensörler/oda1 konusuna abone olabilir (okuma).
* adminuser ise # joker karakteri sayesinde tüm konulara hem abone olabilir hem de mesaj yayınlayabilir.
Dosyayı kaydedin ve kapatın.
Mosquitto’yu ACL Dosyasını Kullanacak Şekilde Yapılandırma
Mosquitto’ya bu ACL dosyasını kullanmasını söylemek için yapılandırma dosyasını tekrar düzenleyelim:
sudo nano /etc/mosquitto/mosquitto.conf
Aşağıdaki satırı ekleyin:
acl_file /etc/mosquitto/acl.conf
Dosyayı kaydedip Mosquitto servisini yeniden başlatın:
sudo systemctl restart mosquitto
ACL’leri Test Etme
Şimdi ACL’lerin doğru çalışıp çalışmadığını test edelim:
Test 1: mqttuser‘ın izin verilen konuya erişimi
# mqttuser, sensörler/oda1 konusuna abone olmalı (izinli)
mosquitto_sub -h localhost -t "sensörler/oda1" -u mqttuser -P
Başka bir terminalde adminuser ile bu konuya yayın yap
mosquitto_pub -h localhost -t "sensörler/oda1" -m "Oda1 Sıcaklık: 24C" -u adminuser -P
mqttuser‘ın terminalinde mesajı görmelisiniz.
Test 2: mqttuser‘ın izin verilmeyen konuya erişimi
# mqttuser, kontrol/kapı konusuna abone olmaya çalış (izinli değil)
mosquitto_sub -h localhost -t "kontrol/kapı" -u mqttuser -P
Çıktı: Connection Refused: not authorised. veya bağlantı kurulur ancak mesaj alamaz.
Mosquitto loglarında 'denied by ACL' görebilirsiniz.
mosquitto_sub komutu bağlantı kurabilir ancak adminuser bu konuya yayın yaptığında mqttuser mesajı alamaz. Bu, ACL’nin çalıştığını gösterir.
Test 3: mqttuser‘ın herhangi bir konuya yayın yapma denemesi
ACL’mizde mqttuser‘a herhangi bir konuya yazma izni vermedik.
# mqttuser, sensörler/oda1 konusuna yayın yapmaya çalış (izinli değil)
mosquitto_pub -h localhost -t "sensörler/oda1" -m "Mesaj gönderiyorum" -u mqttuser -P
Çıktı: Connection Refused: not authorised. veya bağlantı kurulur ancak yayın başarısız olur.
Bu testler, ACL’lerinizin doğru bir şekilde çalıştığını doğrulamalıdır.
4. TLS/SSL ile İletişim Şifrelemesi
Kullanıcı adı/şifre ve ACL’ler kimlik doğrulama ve yetkilendirme sağlarken, mesajların ağ üzerinden şifresiz gönderilmesi hala bir güvenlik açığıdır. TLS/SSL (Transport Layer Security/Secure Sockets Layer) kullanarak tüm MQTT iletişimini şifreleyebiliriz. Bu, mesajların gizliliğini ve bütünlüğünü sağlar.
Bu adımda, kendi kendimize imzalı (self-signed) sertifikalar oluşturacağız. Üretim ortamlarında ise, güvenilir bir Sertifika Yetkilisi’nden (CA) alınan sertifikaları kullanmanız şiddetle tavsiye edilir. Ancak hızlı başlangıç için kendi sertifikalarımızı oluşturmak yeterlidir.
Sertifika Yetkilisi (CA) Oluşturma
Önce, sertifikaları saklamak için bir dizin oluşturalım ve bu dizine geçelim:
sudo mkdir /etc/mosquitto/certs
sudo cd /etc/mosquitto/certs
Şimdi bir kök Sertifika Yetkilisi (CA) anahtarı ve sertifikası oluşturalım. Bu CA, hem sunucu hem de (isteğe bağlı olarak) istemci sertifikalarımızı imzalayacak.
# 1. CA için özel anahtar oluşturma
sudo openssl genrsa -out ca.key 2048
2. CA sertifikası oluşturma (kendi kendini imzalar)
Ortak Ad (Common Name) olarak sunucunuzun FQDN'sini (örn: mqtt.example.com) veya IP adresini girmeniz önemlidir.
sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt
openssl req komutunu çalıştırdığınızda, sizden bazı bilgiler istenecektir:
* Country Name (2 letter code): TR
* State or Province Name: Istanbul
* Locality Name: Kadikoy
* Organization Name: MyCompany
* Organizational Unit Name: IoT
* Common Name: Buraya sunucunuzun IP adresini veya alan adını girin. (örn: 192.168.1.100 veya mqtt.example.com)
* Email Address: admin@mycompany.com
Common Name alanına Mosquitto sunucunuzun IP adresini veya alan adını (eğer bir alan adınız varsa) doğru bir şekilde girdiğinizden emin olun. İstemciler bağlanırken bu adı doğrulayacaktır.
Mosquitto Sunucu Sertifikası Oluşturma
Şimdi Mosquitto sunucusu için bir özel anahtar ve sertifika isteği (CSR) oluşturalım. Ardından bu CSR’yi kendi CA’mızla imzalayarak sunucu sertifikasını elde edeceğiz.
# 1. Sunucu için özel anahtar oluşturma
sudo openssl genrsa -out server.key 2048
2. Sunucu sertifika isteği (CSR) oluşturma
Common Name olarak tekrar sunucunuzun IP adresini veya alan adını girin.
sudo openssl req -new -out server.csr -key server.key
openssl req komutunda yine bilgiler istenecek. Common Name alanına mutlaka CA sertifikasını oluştururken kullandığınız aynı IP adresini veya alan adını girin.
# 3. Sunucu sertifikasını CA anahtarı ile imzalama
sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
Bu komut, server.csr dosyasındaki isteği ca.crt (CA sertifikası) ve ca.key (CA özel anahtarı) kullanarak imzalar ve server.crt adında bir sunucu sertifikası oluşturur. server.crt dosyasının geçerlilik süresi 365 gün olacaktır.
Dosya İzinlerini Ayarlama
Sertifika ve anahtar dosyalarının doğru izinlere sahip olması önemlidir. Özel anahtarların sadece Mosquitto tarafından okunabilir olması gerekir.
sudo chown mosquitto:mosquitto ca.crt server.crt server.key
sudo chmod 400 server.key
sudo chmod 444 ca.crt server.crt
Mosquitto’yu TLS için Yapılandırma
Şimdi Mosquitto yapılandırma dosyasını düzenleyerek TLS’yi etkinleştirelim:
sudo nano /etc/mosquitto/mosquitto.conf
Varsayılan MQTT portu 1883’tür. TLS için genellikle 8883 portu kullanılır. Hem 1883 (şifresiz) hem de 8883 (şifreli) portlarını aynı anda dinleyebilirsiniz. Ancak güvenlik için 1883’ü tamamen kapatmak veya sadece localhost‘tan erişime izin vermek isteyebilirsiniz.
Aşağıdaki satırları yapılandırma dosyanıza ekleyin:
# TLS etkinleştirilmiş listener
listener 8883
Sertifika dosyalarının yolu
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
İstemcinin de sertifika sunmasını gerektirmeyin (tek yönlü TLS)
Eğer istemci sertifikası doğrulaması (mutual TLS) yapmak isterseniz bu satırı 'true' yapın.
require_certificate false
İsteğe bağlı: Güvenli olmayan 1883 portunu kapatmak için
listener 1883
Bu satırı yorum satırı yapın veya silin.
Veya sadece localhost'tan erişime izin verin:
listener 1883 localhost
Eğer sadece TLS üzerinden bağlantıya izin vermek ve 1883 portunu tamamen kapatmak istiyorsanız, listener 1883 satırını yorum satırı yapın veya silin. Eğer hem güvenli hem de güvensiz bağlantılara izin vermek istiyorsanız, listener 1883 satırını bırakın. En güvenli yaklaşım 1883’ü kapatmak veya sadece localhost‘a kısıtlamaktır.
Dosyayı kaydedip Mosquitto servisini yeniden başlatın:
sudo systemctl restart mosquitto
TLS ile Test Etme
Şimdi mosquitto_pub ve mosquitto_sub istemcilerini kullanarak TLS bağlantısını test edelim. İstemcilerin, sunucu sertifikasını doğrulayabilmesi için CA sertifikasına ihtiyacı vardır.
# Abone ol (CA sertifikasını belirtin, TLS portunu ve kimlik bilgilerini kullanın)
mosquitto_sub -h -p 8883 --cafile /etc/mosquitto/certs/ca.crt -t "secure/topic" -u mqttuser -P
Yayınla (CA sertifikasını belirtin, TLS portunu ve kimlik bilgilerini kullanın)
mosquitto_pub -h -p 8883 --cafile /etc/mosquitto/certs/ca.crt -t "secure/topic" -m "Güvenli Mesaj!" -u mqttuser -P
yerine Mosquitto sunucunuzun IP adresini veya alan adını (CA ve sunucu sertifikalarını oluştururken kullandığınız Common Name ile aynı olmalı) yazın. yerine mqttuser‘ın şifresini girin.
Eğer bağlantı başarılı olursa ve mesajlar iletilirse, TLS şifrelemesini başarıyla yapılandırdınız demektir.
İstemci Sertifikası Doğrulaması (Mutual TLS – İsteğe Bağlı)
Daha yüksek güvenlik seviyesi için, Mosquitto’yu sadece bilinen istemci sertifikalarına sahip istemcilerin bağlanmasına izin verecek şekilde yapılandırabilirsiniz (Mutual TLS). Bu durumda, her istemcinin kendi özel anahtarı ve CA’nız tarafından imzalanmış bir istemci sertifikası olması gerekir.
Bu adımı uygulamak için:
1. Her istemci için bir özel anahtar ve sertifika isteği (CSR) oluşturun.
2. Bu CSR’leri CA anahtarınızla imzalayarak istemci sertifikalarını oluşturun.
3. Mosquitto yapılandırmasında require_certificate true olarak ayarlayın.
4. İstemciler bağlanırken kendi sertifika ve anahtar dosyalarını --cert ve --key parametreleriyle belirtmelidir.
Bu, “hızlı başlangıç” kapsamını biraz aşsa da, gelişmiş güvenlik ihtiyacı olan durumlar için önemli bir seçenektir.
Güvenlik Duvarı Yapılandırması (UFW)
Mosquitto sunucunuzun dışarıdan erişilebilir olması için güvenlik duvarında (firewall) gerekli portları açmanız gerekmektedir. Ubuntu’da UFW (Uncomplicated Firewall) yaygın olarak kullanılır.
Varsayılan olarak Mosquitto, MQTT için 1883 portunu ve MQTT over TLS için 8883 portunu kullanır.
# MQTT (güvenli olmayan) portu için kural ekle (eğer kullanıyorsanız)
sudo ufw allow 1883/tcp
MQTT over TLS (güvenli) portu için kural ekle
sudo ufw allow 8883/tcp
Güvenlik duvarını etkinleştir (eğer etkin değilse)
sudo ufw enable
Güvenlik duvarı durumunu kontrol et
sudo ufw status
ufw status çıktısında 1883/tcp ve 8883/tcp portlarının ALLOW olarak listelendiğini görmelisiniz. Eğer 1883 portunu kapatmayı tercih ettiyseniz, sadece 8883 portunu açmanız yeterlidir.
Sorun Giderme ve İpuçları
Kurulum veya yapılandırma sırasında sorun yaşarsanız, aşağıdaki adımları kontrol edin:
* Mosquitto Logları: Mosquitto’nun ne olduğunu anlamak için loglarını kontrol edin:
sudo journalctl -u mosquitto -f
Bu komut, Mosquitto servisinin gerçek zamanlı loglarını gösterir ve bağlantı reddi, kimlik doğrulama hataları veya sertifika sorunları gibi mesajları içerebilir.
* Yapılandırma Dosyası: /etc/mosquitto/mosquitto.conf dosyasındaki yazım hatalarını veya eksik satırları kontrol edin. Herhangi bir değişiklik yaptıktan sonra servisi yeniden başlattığınızdan emin olun.
* Sertifika ve Anahtar Yolları: TLS yapılandırmasında cafile, certfile, keyfile yollarının doğru olduğundan ve dosya izinlerinin uygun olduğundan emin olun. Özel anahtarların sadece Mosquitto kullanıcısı tarafından okunabilir olması gerekir (chmod 400).
* Ortak Ad (Common Name): TLS sertifikalarını oluştururken Common Name alanına sunucunun doğru IP adresini veya alan adını girdiğinizden ve istemcilerin bu adla bağlanmaya çalıştığından emin olun.
* Güvenlik Duvarı: UFW veya başka bir güvenlik duvarı kullanıyorsanız, Mosquitto’nun kullandığı portların (1883 ve/veya 8883) açık olduğundan emin olun.
* Mosquitto Servisi: Mosquitto servisinin çalıştığından emin olun: systemctl status mosquitto.
Sonuç
Bu kapsamlı kılavuzda, Mosquitto MQTT mesajlaşma aracısını Ubuntu 18.04 üzerine kurmayı ve temel güvenlik adımlarını uygulamayı öğrendiniz. Anonim erişimi devre dışı bırakarak, kullanıcı adı ve şifre doğrulaması ekleyerek, erişim kontrol listeleri (ACL’ler) ile yetkilendirme yaparak ve TLS/SSL ile iletişimi şifreleyerek Mosquitto kurulumunuzu önemli ölçüde daha güvenli hale getirdiniz.
Bu adımlar, Mosquitto’nuzu üretim ortamlarına daha uygun hale getirirken, IoT ve diğer mesajlaşma tabanlı uygulamalarınız için sağlam bir temel oluşturur. Güvenlik, hiçbir zaman tek seferlik bir işlem değildir; düzenli olarak gözden geçirilmeli ve güncel tehditlere karşı korunmalıdır. Oluşturduğunuz self-signed sertifikaları gerçek bir CA’dan alınmış sertifikalarla değiştirmeyi ve güçlü şifre politikaları uygulamayı unutmayın. Artık güvenli bir Mosquitto kurulumuna sahipsiniz ve IoT projelerinizi gönül rahatlığıyla geliştirmeye başlayabilirsiniz!