Prosody [Güncellendi] ile bir XMPP (Jabber) sunucusu kurun


Çoğumuz kullanırız Gtalk o Facebook Sohbet iletişim kurmak için kullandığımız protokolün başka bir şey olmadığını bilmeden XMPP (Genişletilebilir Mesajlaşma ve İletişim Protokolü) bu da açık.

En GNU / Linux kendi sunucumuzu kurmak için birkaç uygulamamız var XMPP o hızlı konuşmak bilindiği gibi, yapılandırırken bazıları diğerlerinden daha karmaşıktır. Örneğin, bizde Ejabberd, bu oldukça basit ve hafif, ancak daha fazlasını optimize etmek istiyorsak ölçü.

Sonra seni terk ediyorum bir makale yayınlanan GTL kullanıcılarımızdan biri (Hugo) tarafından ve bize kendi sunucumuzu nasıl yapılandıracağımızı XMPP ile ölçü.

Giriş

Yerel bir ağda dahili mesajlaşma için bir XMPP (Jabber) sunucusu kurarken, çoğu jabber, ejabberd veya openfire'ı seçer, ancak işlevsel olmasına rağmen bu uygulamalar çok fazla kaynak gerektirebilir.

Küçük veya orta ölçekli bir ağınız varsa ve sadece basit bir anlık mesajlaşma servisi istiyorsanız neyse ki, yorumlanmış bir dil olan LUA'da programlanmış olmasına rağmen geliştiricilerine göre çok iyi çalışan prosody adlı hafif bir sunucu alternatifi var luajit'e.

Bu kısa öğretici, Debian kararlılığına prozodinin nasıl kurulacağını ve yapılandırılacağını açıklayacaktır.

Hazırlıklar ve kurulum

Prosody paketleri Debian deposunda bulunur, ancak bu yazılımın geliştiricileri Debian ve en son paketleri ve aşağıdaki gibi kullanabileceğimiz ek modülleri içeren türevler için bir depo hazırladılar:

echo "deb http://packages.prosody.im/debian kararlı ana" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key eklentisi - sudo aptitude güncellemesi

Depo eklendikten sonra, prosody kurulumuna geçebiliriz (ek olarak kullanılacak modüller ekleyebiliriz) sasl gerekirse, prozodiyi entegre etmeye izin veren bir doğrulama mekanizması olarak pam, LDAPGibi).

sudo aptitude install sasl2-bin libsasl2-modüller-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}

Ardından, alanımız için kendinden imzalı sertifikalar oluşturmaya devam ediyoruz:

cd / etc / prosody / certs sudo openssl req -new -x509 -days 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"

Sihirbaz bizden bir dizi veri isteyecektir, bunlardan gerçekten önemli olanı "Ortak Ad (ör. Sunucu FQDN veya SİZİN adınız) ”bölümünde kullanacağımız için alanımızı koymamız gereken yer Sanal Ana Bilgisayar yapılandırma dosyası.

Ek olarak, prozodiyi kurduğumuz sunucuda yapılandırmışsak iptables Varsayılan reddetme politikaları ile, ağımız için gerekli bağlantı noktalarını açmamız gerekir, örneğin:

sudo iptables -A GİRİŞ -i lo -j KABUL sudo iptables -A GİRİŞ -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m durum --state TAHMİN EDİLDİ, İLGİLİ -j KABUL sudo iptables -A GİRİŞ - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport --dports 5222,5223,5269 -m state --state YENİ -j KABUL

yapılandırma

Ardından, düzenlememiz gereken yapılandırma dosyasının bazı satırlarını değiştirmeye devam ediyoruz. /etc/prosody/prosody.cfg.lua bu yüzden şuna benziyor:

