Prosody XMPP Sunucusunu Ubuntu 18.04 Üzerine Kurulumu ve Yapılandırması
Gerçek zamanlı iletişim günümüz dijital dünyasının temel taşlarından biridir. Anlık mesajlaşma, video konferans, durum güncellemeleri ve çok daha fazlası, kullanıcıların hızlı ve güvenilir bir şekilde etkileşim kurmasını sağlar. Bu tür iletişim altyapılarının arkasında genellikle XMPP (Extensible Messaging and Presence Protocol) gibi güçlü ve esnek protokoller bulunur. XMPP, açık standartlara dayalı, merkezi olmayan ve genişletilebilir yapısıyla anlık mesajlaşma ve varlık hizmetleri için dünya genelinde yaygın olarak kullanılan bir protokoldür.
Prosody, XMPP protokolünü uygulayan hafif, açık kaynaklı ve kullanımı kolay bir anlık mesajlaşma sunucusudur. Lua programlama diliyle yazılmış olması, onu son derece hızlı, modüler ve kaynak dostu hale getirir. Özellikle küçük ve orta ölçekli kurulumlar için ideal bir seçenek olmasının yanı sıra, doğru yapılandırma ile büyük ölçekli sistemlerde de başarılı bir şekilde kullanılabilir. Bu makalede, Prosody XMPP sunucusunu Ubuntu 18.04 LTS (Long Term Support) işletim sistemi üzerine nasıl kuracağınızı ve temelden ileri düzeye nasıl yapılandıracağınızı adım adım ele alacağız. Ubuntu 18.04, kararlılığı ve uzun süreli desteği nedeniyle sunucu ortamlarında hala popüler bir tercihtir.
1. Giriş: Prosody ve XMPP’nin Önemi
XMPP, başlangıçta Jabber olarak bilinen bir anlık mesajlaşma sistemi olarak ortaya çıkmıştır. Ancak zamanla sadece mesajlaşmadan çok daha fazlasını sunan, genel amaçlı bir XML tabanlı iletişim protokolüne dönüşmüştür. E-posta gibi merkezi olmayan bir yapıya sahiptir; yani farklı sunuculardaki kullanıcılar birbiriyle iletişim kurabilir. Bu, XMPP’yi kapalı, tekelleşmiş iletişim platformlarına güçlü bir alternatif yapar.
Prosody, bu XMPP protokolünü başarıyla uygulayan sunuculardan biridir. Diğer popüler XMPP sunucuları olan ejabberd (Erlang tabanlı) ve Openfire (Java tabanlı) ile karşılaştırıldığında Prosody, özellikle kaynak tüketimi açısından daha verimli, yapılandırması daha basit ve modüler yapısıyla daha esnektir. Lua dilinin getirdiği performans avantajları ve basit yapılandırma dosyaları, sistem yöneticileri için öğrenme eğrisini düşürürken, geliştiricilere de genişletilebilirlik sağlar. Bir XMPP sunucusu kurarak, kendi güvenli ve özel iletişim ağınızı oluşturabilir, üçüncü taraf platformlara bağımlılığı azaltabilir ve veri gizliliğini artırabilirsiniz.
2. Ön Gereksinimler
Prosody kurulumuna başlamadan önce aşağıdaki ön gereksinimlerin karşılandığından emin olmalısınız:
* Ubuntu 18.04 Sunucusu: Temiz bir Ubuntu 18.04 LTS kurulumuna sahip bir fiziksel sunucu, sanal makine (VM) veya bulut tabanlı bir VPS (Virtual Private Server).
* Root veya Sudo Yetkileri: Kurulum ve yapılandırma işlemleri için sudo yetkilerine sahip bir kullanıcı veya doğrudan root kullanıcısı erişimi.
* İnternet Bağlantısı: Paket indirme ve güncelleme işlemleri için aktif bir internet bağlantısı.
* Alan Adı (Domain Name): XMPP sunucunuz için bir alan adına sahip olmanız gerekmektedir (örneğin, example.com). Bu alan adı, kullanıcılarınızın JID’lerinde (Jabber ID) kullanılacaktır (örneğin, kullanici@example.com).
* DNS Kayıtları: Alan adınız için gerekli DNS kayıtlarını yapılandırmanız önerilir:
* A Kaydı: XMPP sunucunuzun IP adresini işaret eden bir A kaydı (örneğin, xmpp.example.com -> sunucu_ip_adresi).
* SRV Kayıtları (İsteğe Bağlı ama Önerilir): XMPP istemcilerinin sunucunuzu otomatik olarak bulmasını sağlayan SRV kayıtları.
* _xmpp-client._tcp.example.com IN SRV 5 0 5222 xmpp.example.com.
* _xmpp-server._tcp.example.com IN SRV 5 0 5269 xmpp.example.com.
(Buradaki xmpp.example.com yerine kendi sunucunuzun tam alan adını yazmalısınız.)
* Temel Linux Bilgisi: Komut satırı kullanımı, dosya düzenleme (nano veya vim gibi editörlerle) ve servis yönetimi hakkında temel bilgi.
3. Sistem Güncellemesi
Herhangi bir yazılım kurulumuna başlamadan önce sistem paket listelerini güncellemek ve mevcut paketleri yükseltmek iyi bir alışkanlıktır. Bu, potansiyel güvenlik açıklarını kapatır ve bağımlılık sorunlarını önler.
SSH ile sunucunuza bağlandıktan sonra aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
* sudo apt update: Yerel paket indeksinizi uzak depolardaki en son bilgilerle senkronize eder.
* sudo apt upgrade -y: Mevcut yüklü paketlerinizi en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermeyi sağlar.
* sudo apt dist-upgrade -y: Yeni bağımlılıklar ekleyen veya mevcut bağımlılıkları kaldıran yükseltmeleri de içerir. Bu, daha kapsamlı bir yükseltmedir.
4. Prosody Kurulumu
Ubuntu 18.04’ün varsayılan depolarında Prosody’nin eski bir sürümü bulunabilir. En son özelliklere, performans iyileştirmelerine ve güvenlik yamalarına sahip olmak için Prosody’nin kendi resmi deposunu kullanmak en iyi yaklaşımdır.
4.1. Prosody Deposunu Ekleme
Öncelikle, Prosody deposunun GPG anahtarını sisteminize eklememiz gerekiyor. Bu, indirdiğiniz paketlerin Prosody tarafından imzalandığını doğrulamanızı sağlar.
wget https://prosody.im/files/prosody-debian-packages.gpg -O /etc/apt/trusted.gpg.d/prosody.gpg
Ardından, Prosody deposunu sisteminizin sources.list.d dizinine ekleyin. Bu, apt paket yöneticisinin Prosody paketlerini nereden bulacağını bilmesini sağlar. $(lsb_release -sc) komutu, işletim sisteminizin kod adını (Ubuntu 18.04 için bionic) otomatik olarak algılar.
echo "deb https://prosody.im/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/prosody.list
Depoyu ekledikten sonra, apt paket listesini tekrar güncellemelisiniz ki yeni depo içeriği yüklenebilsin:
sudo apt update
4.2. Prosody Paketini Kurma
Artık Prosody paketini yüklemeye hazırsınız:
sudo apt install prosody -y
Kurulum tamamlandıktan sonra Prosody servisi otomatik olarak başlayacaktır. Servisin durumunu kontrol ederek doğru çalıştığından emin olabilirsiniz:
sudo systemctl status prosody
Çıktıda active (running) ibaresini görmeniz gerekmektedir. Eğer aktif değilse, sudo systemctl start prosody komutuyla başlatabilirsiniz.
5. Temel Yapılandırma
Prosody’nin ana yapılandırma dosyası /etc/prosody/prosody.cfg.lua konumundadır. Bu dosya Lua tabanlıdır ve Prosody’nin tüm davranışlarını kontrol eder.
5.1. Yapılandırma Dosyasını Düzenleme
Öncelikle, mevcut yapılandırma dosyasının bir yedeğini almanız önerilir:
sudo cp /etc/prosody/prosody.cfg.lua /etc/prosody/prosody.cfg.lua.bak
Şimdi dosyayı bir metin düzenleyici ile açın (örneğin nano):
sudo nano /etc/prosody/prosody.cfg.lua
5.2. admins Ayarı
Bu ayar, sunucuda yönetici yetkilerine sahip JID’leri (Jabber ID) tanımlar. Yönetici JID’leri, sunucu yönetim komutlarını (örneğin, prosodyctl) kullanabilir ve bazı modüller için özel ayrıcalıklara sahip olabilir. Kendi yönetici JID’inizi bu listeye ekleyin:
-- Yönetici JID'leri. Bu kişiler sunucu üzerinde özel yetkilere sahip olacaktır.
admins = { "admin@example.com" }
example.com yerine kendi alan adınızı kullanın. Bu JID’ye sahip bir kullanıcıyı daha sonra oluşturacağız.
5.3. VirtualHost Tanımı
Prosody’nin hangi alan adları için XMPP hizmeti sunacağını belirtmelisiniz. Bu, XMPP sunucunuzun ana kimliğidir. Alan adınızı VirtualHost bloğuna ekleyin:
-- XMPP hizmeti sunulacak alan adları.
VirtualHost "example.com"
-- Bu alan adı için ek yapılandırmalar buraya gelecek.
-- Örneğin, SSL/TLS sertifika yolları.
Eğer birden fazla alan adı için hizmet vermek isterseniz, her biri için ayrı bir VirtualHost bloğu tanımlayabilirsiniz.
5.4. SSL/TLS Sertifika Yolları (Şimdilik Temel)
SSL/TLS sertifikalarını daha sonra detaylı olarak ele alacağız, ancak Prosody varsayılan olarak ssl bloğunu bekler. Şimdilik, varsayılan sertifika yollarını kontrol edebiliriz. Eğer Let’s Encrypt kullanacaksanız, bu yolları daha sonra güncelleyeceğiz.
ssl = {
key = "/etc/prosody/certs/example.com.key";
certificate = "/etc/prosody/certs/example.com.crt";
}
Bu yollar genellikle Prosody’nin kendi prosodyctl cert generate komutuyla oluşturulan self-signed sertifikalar için kullanılır.
Yapılandırma dosyasını kaydettikten sonra (nano’da Ctrl+X, Y, Enter), Prosody servisini yeniden başlatın:
sudo systemctl restart prosody
Her yapılandırma değişikliğinden sonra servisi yeniden başlatmayı unutmayın.
6. Kullanıcı Yönetimi
Prosody, kullanıcıları komut satırı aracılığıyla yönetmek için prosodyctl yardımcı programını sunar.
6.1. Kullanıcı Oluşturma
Daha önce admins listesine eklediğiniz yönetici kullanıcısını ve diğer normal kullanıcıları oluşturabilirsiniz:
sudo prosodyctl register
Örnek olarak, admin@example.com kullanıcısını oluşturalım:
sudo prosodyctl register admin example.com BenimGucluSifrem123
Ardından, test amaçlı başka bir kullanıcı oluşturabilirsiniz:
sudo prosodyctl register testuser example.com testparola
6.2. Kullanıcı Silme
Bir kullanıcıyı silmek için:
sudo prosodyctl unregister
Örnek:
sudo prosodyctl unregister testuser example.com
6.3. Şifre Değiştirme
Bir kullanıcının şifresini değiştirmek için:
sudo prosodyctl passwd
Bu komutu çalıştırdığınızda yeni şifreyi girmeniz istenecektir.
7. SSL/TLS Yapılandırması
XMPP iletişimi için SSL/TLS şifrelemesi olmazsa olmazdır. Bu, kullanıcılarınızın şifrelerini ve mesajlarını dinlemeye karşı korur. Let’s Encrypt, ücretsiz ve otomatikleştirilmiş SSL/TLS sertifikaları sunarak bu süreci oldukça kolaylaştırır.
7.1. Let’s Encrypt ile Otomatik Sertifika (Önerilen Yöntem)
Let’s Encrypt sertifikalarını almak ve yönetmek için certbot aracını kullanacağız. Prosody için özel bir certbot eklentisi olmasa da, standalone veya webroot eklentileriyle sertifikaları alıp Prosody’ye entegre edebiliriz.
a. Certbot Kurulumu:
sudo apt install certbot -y
b. Sertifikaları Alma (Standalone Yöntemi):
standalone yöntemi, sertifika alımı sırasında geçici olarak 80 veya 443 numaralı portları kullanır. Bu nedenle, Prosody’nin bu portları kullanmadığından emin olun veya geçici olarak durdurun.
sudo systemctl stop prosody
sudo certbot certonly --standalone -d example.com -d xmpp.example.com
example.com ve xmpp.example.com yerine kendi alan adlarınızı ve sunucu adlarınızı yazın. Certbot size e-posta adresi ve hizmet şartlarını kabul etme gibi sorular soracaktır. Sertifikalar başarıyla alındığında, /etc/letsencrypt/live/example.com/ dizininde bulunacaklardır.
c. Prosody Yapılandırmasını Güncelleme:
Şimdi /etc/prosody/prosody.cfg.lua dosyasını tekrar açın ve VirtualHost bloğundaki ssl ayarlarını güncelleyin:
sudo nano /etc/prosody/prosody.cfg.lua
VirtualHost "example.com" bloğunun içine aşağıdaki satırları ekleyin veya mevcut ssl bloğunu güncelleyin:
VirtualHost "example.com"
ssl = {
key = "/etc/letsencrypt/live/example.com/privkey.pem";
certificate = "/etc/letsencrypt/live/example.com/fullchain.pem";
}
-- Güvenlik için sadece TLSv1.2 ve üzeri protokolleri kullanın
ssl_min_protocol = "TLSv1_2";
example.com yerine kendi alan adınızı kullanın. fullchain.pem dosyası hem sunucu sertifikasını hem de ara sertifikaları içerir. privkey.pem ise özel anahtarınızdır.
d. Servisi Yeniden Başlatma:
sudo systemctl start prosody # Certbot durdurduysa başlatın
sudo systemctl restart prosody
e. Sertifika Yenileme:
Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, otomatik yenileme için bir cron işi oluşturur. Bunu test edebilirsiniz:
sudo certbot renew --dry-run
Bu komut herhangi bir hata vermezse, sertifikalarınızın otomatik olarak yenileneceği anlamına gelir.
7.2. Manuel (Self-Signed) Sertifika Oluşturma (Geliştirme Ortamı İçin)
Üretim ortamları için Let’s Encrypt önerilirken, geliştirme veya test ortamları için self-signed sertifikalar hızlı bir çözüm sunar. Ancak bu sertifikalar tarayıcılar ve XMPP istemcileri tarafından güvenilir kabul edilmez ve güvenlik uyarıları verir.
sudo prosodyctl cert generate example.com
Bu komut, /etc/prosody/certs/ dizininde example.com.key ve example.com.crt dosyalarını oluşturur. Yapılandırma dosyasındaki ssl bloğunu bu yolları gösterecek şekilde bırakabilirsiniz.
7.3. ssl Bloğu Ayarları
Güvenliği artırmak için ssl bloğuna ek ayarlar ekleyebilirsiniz:
VirtualHost "example.com"
ssl = {
key = "/etc/letsencrypt/live/example.com/privkey.pem";
certificate = "/etc/letsencrypt/live/example.com/fullchain.pem";
-- Güvenlik için sadece TLSv1.2 ve üzeri protokolleri kullanın
protocol = "tlsv1_2"; -- Ubuntu 18.04'teki OpenSSL sürümüne göre değişebilir
-- Desteklenen şifreleme algoritmalarını kısıtla
ciphers = "HIGH:!aNULL:!MD5:!RC4";
}
protocol ayarı, sunucunun destekleyeceği minimum TLS protokol sürümünü belirler. tlsv1_2 genellikle iyi bir başlangıç noktasıdır. ciphers ayarı ise zayıf şifreleme algoritmalarını devre dışı bırakır.
8. Ek Modüller ve Özellikler
Prosody’nin gücü, modüler yapısından gelir. modules_enabled bloğu, sunucunuzda hangi özelliklerin etkinleştirileceğini kontrol eder.
8.1. modules_enabled Bloğu
Yapılandırma dosyanızı açın:
sudo nano /etc/prosody/prosody.cfg.lua
modules_enabled bloğunu bulun ve istediğiniz modülleri ekleyin. Aşağıda sık kullanılan ve önerilen bazı modüller bulunmaktadır:
modules_enabled = {
"roster"; -- Roster (arkadaş listesi) yönetimi
"saslauth"; -- SASL kimlik doğrulama
"tls"; -- TLS/SSL şifrelemesi
"dialback"; -- Sunucular arası iletişim güvenliği
"disco"; -- Hizmet keşfi (XEP-0030)
"private"; -- Özel XML depolama (XEP-0049)
"vcard"; -- Kullanıcı profilleri (XEP-0054)
"carbons"; -- Mesajları tüm bağlı istemcilere senkronize etme (XEP-0280)
"mam"; -- Mesaj Arşivi Yönetimi (XEP-0313)
"bosh"; -- HTTP Binding (web tabanlı istemciler için) (XEP-0124, XEP-0206)
"websocket"; -- WebSocket desteği (modern web istemcileri için) (XEP-0357)
"register"; -- Kullanıcıların kendilerini kaydetmelerine izin verir (DİKKATLİ KULLANIN!)
"admin_adhoc"; -- Ad-hoc komutlar aracılığıyla yönetici işlevselliği
"s2s"; -- Sunucular arası iletişim
"c2s"; -- İstemci-sunucu iletişimi
"posix"; -- POSIX sistem işlevleri (dosya sistemi vb.)
"groups"; -- Kullanıcı grupları
"announce"; -- Sunucu duyuruları
"watchregistrations"; -- Yeni kayıtları izleme
"motd"; -- Günün Mesajı (Message of the Day)
"csi"; -- Client State Indication (istemci durum göstergesi)
"smacks"; -- Stream Management (XEP-0198)
}
* mod_register: Bu modül, kullanıcıların XMPP istemcileri aracılığıyla kendi hesaplarını oluşturmalarına olanak tanır. Genellikle kapalı veya özel sunucularda devre dışı bırakılır. Eğer herkesin kayıt olmasını istemiyorsanız, bu modülü modules_enabled listesinden kaldırın.
* mod_mam (Message Archive Management): Mesaj geçmişini sunucuda depolayarak kullanıcıların farklı cihazlardan mesaj geçmişine erişmesini sağlar. Bu, modern mesajlaşma deneyimi için kritik bir modüldür.
* mod_carbons: Bir kullanıcının aynı anda birden fazla cihazda oturum açtığında, gönderilen veya alınan mesajların tüm cihazlara senkronize edilmesini sağlar.
* mod_bosh ve mod_websocket: Web tabanlı XMPP istemcileri (örneğin, web sohbet uygulamaları) için gereklidir. mod_bosh HTTP Binding, mod_websocket ise WebSocket üzerinden bağlantı sağlar. Bu modüller etkinleştirildiğinde, ilgili HTTP/HTTPS portlarının (genellikle 5280 ve 5281) güvenlik duvarında açık olması gerekir.
Modülleri etkinleştirdikten sonra, Prosody servisini yeniden başlatmayı unutmayın:
sudo systemctl restart prosody
8.2. Harici Modüller
Prosody’nin resmi deposunda bulunmayan ancak topluluk tarafından geliştirilen birçok ek modül de mevcuttur. Bu modüllere https://modules.prosody.im/ adresinden ulaşabilirsiniz. Harici bir modülü kurmak için genellikle aşağıdaki adımları izlersiniz:
1. Modülün kaynak kodunu indirin (genellikle git clone ile).
2. Modül dosyasını Prosody’nin modül dizinine kopyalayın (varsayılan olarak /usr/lib/prosody/modules/ veya /usr/local/share/prosody/modules/).
3. prosody.cfg.lua dosyasındaki modules_enabled listesine modül adını ekleyin.
4. Prosody servisini yeniden başlatın.
Örneğin, mod_storage_sql gibi bir modül, kullanıcı verilerini ve mesaj arşivlerini bir veritabanında (MySQL/PostgreSQL) depolamak için kullanılabilir. Bu, daha büyük ölçekli veya yedekleme gerektiren kurulumlar için faydalıdır.
9. Güvenlik İpuçları
Bir XMPP sunucusu kurmak, ağınıza yeni bir giriş noktası eklemek anlamına gelir. Bu nedenle, sunucunuzun güvenliğini sağlamak büyük önem taşır.
9.1. Güvenlik Duvarı (UFW) Yapılandırması
Ubuntu’da varsayılan güvenlik duvarı olan UFW (Uncomplicated Firewall) ile sadece gerekli portlara izin vererek sunucunuzu koruyabilirsiniz.
a. UFW’yi Etkinleştirme:
sudo ufw enable
Bu komutu çalıştırdıktan sonra SSH bağlantınız kesilebilir. Bu yüzden öncelikle SSH portuna izin vermelisiniz.
b. SSH Portuna İzin Verme (Varsayılan 22):
sudo ufw allow ssh
c. Prosody İçin Gerekli Portlara İzin Verme:
* 5222/tcp: İstemci-sunucu iletişimi (C2S) için standart XMPP portu.
* 5269/tcp: Sunucu-sunucu iletişimi (S2S) için standart XMPP portu.
* 5280/tcp: HTTP Binding (BOSH) için HTTP portu (eğer mod_bosh etkinse).
* 5281/tcp: HTTP Binding (BOSH) ve WebSocket için HTTPS portu (eğer mod_bosh veya mod_websocket etkinse ve SSL kullanılıyorsa).
sudo ufw allow 5222/tcp
sudo ufw allow 5269/tcp
sudo ufw allow 5280/tcp
sudo ufw allow 5281/tcp
d. Güvenlik Duvarı Durumunu Kontrol Etme:
sudo ufw status
Bu komut, izin verilen tüm portları listelemelidir.
9.2. Diğer Güvenlik İpuçları
* Sistemi Güncel Tutma: Düzenli olarak sudo apt update && sudo apt upgrade -y komutlarını çalıştırarak işletim sisteminizi ve Prosody’yi güncel tutun.
* Güçlü Şifreler: Kullanıcılar ve yönetici hesapları için güçlü, karmaşık şifreler kullanın.
* Log İzleme: Prosody’nin log dosyalarını (/var/log/prosody/) düzenli olarak kontrol edin. Anormal aktiviteler veya hata mesajları için gözünüz açık olsun.
* DDoS Koruması: Büyük ölçekli kurulumlar için sunucunuzu DDoS saldırılarına karşı korumak amacıyla ek önlemler (örneğin, CDN hizmetleri, özel güvenlik duvarı kuralları) düşünebilirsiniz.
* Yetkilendirme ve Kayıt: mod_register modülünü yalnızca gerçekten ihtiyacınız varsa etkinleştirin. Eğer herkesin kayıt olmasını istemiyorsanız, bu modülü devre dışı bırakın ve kullanıcıları manuel olarak veya özel bir kayıt arayüzü üzerinden oluşturun.
10. Test ve Doğrulama
Kurulum ve yapılandırma adımlarını tamamladıktan sonra, Prosody sunucunuzun düzgün çalıştığını doğrulamak önemlidir.
10.1. Servis Durumu ve Port Kontrolü
Prosody servisinin aktif ve çalışır durumda olduğundan emin olun:
sudo systemctl status prosody
Açık portları ve hangi servislerin dinlediğini kontrol edin:
sudo netstat -tulpn | grep prosody
Veya daha modern bir alternatif:
sudo ss -tulpn | grep prosody
Bu komutun çıktısı, Prosody’nin 5222, 5269, 5280, 5281 (eğer etkinleştirildiyse) gibi portları dinlediğini göstermelidir.
10.2. XMPP İstemcisi ile Bağlantı Testi
Popüler bir XMPP istemcisi kullanarak sunucunuza bağlanmayı deneyin. Bazı popüler istemciler şunlardır:
* Masaüstü: Pidgin (çoklu protokol), Gajim (Linux), Dino (Linux), Spark (Java tabanlı).
* Mobil: Conversations (Android), Monal (iOS).
* Web: Candy, Converse.js (eğer mod_bosh veya mod_websocket etkinse).
Bağlantı Ayarları (Genel):
* Kullanıcı Adı (JID): kullanici@example.com (oluşturduğunuz bir kullanıcı adı ve alan adınız)
* Şifre: Kullanıcının şifresi
* Sunucu Adı/Alan Adı: example.com (veya DNS’inizde yapılandırdığınız XMPP sunucu adı, örn. xmpp.example.com)
* Bağlantı Portu: Genellikle 5222 (istemciler otomatik algılar)
* SSL/TLS: Genellikle otomatik olarak başlar veya açıkça etkinleştirilmesi gerekir (STARTTLS veya doğrudan TLS).
Yönetici kullanıcınız (admin@example.com) ile giriş yapmayı deneyin. Ardından, başka bir test kullanıcısı (testuser@example.com) ile giriş yapın ve iki kullanıcı arasında mesaj gönderip almayı deneyin. Roster (arkadaş listesi) ekleme ve varlık (presence) durumlarını kontrol etme gibi özellikleri de test edin.
11. Sorun Giderme
Kurulum veya yapılandırma sırasında sorunlarla karşılaşmak doğaldır. İşte yaygın sorun giderme adımları:
* Log Dosyalarını Kontrol Etme: Prosody’nin log dosyaları, sorunların kök nedenini bulmak için en iyi yerdir.
sudo tail -f /var/log/prosody/prosody.log
# Diğer log dosyaları: /var/log/prosody/errors.log, /var/log/prosody/debug.log
Hata mesajlarını dikkatlice okuyun.
* Yapılandırma Hatası Kontrolü: Prosody, yapılandırma dosyasındaki sözdizimi hatalarını kontrol etmek için bir komut sunar:
sudo prosodyctl check config
Bu komut, Lua sözdizimi hatalarını veya eksik blokları belirleyebilir.
* Güvenlik Duvarı: sudo ufw status komutuyla güvenlik duvarınızın doğru portlara izin verdiğinden emin olun. Yanlış yapılandırılmış bir güvenlik duvarı, istemcilerin sunucuya bağlanmasını engelleyebilir.
* DNS Kayıtları: Alan adınızın A ve SRV kayıtlarının doğru yapılandırıldığından ve internet üzerinden erişilebilir olduğundan emin olun. dig example.com A ve dig _xmpp-client._tcp.example.com SRV gibi komutlarla kontrol edebilirsiniz.
* SSL/TLS Sertifikaları: Sertifika yollarının /etc/prosody/prosody.cfg.lua dosyasında doğru olduğundan ve sertifikaların süresinin dolmadığından emin olun. Sertifika dosyalarının Prosody kullanıcısı tarafından okunabilir olduğundan da emin olun (genellikle izinler otomatik olarak ayarlanır).
* Modül Bağımlılıkları: Bazı Prosody modülleri ek Lua kütüphanelerine ihtiyaç duyabilir. Örneğin, lua-sec veya lua-socket-ssl gibi paketlerin yüklü olduğundan emin olun:
sudo apt install lua-sec lua-socket-ssl -y
* Prosody Wiki ve Topluluk: Prosody’nin resmi wiki’si (wiki.prosody.im) ve topluluk forumları, yaygın sorunlar ve çözümleri hakkında zengin kaynaklar sunar.
12. Sonuç
Bu makalede, Prosody XMPP sunucusunu Ubuntu 18.04 LTS üzerine kurma ve yapılandırma sürecini detaylı bir şekilde ele aldık. Temel sistem güncellemesinden başlayarak, Prosody’nin kendi deposunu eklemeyi, ana paketi kurmayı, temel yapılandırma dosyasını düzenlemeyi ve kullanıcıları yönetmeyi öğrendik. Özellikle günümüzün güvenlik gereksinimleri için kritik olan Let’s Encrypt ile SSL/TLS sertifikalarını nasıl yapılandıracağımızı ve Prosody’nin modüler yapısını kullanarak ek özellikleri nasıl etkinleştireceğimizi inceledik. Son olarak, sunucunuzun güvenliğini sağlamak için güvenlik duvarı yapılandırması ve diğer önemli ipuçlarına değindik ve kurulumunuzu test etmek ve olası sorunları gidermek için yöntemler sunduk.
Kendi XMPP sunucunuzu kurarak, iletişim altyapınız üzerinde tam kontrol sahibi olursunuz. Bu, veri gizliliği, güvenlik ve özelleştirme açısından önemli avantajlar sağlar. Prosody’nin hafif ve esnek yapısı, onu hem kişisel kullanım hem de küçük işletmeler veya geliştirme ekipleri için mükemmel bir seçenek haline getirir. XMPP ekosistemi geniş ve gelişmeye devam eden bir alandır; bu kurulum, bu ekosisteme adım atmanız için sağlam bir temel oluşturacaktır. Kurulumunuzu tamamladıktan sonra, Prosody’nin sunduğu diğer gelişmiş özellikleri ve modülleri keşfederek iletişim deneyiminizi daha da zenginleştirebilirsiniz.
