· kaynak Hacker News – Front Page (native)
Lonewolf 0.3, Rust ile yazılmış XMPP sunucusuna sertifika kimlik doğrulamalı federasyon ekliyor
Rust ile yazılmış bağımsız bir XMPP sunucusu olan Lonewolf'un 0.3.0 sürümü, sertifika kimlik doğrulamalı federasyon, doğrudan TLS ve yeni istemci eklentileri getirirken, pre-1.0 tek düğümlü bir proje olmaya devam ediyor.
Sertifikalara dayalı federasyon
Rust ile yazılmış bağımsız bir XMPP sunucusu olan Lonewolf, sertifika kimlik doğrulamalı sunucudan sunucuya federasyon, doğrudan TLS desteği ve yeni bir dizi XMPP eklentisiyle birlikte 0.3.0 sürümünü yayımladı. Şu anda Hacker News'in ön sayfasında yer alan GitHub'da yayımlanan sürüm notlarına göre proje, pre-1.0 ve tek düğümlü kalmaya devam ediyor; tam XMPP uyumluluğu ve clustering hâlâ yol haritasında.
Öne çıkan değişiklik federasyon. Lonewolf artık diğer XMPP sunucularıyla mesaj, IQ, presence ve roster aboneliklerini takas edebiliyor ve sertifikaları ile genel DNS adları yapılandırılmış sunucular varsayılan olarak federasyon yapıyor.
Kimlik doğrulama katı bir yol izliyor: karşı taraflar güvenilir sertifikalar sunmalı ve SASL EXTERNAL ile kimlik doğrulamalı; eski Server Dialback mekanizması desteklenmiyor. Çift yönlü bağlantılar (XEP-0288) uyumlu sunucuların tek bir bağlantıyı paylaşmasını sağlarken, Stream Limits Advertisement (XEP-0478) federasyon eşlerinin stanza ve boşta kalma sınırlarını baştan takas etmesini sağlıyor.
Doğrudan TLS ve istemci tarafı eklentiler
Doğrudan TLS (XEP-0368), adanmış istemci ve sunucu dinleyicileri ekliyor ve federasyon için STARTTLS ile doğrudan TLS keşfini birleştiriyor. İstemci tarafında Private XML Storage (XEP-0049) artık özel istemci ayarlarını ve eski yer imlerini saklarken, Software Version (XEP-0092) alan adı düzeyindeki yazılım sorgularını yanıtlıyor; işletim sistemi bilgisinin açıklanması varsayılan olarak kapalı. Her iki eklenti de varsayılan olarak etkin geliyor.
Kimlik doğrulamaya önemli bir ekleme yapılıyor: opsiyonel SCRAM-SHA-512 ve SCRAM-SHA-512-PLUS. Sürüm notları, bunların bir RFC ya da IANA'ya kayıtlı bir mekanizma yerine süresi dolmuş bir Internet-Draft uyguladığı konusunda açık sözlü. Bir de yükseltme uyarısı var: hesap oluşturma ve parola değişiklikleri, SHA-512 girişi devre dışı bırakılmış olsa bile eski Lonewolf binary'lerinin okuyamayacağı kimlik bilgileri yazıyor.
Operasyonel değişiklikler
Birkaç varsayılan değer ve araç, operatörler göz önünde bulundurularak değişti:
- Federasyon, düz HTTP üzerinden CA tarafından yayımlanan sertifika iptal listelerini varsayılan olarak kontrol ediyor. İndirilen CRL'ler bilinmeyen iptal durumuna toleranslı; operatörler indirmeyi
s2s.tls.fetch_crls = falseile devre dışı bırakabilir ya das2s.tls.crls_pathdeğerini yerel bir dosyaya yönlendirebilir, bu durumda yalnızca o dosya kullanılır. letsencrypt.certificate_profileayarı, kısa ömürlü sertifikalar dahil CA'nın duyurduğu bir profili seçiyor ve profil değişiklikleri erken yenilemeyi tetikliyor.- Varsayılan istemci stanza sınırı 512 KiB'den 256 KiB'ye düşürüldü.
- Trafik bayt sayaçları artık TLS el sıkışması ve kayıt ek yükünü içeriyor.
- Benchmark çalıştırılabilir dosyası ve crate'i lonewolf-bench'den lonewolfbench olarak yeniden adlandırıldı.
Derleme ve olgunluk
Proje, Linux ya da macOS üzerinde kararlı bir Rust toolchain ve bir sistem linker'ı ile cargo build --release --locked -p lonewolf -p lonewolfctl -p lonewolfbench komutuyla derleniyor. Apache-2.0 lisansıyla lisanslı. Geliştiriciler, projeyi şimdilik pre-1.0, tek düğümlü bir sunucu olarak tanımlıyor; desteklenen rolleri ve sınırları belgeleyen bir standartlar referansı mevcut, tam uyumluluk ve clustering ise yol haritasında kalan maddeler.
Neden önemli
Kendi sohbet altyapısını kurmak isteyen self-hosting yapanların elinde gerçekçi XMPP sunucularının listesi kısa ve Prosody, ejabberd ile Openfire gibi köklü seçenekler sırasıyla Lua, Erlang ve Java ile yazılmış büyük kod tabanları. Bellek güvenliği, doğrudan TLS ve çalışan federasyon sunan kompakt bir Rust sunucusu, özellikle de sertifikası ve genel bir DNS adı olanlar için federasyonun artık varsayılan olarak etkin olduğu şu günlerde küçük bir VPS için anlamlı bir alternatif.
Seçimler, operatörlerin dağıtımdan önce anlaması gereken yönlerden iddialı. Server Dialback'in bırakılması, birlikte çalışabilirliğin karşı tarafların sertifika tabanlı SASL EXTERNAL desteklemesine dayanması anlamına geliyor; SHA-512 mekanizmaları taslak düzeyinde ve düz HTTP CRL varsayılanı, yerel güvenlik gereksinimlerine göre gözden geçirilmeye değer. Pre-1.0 bir proje olarak umut verici ama üretime hazır değil şeklinde değerlendirmek en doğrusu; ancak bu sürüm, onu self-hosting yapanların gerçekten ihtiyaç duyduğu özellik setine hızla yaklaştırıyor.
- #xmpp
- #rust
- #self-hosting
- #open-source
- #messaging