bağlantı noktaları = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - varsayılan seçenek select () işlevine dayanır, bunun yerine libevent daha verimli ve ölçeklenebilir olan epoll () işlevini kullanır. module_enabled = {"görev listesi"; "saslauth"; "tls"; "çevirme"; "disk"; "özel"; "vcard"; "gizlilik"; "sıkıştırma"; "legacyauth"; "versiyon"; "çalışma süresi"; "zaman"; "ping"; "moral"; "Kayıt ol"; - bu modülü devre dışı bırakmayın, yalnızca kaydolmaya değil aynı zamanda "adhoc" parolaları değiştirmeye de izin verir; "admin_adhoc"; "posix"; "bosh"; - jabber'ı http} üzerinden etkinleştirmek istiyorsanız bu satırı ekleyin; allow_registration = false; - güvenlik için devre dışı - hesapların müşterinin kendisinden oluşturulmasını etkinleştirmek istiyorsanız true olarak değiştirin ssl = {key = "/etc/prosody/certs/localhost.key"; sertifika = "/etc/prosody/certs/localhost.cert"; } depolama = "dahili"; - varsayılan depolama bir xml dosyasıdır - isteğe bağlı olarak "sql" depolama yöntemini kullanabiliriz - bu, arka uç olarak SQLite, MySQL veya PostgreSQL kullanımına izin verir (belirli parametrelerin eklenmesi gerekmesine rağmen) authentication = "internal_hashed"; - istemci SCRAM-SHA-1'i desteklemiyorsa "internal_plain" kullanabiliriz - daha sonra LDAP kullanmak için sasl yöntemini kullanmak istiyorsak, "cyrus" log = {error = "/ var / log / prosody kullanmalıyız / prosody. err "; info = "/var/log/prosody/prosody.log"; } pidfile = "/var/run/prosody/prosody.pid"; VirtualHost "localhost" VirtualHost "alanadim.cu" ssl = {key = "/etc/prosody/certs/mydomain.cu.key"; sertifika = "/etc/prosody/certs/mydomain.cu.crt"; }

Yapılandırma dosyası değiştirildikten sonra hizmeti yeniden başlatırız:

sudo hizmet prosody çıkarma

Şimdi hesapları oluşturmaya devam edeceğiz. Bu durumda, konfigürasyon dosyasında olduğu gibi, kayıt defterini istemcilerden devre dışı bıraktığımızda, hesapların sunucuda manuel olarak oluşturulması gerekecektir. Yapılandırmada seçtiğimiz kimlik doğrulama yöntemi (internal_hashed), şifrelerin net değil mekanizma ile kaydedilmesini sağlar. SCRAM-SHA-1. Kullanmayı planladığımız mesajlaşma istemcisi bu mekanizmayı desteklemiyorsa, konfigürasyonda "internal_plain" yöntemi kullanılabilir.

Öncelikle, yapılandırmada belirttiğimiz hizmetin yöneticilerinin hesaplarını oluşturacağız (bunları beyan etmek, bunların otomatik olarak oluşturulduğu anlamına gelmez):

sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu

Oluşturmak istediğimiz diğer hesaplar için aynı komutu kullanabiliriz.

Son olarak, hizmetin çalışıp çalışmadığını kontrol ediyoruz:

sudo prosodyctl durumu

Aşağıdaki gibi bir mesaj almalıyız:

Prosody, PID 1310 ile çalışıyor

İstemci yapılandırması

Yapılandırma müşteriye bağlıdır, ancak genel olarak ayrıntılar basittir. Örneğin, Sorumluluk:

"Temel" sekmesi

Kullanıcı Adı: John
domain: mydomain.cu
Kaynak: pc juan

"Gelişmiş sekme

Bağlantı güvenliği: Mümkünse şifreleme kullanın
Bağlantı noktası: 5222
Sunucuya bağlan: myserver.mydomain.cu

Fatura

Daha fazla bilgi bulunabilir (Cyrus SASL'nin kullanımı dahil) LDAP ve nasıl giriş oluşturulur DNS) In Bu makalenin Debian Wiki'den.

Bir kullanıcı aracılığıyla yorum yapar DesdeLinux yürütmeniz gereken hizmeti gerçekten durdurmak için pkill lua5.1


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   KZKG ^ Gaara dijo

    Hoşuma gitti ... Bakalım ejabberd için OpenFire'ı mı yoksa bu Prosody'yi mi değiştireceğim?

    1.    ela dijo

      Ben zaten bunun için VirtualBox'ta testleri yapıyorum .. çünkü eğer seni beklersek oğlum .. ¬¬

      1.    KZKG ^ Gaara dijo

        ^ - ^ U ... hehe ...
        Şimdi Barındırma sağlayıcısına, 'jabber'ı kaldırmamız gereken DNS kaydını soran bir bilet gönderiyorum. ________

        1.    ela dijo

          Tamam. Jabber, IRC, Facebook, Gtalk, nasıl ve nerede bilmiyorum ama bağlanın ..

  2.   Ernesto İnfante dijo

    Prosody'nin LDAP'si ile entegrasyon nasıl? ve BD?

  3.   çürük87 dijo

    daha az bilgili için birkaç resim fena olmaz ^. ^

  4.   dhunter dijo

    Evde aruz var, test etmek için kurdum ve basitliğinden dolayı beğendim. Sunucuyu durdururken bir ayrıntı, onu gerçekten durdurmak için bir pkill lua5.1 yapmam gerekiyor.

  5.   auroszx dijo

    Vay canına, bu ilginç. Başkalarının GUI aracılığıyla kullanıcı oluşturmasının bir yolu var mı (web olabilir)? Kullanmak için bir alan adı almaya nasıl devam edersiniz? 😛

    1.    dhunter dijo

      Yapılandırmada ve kayıtlı oldukları jabber istemcisinden sunucuda hesap oluşturma seçeneğini işaretleyerek kaydı etkinleştirirsiniz.

      allow_registration = doğru;

  6.   Ferran dijo

    Slackware'de prozodi paketleri arıyorum, mükemmel öğretici. Saygılarımızla

  7.   arturo molina dijo

    Bir kullanıcının kimlik doğrulamayı başardığını nasıl doğrulayabilirim? veya bir kullanıcının sunucuya bağlı olup olmadığını nasıl bilebilirim?

  8.   @Hayalhanemersin dijo

    Başardım 😀 Doğru şekilde kurup yapılandırabildim. Sunucuyu bir bilgisayara kurun ve istemci başka bir bilgisayardır. ama bir sorunum var. Müşterinin etki alanına sahip sunucumun (medellinlibre.org) YEREL olduğunu bilmesi için. IPDELSERVIDOR medellinlibre.org ana bilgisayar dosyasına eklemeliyim. Değilse, bariz nedenlerden dolayı bağlanmaz. Sorum şu ki, ağdaki tüm bilgisayarların bu etki alanının belirli bir IP'de LAN üzerinde olduğunu varsayılan olarak bilmesinin bir yolu yoksa?

    1.    ltd dijo

      aynı şüphe! sonunda biliyor muydun? Aruz ile başlıyorum ...

    2.    dhunter dijo

      Çok basit, pidgin'de gelişmiş seçeneklerde sunucunun ipini belirtin, diğer seçenek LAN'ınıza bir dns bağlamaktır.

  9.   Francisco dijo

    Bu konu çok ilginç ve Prosody'nin web soketlerini destekleyip desteklemediğini öğrenmek istedim. Bir xmpp web istemcisi yapmakla ilgileniyorum

    1.    @Hayalhanemersin dijo
  10.   İnukaze dijo

    Merhaba, eğiticinin yalnızca yerel intranet için yapılandırılmış bir sürümüne sahip değil misiniz? Etki alanı veya benzeri bir şey yok. ancak Liñux'lu yalnızca 1 bilgisayar bir sunucu ve ona bağlanan diğer bilgisayarlar

    Sadece intranet bilgisayarları arasında pidgin üzerinden sohbet edebilmektir.