
2026/11/13 23:28
Lonewolf 0.3 — Rust で記述された独自スタンドアロンの XMPP サーバー
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Lonewolf 0.3.0 では、複雑な手動設定なしで即座にサーバー同士の連携(federation)を可能にし、安全なメッセージング、連絡先リストの購読、およびオンライン状態情報の交換を実現する箱出し機能を提供します。このアップデートでは、最新のプロトコルに基づく TLS を経由した暗号化されたリンクを自動的に有効化し(最初のバイトから直接 TLS を使用できる)、ピアの証明書を検証すると同時に、標準的な HTTP を経てデフォルトで証明書破棄リスト(CRL)を確認します。ただし、管理者は重要な互換性の断絶に注意する必要があります:アップグレードによりすべての新規アカウントが SHA-512 クレデンシャルに切り替わるため、古いバージョンへのロールバックやレガシーデータのリードが不可能になります。さらに、プライバシー保護のためシステム識別子は隠蔽され、サーバーダイアルバックは明示的にサポートされておらず、SCRAM-SHA-512 などの高度な機能もドラフト状態にあるため手動での有効化が必要です。特定の OS フィンガープリントに依存している組織や、厳格なレガシー互換性を必要とする場合、移行前にこれらの設定を慎重に確認することをお勧めします。新規アカウントを作成すると以前のバージョンへの戻しが不可能になるためです。
本文
Lonewolf v0.3.0 リリースノート:XMPP フェデレーション対応と新機能追加
概要
今回のリリースの最大の特徴は、他社 XMPP サーバーとの通信を可能にするフェデレーション機能の実装です。さらに、直接 TLS 接続やデスクトップクライアント向けの拡張機能も強化されました。
重要な注意点: Lonewolf は現在依然として v1.0 未満(プレリリース) の状態で、単一ノードでの動作のみをサポートしています。完全な XMPP 準拠およびクラスターリング機能は今後のロードマップに予定されています。
新機能詳細
フェデレーション機能
利用者が他の XMPP サーバー上のユーザーとの通信を可能にした機能です。
- 対応可能な操作
- メッセージの送受信
- プレゼンス情報の共有
- IQ メッセージのやり取り
- ロスター購読(コンタクトリストの同期)
- 有効化条件
- ホストが証明書とパブリック DNS ネームを保有している場合、フェデレーションはデフォルトで有効です。追加設定不要です。
- 認証方式について
- Lonewolf 側:ピア認証に証明書のみを採用します(証明書検証)。
- 相手サーバー側:信頼できる証明書と SASL EXTERNAL の対応が必要です。
- 備考:Server Dialback はサポートしていません。
- 通信効率化 (XEP-0288)
- 相手が機能をサポートする場合、双方向通信を単一の接続で共有可能です。
- リソース管理 (XEP-0478)
- サーバー間でスタジア(バッファ)のサイズ制限およびアイドルタイムリミットを相互通知します。
証明書取得設定 (CRL)
フェデレーションチェック時に CA が公開する証明書撤回リスト(CRL)を確認しますが、平文 HTTP で取得します。
- 失敗時の挙動
- CRL ダウンロードに失敗しても、接続はそのまま成立します。
- 設定例
- CRL 取得を無効化する場合:
s2s.tls.fetch_crls = false - 特定のローカルファイルのみを使用する場合(パス指定):
s2s.tls.crls_path = "/path/to/local/file.pem"
- CRL 取得を無効化する場合:
直接 TLS(Direct TLS)
クライアントとサーバー間でも、初バイトから TLS プロトコルを開始できるようになりました(XEP-0368)。
- 専用リスナー:TLS 接続を処理するための新しいリスナーが用意されました。
- アウトバウンドフェデレーション:STARTTLS エンドポイントと直接 TLS エンドポイントの双方を検出可能です。
デスクトップクライアント向け機能
以下の機能はデフォルトで有効です。
- プライベート XML ストレージ (XEP-0049)
- クライアントが機密設定やレガシーなブックマークを保存する専用場所を提供します。
- ソフトウェアバージョン情報 (XEP-0092)
- 「これはどのサーバーか?」という問い合わせに対し回答を提供します。
- 注意:オペレーティングシステム情報を公開するには別途設定が必要です(デフォルトでは非公開)。
短寿命証明書対応
letsencrypt.certificate_profile を使用して、CA が提供するプロファイルから選択できます(短寿命証明書も対象)。
- 自動更新
- プロファイルを切り替えると、Lonewolf が早期更新を行うため、新しい証明書をすぐに有効にします。
SCRAM-SHA-512 認証(オプトイン)
SCRAM-SHA-512 および SCRAM-SHA-512-PLUS の機能を有効化できますが、以下の点にご注意ください。
- 仕様状況:IETF 草案であり、RFC または IANA で登録済みではありません。また既に期限切れとなっています。
- バックアップへのリスク
- SHA-512 認証を無効化したままでも、新規アカウント作成やパスワード変更時には v0.2.0 では読み込めない形式の認証情報が保存されます。
- これにより、以前のバージョンへのロールバックは容易ではありません。
ソースコードからのビルド
安定版 Rust ツールチェーンと Linux/macOS 向けシステムリンカーがあれば、以下の手順でビルド可能です。
-
ソースコード(tar.gz または zip)をダウンロードし展開します。
-
以下のコマンドを実行します:
cargo build --release --locked -p lonewolf -p lonewolfctl -p lonewolfbench
- 名称変更への対応:ベンチマークツールは「lonewolf-bench」から**「lonewolfbench」**に変更されています。呼び出しスクリプトも更新してください。
- 詳細なセットアップ手順については、クイックスタートガイドをご参照ください。
メタデータ
- 完全な変更履歴対象バージョン: v0.2.0…v0.3.0
- ライセンス: Apache-2.0