Mosquitto MQTT Broker Kurulumu ve Güvenlik Ayarları - IoT Gateway Altyapısı Rehberi
MQTT, IoT cihazları arasında hafif ve güvenilir bir haberleşme protokolüdür. Bu rehberde, Mosquitto MQTT broker kurulumu, güvenlik yapılandırmaları ve bir IoT gateway altyapısında kullanımını adım adım anlatıyoruz.
MQTT ve Mosquitto Broker Nedir?
MQTT (Message Queuing Telemetry Transport), IoT cihazları için tasarlanmış hafif bir yayın/abone (publish/subscribe) protokolüdür. Düşük bant genişliği ve minimal güç tüketimi ile özellikle endüstriyel IoT ve uzaktan izleme sistemlerinde yaygın olarak kullanılır. Eclipse Mosquitto, açık kaynaklı ve popüler bir MQTT broker uygulamasıdır. Hem küçük ölçekli projeler hem de büyük endüstriyel ağlar için uygun, güvenilir ve kolay yapılandırılabilir bir çözüm sunar.
Mosquitto Broker Kurulumu
Mosquitto, Linux, Windows ve macOS gibi birçok platformda çalışabilir. Endüstriyel ortamlarda genellikle Linux tabanlı sistemler tercih edilir. Aşağıda bir Debian/Ubuntu sunucusunda kurulum adımlarını bulabilirsiniz.
1. Depoyu Ekleme ve Kurulum
sudo apt update
sudo apt install mosquitto mosquitto-clientsKurulum tamamlandığında Mosquitto otomatik olarak arka planda çalışmaya başlar. Varsayılan olarak 1883 portunda (TLS'siz) dinleme yapar.
2. Servisi Başlatma ve Kontrol Etme
sudo systemctl start mosquitto
sudo systemctl enable mosquitto
sudo systemctl status mosquittoEğer servis düzgün çalışıyorsa, istemci araçlarıyla bağlantı testi yapabilirsiniz.
3. İstemci ile Test
Bir terminalde abone olun:
mosquitto_sub -h localhost -t "test/topic"Başka bir terminalde yayın yapın:
mosquitto_pub -h localhost -t "test/topic" -m "Merhaba Dünya"Abone olan terminalde mesaj görünmelidir.
Güvenlik Yapılandırması
Varsayılan Mosquitto yapılandırması güvenlik açısından yetersizdir. Aşağıdaki adımlarla broker'ınızı güvenli hale getirebilirsiniz.
TLS/SSL Sertifikası ile Şifreleme
TLS, MQTT trafiğini şifreleyerek dinleme ve müdahale saldırılarını engeller. Kendi imzalı bir sertifika oluşturabilir veya Let's Encrypt gibi bir CA'dan ücretsiz sertifika alabilirsiniz.
#### Kendi imzalı sertifika oluşturma:
sudo mosquitto_passwd -c /etc/mosquitto/passwd kullanici_adiArdından /etc/mosquitto/conf.d/default.conf dosyasını düzenleyin:
listener 8883
cafile /etc/mosquitto/ca.crt
certfile /etc/mosquitto/server.crt
keyfile /etc/mosquitto/server.key
require_certificate false
tls_version tlsv1.2Servisi yeniden başlatın: sudo systemctl restart mosquitto
Kimlik Doğrulama
Kullanıcı adı ve parola ile erişimi kısıtlayın:
password_file /etc/mosquitto/passwd
allow_anonymous falseKullanıcı eklemek için:
sudo mosquitto_passwd -c /etc/mosquitto/passwd kullanici_adiACL (Erişim Kontrol Listesi) ile Konu Tabanlı Yetkilendirme
Belirli kullanıcıların yalnızca belirli konulara erişmesini sağlayabilirsiniz. Örnek ACL dosyası:
user sensor1
topic write sensor/temperature
topic read sensor/status
user admin
topic readwrite #ACL dosyasını yapılandırmaya ekleyin:
acl_file /etc/mosquitto/aclIoT Gateway Entegrasyonu
Endüstriyel ortamlarda MQTT broker genellikle bir IoT gateway üzerinde çalışır. Örneğin, saha cihazlarından gelen verilerin toplanması ve buluta iletilmesi için güçlü bir yönlendirici kullanılabilir. MikroTik RB5009UPr+S+OUT Dış Mekan Router gibi cihazlar, RouterOS işletim sistemi sayesinde MQTT broker çalıştırabilir veya harici bir sunucuya bağlanabilir. Ayrıca MikroTik LtAP LTE6 Kit Dış Mekan LTE Erişim Noktası ile mobil bağlantı üzerinden veri iletimi sağlanabilir.
Gateway'in fiziksel katmanında ETK 305M Cat5e U/UTP LAN Kablosu gibi kaliteli kablolama kullanmak, sinyal bütünlüğünü korur. Daha geniş bir ağ yapısı için Mercusys AC1200 Kablosuz Çift Bant Router gibi cihazlar ile kablosuz bağlantı da eklenebilir.
MQTT vs Diğer IoT Protokolleri
| Protokol | Taşıma Katmanı | Güvenlik | Kullanım Alanı |
|---|---|---|---|
| MQTT | TCP | TLS, Kimlik Doğrulama | Sensör verisi, uzaktan izleme |
| CoAP | UDP | DTLS | Düşük güçlü cihazlar |
| HTTP | TCP | SSL/TLS | Web servisleri, yüksek bant |
MQTT, düşük gecikme ve bant genişliği avantajıyla IoT için idealdir.
Sık Sorulan Sorular
Mosquitto broker hangi portları kullanır?
Varsayılan olarak MQTT 1883, MQTTS (TLS) 8883, WebSocket 8080 ve WebSocket (TLS) 8081 portlarını kullanır. Yapılandırma dosyasından değiştirilebilir.
Mosquitto'yu Windows'a kurabilir miyim?
Evet, Mosquitto Windows için de derlenmiş sürümler sunar. Resmi sitesinden .exe kurulum dosyasını indirip kolayca kurabilirsiniz.
Birden fazla broker arasında yük dengeleme nasıl yapılır?
Mosquitto'nun bridge özelliği ile broker'lar birbirine bağlanabilir. Konuları paylaşarak yük dengeleme ve yedeklilik sağlanabilir.
MQTT güvenliği için TLS şart mı?
TLS şart değildir ancak özellikle açık ağlar üzerinde veri şifreleme ve kimlik doğrulama için TLS kullanılması önerilir. İç ağlarda bile temel kimlik doğrulama yapılmalıdır.
Sonuç
Mosquitto MQTT broker, endüstriyel IoT projeleriniz için hafif, güvenilir ve ölçeklenebilir bir haberleşme altyapısı sunar. Güvenlik yapılandırmalarını eksiksiz uygulayarak cihazlarınızı yetkisiz erişimlere karşı koruyabilirsiniz. Doğru donanım seçimiyle, MikroTik RB5009UPr+S+OUT gibi güçlü gateway cihazları üzerinde broker çalıştırarak sistem performansınızı artırabilirsiniz. Daha fazla bilgi ve ürün seçenekleri için Dincnet.com'u ziyaret edin.