{"id":37398,"date":"2026-01-03T05:40:56","date_gmt":"2026-01-03T02:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37398"},"modified":"2026-01-03T05:40:56","modified_gmt":"2026-01-03T02:40:56","slug":"prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Ger\u00e7ek zamanl\u0131 ileti\u015fim g\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131n\u0131n temel ta\u015flar\u0131ndan biridir. Anl\u0131k mesajla\u015fma, video konferans, durum g\u00fcncellemeleri ve \u00e7ok daha fazlas\u0131, kullan\u0131c\u0131lar\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde etkile\u015fim kurmas\u0131n\u0131 sa\u011flar. Bu t\u00fcr ileti\u015fim altyap\u0131lar\u0131n\u0131n arkas\u0131nda genellikle XMPP (Extensible Messaging and Presence Protocol) gibi g\u00fc\u00e7l\u00fc ve esnek protokoller bulunur. XMPP, a\u00e7\u0131k standartlara dayal\u0131, merkezi olmayan ve geni\u015fletilebilir yap\u0131s\u0131yla anl\u0131k mesajla\u015fma ve varl\u0131k hizmetleri i\u00e7in d\u00fcnya genelinde yayg\u0131n olarak kullan\u0131lan bir protokold\u00fcr.<\/p>\n<p>Prosody, XMPP protokol\u00fcn\u00fc uygulayan hafif, a\u00e7\u0131k kaynakl\u0131 ve kullan\u0131m\u0131 kolay bir anl\u0131k mesajla\u015fma sunucusudur. Lua programlama diliyle yaz\u0131lm\u0131\u015f olmas\u0131, onu son derece h\u0131zl\u0131, mod\u00fcler ve kaynak dostu hale getirir. \u00d6zellikle k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli kurulumlar i\u00e7in ideal bir se\u00e7enek olmas\u0131n\u0131n yan\u0131 s\u0131ra, do\u011fru yap\u0131land\u0131rma ile b\u00fcy\u00fck \u00f6l\u00e7ekli sistemlerde de ba\u015far\u0131l\u0131 bir \u015fekilde kullan\u0131labilir. Bu makalede, Prosody XMPP sunucusunu Ubuntu 18.04 LTS (Long Term Support) i\u015fletim sistemi \u00fczerine nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temelden ileri d\u00fczeye nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Ubuntu 18.04, kararl\u0131l\u0131\u011f\u0131 ve uzun s\u00fcreli deste\u011fi nedeniyle sunucu ortamlar\u0131nda hala pop\u00fcler bir tercihtir.<\/p>\n<h3>1. Giri\u015f: Prosody ve XMPP&#8217;nin \u00d6nemi<\/h3>\n<p>XMPP, ba\u015flang\u0131\u00e7ta Jabber olarak bilinen bir anl\u0131k mesajla\u015fma sistemi olarak ortaya \u00e7\u0131km\u0131\u015ft\u0131r. Ancak zamanla sadece mesajla\u015fmadan \u00e7ok daha fazlas\u0131n\u0131 sunan, genel ama\u00e7l\u0131 bir XML tabanl\u0131 ileti\u015fim protokol\u00fcne d\u00f6n\u00fc\u015fm\u00fc\u015ft\u00fcr. E-posta gibi merkezi olmayan bir yap\u0131ya sahiptir; yani farkl\u0131 sunuculardaki kullan\u0131c\u0131lar birbiriyle ileti\u015fim kurabilir. Bu, XMPP&#8217;yi kapal\u0131, tekelle\u015fmi\u015f ileti\u015fim platformlar\u0131na g\u00fc\u00e7l\u00fc bir alternatif yapar.<\/p>\n<p>Prosody, bu XMPP protokol\u00fcn\u00fc ba\u015far\u0131yla uygulayan sunuculardan biridir. Di\u011fer pop\u00fcler XMPP sunucular\u0131 olan ejabberd (Erlang tabanl\u0131) ve Openfire (Java tabanl\u0131) ile kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda Prosody, \u00f6zellikle kaynak t\u00fcketimi a\u00e7\u0131s\u0131ndan daha verimli, yap\u0131land\u0131rmas\u0131 daha basit ve mod\u00fcler yap\u0131s\u0131yla daha esnektir. Lua dilinin getirdi\u011fi performans avantajlar\u0131 ve basit yap\u0131land\u0131rma dosyalar\u0131, sistem y\u00f6neticileri i\u00e7in \u00f6\u011frenme e\u011frisini d\u00fc\u015f\u00fcr\u00fcrken, geli\u015ftiricilere de geni\u015fletilebilirlik sa\u011flar. Bir XMPP sunucusu kurarak, kendi g\u00fcvenli ve \u00f6zel ileti\u015fim a\u011f\u0131n\u0131z\u0131 olu\u015fturabilir, \u00fc\u00e7\u00fcnc\u00fc taraf platformlara ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 azaltabilir ve veri gizlili\u011fini art\u0131rabilirsiniz.<\/p>\n<h3>2. \u00d6n Gereksinimler<\/h3>\n<p>Prosody kurulumuna ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Ubuntu 18.04 Sunucusu:<\/strong> Temiz bir Ubuntu 18.04 LTS kurulumuna sahip bir fiziksel sunucu, sanal makine (VM) veya bulut tabanl\u0131 bir VPS (Virtual Private Server).<br \/>\n*   <strong>Root veya Sudo Yetkileri:<\/strong> Kurulum ve yap\u0131land\u0131rma i\u015flemleri i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 veya do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131 eri\u015fimi.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Paket indirme ve g\u00fcncelleme i\u015flemleri i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131.<br \/>\n*   <strong>Alan Ad\u0131 (Domain Name):<\/strong> XMPP sunucunuz i\u00e7in bir alan ad\u0131na sahip olman\u0131z gerekmektedir (\u00f6rne\u011fin, <code>example.com<\/code>). Bu alan ad\u0131, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n JID&#8217;lerinde (Jabber ID) kullan\u0131lacakt\u0131r (\u00f6rne\u011fin, <code>kullanici@example.com<\/code>).<br \/>\n*   <strong>DNS Kay\u0131tlar\u0131:<\/strong> Alan ad\u0131n\u0131z i\u00e7in gerekli DNS kay\u0131tlar\u0131n\u0131 yap\u0131land\u0131rman\u0131z \u00f6nerilir:<br \/>\n    *   <strong>A Kayd\u0131:<\/strong> XMPP sunucunuzun IP adresini i\u015faret eden bir A kayd\u0131 (\u00f6rne\u011fin, <code>xmpp.example.com<\/code> -> <code>sunucu_ip_adresi<\/code>).<br \/>\n    *   <strong>SRV Kay\u0131tlar\u0131 (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> XMPP istemcilerinin sunucunuzu otomatik olarak bulmas\u0131n\u0131 sa\u011flayan SRV kay\u0131tlar\u0131.<br \/>\n        *   <code>_xmpp-client._tcp.example.com<\/code> IN SRV 5 0 5222 xmpp.example.com.<br \/>\n        *   <code>_xmpp-server._tcp.example.com<\/code> IN SRV 5 0 5269 xmpp.example.com.<br \/>\n        (Buradaki <code>xmpp.example.com<\/code> yerine kendi sunucunuzun tam alan ad\u0131n\u0131 yazmal\u0131s\u0131n\u0131z.)<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131, dosya d\u00fczenleme (nano veya vim gibi edit\u00f6rlerle) ve servis y\u00f6netimi hakk\u0131nda temel bilgi.<\/p>\n<h3>3. Sistem G\u00fcncellemesi<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce sistem paket listelerini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek iyi bir al\u0131\u015fkanl\u0131kt\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler.<\/p>\n<p>SSH ile sunucunuza ba\u011fland\u0131ktan sonra a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y\nsudo apt dist-upgrade -y<\/code><\/pre>\n<p>*   <code>sudo apt update<\/code>: Yerel paket indeksinizi uzak depolardaki en son bilgilerle senkronize eder.<br \/>\n*   <code>sudo apt upgrade -y<\/code>: Mevcut y\u00fckl\u00fc paketlerinizi en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermeyi sa\u011flar.<br \/>\n*   <code>sudo apt dist-upgrade -y<\/code>: Yeni ba\u011f\u0131ml\u0131l\u0131klar ekleyen veya mevcut ba\u011f\u0131ml\u0131l\u0131klar\u0131 kald\u0131ran y\u00fckseltmeleri de i\u00e7erir. Bu, daha kapsaml\u0131 bir y\u00fckseltmedir.<\/p>\n<h3>4. Prosody Kurulumu<\/h3>\n<p>Ubuntu 18.04&#8217;\u00fcn varsay\u0131lan depolar\u0131nda Prosody&#8217;nin eski bir s\u00fcr\u00fcm\u00fc bulunabilir. En son \u00f6zelliklere, performans iyile\u015ftirmelerine ve g\u00fcvenlik yamalar\u0131na sahip olmak i\u00e7in Prosody&#8217;nin kendi resmi deposunu kullanmak en iyi yakla\u015f\u0131md\u0131r.<\/p>\n<h4>4.1. Prosody Deposunu Ekleme<\/h4>\n<p>\u00d6ncelikle, Prosody deposunun GPG anahtar\u0131n\u0131 sisteminize eklememiz gerekiyor. Bu, indirdi\u011finiz paketlerin Prosody taraf\u0131ndan imzaland\u0131\u011f\u0131n\u0131 do\u011frulaman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">wget https:\/\/prosody.im\/files\/prosody-debian-packages.gpg -O \/etc\/apt\/trusted.gpg.d\/prosody.gpg<\/code><\/pre>\n<p>Ard\u0131ndan, Prosody deposunu sisteminizin <code>sources.list.d<\/code> dizinine ekleyin. Bu, <code>apt<\/code> paket y\u00f6neticisinin Prosody paketlerini nereden bulaca\u011f\u0131n\u0131 bilmesini sa\u011flar. <code>$(lsb_release -sc)<\/code> komutu, i\u015fletim sisteminizin kod ad\u0131n\u0131 (Ubuntu 18.04 i\u00e7in <code>bionic<\/code>) otomatik olarak alg\u0131lar.<\/p>\n<pre><code class=\"language-bash\">echo \"deb https:\/\/prosody.im\/debian $(lsb_release -sc) main\" | sudo tee \/etc\/apt\/sources.list.d\/prosody.list<\/code><\/pre>\n<p>Depoyu ekledikten sonra, <code>apt<\/code> paket listesini tekrar g\u00fcncellemelisiniz ki yeni depo i\u00e7eri\u011fi y\u00fcklenebilsin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<h4>4.2. Prosody Paketini Kurma<\/h4>\n<p>Art\u0131k Prosody paketini y\u00fcklemeye haz\u0131rs\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo apt install prosody -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra Prosody servisi otomatik olarak ba\u015flayacakt\u0131r. Servisin durumunu kontrol ederek do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status prosody<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmeniz gerekmektedir. E\u011fer aktif de\u011filse, <code>sudo systemctl start prosody<\/code> komutuyla ba\u015flatabilirsiniz.<\/p>\n<h3>5. Temel Yap\u0131land\u0131rma<\/h3>\n<p>Prosody&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/prosody\/prosody.cfg.lua<\/code> konumundad\u0131r. Bu dosya Lua tabanl\u0131d\u0131r ve Prosody&#8217;nin t\u00fcm davran\u0131\u015flar\u0131n\u0131 kontrol eder.<\/p>\n<h4>5.1. Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p>\u00d6ncelikle, mevcut yap\u0131land\u0131rma dosyas\u0131n\u0131n bir yede\u011fini alman\u0131z \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/prosody\/prosody.cfg.lua \/etc\/prosody\/prosody.cfg.lua.bak<\/code><\/pre>\n<p>\u015eimdi dosyay\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n (\u00f6rne\u011fin <code>nano<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/prosody\/prosody.cfg.lua<\/code><\/pre>\n<h4>5.2. <code>admins<\/code> Ayar\u0131<\/h4>\n<p>Bu ayar, sunucuda y\u00f6netici yetkilerine sahip JID&#8217;leri (Jabber ID) tan\u0131mlar. Y\u00f6netici JID&#8217;leri, sunucu y\u00f6netim komutlar\u0131n\u0131 (\u00f6rne\u011fin, <code>prosodyctl<\/code>) kullanabilir ve baz\u0131 mod\u00fcller i\u00e7in \u00f6zel ayr\u0131cal\u0131klara sahip olabilir. Kendi y\u00f6netici JID&#8217;inizi bu listeye ekleyin:<\/p>\n<pre><code class=\"language-lua\">-- Y\u00f6netici JID'leri. Bu ki\u015filer sunucu \u00fczerinde \u00f6zel yetkilere sahip olacakt\u0131r.\nadmins = { \"admin@example.com\" }<\/code><\/pre>\n<p><code>example.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 kullan\u0131n. Bu JID&#8217;ye sahip bir kullan\u0131c\u0131y\u0131 daha sonra olu\u015fturaca\u011f\u0131z.<\/p>\n<h4>5.3. <code>VirtualHost<\/code> Tan\u0131m\u0131<\/h4>\n<p>Prosody&#8217;nin hangi alan adlar\u0131 i\u00e7in XMPP hizmeti sunaca\u011f\u0131n\u0131 belirtmelisiniz. Bu, XMPP sunucunuzun ana kimli\u011fidir. Alan ad\u0131n\u0131z\u0131 <code>VirtualHost<\/code> blo\u011funa ekleyin:<\/p>\n<pre><code class=\"language-lua\">-- XMPP hizmeti sunulacak alan adlar\u0131.\nVirtualHost \"example.com\"\n    -- Bu alan ad\u0131 i\u00e7in ek yap\u0131land\u0131rmalar buraya gelecek.\n    -- \u00d6rne\u011fin, SSL\/TLS sertifika yollar\u0131.<\/code><\/pre>\n<p>E\u011fer birden fazla alan ad\u0131 i\u00e7in hizmet vermek isterseniz, her biri i\u00e7in ayr\u0131 bir <code>VirtualHost<\/code> blo\u011fu tan\u0131mlayabilirsiniz.<\/p>\n<h4>5.4. SSL\/TLS Sertifika Yollar\u0131 (\u015eimdilik Temel)<\/h4>\n<p>SSL\/TLS sertifikalar\u0131n\u0131 daha sonra detayl\u0131 olarak ele alaca\u011f\u0131z, ancak Prosody varsay\u0131lan olarak <code>ssl<\/code> blo\u011funu bekler. \u015eimdilik, varsay\u0131lan sertifika yollar\u0131n\u0131 kontrol edebiliriz. E\u011fer Let&#8217;s Encrypt kullanacaksan\u0131z, bu yollar\u0131 daha sonra g\u00fcncelleyece\u011fiz.<\/p>\n<pre><code class=\"language-lua\">ssl = {\n        key = \"\/etc\/prosody\/certs\/example.com.key\";\n        certificate = \"\/etc\/prosody\/certs\/example.com.crt\";\n    }<\/code><\/pre>\n<p>Bu yollar genellikle Prosody&#8217;nin kendi <code>prosodyctl cert generate<\/code> komutuyla olu\u015fturulan self-signed sertifikalar i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra (nano&#8217;da <code>Ctrl+X<\/code>, <code>Y<\/code>, <code>Enter<\/code>), Prosody servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart prosody<\/code><\/pre>\n<p>Her yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra servisi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<h3>6. Kullan\u0131c\u0131 Y\u00f6netimi<\/h3>\n<p>Prosody, kullan\u0131c\u0131lar\u0131 komut sat\u0131r\u0131 arac\u0131l\u0131\u011f\u0131yla y\u00f6netmek i\u00e7in <code>prosodyctl<\/code> yard\u0131mc\u0131 program\u0131n\u0131 sunar.<\/p>\n<h4>6.1. Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>Daha \u00f6nce <code>admins<\/code> listesine ekledi\u011finiz y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 ve di\u011fer normal kullan\u0131c\u0131lar\u0131 olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl register <kullan\u0131c\u0131ad\u0131> <alanad\u0131> <\u015fifre><\/code><\/pre>\n<p>\u00d6rnek olarak, <code>admin@example.com<\/code> kullan\u0131c\u0131s\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl register admin example.com BenimGucluSifrem123<\/code><\/pre>\n<p>Ard\u0131ndan, test ama\u00e7l\u0131 ba\u015fka bir kullan\u0131c\u0131 olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl register testuser example.com testparola<\/code><\/pre>\n<h4>6.2. Kullan\u0131c\u0131 Silme<\/h4>\n<p>Bir kullan\u0131c\u0131y\u0131 silmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl unregister <kullan\u0131c\u0131ad\u0131> <alanad\u0131><\/code><\/pre>\n<p>\u00d6rnek:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl unregister testuser example.com<\/code><\/pre>\n<h4>6.3. \u015eifre De\u011fi\u015ftirme<\/h4>\n<p>Bir kullan\u0131c\u0131n\u0131n \u015fifresini de\u011fi\u015ftirmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl passwd <kullan\u0131c\u0131ad\u0131> <alanad\u0131><\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda yeni \u015fifreyi girmeniz istenecektir.<\/p>\n<h3>7. SSL\/TLS Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>XMPP ileti\u015fimi i\u00e7in SSL\/TLS \u015fifrelemesi olmazsa olmazd\u0131r. Bu, kullan\u0131c\u0131lar\u0131n\u0131z\u0131n \u015fifrelerini ve mesajlar\u0131n\u0131 dinlemeye kar\u015f\u0131 korur. Let&#8217;s Encrypt, \u00fccretsiz ve otomatikle\u015ftirilmi\u015f SSL\/TLS sertifikalar\u0131 sunarak bu s\u00fcreci olduk\u00e7a kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>7.1. Let&#8217;s Encrypt ile Otomatik Sertifika (\u00d6nerilen Y\u00f6ntem)<\/h4>\n<p>Let&#8217;s Encrypt sertifikalar\u0131n\u0131 almak ve y\u00f6netmek i\u00e7in <code>certbot<\/code> arac\u0131n\u0131 kullanaca\u011f\u0131z. Prosody i\u00e7in \u00f6zel bir <code>certbot<\/code> eklentisi olmasa da, <code>standalone<\/code> veya <code>webroot<\/code> eklentileriyle sertifikalar\u0131 al\u0131p Prosody&#8217;ye entegre edebiliriz.<\/p>\n<p><strong>a. Certbot Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot -y<\/code><\/pre>\n<p><strong>b. Sertifikalar\u0131 Alma (Standalone Y\u00f6ntemi):<\/strong><\/p>\n<p><code>standalone<\/code> y\u00f6ntemi, sertifika al\u0131m\u0131 s\u0131ras\u0131nda ge\u00e7ici olarak 80 veya 443 numaral\u0131 portlar\u0131 kullan\u0131r. Bu nedenle, Prosody&#8217;nin bu portlar\u0131 kullanmad\u0131\u011f\u0131ndan emin olun veya ge\u00e7ici olarak durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop prosody\nsudo certbot certonly --standalone -d example.com -d xmpp.example.com<\/code><\/pre>\n<p><code>example.com<\/code> ve <code>xmpp.example.com<\/code> yerine kendi alan adlar\u0131n\u0131z\u0131 ve sunucu adlar\u0131n\u0131z\u0131 yaz\u0131n. Certbot size e-posta adresi ve hizmet \u015fartlar\u0131n\u0131 kabul etme gibi sorular soracakt\u0131r. Sertifikalar ba\u015far\u0131yla al\u0131nd\u0131\u011f\u0131nda, <code>\/etc\/letsencrypt\/live\/example.com\/<\/code> dizininde bulunacaklard\u0131r.<\/p>\n<p><strong>c. Prosody Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme:<\/strong><\/p>\n<p>\u015eimdi <code>\/etc\/prosody\/prosody.cfg.lua<\/code> dosyas\u0131n\u0131 tekrar a\u00e7\u0131n ve <code>VirtualHost<\/code> blo\u011fundaki <code>ssl<\/code> ayarlar\u0131n\u0131 g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-lua\">sudo nano \/etc\/prosody\/prosody.cfg.lua<\/code><\/pre>\n<p><code>VirtualHost \"example.com\"<\/code> blo\u011funun i\u00e7ine a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin veya mevcut <code>ssl<\/code> blo\u011funu g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-lua\">VirtualHost \"example.com\"\n    ssl = {\n        key = \"\/etc\/letsencrypt\/live\/example.com\/privkey.pem\";\n        certificate = \"\/etc\/letsencrypt\/live\/example.com\/fullchain.pem\";\n    }\n    -- G\u00fcvenlik i\u00e7in sadece TLSv1.2 ve \u00fczeri protokolleri kullan\u0131n\n    ssl_min_protocol = \"TLSv1_2\";<\/code><\/pre>\n<p><code>example.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 kullan\u0131n. <code>fullchain.pem<\/code> dosyas\u0131 hem sunucu sertifikas\u0131n\u0131 hem de ara sertifikalar\u0131 i\u00e7erir. <code>privkey.pem<\/code> ise \u00f6zel anahtar\u0131n\u0131zd\u0131r.<\/p>\n<p><strong>d. Servisi Yeniden Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start prosody # Certbot durdurduysa ba\u015flat\u0131n\nsudo systemctl restart prosody<\/code><\/pre>\n<p><strong>e. Sertifika Yenileme:<\/strong><\/p>\n<p>Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, otomatik yenileme i\u00e7in bir cron i\u015fi olu\u015fturur. Bunu test edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo certbot renew --dry-run<\/code><\/pre>\n<p>Bu komut herhangi bir hata vermezse, sertifikalar\u0131n\u0131z\u0131n otomatik olarak yenilenece\u011fi anlam\u0131na gelir.<\/p>\n<h4>7.2. Manuel (Self-Signed) Sertifika Olu\u015fturma (Geli\u015ftirme Ortam\u0131 \u0130\u00e7in)<\/h4>\n<p>\u00dcretim ortamlar\u0131 i\u00e7in Let&#8217;s Encrypt \u00f6nerilirken, geli\u015ftirme veya test ortamlar\u0131 i\u00e7in self-signed sertifikalar h\u0131zl\u0131 bir \u00e7\u00f6z\u00fcm sunar. Ancak bu sertifikalar taray\u0131c\u0131lar ve XMPP istemcileri taraf\u0131ndan g\u00fcvenilir kabul edilmez ve g\u00fcvenlik uyar\u0131lar\u0131 verir.<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl cert generate example.com<\/code><\/pre>\n<p>Bu komut, <code>\/etc\/prosody\/certs\/<\/code> dizininde <code>example.com.key<\/code> ve <code>example.com.crt<\/code> dosyalar\u0131n\u0131 olu\u015fturur. Yap\u0131land\u0131rma dosyas\u0131ndaki <code>ssl<\/code> blo\u011funu bu yollar\u0131 g\u00f6sterecek \u015fekilde b\u0131rakabilirsiniz.<\/p>\n<h4>7.3. <code>ssl<\/code> Blo\u011fu Ayarlar\u0131<\/h4>\n<p>G\u00fcvenli\u011fi art\u0131rmak i\u00e7in <code>ssl<\/code> blo\u011funa ek ayarlar ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-lua\">VirtualHost \"example.com\"\n    ssl = {\n        key = \"\/etc\/letsencrypt\/live\/example.com\/privkey.pem\";\n        certificate = \"\/etc\/letsencrypt\/live\/example.com\/fullchain.pem\";\n        -- G\u00fcvenlik i\u00e7in sadece TLSv1.2 ve \u00fczeri protokolleri kullan\u0131n\n        protocol = \"tlsv1_2\"; -- Ubuntu 18.04'teki OpenSSL s\u00fcr\u00fcm\u00fcne g\u00f6re de\u011fi\u015febilir\n        -- Desteklenen \u015fifreleme algoritmalar\u0131n\u0131 k\u0131s\u0131tla\n        ciphers = \"HIGH:!aNULL:!MD5:!RC4\";\n    }<\/code><\/pre>\n<p><code>protocol<\/code> ayar\u0131, sunucunun destekleyece\u011fi minimum TLS protokol s\u00fcr\u00fcm\u00fcn\u00fc belirler. <code>tlsv1_2<\/code> genellikle iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. <code>ciphers<\/code> ayar\u0131 ise zay\u0131f \u015fifreleme algoritmalar\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131r.<\/p>\n<h3>8. Ek Mod\u00fcller ve \u00d6zellikler<\/h3>\n<p>Prosody&#8217;nin g\u00fcc\u00fc, mod\u00fcler yap\u0131s\u0131ndan gelir. <code>modules_enabled<\/code> blo\u011fu, sunucunuzda hangi \u00f6zelliklerin etkinle\u015ftirilece\u011fini kontrol eder.<\/p>\n<h4>8.1. <code>modules_enabled<\/code> Blo\u011fu<\/h4>\n<p>Yap\u0131land\u0131rma dosyan\u0131z\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/prosody\/prosody.cfg.lua<\/code><\/pre>\n<p><code>modules_enabled<\/code> blo\u011funu bulun ve istedi\u011finiz mod\u00fclleri ekleyin. A\u015fa\u011f\u0131da s\u0131k kullan\u0131lan ve \u00f6nerilen baz\u0131 mod\u00fcller bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-lua\">modules_enabled = {\n    \"roster\";         -- Roster (arkada\u015f listesi) y\u00f6netimi\n    \"saslauth\";       -- SASL kimlik do\u011frulama\n    \"tls\";            -- TLS\/SSL \u015fifrelemesi\n    \"dialback\";       -- Sunucular aras\u0131 ileti\u015fim g\u00fcvenli\u011fi\n    \"disco\";          -- Hizmet ke\u015ffi (XEP-0030)\n    \"private\";        -- \u00d6zel XML depolama (XEP-0049)\n    \"vcard\";          -- Kullan\u0131c\u0131 profilleri (XEP-0054)\n    \"carbons\";        -- Mesajlar\u0131 t\u00fcm ba\u011fl\u0131 istemcilere senkronize etme (XEP-0280)\n    \"mam\";            -- Mesaj Ar\u015fivi Y\u00f6netimi (XEP-0313)\n    \"bosh\";           -- HTTP Binding (web tabanl\u0131 istemciler i\u00e7in) (XEP-0124, XEP-0206)\n    \"websocket\";      -- WebSocket deste\u011fi (modern web istemcileri i\u00e7in) (XEP-0357)\n    \"register\";       -- Kullan\u0131c\u0131lar\u0131n kendilerini kaydetmelerine izin verir (D\u0130KKATL\u0130 KULLANIN!)\n    \"admin_adhoc\";    -- Ad-hoc komutlar arac\u0131l\u0131\u011f\u0131yla y\u00f6netici i\u015flevselli\u011fi\n    \"s2s\";            -- Sunucular aras\u0131 ileti\u015fim\n    \"c2s\";            -- \u0130stemci-sunucu ileti\u015fimi\n    \"posix\";          -- POSIX sistem i\u015flevleri (dosya sistemi vb.)\n    \"groups\";         -- Kullan\u0131c\u0131 gruplar\u0131\n    \"announce\";       -- Sunucu duyurular\u0131\n    \"watchregistrations\"; -- Yeni kay\u0131tlar\u0131 izleme\n    \"motd\";           -- G\u00fcn\u00fcn Mesaj\u0131 (Message of the Day)\n    \"csi\";            -- Client State Indication (istemci durum g\u00f6stergesi)\n    \"smacks\";         -- Stream Management (XEP-0198)\n}<\/code><\/pre>\n<p>*   <strong><code>mod_register<\/code>:<\/strong> Bu mod\u00fcl, kullan\u0131c\u0131lar\u0131n XMPP istemcileri arac\u0131l\u0131\u011f\u0131yla kendi hesaplar\u0131n\u0131 olu\u015fturmalar\u0131na olanak tan\u0131r. Genellikle kapal\u0131 veya \u00f6zel sunucularda devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r. E\u011fer herkesin kay\u0131t olmas\u0131n\u0131 istemiyorsan\u0131z, bu mod\u00fcl\u00fc <code>modules_enabled<\/code> listesinden kald\u0131r\u0131n.<br \/>\n*   <strong><code>mod_mam<\/code> (Message Archive Management):<\/strong> Mesaj ge\u00e7mi\u015fini sunucuda depolayarak kullan\u0131c\u0131lar\u0131n farkl\u0131 cihazlardan mesaj ge\u00e7mi\u015fine eri\u015fmesini sa\u011flar. Bu, modern mesajla\u015fma deneyimi i\u00e7in kritik bir mod\u00fcld\u00fcr.<br \/>\n*   <strong><code>mod_carbons<\/code>:<\/strong> Bir kullan\u0131c\u0131n\u0131n ayn\u0131 anda birden fazla cihazda oturum a\u00e7t\u0131\u011f\u0131nda, g\u00f6nderilen veya al\u0131nan mesajlar\u0131n t\u00fcm cihazlara senkronize edilmesini sa\u011flar.<br \/>\n*   <strong><code>mod_bosh<\/code> ve <code>mod_websocket<\/code>:<\/strong> Web tabanl\u0131 XMPP istemcileri (\u00f6rne\u011fin, web sohbet uygulamalar\u0131) i\u00e7in gereklidir. <code>mod_bosh<\/code> HTTP Binding, <code>mod_websocket<\/code> ise WebSocket \u00fczerinden ba\u011flant\u0131 sa\u011flar. Bu mod\u00fcller etkinle\u015ftirildi\u011finde, ilgili HTTP\/HTTPS portlar\u0131n\u0131n (genellikle 5280 ve 5281) g\u00fcvenlik duvar\u0131nda a\u00e7\u0131k olmas\u0131 gerekir.<\/p>\n<p>Mod\u00fclleri etkinle\u015ftirdikten sonra, Prosody servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart prosody<\/code><\/pre>\n<h4>8.2. Harici Mod\u00fcller<\/h4>\n<p>Prosody&#8217;nin resmi deposunda bulunmayan ancak topluluk taraf\u0131ndan geli\u015ftirilen bir\u00e7ok ek mod\u00fcl de mevcuttur. Bu mod\u00fcllere <code>https:\/\/modules.prosody.im\/<\/code> adresinden ula\u015fabilirsiniz. Harici bir mod\u00fcl\u00fc kurmak i\u00e7in genellikle a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izlersiniz:<\/p>\n<p>1.  Mod\u00fcl\u00fcn kaynak kodunu indirin (genellikle <code>git clone<\/code> ile).<br \/>\n2.  Mod\u00fcl dosyas\u0131n\u0131 Prosody&#8217;nin mod\u00fcl dizinine kopyalay\u0131n (varsay\u0131lan olarak <code>\/usr\/lib\/prosody\/modules\/<\/code> veya <code>\/usr\/local\/share\/prosody\/modules\/<\/code>).<br \/>\n3.  <code>prosody.cfg.lua<\/code> dosyas\u0131ndaki <code>modules_enabled<\/code> listesine mod\u00fcl ad\u0131n\u0131 ekleyin.<br \/>\n4.  Prosody servisini yeniden ba\u015flat\u0131n.<\/p>\n<p>\u00d6rne\u011fin, <code>mod_storage_sql<\/code> gibi bir mod\u00fcl, kullan\u0131c\u0131 verilerini ve mesaj ar\u015fivlerini bir veritaban\u0131nda (MySQL\/PostgreSQL) depolamak i\u00e7in kullan\u0131labilir. Bu, daha b\u00fcy\u00fck \u00f6l\u00e7ekli veya yedekleme gerektiren kurulumlar i\u00e7in faydal\u0131d\u0131r.<\/p>\n<h3>9. G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Bir XMPP sunucusu kurmak, a\u011f\u0131n\u0131za yeni bir giri\u015f noktas\u0131 eklemek anlam\u0131na gelir. Bu nedenle, sunucunuzun g\u00fcvenli\u011fini sa\u011flamak b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h4>9.1. G\u00fcvenlik Duvar\u0131 (UFW) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Ubuntu&#8217;da varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) ile sadece gerekli portlara izin vererek sunucunuzu koruyabilirsiniz.<\/p>\n<p><strong>a. UFW&#8217;yi Etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra SSH ba\u011flant\u0131n\u0131z kesilebilir. Bu y\u00fczden \u00f6ncelikle SSH portuna izin vermelisiniz.<\/p>\n<p><strong>b. SSH Portuna \u0130zin Verme (Varsay\u0131lan 22):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow ssh<\/code><\/pre>\n<p><strong>c. Prosody \u0130\u00e7in Gerekli Portlara \u0130zin Verme:<\/strong><\/p>\n<p>*   <strong>5222\/tcp:<\/strong> \u0130stemci-sunucu ileti\u015fimi (C2S) i\u00e7in standart XMPP portu.<br \/>\n*   <strong>5269\/tcp:<\/strong> Sunucu-sunucu ileti\u015fimi (S2S) i\u00e7in standart XMPP portu.<br \/>\n*   <strong>5280\/tcp:<\/strong> HTTP Binding (BOSH) i\u00e7in HTTP portu (e\u011fer <code>mod_bosh<\/code> etkinse).<br \/>\n*   <strong>5281\/tcp:<\/strong> HTTP Binding (BOSH) ve WebSocket i\u00e7in HTTPS portu (e\u011fer <code>mod_bosh<\/code> veya <code>mod_websocket<\/code> etkinse ve SSL kullan\u0131l\u0131yorsa).<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 5222\/tcp\nsudo ufw allow 5269\/tcp\nsudo ufw allow 5280\/tcp\nsudo ufw allow 5281\/tcp<\/code><\/pre>\n<p><strong>d. G\u00fcvenlik Duvar\u0131 Durumunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>Bu komut, izin verilen t\u00fcm portlar\u0131 listelemelidir.<\/p>\n<h4>9.2. Di\u011fer G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h4>\n<p>*   <strong>Sistemi G\u00fcncel Tutma:<\/strong> D\u00fczenli olarak <code>sudo apt update && sudo apt upgrade -y<\/code> komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak i\u015fletim sisteminizi ve Prosody&#8217;yi g\u00fcncel tutun.<br \/>\n*   <strong>G\u00fc\u00e7l\u00fc \u015eifreler:<\/strong> Kullan\u0131c\u0131lar ve y\u00f6netici hesaplar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc, karma\u015f\u0131k \u015fifreler kullan\u0131n.<br \/>\n*   <strong>Log \u0130zleme:<\/strong> Prosody&#8217;nin log dosyalar\u0131n\u0131 (<code>\/var\/log\/prosody\/<\/code>) d\u00fczenli olarak kontrol edin. Anormal aktiviteler veya hata mesajlar\u0131 i\u00e7in g\u00f6z\u00fcn\u00fcz a\u00e7\u0131k olsun.<br \/>\n*   <strong>DDoS Korumas\u0131:<\/strong> B\u00fcy\u00fck \u00f6l\u00e7ekli kurulumlar i\u00e7in sunucunuzu DDoS sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korumak amac\u0131yla ek \u00f6nlemler (\u00f6rne\u011fin, CDN hizmetleri, \u00f6zel g\u00fcvenlik duvar\u0131 kurallar\u0131) d\u00fc\u015f\u00fcnebilirsiniz.<br \/>\n*   <strong>Yetkilendirme ve Kay\u0131t:<\/strong> <code>mod_register<\/code> mod\u00fcl\u00fcn\u00fc yaln\u0131zca ger\u00e7ekten ihtiyac\u0131n\u0131z varsa etkinle\u015ftirin. E\u011fer herkesin kay\u0131t olmas\u0131n\u0131 istemiyorsan\u0131z, bu mod\u00fcl\u00fc devre d\u0131\u015f\u0131 b\u0131rak\u0131n ve kullan\u0131c\u0131lar\u0131 manuel olarak veya \u00f6zel bir kay\u0131t aray\u00fcz\u00fc \u00fczerinden olu\u015fturun.<\/p>\n<h3>10. Test ve Do\u011frulama<\/h3>\n<p>Kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131n\u0131 tamamlad\u0131ktan sonra, Prosody sunucunuzun d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak \u00f6nemlidir.<\/p>\n<h4>10.1. Servis Durumu ve Port Kontrol\u00fc<\/h4>\n<p>Prosody servisinin aktif ve \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status prosody<\/code><\/pre>\n<p>A\u00e7\u0131k portlar\u0131 ve hangi servislerin dinledi\u011fini kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo netstat -tulpn | grep prosody\n<h2>Veya daha modern bir alternatif:<\/h2>\nsudo ss -tulpn | grep prosody<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131, Prosody&#8217;nin 5222, 5269, 5280, 5281 (e\u011fer etkinle\u015ftirildiyse) gibi portlar\u0131 dinledi\u011fini g\u00f6stermelidir.<\/p>\n<h4>10.2. XMPP \u0130stemcisi ile Ba\u011flant\u0131 Testi<\/h4>\n<p>Pop\u00fcler bir XMPP istemcisi kullanarak sunucunuza ba\u011flanmay\u0131 deneyin. Baz\u0131 pop\u00fcler istemciler \u015funlard\u0131r:<\/p>\n<p>*   <strong>Masa\u00fcst\u00fc:<\/strong> Pidgin (\u00e7oklu protokol), Gajim (Linux), Dino (Linux), Spark (Java tabanl\u0131).<br \/>\n*   <strong>Mobil:<\/strong> Conversations (Android), Monal (iOS).<br \/>\n*   <strong>Web:<\/strong> Candy, Converse.js (e\u011fer <code>mod_bosh<\/code> veya <code>mod_websocket<\/code> etkinse).<\/p>\n<p><strong>Ba\u011flant\u0131 Ayarlar\u0131 (Genel):<\/strong><\/p>\n<p>*   <strong>Kullan\u0131c\u0131 Ad\u0131 (JID):<\/strong> <code>kullanici@example.com<\/code> (olu\u015fturdu\u011funuz bir kullan\u0131c\u0131 ad\u0131 ve alan ad\u0131n\u0131z)<br \/>\n*   <strong>\u015eifre:<\/strong> Kullan\u0131c\u0131n\u0131n \u015fifresi<br \/>\n*   <strong>Sunucu Ad\u0131\/Alan Ad\u0131:<\/strong> <code>example.com<\/code> (veya DNS&#8217;inizde yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z XMPP sunucu ad\u0131, \u00f6rn. <code>xmpp.example.com<\/code>)<br \/>\n*   <strong>Ba\u011flant\u0131 Portu:<\/strong> Genellikle 5222 (istemciler otomatik alg\u0131lar)<br \/>\n*   <strong>SSL\/TLS:<\/strong> Genellikle otomatik olarak ba\u015flar veya a\u00e7\u0131k\u00e7a etkinle\u015ftirilmesi gerekir (STARTTLS veya do\u011frudan TLS).<\/p>\n<p>Y\u00f6netici kullan\u0131c\u0131n\u0131z (<code>admin@example.com<\/code>) ile giri\u015f yapmay\u0131 deneyin. Ard\u0131ndan, ba\u015fka bir test kullan\u0131c\u0131s\u0131 (<code>testuser@example.com<\/code>) ile giri\u015f yap\u0131n ve iki kullan\u0131c\u0131 aras\u0131nda mesaj g\u00f6nderip almay\u0131 deneyin. Roster (arkada\u015f listesi) ekleme ve varl\u0131k (presence) durumlar\u0131n\u0131 kontrol etme gibi \u00f6zellikleri de test edin.<\/p>\n<h3>11. Sorun Giderme<\/h3>\n<p>Kurulum veya yap\u0131land\u0131rma s\u0131ras\u0131nda sorunlarla kar\u015f\u0131la\u015fmak do\u011fald\u0131r. \u0130\u015fte yayg\u0131n sorun giderme ad\u0131mlar\u0131:<\/p>\n<p>*   <strong>Log Dosyalar\u0131n\u0131 Kontrol Etme:<\/strong> Prosody&#8217;nin log dosyalar\u0131, sorunlar\u0131n k\u00f6k nedenini bulmak i\u00e7in en iyi yerdir.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/prosody\/prosody.log\n    # Di\u011fer log dosyalar\u0131: \/var\/log\/prosody\/errors.log, \/var\/log\/prosody\/debug.log<\/code><\/pre>\n<p>    Hata mesajlar\u0131n\u0131 dikkatlice okuyun.<br \/>\n*   <strong>Yap\u0131land\u0131rma Hatas\u0131 Kontrol\u00fc:<\/strong> Prosody, yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131n\u0131 kontrol etmek i\u00e7in bir komut sunar:<\/p>\n<pre><code class=\"language-bash\">sudo prosodyctl check config<\/code><\/pre>\n<p>    Bu komut, Lua s\u00f6zdizimi hatalar\u0131n\u0131 veya eksik bloklar\u0131 belirleyebilir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> <code>sudo ufw status<\/code> komutuyla g\u00fcvenlik duvar\u0131n\u0131z\u0131n do\u011fru portlara izin verdi\u011finden emin olun. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir g\u00fcvenlik duvar\u0131, istemcilerin sunucuya ba\u011flanmas\u0131n\u0131 engelleyebilir.<br \/>\n*   <strong>DNS Kay\u0131tlar\u0131:<\/strong> Alan ad\u0131n\u0131z\u0131n A ve SRV kay\u0131tlar\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan ve internet \u00fczerinden eri\u015filebilir oldu\u011fundan emin olun. <code>dig example.com A<\/code> ve <code>dig _xmpp-client._tcp.example.com SRV<\/code> gibi komutlarla kontrol edebilirsiniz.<br \/>\n*   <strong>SSL\/TLS Sertifikalar\u0131:<\/strong> Sertifika yollar\u0131n\u0131n <code>\/etc\/prosody\/prosody.cfg.lua<\/code> dosyas\u0131nda do\u011fru oldu\u011fundan ve sertifikalar\u0131n s\u00fcresinin dolmad\u0131\u011f\u0131ndan emin olun. Sertifika dosyalar\u0131n\u0131n Prosody kullan\u0131c\u0131s\u0131 taraf\u0131ndan okunabilir oldu\u011fundan da emin olun (genellikle izinler otomatik olarak ayarlan\u0131r).<br \/>\n*   <strong>Mod\u00fcl Ba\u011f\u0131ml\u0131l\u0131klar\u0131:<\/strong> Baz\u0131 Prosody mod\u00fclleri ek Lua k\u00fct\u00fcphanelerine ihtiya\u00e7 duyabilir. \u00d6rne\u011fin, <code>lua-sec<\/code> veya <code>lua-socket-ssl<\/code> gibi paketlerin y\u00fckl\u00fc oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install lua-sec lua-socket-ssl -y<\/code><\/pre>\n<p>*   <strong>Prosody Wiki ve Topluluk:<\/strong> Prosody&#8217;nin resmi wiki&#8217;si (wiki.prosody.im) ve topluluk forumlar\u0131, yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri hakk\u0131nda zengin kaynaklar sunar.<\/p>\n<h3>12. Sonu\u00e7<\/h3>\n<p>Bu makalede, Prosody XMPP sunucusunu Ubuntu 18.04 LTS \u00fczerine kurma ve yap\u0131land\u0131rma s\u00fcrecini detayl\u0131 bir \u015fekilde ele ald\u0131k. Temel sistem g\u00fcncellemesinden ba\u015flayarak, Prosody&#8217;nin kendi deposunu eklemeyi, ana paketi kurmay\u0131, temel yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemeyi ve kullan\u0131c\u0131lar\u0131 y\u00f6netmeyi \u00f6\u011frendik. \u00d6zellikle g\u00fcn\u00fcm\u00fcz\u00fcn g\u00fcvenlik gereksinimleri i\u00e7in kritik olan Let&#8217;s Encrypt ile SSL\/TLS sertifikalar\u0131n\u0131 nas\u0131l yap\u0131land\u0131raca\u011f\u0131m\u0131z\u0131 ve Prosody&#8217;nin mod\u00fcler yap\u0131s\u0131n\u0131 kullanarak ek \u00f6zellikleri nas\u0131l etkinle\u015ftirece\u011fimizi inceledik. Son olarak, sunucunuzun g\u00fcvenli\u011fini sa\u011flamak i\u00e7in g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131 ve di\u011fer \u00f6nemli ipu\u00e7lar\u0131na de\u011findik ve kurulumunuzu test etmek ve olas\u0131 sorunlar\u0131 gidermek i\u00e7in y\u00f6ntemler sunduk.<\/p>\n<p>Kendi XMPP sunucunuzu kurarak, ileti\u015fim altyap\u0131n\u0131z \u00fczerinde tam kontrol sahibi olursunuz. Bu, veri gizlili\u011fi, g\u00fcvenlik ve \u00f6zelle\u015ftirme a\u00e7\u0131s\u0131ndan \u00f6nemli avantajlar sa\u011flar. Prosody&#8217;nin hafif ve esnek yap\u0131s\u0131, onu hem ki\u015fisel kullan\u0131m hem de k\u00fc\u00e7\u00fck i\u015fletmeler veya geli\u015ftirme ekipleri i\u00e7in m\u00fckemmel bir se\u00e7enek haline getirir. XMPP ekosistemi geni\u015f ve geli\u015fmeye devam eden bir aland\u0131r; bu kurulum, bu ekosisteme ad\u0131m atman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r. Kurulumunuzu tamamlad\u0131ktan sonra, Prosody&#8217;nin sundu\u011fu di\u011fer geli\u015fmi\u015f \u00f6zellikleri ve mod\u00fclleri ke\u015ffederek ileti\u015fim deneyiminizi daha da zenginle\u015ftirebilirsiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\nGer\u00e7ek zamanl\u0131 ileti\u015fim g\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131n\u0131n temel ta\u015flar","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37398","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 Ger\u00e7ek zamanl\u0131 ileti\u015fim g\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131n\u0131n temel ta\u015flar\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-03T02:40:56+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2026-01-03T02:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":3097,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\",\"name\":\"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-03T02:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 Ger\u00e7ek zamanl\u0131 ileti\u015fim g\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131n\u0131n temel ta\u015flar","og_url":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-03T02:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2026-01-03T02:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"},"wordCount":3097,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/","name":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-03T02:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/prosody-xmpp-sunucusunu-ubuntu-18-04-uzerine-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prosody XMPP Sunucusunu Ubuntu 18.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131rmas\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37398"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37398\/revisions"}],"predecessor-version":[{"id":37399,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37398\/revisions\/37399"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}