CentOS 7 に Murmur(Mumble サーバ)をインストールする方法
Murmur(Mumble サーバ)を CentOS 7 に導入する手順を順を追って解説します。ファイアウォール開放、静的サーバのダウンロード、展開、ユーザ・権限設定、systemd ユニット作成、SELinux 無効化、起動確認まで含めた実用的な手順です。トラブルシュート、セキュリティ強化、運用チェックリストも掲載しています。
重要: ここで扱う Murmur は静的バイナリ(murmur-static)を想定しています。別のパッケージやディストリビューション向けの手順は代替アプローチをご覧ください。
目的と関連キーワード
- 主目的: CentOS 7 上で Murmur(Mumble サーバ)を稼働させる
- 関連バリアント: Murmur インストール、Mumble サーバ設定、CentOS7 Murmur、murmur systemd、murmur firewall
概要
Mumble は低遅延で高音質の音声チャットを提供する無料アプリケーションです。Murmur はそのサーバ実装で、クライアント・サーバ構成を採用します。Murmur はルートチャネルと階層的なチャネルツリーを持ち、設定次第で細かくカスタマイズできます。以下は CentOS 7 に Murmur を導入する実務手順です。
ファイアウォール(firewalld)の設定
CentOS のデフォルトファイアウォールは Murmur の標準ポート 64738 への接続を遮断します。別ポートを使う場合はそのポートを開放してください。
- Murmur 用の firewalld サービス定義ファイルを作成します。
sudo vi /etc/firewalld/services/murmur.xml
- 以下を追加します(引用符はそのままコピーペーストしてください)。
Murmur
Mumble Server
- ファイアウォールに登録して再読み込みします。
sudo firewall-cmd --permanent --add-service=murmur
sudo firewall-cmd --reload
注: UDP と TCP の両方を開けておくのが一般的です。ゲーミング用途では UDP を優先します。
Murmur タールボールをダウンロード
公式リリースページから最新の “Mumble Static Linux Server” を取得します。以下は一例です。
ダウンロードはサーバで wget を使うのが簡便です。ブラウザから直接リンクをコピーして wget に渡します。
wget https://github.com/mumble-voip/mumble/releases/download/1.2.13/murmur-static_x86-1.2.13.tar.bz2
wget の出力例(接続、リダイレクト、保存のログ)が続きます。出力は環境により異なりますが、ファイルサイズと保存先を確認してください。
tarball を展開する
ダウンロード後、tar.bz2 を展開します。
tar -vxjf ./murmur-static_x86-1.2.13.tar.bz2
もし次のようなエラーが出たら bzip2 が未インストールです。
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
bzip2 を導入して再実行します。
sudo yum install bzip2
インストール後、再度展開してファイル一覧を確認します。展開例:
murmur-static_x86-1.2.13/
murmur-static_x86-1.2.13/murmur.x86
murmur-static_x86-1.2.13/LICENSE
...
murmur-static_x86-1.2.13/murmur.ini
murmur-static_x86-1.2.13/README
次に、実行位置を /usr/local/murmur に整えます。
sudo mkdir /usr/local/murmur
sudo cp -r ./murmur-static_x86-1.2.13/* /usr/local/murmur/
設定ファイルを /etc に配置します(例では 1.2.9 のファイル名になっています。展開したバージョンに合わせてパスを修正してください)。
sudo cp ./murmur-static_x86-1.2.9/murmur.ini /etc/murmur.ini
所有権とパーミッションの調整
Murmur 用に専用ユーザとグループを作成し、ログやランタイムディレクトリの権限を設定します。
sudo groupadd -r murmur
sudo useradd -r -g murmur -m -d /var/lib/murmur -s /sbin/nologin murmur
ログ格納用ディレクトリを作成して所有権を割り当てます。
sudo mkdir /var/log/murmur
sudo chown murmur:murmur /var/log/murmur
ログ保護のためパーミッションを制限します。
sudo chmod 0770 /var/log/murmur
重要: 実行バイナリや設定ファイルの所有権も適切に確認してください。必要に応じて /usr/local/murmur 以下の所有権を murmur に変更します。
sudo chown -R murmur:murmur /usr/local/murmur
/etc/murmur.ini の設定
Murmur のデフォルト設定は /etc/murmur.ini にあります。テキストエディタで開いて pidfile と logfile の出力先を調整します。
sudo vi /etc/murmur.ini
設定例(必須の 2 行を追加または変更):
pidfile=/var/run/murmur/murmur.pid
logfile=/var/log/murmur/murmur.log
vi を使う場合は i で挿入、:wq で保存して終了します。
systemd ユニットファイルを作成する
systemd 管理下で Murmur を起動・停止・自動起動させるにはユニットファイルを用意します。
sudo vi /etc/systemd/system/murmur.service
以下を貼り付けます。
[Unit]
Description=Mumble Server (Murmur)
Requires=network-online.target
After=network-online.target mariadb.service time-sync.target
[Service]
User=murmur
Type=forking
PIDFile=/var/run/murmur/murmur.pid
ExecStart=/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini
[Install]
WantedBy=multi-user.target
注: ExecStart のパスとバイナリ名は展開したバージョンにより異なる場合があります。実際のファイル名を確認してください。
古い /var/run は再起動で消えるため、tmpfiles で再作成ルールを追加します。
sudo vi /etc/tmpfiles.d/murmur.conf
追加行:
d /var/run/murmur 775 murmur murmur
tmpfiles を作成し、systemd を再読み込みして有効化します。
sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload
自動起動を有効にします。
sudo systemctl enable murmur.service
SELinux の無効化
デフォルトの SELinux 設定では Murmur の起動が阻害されることがあります。恒久的に無効化するには /etc/sysconfig/selinux を編集して SELINUX を disabled に設定し、再起動します。
sudo vi /etc/sysconfig/selinux
SELINUX=disabled
警告: SELinux 無効化はセキュリティ面での影響があります。可能であれば SELinux ポリシーを調整して許可ルールを追加する方が望ましいです(下の「セキュリティ強化」を参照)。
Murmur サーバの起動
設定が整ったらサービスを起動します。
sudo systemctl start murmur.service
状態を確認します。
sudo systemctl status murmur.service
ログファイルや pid ファイルの有無、ポートがリッスンされているか(ss / netstat)を確認してください。
接続確認
全て正しく実行されていれば、クライアントから CentOS サーバの IP アドレスまたはドメイン名とポート 64738(または指定したポート)で接続できます。Mumble クライアントは公式サイトや GitHub から入手可能です。
トラブルシューティング(よくある問題と対処)
- 起動しない: systemctl status と journalctl -u murmur.service を確認。権限(chown)、pidfile パス、ExecStart パスの誤りが多い。
- ポートに接続できない: firewall-cmd –list-all でサービス/ポートが登録されているか、ss -lntu でリッスン状況を確認。
- bzip2 エラー: tar の出力に bzip2 がない旨のエラーが出たら sudo yum install bzip2。
- SELinux による拒否: /var/log/audit/audit.log に拒否ログがある。まずは ausearch/audit2why で原因を確認し、一時的に setenforce で検証する。
- バイナリの依存が不足: static ビルドでない場合は必要なライブラリが不足することがある。ldd で確認。
代替アプローチ
- パッケージ管理で導入: EPEL やディストリ用の rpm がある場合、yum/dnf 経由でインストールすると自動的に依存解決やサービス定義が提供されることがある。
- コンテナ化: Docker/Podman コンテナで Murmur を実行し、ホストはポート転送のみ行う。ホスト環境を汚さずに複数インスタンスを管理しやすい。
- ソースビルド: 特殊な最適化や機能が必要な場合はソースからビルドする選択肢があるが、依存関係の管理が増える。
セキュリティ強化(推奨)
- SELinux を可能な限り有効にし、必要なポリシーを追加して運用する。
- Murmur 管理ポート / ICE インターフェースを外部に晒さない。管理用は内部ネットワークに限定する。
- systemd の PrivateTmp や NoNewPrivileges 等を検討する。
- ログの保護: /var/log/murmur に対して 0770 など最小権限。ログローテーションを設定する。
- TLS/証明書: 必要に応じてサーバ証明書を設定し、クライアント接続を暗号化する(Murmur の設定で可能な項目を参照)。
受け入れ基準
- murmur.service が active(running)になっている
- /var/run/murmur/murmur.pid が存在する
- /var/log/murmur/murmur.log にログが出力される
- クライアントからサーバ IP:64738 で接続できる
- ファイアウォールに murmur サービスが登録されている
ロール別チェックリスト
- サーバ管理者:
- systemd ユニットと tmpfiles を確認
- セキュリティ設定(SELinux ポリシー/ファイアウォール)を見直す
- オペレーター:
- 起動/停止の操作手順を把握
- ログローテーションとバックアップの設定
- ゲーマー/利用者:
- クライアント接続情報(サーバIP/ポート、パスワード)を確認
- 推奨クライアントバージョンを通知
受け入れテスト/確認手順
- sudo systemctl start murmur.service
- sudo systemctl status murmur.service -> active を確認
- ss -lntu | grep 64738 -> リッスン確認
- Mumble クライアントから接続し音声送受信を確認
- ログにエラーが出ていないことを確認
簡易メソドロジー(導入手順まとめ)
- ファイアウォールで 64738 を開ける
- Murmur 静的バイナリをダウンロードする
- 展開して /usr/local/murmur に配置する
- murmur ユーザ/グループを作成、ログディレクトリを作る
- /etc/murmur.ini を編集して pid と log を指定
- systemd ユニットと tmpfiles を作る
- SELinux 設定を調整し、サービスを起動する
- クライアントで接続確認する
よくある失敗例(いつこの手順が向かないか)
- 管理ポリシーで SELinux を無効化できない環境では、無効化手順は使えない。代わりに SELinux ポリシーを追加して許可する。
- 企業ネットワークで厳格なプロキシやファイアウォールがある場合、ポート開放やルーティング調整が必要。
- 非 x86 アーキテクチャ(ARM など)では静的バイナリが対応していないことがある。
短い用語集
- Murmur: Mumble のサーバ実装。
- Mumble: 低遅延音声チャットクライアント/サーバのプロジェクト。
- systemd: Linux のサービス管理デーモン。
- SELinux: セキュリティ強化のための Linux カーネル機能。
結論
上記の手順に従えば、CentOS 7 上で Murmur を起動し、Mumble クライアントから接続できるはずです。運用ではログ管理やセキュリティ対策を忘れずに行ってください。必要ならコンテナ化やパッケージ経由の導入も検討しましょう。