如何在Debian7上安装和使用带有Murmur的Mumble-Django
介绍
Mumble-Django 是一个前端 Web 界面,用于管理 Murmur 服务器实例及其服务的用户。 此仪表板将让您和其他管理员(如果您选择)从图形 Web 界面而不是命令行运行您的 Mumble 服务器。
顾名思义,仪表板是用 Django 编写的。 一旦管理员用户登录,它就可以通过图形界面访问您的 Murmur 服务器的各种管理功能。 功能包括但不限于:
- 具有响应式移动设备版本的实时频道查看器 (CVP)
- 咕哝用户权限
- 配置每日消息、服务器密码、推荐版本等设置
- 禁令
- 日志
- 通过 Django 框架的可扩展性和 GPL 下的免费软件许可
此外,您可以从同一仪表板管理多个 Murmur 安装。
先决条件
请完成以下先决条件。
- 一个以 Debian 7 作为其操作系统的 VPS(在撰写本文时,Mumble-Django 在 Debian 8 上运行不佳)
- VPS 上具有 sudo 提升权限的用户帐户:如何在 Debian VPS 上添加、删除和授予用户 Sudo 权限
- 在同一个 VPS 上安装并运行 Mumble 服务器 (Murmur):如何在 Ubuntu 14.04 上安装和配置 Mumble 服务器 (Murmur)
上面链接的 DigitalOcean 文章,How To Install and Configure Mumble Server (Murmur) on Ubuntu 14.04,也可以用于运行 Debian 7 的 Droplet。 <$>
配置 ICE 中间件
在安装 Mumble-Django 之前,我们必须启用 Murmur 的 ICE (Internet Communications Engine) 组件。 这将允许我们使用诸如 mumble-django
之类的程序的额外功能以及它们提供的特性。
ICE 可以通过默认 Mumble 客户端以外的方式与 Murmur 服务器进行交互,而不会损害 Murmur 内部工作的安全性,例如数据库、注册用户详细信息和管理员权限。
ICE 的替代品是 D-Bus,它提供类似的服务,但现在通常首选 ICE,这就是我们在本教程中选择它而不是 D-Bus 的原因。
第 1 步 — 连接到 Murmur 服务器
使用 SSH 连接到您在 上一教程 中安装了 Murmur 服务器的 VPS。 使用具有 sudo 提升权限的用户,并按顺序执行以下步骤。
ssh sammy@your_server_ip
第 2 步 — 在 mumble-server.ini 中配置 ICE
Mumble 服务器的所有核心配置都驻留在一个中央文本文件中。 默认情况下,这是 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
行存在并且是 uncommented(默认情况下应该是):
/etc/mumble-server.ini
ice="tcp -h 127.0.0.1 -p 6502"
这允许 ICE 通过 TCP 端口 6502 访问服务器的 localhost IP 地址。 保持原样。
设置 ICE 秘密
接下来,我们需要在配置文件中为 icesecretwrite
指令设置一个值。 如果留空,任何可以通过 SSH 访问您的服务器的人都可以重新配置或更改 ICE 设置。
我们在文件中查找的两行如下所示:
/etc/mumble-server.ini
#icesecretread= icesecretwrite=
我们可以忽略第一行,因为它已经被注释掉并禁用了,这很好。 第二行是我们需要设置 ICE secret 的地方。
将您选择的短语附加到第二行(一个单词); 确保您设置的密码不同于下图所示的密码:
/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
<$>[note] 上述输出中的最后一组数字因用户而异。
如果端口没有被监听,并且您没有收到类似上述的输出,请检查 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
文件可能需要检查不准确或错误; 日志文件可能包含有关错误类型的更具体的详细信息。
如果需要,请立即返回并检查您的设置,如果一切正常,请继续下一部分。
安装 Apache Web 服务器
ICE 现在正在按照我们的需要工作和倾听。
让我们把 Apache 带入画面。
第 1 步 — 更新和升级系统包
此命令更新 apt-get
包管理器的数据库。
sudo apt-get update
下一个操作将从上一个命令获得的任何新更新安装到 Debian 系统包。
sudo apt-get upgrade
当提示更新新软件包时,输入 y
进行确认。
第 2 步 — 安装 Apache Web 服务器
这将安装我们需要托管 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
从安装菜单中选择 Internet 站点。 默认情况下应该选择它,所以只需按ENTER
。
然后输入您在创建时为 Droplet 命名的名称; 您可以在 DigitalOcean 控制面板中找到此列表。
此邮件安装仅提供最基本的 SMTP(邮件发送)功能。 您需要确保您的 DNS 设置、后缀设置和主机名都与生产邮件设置保持一致。
第 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
下一部分的大部分内容是作为一个持续配置过程的一部分完成的,并设置 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: sammy@emaildomain.com
这个 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。 (如果您不小心在第二个选项上点击了 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 运行的 localhost 或 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"
解决此问题后,再次运行配置命令以重新启动该过程:
sudo mumble-django-configure
然后,从头开始再次执行此步骤。
有关 iptables
及其操作方式的更多帮助,请参阅此 DigitalOcean 指南:如何在 Ubuntu 14.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?
,然后在两组括号之间输入您的姓名和电子邮件地址:
另请注意,需要删除 #
符号才能启用该行。
/etc/mumble-django/settings.py
# Who will receive emails on errors? ADMINS = ( ('Sammy', 'sammy@email-domain.com'), )
现在通过将 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:
您应该在左栏中看到 Channel Viewer 窗口,在右栏中看到 Server info 选项卡。
第 2 步 — 以 Django 管理员用户身份登录
要查看界面的其余部分和额外的选项卡,您需要使用您在 步骤 2 — 配置 Mumble-Django 中设置的 Django 管理用户登录仪表板。 在我们的示例中,这是 sammy。 请记住,仪表板用户与您在其他教程中生成的 Mumble (Murmur) 用户帐户详细信息是分开的。
Login按钮位于页面右下方。
登录后,阅读接下来的几节,了解您可以通过仪表板执行的所有不同操作!
直播频道查看器
这个窗口是静态的; 无论您选择查看或更改什么,它都将始终可见。
Channel Viewer 向您显示当前连接到相关 Mumble 服务器实例的用户。
查看器甚至跟踪用户何时主动向服务器传输(即,用户正在说话)。 可以在屏幕底部增加或降低更新间隔,您可以在此处启用/禁用 Auto-Refresh 并以秒为单位设置刷新间隔。
您通常会在 Mumble 客户端上看到的所有内容在这里也可以正常工作。 因此,您可以使用频道名称、描述、图像、消息等。
服务器信息
服务器信息 选项卡显示您正在查看的当前 Mumble 服务器实例的一般统计信息和设置。 您在 管理 中添加和修改的其他详细信息也可以添加到此选项卡中。
您可以单击此屏幕上的链接以获取更多信息。
登记
使用此 Registration 表单,您可以将 Mumble 用户 添加到 Murmur 数据库,以便从客户端进行连接。 (这些不是仪表板用户;这些是聊天用户。)属于您且已经存在的 Mumble 帐户可以链接到您的 Mumble-Django 帐户名称,并标有您为所有者。 (请随时将 SuperUser Mumble 帐户与您的 Mumble-Django 用户同步。)
请记住,Murmur 中的默认身份验证方法现在是用于用户帐户的 SSL 证书,而不是基于文本的密码。
我们将在后面的部分中介绍如何添加更多仪表板用户。
行政
您可能会从 mumble-server.ini
文件中识别出 Administration 选项卡中的设置。 在此处设置和添加这些会覆盖您在所述文件中定义的任何内容,并将其应用于您正在管理的 Mumble 服务器实例。
与 日志消息 选项卡一样,这是一种更易于更改和添加到服务器配置的方法。 许多字段无需重新启动即可更新并立即应用。
用户纹理
在这里您可以为用户添加图像。 有关详细信息,请参阅 Mumble 维基。
用户列表
用户列表 显示您通过 Mumble 客户端或此仪表板注册的任何用户帐户。 如果适用,您可以删除用户、授予管理员权限和更改密码。 请注意,Mumble 现在默认使用 SSL 证书进行身份验证,而不是基于文本的密码,因此您不需要在此处更改任何密码。
通过 Mumble 客户端和 Mumble-Django 同时更改用户属性时,经常使用 Resync with Murmur 按钮。
记录消息
注意: IP 地址已在接下来的屏幕截图中根据需要进行了编辑。
Murmur 的日志文件包括内部和外部(传入/传出)服务器和数据库事件。 可以在命令行的 /var/log/
中找到此文件以查看其内容,但如果您想查看最近的几个条目,也可以跳过此操作并在此处查看。
您不能像在命令行上那样操作此处的数据,但它仍然是可展示的,并且对于没有命令行访问权限的用户来说更容易访问。 它也可以通过窗口左下角的输入字段进行过滤。
禁令
用户禁令显示在此处,所有详细信息都列在列中。
0
的 Duration 值表示永久禁止。
通过左下角的 Delete 按钮选择解除禁令。
第 3 步 — 访问 Django 管理页面
上一节让我们管理 Mumble。 在本节中,我们将向您展示如何管理仪表板本身。
要访问 Mumble-Django 的更多功能,请单击屏幕右下方的 Administration 按钮(仅在登录时可见)。
在这个新窗口中,您可以根据需要配置一些额外的服务器实例详细信息。
单击新面板左上方的 Home 链接。 这会将您带到根 Django 管理页面,提供对其他隐藏设置和 Mumble-Django 更多方面的访问。
- Groups 允许您通过将仪表板用户分配给您创建的具有特定权限的组来为其分配权限(如果他们不是仪表板 Superusers)
- Users 提供了另一种手动注册或批准新的 Mumble-Django 管理员帐户的方法,并且是添加新仪表板用户的最基本但最可靠的方法。 这些是 dashboard 用户,不是聊天用户
- Mumble Servers 列出了通过 ICE 或 D-Bus 等中间件检测到的单独连接。 遵循本教程时应该只有一个
- 服务器实例显示所有注册的Murmur服务器实例。 您可以单独或一起启动、停止和重新启动每一个,以及启用或禁用它们的自动启动
- 注册配置文件包含重新发送验证电子邮件和手动激活用户帐户等选项
- Sites 可让您更改仪表板域名。 仅当您的新域指向服务器时才更改此设置
第 4 步 — 注册其他仪表板用户帐户
Register 按钮位于初始主页的后面(退出时可见),是新用户注册帐户以使用仪表板的地方。
让新用户通过此按钮上的表格进行注册,然后单击发送到其提供的电子邮件地址的电子邮件中的激活链接。
如果需要,新用户应检查其帐户的垃圾邮件文件夹中的激活电子邮件。 它将来自 网站管理员 并具有主题 帐户验证 。
新用户必须获得批准并获得 员工状态 (如果需要,还可以提供 超级用户 状态),然后他们才能登录并访问仪表板中的大多数管理功能。
访问上一节中描述的 Django 管理窗口(Django 管理页面)并按照以下步骤批准新用户:
- 点击Home链接如上一节所示
- 单击根 Django 管理页面上的 Users 链接
- 在下一个窗口中单击相关的新用户名
- 检查 Staff status 框,可能还有 Superuser status 框,并提供您认为适合新用户的任何其他详细信息
- 点击右下角蓝色的【X15X】保存【X23X】按钮
这为新用户提供了与最初在配置过程中创建的第一个超级用户帐户(在我们的示例中为 sammy 帐户)相同的 Mumble-Django 权限。
新用户现在可以使用完全管理权限登录仪表板,并帮助从仪表板运行您的聊天服务器。
结论
在本指南中,我们将 ICE 中间件配置为与 Murmur 实例交互,安装和配置 Mumble-Django 及其附属包,并使其可通过 Apache Web 服务器在线访问。 最后,我们了解了 Mumble-Django 仪表板的一些功能。
本教程涵盖的其他领域:
- 通过使用
netstat
、grep
和tail
确认 ICE 是否正常工作或排除故障 - 如果需要,允许通过
iptables
输入127.0.0.1
本地主机地址 - 安装
postfix
并将其配置为本地发送电子邮件
未来的步骤可能是获取域名并将其应用到 Web 服务器,使用虚拟主机配置设置 Mumble-Django,或者将额外的 Murmur 服务器添加到仪表板。