Debian7でMumble-DjangoとMurmurをインストールして使用する方法
序章
Mumble-Djangoは、Murmurサーバーインスタンスとそれらがサービスを提供するユーザーを管理するためのフロントエンドWebインターフェイスです。 このダッシュボードを使用すると、コマンドラインではなくグラフィカルWebインターフェイスからMumbleサーバーを実行できます。
名前が示すように、ダッシュボードはDjangoで書かれています。 adminユーザーがログインすると、グラフィカルインターフェイスを介してMurmurサーバーのさまざまな管理機能にアクセスできるようになります。 機能には次のものが含まれますが、これらに限定されません。
- モバイルデバイス用のレスポンシブバージョンを備えたライブチャネルビューア(CVP)
- つぶやくユーザー権限
- 今日のメッセージ、サーバーパスワード、推奨するバージョンなどの設定の構成
- 禁止
- ログ
- Djangoフレームワークによる拡張性とGPLの下での自由ソフトウェアとしてのライセンス
また、同じダッシュボードから複数のMurmurインストールを管理できます。
前提条件
以下の前提条件を満たしてください。
- オペレーティングシステムとしてDebian7 を使用するVPS(執筆時点では、Mumble-DjangoはDebian 8ではうまく機能しませんでした)
- sudo 昇格権限を持つVPSのユーザーアカウント: Debian VPS のユーザーにSudo権限を追加、削除、および付与する方法
- 同じVPSにインストールされ実行されているMumbleサーバー(Murmur): Ubuntu 14.04にMumbleサーバー(Murmur)をインストールして構成する方法
上記のリンク先のDigitalOceanの記事Ubuntu14.04にMumbleサーバー(Murmur)をインストールして構成する方法は、Debian7を実行しているDropletについても従うことができます。 <$>
ICEミドルウェアの構成
Mumble-Djangoをインストールする前に、Murmurの ICE (インターネット通信エンジン)コンポーネントを有効にする必要があります。 これにより、mumble-django
などのプログラムの追加機能とそれらが提供する機能を使用できるようになります。
ICEを使用すると、データベース、登録ユーザーの詳細、管理者権限など、Murmurの内部動作のセキュリティを損なうことなく、デフォルトのMumbleクライアント以外の方法でMurmurサーバーと対話できます。
ICEの代替はD-Busで、これは同様のサービスを提供しますが、現在はICEが一般的に推奨されているため、このチュートリアルではD-BusよりもICEを選択しています。
ステップ1-Murmurサーバーに接続する
SSHを使用して、前のチュートリアルからMurmurサーバーをインストールしたVPSに接続します。 sudo 昇格権限を持つユーザーを使用し、以下の手順を順番に実行します。
ssh sammy@your_server_ip
ステップ2—mumble-server.iniでICEを設定します
Mumbleサーバーのすべてのコア構成は、1つの中央テキストファイルにあります。 デフォルトでは、これはDebianの/etc/
ディレクトリにあるmumble-server.ini
ファイルです。 以前のMurmurサーバーのインストール中にこのディレクトリを変更した場合は、代わりにそこにあります。
grep
を使用して、ファイルを見つけ、/etc/
に存在することを確認しましょう。
sudo ls /etc/ | grep mumble-server
ファイルが存在する場合、出力は次のようになります。
Outputmumble-server.ini
このチュートリアルでは、nano
テキストエディタを使用して、書き込みおよび編集用のファイルを開きます。 代わりに、お好みのテキストエディタを自由に使用してください。
sudo nano /etc/mumble-server.ini
エントリ行からコメントしてD-Busを無効にします。
これを行うには、ここに示す行の先頭にハッシュ記号(#
)を追加します。
/etc/mumble-server.ini
#dbus=system
このファイルのさらに下で、ice
行が存在し、コメントなし(デフォルトであるはずです)であることを確認します。
/etc/mumble-server.ini
ice="tcp -h 127.0.0.1 -p 6502"
これにより、TCPポート6502を介したサーバーのlocalhostIPアドレスへのICEアクセスが可能になります。 この行はそのままにしておきます。
ICEシークレットを設定する
次に、構成ファイルでicesecretwrite
ディレクティブの値を設定する必要があります。 これを空白のままにすると、サーバーへのSSHアクセス権を持つすべてのユーザーがICEセットアップを再構成または変更できます。
ファイルで探している2行は、次のようになります。
/etc/mumble-server.ini
#icesecretread= icesecretwrite=
すでにコメントアウトされて無効になっているため、無視できる最初の行は問題ありません。 2行目は、ICEシークレットを設定する必要がある場所です。
選択したフレーズを2行目に追加します(すべて1つの単語)。 以下に示すものとは異なるパスワードを設定してください。
/etc/mumble-server.ini
#icesecretread= icesecretwrite=example_password
このICEシークレットは後で必要になるので、覚えておいてください。
nano
の変更をmumble-server.ini
構成ファイルに保存するには、次のコマンドを押します。
CTRL
+ X
、次にy
の場合はENTER
キー。
別のテキストエディタを使用している場合は、同等の保存/書き込みアクションを実行します。
ステップ3—ICEが実行されていることを確認します
行った変更が有効になるように、Murmurサーバーを再起動します。
sudo service mumble-server restart
netstat
を使用して、ICEが実際に実行され、ポート 6502 でリッスンしているかどうかを判断します。これは、次のように有効にした場合と同じです。
sudo netstat -apn | grep 6502
この前のコマンドpipesは、netstat
からgrep
までの出力を生成します。これは、端末への出力用に指定したパターンに一致するデータのみを選択します。 私たちの場合、このパターンは番号6502です。
このコマンドから受け取る出力は、すべてが正しく実行されている場合、次のコードスニペットのようになります。
Outputtcp 0 0 127.0.0.1:6502 0.0.0.0:* LISTEN 23629/murmurd
<$> [注]上記の出力の最後の数字のグループは、ユーザーごとに異なります。
ポートがリッスンされておらず、上記のような出力が得られない場合は、Murmurのログファイルをチェックして、この socket ( [ X201X])。
次に示すtail
コマンドを使用して、ログファイルを確認できます。
sudo tail -n 20 /var/log/mumble-server/mumble-server.log
起動時にICEを有効にしていることをログファイルに記載する必要があります。 これを示す行は次のようになります。
Output"MurmurIce: Endpoint "tcp -h 127.0.0.1 -p 6502" running"
その行は、ログに数行戻る可能性があります。
tail
の出力にこれが表示されない場合は、mumble-server.ini
ファイルの不正確さやエラーをチェックする必要があります。 ログファイルには、エラーの種類に関するより具体的な詳細が含まれている場合があります。
必要に応じて、ここに戻って設定を確認するか、すべてが意図したとおりに機能している場合は次のセクションに進んでください。
ApacheWebサーバーのインストール
ICEは現在、必要に応じて機能し、リッスンしています。
Apacheを写真に取り入れましょう。
ステップ1—システムパッケージの更新とアップグレード
このコマンドは、apt-get
パッケージマネージャーのデータベースを更新します。
sudo apt-get update
この次のアクションは、前のコマンドから取得した新しいアップデートをDebianシステムパッケージにインストールします。
sudo apt-get upgrade
y
と入力して、新しいパッケージの更新についてプロンプトが表示されたら確認します。
ステップ2—ApacheWebサーバーをインストールします
これにより、Mumble-Djangoをホストするために必要なApacheのベースバージョンがインストールされます。
sudo apt-get install apache2
ステップ3—apache2.confでServerNameを設定します
apache2.conf
ファイルをテキストエディタで開きます
sudo nano /etc/apache2/apache2.conf
下にスクロールしてGlobal Configuration
セクションを見つけ、独自のIPアドレスを使用してServerName
行全体を追加します。
/etc/apache2/apache2.conf
# Global configuration # ServerName your_server_ip
apache2.conf
ファイルの変更を保存します。
Apacheを再起動して、行った構成ファイルの変更が反映されるようにします。
sudo service apache2 restart
メール用のPostfixのインストールと設定
Postfixは、Mumble-Djangoにローカルメールアドレスと、必要に応じて登録やその他のメールを送信するシステムを提供します。
必要に応じてインストールおよび構成する方法は次のとおりです。
ステップ1—Postfixをインストールする
apt-get
を使用して、postfix
パッケージをインストールします。
sudo apt-get install postfix
インストールメニューからインターネットサイトを選択します。 デフォルトで選択されているはずなので、ENTER
を押すだけです。
次に、作成時にドロップレットに付けた名前を入力します。 これは、DigitalOceanコントロールパネルに一覧表示されています。
このメールインストールは、最も簡単なSMTP(メール送信)機能のみを提供します。 DNS設定、Postfix設定、およびホスト名がすべて本番メールの設定で一致していることを確認する必要があります。
ステップ2—Postfixを設定する
Postfixのメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
次のファイルの最後の行を見つけます。
/etc/postfix/main.cf
inet_interfaces = all
次に、all
からlocalhost
に変更して、Postfixがサーバーのループバックアドレスのみを使用して動作するようにします。
/etc/postfix/main.cf
inet_interfaces = localhost
変更をmain.cf
構成ファイルに保存します。
postfix
を再起動して、構成ファイルの変更を再ロードします。
sudo service postfix restart
これで、Postfixは必要に応じてメールを送信する準備が整いました。
Mumble-Djangoのインストールと設定
この次のセクションの大部分は、1つの継続的な構成プロセスの一部として完了し、Mumble-Djangoを使用できるようにセットアップします。
ここで使用する方法は、Apacheセットアップなし仮想ホスト用であることに注意してください。
ステップ1—Mumble-Djangoをインストールします
Mumble-Django自体をインストールします。
sudo apt-get install mumble-django
プロンプトが表示されたら、インストール中にENTER
を押して<Ok>
を選択します。
ステップ2—Mumble-Djangoを設定する
対話型構成プロセスは、次のコマンドを入力することで開始されます。
sudo mumble-django-configure
次のインタラクティブなプロンプトが表示されます。
InteractiveWhat do you want to do? > 1) Detect a new Mumble-Server instance and make it known to Mumble-Django 2) Create a new SuperUser for Mumble-Django's web admin interface Note: This will be done automatically when you run 1) for the first time. 3) Drop to a Python shell. 4) Drop to a Database shell.
この場合、オプション1
を選択して、実行中のMurmurのインスタンスをプログラムに認識させます。
1
、ENTER
の順に押して続行します。
次のような別のプロンプトが表示されます。
InteractiveIf this is the first time you run this script, you might want to probe for the Debian default configuration instead of entering the service string yourself. Please choose what service string to use. > 1) Debian default (Meta:tcp -h 127.0.0.1 -p 6502) 2) user defined
ここでも、オプション1
を選択します。これは、murmur-server.ini
構成ファイルで以前に有効にしたものです。
もう一度1
を押してから、ENTER
を押して続行します。
次の出力セットは次のようになります。
OutputRunning as www-data: manage.py syncdb Creating tables ... Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_user_permissions Creating table auth_user_groups Creating table auth_user Creating table django_admin_log Creating table django_content_type Creating table django_session Creating table django_site Creating table mumble_mumbleserver Creating table mumble_mumble Creating table mumble_mumbleuser Creating table registration_registrationprofile
に続く:
InteractiveYou just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no):
この手順では、Mumble-Djangoの新しい管理ユーザーを作成できます。 このユーザーはダッシュボード専用です。 MumbleやMurmurのユーザーではありません。 ただし、このユーザーはにアクセスして、さまざまな方法でMumble管理者として機能することができます。
yes
と入力し、ENTER
を押します。
新しいMumble-Djangoユーザーの情報を入力して続行します。
最初のUsername
は、任意の名前にすることができます。 この例では、管理者ユーザーの名前はsammy
です。
InteractiveUsername (leave blank to use 'www-data'): sammy
Email Address
は、作成しようとしているユーザー名とパスワードにバインドされています。
InteractiveE-mail address: [email protected]
このPassword
は、作成したばかりのユーザー名とともにMumble-Djangoダッシュボードにログインするために使用されます。
[secondary_label Interactive] Password: Password (again):
Superuser created successfully
メッセージの後に、Ice secret
を入力するように求められます。
これは、mumble-server.ini
構成ファイル内の最初のセクションで以前に設定しました。
今すぐICEシークレットに決定した正確な値を入力してください。
InteractivePlease enter the Ice secret (if any): example_password
次に、Apacheを再起動するかどうかを選択できます。
InteractiveApache2 ------------------------- If you have changed any settings in settings.py, you should reload the Web server in order for the changes to take effect. Do you want to reload Apache2 now? 1) Yes, reload Apache2. > 2) No, don't do anything.
推奨どおりに実行し、1
と入力して、最後にENTER
を押してApacheを再起動します。 (2番目のオプションで誤ってENTER
を押した場合は、後でsudo service apache2 restart
を使用してApacheを再起動することを忘れないでください)
最後に、Mumble-Djangoにアクセスできるドメインを求められます。
OutputThe domain is configured as example.com, which is the default but does not make sense. Please enter the domain where Mumble-Django is reachable.
サーバーにドメイン名を設定している場合は、ここに入力できます。 それ以外の場合は、サーバーのIPアドレスを入力し、ENTER
を押します。
Interactiveyour_server_ip
これらの出力の最後の行が表示され、構成が成功したことを確認する必要があります。
Outputyour.vps.ip.address [ OK ] Checking Murmur instances... [ OK ] Checking if an Admin user exists... [ OK ] Checking SECRET_KEY... [ OK ] Goodbye.
構成プロセスのこの時点に到達し、すべてが意図したとおりに機能している場合は、以下の次のステップに進みます。
前の構成プロセスの読み取り中にエラーメッセージを受け取った場合:
OutputMurmur does not appear to be listening on this address.
このエラーが表示された場合は、ICEを実行するように設定したローカルホストまたは loopback アドレスがブロックされており、VPSのファイアウォールと競合している可能性があります。
基本的なiptables
ファイアウォールの場合、正しく送信できるように、原則として127.0.0.1
ループバックIPアドレスを追加する必要があります。
次のコマンドを使用して、iptables
ルールを追加します。
sudo iptables -I INPUT 1 -i lo -j ACCEPT -m comment --comment "allow input on localhost" sudo iptables -I OUTPUT 1 -o lo -j ACCEPT -m comment --comment "allow output on localhost"
これが解決したら、configureコマンドを再度実行して、プロセスを再開します。
sudo mumble-django-configure
次に、この手順を最初からやり直します。
iptables
とその動作の詳細については、次のDigitalOceanガイドを参照してください: Ubuntu14.04でIPTablesを使用してファイアウォールを設定する方法
ステップ3— settings.pyで設定を編集します
settings.py
は、Mumble-Djangoのメイン構成ファイルです。 nano
またはお好みのテキストエディタで開きます。
sudo nano /etc/mumble-django/settings.py
まず、Mumble-Djangoがエラーを送信できるメールアドレスを入力します。 # Who will receive emails on errors?
の行を見つけて、2組の括弧の間に名前とメールアドレスを入力します。
この行を有効にするには、#
記号を削除する必要があることにも注意してください。
/etc/mumble-django/settings.py
# Who will receive emails on errors? ADMINS = ( ('Sammy', '[email protected]'), )
次に、DEBUG
をFalse
に設定して、このファイルのデバッグモードをFalse
に設定します。
/etc/mumble-django/settings.py
# If you want to file a bug report, please enable this option. DEBUG = False
デバッグモードが無効になっている間、ユーザーによってエラーが生成された場合は、上記のアドレスに完全な例外エラー情報が電子メールで送信されます。
設定中、またはダッシュボードでエラーが発生した場合は、デバッグモードをオンのままにしておくと便利です。 本番環境に入るときはオフにしてください。
変更をsettings.py
に保存します。
Apacheを再起動して、settings.py
の構成ファイルの変更をアクティブにします。
sudo service apache2 restart
Mumble-Djangoオンラインダッシュボードの使用
チュートリアルの最後のセクションでは、Mumble-DjangoのWebインターフェイスの使用について説明します。
ステップ1—Mumble-Djangoにアクセスする
次のいずれかのアドレスのWebブラウザでMumble-Djangoにアクセスできます。
左側の列にChannelViewer ウィンドウが表示され、右側の列に Serverinfoタブが表示されます。
ステップ2—Django管理者ユーザーとしてログインします
残りのインターフェースと追加のタブを表示するには、ステップ2 —Mumble-Djangoで設定したDjango管理ユーザーでダッシュボードにログインする必要があります。 この例では、これはsammyでした。 ダッシュボードユーザーは、他のチュートリアルで生成されたMumble(Murmur)ユーザーアカウントの詳細とは別のものであることを忘れないでください。
ログインへのボタンはページの右下にあります。
サインインした後、次のいくつかのセクションを読んで、ダッシュボードを介して実行できるさまざまなことをすべて確認してください。
ライブチャンネルビューア
このウィンドウは静的です。 表示または変更する内容に関係なく、常に表示されます。
チャネルビューアは、問題のMumbleサーバーインスタンスに現在接続しているユーザーを表示します。
ビューアは、ユーザーがサーバーにアクティブに送信しているとき(つまり、ユーザーが話しているとき)も追跡します。 これを更新する間隔は、画面の下部で増減できます。ここで、自動更新を有効/無効にしたり、更新間隔を秒単位で設定したりできます。
Mumbleクライアントで通常見られるここのすべてがここでも機能します。 そのため、チャンネル名、説明、画像、メッセージなどを使用できます。
サーバー情報
サーバー情報タブには、表示している現在のMumbleサーバーインスタンスの一般的な統計と設定が表示されます。 管理で追加および修正したその他の詳細も、このタブに追加できます。
詳細については、この画面のリンクをクリックしてください。
登録
この登録フォームを使用すると、 MumbleユーザーをMurmurデータベースに追加して、クライアントから接続できます。 (これらはダッシュボードユーザーではありません。これらはチャットユーザーです。)あなたに属し、すでに存在するMumbleアカウントは、Mumble-Djangoアカウント名にリンクでき、所有者としてマークされます。 ( SuperUser MumbleアカウントをMumble-Djangoユーザーと今すぐ同期してください。)
Murmurのデフォルトの認証方法は、ユーザーアカウントのテキストベースのパスワードではなく、SSL証明書になっていることに注意してください。
ダッシュボードユーザーを追加する方法については、後のセクションで説明します。
管理
mumble-server.ini
ファイルから管理タブの設定がわかる場合があります。 ここでこれらを設定して追加すると、上記のファイルで定義したものがすべて上書きされ、管理しているMumbleサーバーインスタンスに適用されます。
ログメッセージタブと同様に、これはサーバーの構成を変更および追加するためのよりアクセスしやすい方法です。 フィールドの多くは再起動せずに更新され、即座に適用されます。
ユーザーテクスチャ
ここでは、ユーザー向けの画像を追加できます。 詳細については、 Mumblewikiを参照してください。
ユーザーリスト
ユーザーリストには、Mumbleクライアントまたはこのダッシュボードを介して登録したすべてのユーザーアカウントが表示されます。 必要に応じて、ユーザーを削除したり、管理者権限を付与したり、パスワードを変更したりできます。 Mumbleは、認証にデフォルトでSSL証明書を使用し、テキストベースのパスワードは使用しないようになったため、ここでパスワードを変更する必要はありません。
MumbleクライアントとMumble-Djangoを介してユーザープロパティを同時に変更する場合は、 Resync withMurmurボタンを頻繁に使用してください。
ログメッセージ
注: IPアドレスは、今後のスクリーンショットで必要に応じて編集されています。
Murmurのログファイルには、内部および外部(着信/発信)サーバーとデータベースの両方のイベントが含まれています。 このファイルをコマンドラインの/var/log/
で見つけてその内容を表示することは可能ですが、最近のいくつかのエントリを表示したい場合は、これをスキップして代わりにここで表示することもできます。
ここではコマンドラインのようにデータを操作することはできませんが、それでも見栄えがよく、コマンドラインにアクセスできないユーザーにとってははるかにアクセスしやすくなっています。 また、ウィンドウの左下にある入力フィールドでフィルタリングすることもできます。
禁止
ユーザーの禁止は、すべての詳細が列に配置されてここに表示されます。
0
のDuration値は、永続的な禁止を示します。
左下の削除ボタンで禁止を解除します。
ステップ3—Django管理ページにアクセスします
前のセクションでは、Mumbleを管理します。 このセクションでは、ダッシュボード自体を管理する方法を示します。
Mumble-Djangoのさらに多くの機能にアクセスするには、画面の右下にある管理ボタンをクリックします(ログインしている場合にのみ表示されます)。
この新しいウィンドウには、必要に応じて構成できる追加のサーバーインスタンスの詳細がいくつかあります。
新しいパネルの左上にあるホームリンクをクリックします。 これにより、ルートのDjango管理ページに移動し、他の方法では非表示になっている設定やMumble-Djangoのその他の側面にアクセスできます。
- グループを使用すると、特定の権限を持つ作成したグループにダッシュボードユーザーに権限を割り当てることで、ダッシュボードユーザーに権限を割り当てることができます(ダッシュボードスーパーユーザーでない場合)
- Users は、新しいMumble-Django管理者アカウントを登録または承認する別の手動手段を提供し、新しいダッシュボードユーザーを追加する最も基本的ですが信頼できる方法です。 これらはダッシュボードユーザーであり、チャットユーザーではありません
- Mumble Servers は、ICEやD-Busなどのミドルウェアを介して検出される個別の接続を一覧表示します。 このチュートリアルに従うときは1つだけである必要があります
- サーバーインスタンスには、登録されているすべてのMurmurサーバーインスタンスが表示されます。 それぞれを個別にまたは一緒に開始、停止、再起動したり、自動起動を有効または無効にしたりできます
- 登録プロファイルには、確認メールの再送信やユーザーアカウントの手動アクティブ化などのオプションが含まれています
- サイトでは、ダッシュボードのドメイン名を変更できます。 新しいドメインがサーバーを指している場合にのみこれを変更してください
ステップ4—追加のダッシュボードユーザーアカウントを登録する
登録ボタンは最初のホームページ(サインアウト時に表示)にあり、新しいユーザーがダッシュボードを使用するためにアカウントにサインアップする場所です。
このボタンのフォームから新規ユーザーを登録してもらい、指定された電子メールアドレスに送信された電子メールのアクティベーションリンクをクリックします。
新規ユーザーは、必要に応じて、アカウントのスパムフォルダでアクティベーションメールを確認する必要があります。 ウェブマスターからのもので、件名はアカウント検証です。
新規ユーザーは、ログインしてダッシュボードのほとんどの管理機能にアクセスする前に、承認され、スタッフステータス(および必要に応じてスーパーユーザーステータス)を付与される必要があります。
前のセクションで説明したDjango管理ウィンドウ( Django管理ページ)にアクセスし、次の手順に従って新しいユーザーを承認します。
- 前のセクションで示したように、ホームリンクをクリックします
- ルートDjango管理ページのユーザーリンクをクリックします
- 次のウィンドウで関連する新しいユーザー名をクリックします
- スタッフステータスボックス、場合によってはスーパーユーザーステータスボックスをオンにし、新しいユーザーに適していると思われるその他の詳細を入力します
- 右下の青い保存ボタンをクリックします
これにより、新しいユーザーには、構成プロセスで最初に作成された最初のスーパーユーザーアカウント(この例では sammy アカウント)と同じMumble-Django権限が付与されます。
これで、新しいユーザーは完全な管理者権限でダッシュボードにログインし、ダッシュボードからチャットサーバーを実行できるようになります。
結論
このガイドでは、MurmurインスタンスとインターフェイスするようにICEミドルウェアを構成し、Mumble-Djangoとその補助パッケージをインストールして構成し、ApacheWebサーバーからオンラインでアクセスできるようにしました。 最後に、Mumble-Djangoダッシュボードの機能のいくつかについて学びました。
チュートリアルでカバーされている他の領域:
netstat
、grep
、およびtail
を使用してICEが機能しているかどうかを確認またはトラブルシューティングします- 必要に応じて、
iptables
を介した127.0.0.1
ローカルホストアドレスへの入力を許可します postfix
をインストールし、ローカルでメールを送信するように構成します
今後の手順として、ドメイン名を取得してWebサーバーに適用するか、仮想ホスト構成でMumble-Djangoをセットアップするか、ダッシュボードにMurmurサーバーを追加することが考えられます。