CentOS 5.6にOpenfireインスタントメッセージングサーバーを構築する方法

はじめに
統合コミュニケーションが重要視される現在、社内・サポートチーム向けに自前のインスタントメッセージング(IM)基盤を持つ価値は高まっています。この記事では、オープン標準のXMPP(旧Jabber)を用いるOpenfireをCentOS 5.6に導入する手順を解説します。
用語1行定義: XMPP — XMLベースのリアルタイムメッセージングとプレゼンス情報を扱うオープンプロトコル。
前提条件
- CentOS 5.6が稼働しているサーバー(root権限またはsudo可)
- 基本的なLinuxコマンドの知識
- ネットワーク上でサーバーのIPまたはFQDNにアクセスできること
- ファイアウォールで必要ポートを開放できること(以下参照)
補足: 本記事ではCentOS自体のインストール手順は扱いません。howtoforgeの「perfect server」ガイド等を参照してください。
重要: CentOS 5.6は古いバージョンです。可能であればサポートのある新版OSへの移行を検討してください。
Openfireとは
OpenfireはIgnite Realtimeが提供するオープンソースのXMPPサーバーです。管理用のWeb GUIを備え、プラグインで機能拡張が可能です。小〜中規模の社内IMに向いています。
主な技術要素(一点説明):
- 管理コンソール: HTTP(S)で初期設定と運用管理を行います。デフォルトはポート9090/9091。
- クライアントプロトコル: XMPP(クライアント接続は通常ポート5222、古いTLS接続は5223)
ダウンロード
Openfire本体はIgnite Realtimeのダウンロードページから取得します。CentOS環境では.rpmパッケージを選びます。同ページから公式クライアントSparkも入手可能です。
ダウンロードページのスクリーンショット
インストール手順(基本)
以下は最小限の手順です。運用環境ではバックアップや監査ログの方針を併せて検討してください。
- Openfireの.rpmファイルをサーバーに転送します。
- rootで以下を実行してインストールします。
rpm -Uvh openfire-3.7.0-1.i386.rpm
- インストール後、Openfireはデフォルトで管理コンソールをポート9090でリッスンします。ブラウザで次にアクセスしてセットアップを行います:
http://{OpenFire_Server_IP}:9090
- ウィザードに従い、データベース接続、管理者アカウント、ドメイン名などを設定します(デフォルトの内蔵データベースでも動作しますが、本番では外部DBを推奨)。
ログイン画面のスクリーンショット
管理ダッシュボードのスクリーンショット
ユーザー集計のスクリーンショット
ポートとプロトコル(要確認)
- 管理コンソール: 9090 (HTTP), 9091 (HTTPS)
- XMPPクライアント接続: 5222 (通常), 5223 (古いSSL)
運用前にサーバーのファイアウォール(iptablesや外部FW)で該当ポートを開放してください。
Sparkクライアントの設定
SparkはOpenfire公式のデスクトップクライアントです。インストールは一般的なWindows/Linuxインストーラー形式で行えます。アカウント作成は以下の情報を入力します。
- Username: 任意のユーザー名
- Password: 任意のパスワード
- Server: OpenfireサーバーのIPまたはドメイン
Sparkのアカウント設定画面のスクリーンショット
注意: Openfireで「オープン登録」が有効であれば、ユーザーがクライアントから直接アカウント登録できます。セキュリティの観点からオープン登録は運用方針に応じて無効化してください。
一般的なIMクライアントの例を示すスクリーンショット
セキュリティ強化のチェックリスト
重要: 本番導入前に以下を確認してください。
- 管理コンソールをHTTPS(9091)でのみ公開する
- 管理者アカウントの強力なパスワードを設定する
- デフォルトのオープン登録は無効化する
- TLSを有効にしてクライアント接続を暗号化する
- 監査ログとバックアップの方針を決める
- 必要に応じてIP制限やVPN経由でのアクセスに限定する
追加の推奨:
- 外部データベース(MySQL/PostgreSQL/Oracle等)を利用し、DBのアクセス制御を厳格にする
- 定期的なアップデートとセキュリティパッチ適用の計画を立てる
運用・管理の実務チェックリスト(役割別)
システム管理者:
- Openfireプロセスの監視
- バックアップ(構成ファイル、ユーザーデータ、DB)の自動化
- OSとOpenfireのパッチ適用計画
セキュリティ担当:
- TLS証明書の管理
- 脆弱性スキャンの定期実施
- ログ監査と異常検知ルールの設定
ヘルプデスク:
- ユーザー作成/削除の手順を文書化
- クライアント設定テンプレート(スクリーンショット付き)を用意
- よくある問い合わせ(接続エラー、パスワード忘れ)のFAQ整備
ミニ・メソドロジー: 導入から運用開始までの高レベル手順
- 目的定義: 利用範囲(社内、外部サポート等)とセキュリティ要件を決める
- 環境準備: CentOSサーバーの構築とネットワーク設定
- インストール: Openfireをrpmで導入し、管理コンソールで初期設定
- テスト: 内部クライアントで接続確認、TLS/機能確認
- 運用設計: バックアップ、ログ、監視、アカウント運用ポリシーを確定
- 本番リリース: 利用者への案内とサポート体制を整備
代替アプローチと比較の観点
- クラウド型XMPPサービス: 自己運用が不要だが、制御性が低く、データを外部に預ける必要がある
- 他のプロトコル/製品(Matrix, Mattermost, Slackなど): 機能セットやエコシステムが異なる。XMPPは拡張性とオープン性が強み
- コンテナ化: 古いCentOSの代わりに新しいホストOS上でOpenfireをコンテナとして運用する方法もある(移行検討推奨)
いつ失敗しやすいか(反例):
- OSが古くサポート外である場合、脆弱性対応や依存パッケージで問題が起きやすい
- 設計段階でログや監視を考慮しないとトラブル時の原因特定が難しい
受け入れ基準
導入が完了と見なす条件例:
- 管理コンソールに管理者でログインできること
- 少なくとも1つのクライアントがXMPP接続でき、メッセージ交換が可能であること
- TLSでクライアント接続が暗号化されていること
- バックアップと監視が設定されていること
テストケース / 受け入れテストの例
- クライアントからのログイン成功テスト
- 異常ネットワークでの再接続動作確認
- 管理者によるユーザー作成・削除が即時反映されること
- TLS無効化時に接続が拒否されること(セキュリティ確認)
トラブルシューティングのヒント
- 管理コンソールにアクセスできない: サーバーのポート9090/9091がリッスンしているか、iptablesや外部FWを確認
- クライアント接続エラー: サーバー名(ドメイン)と証明書のCNが一致しているかを確認
- サービスが起動しない: /var/log/openfire/配下のログを確認
移行と互換性の注意点
- 将来の移行を考える場合、外部DBを使う設計にしておくとデータ移行が容易です
- 古いCentOSを使い続けるとOSサポート切れによるリスクが大きくなるため、可能な限り新しい環境へ移行してください
1行用語集
- Openfire: XMPPサーバー実装
- Spark: Openfire公式のデスクトップIMクライアント
- XMPP: メッセージングプロトコル
参考リンク
- http://www.centos.org
- https://www.howtoforge.com/perfect-server-centos-5.6-x86_64-ispconfig-3
- https://www.howtoforge.com/perfect-server-centos-5.6-x86_64-ispconfig-2
- http://www.igniterealtime.org
連絡先
質問やコメントは本文で示された連絡方法(muffycompoqm AT gmail.com)またはOpenfireのコミュニティフォーラムを利用してください。
要約
- OpenfireはCentOS上で比較的容易に立ち上げられるXMPPサーバーです。
- セキュリティ(TLS、管理コンソールの保護)とバックアップを導入前に設計してください。
- 運用者ごとのチェックリストと受け入れ基準を定めると導入がスムーズです。
さらに進める場合は、外部データベースの利用、クラスタリング、プラグインによる機能拡張などを検討してください。