[译]在CentOS7上安装Mumble的服务器端
在CentOS7上安装Mumble的服务器端
前言
最近研究了一下Mumble,使用Mumble能建立加密的语音通信。不敢独享,特翻译官方wiki文档Installation of murmur server on CentOS 7 (RHEL 7) using the static mumble server.如下。
正文:
在CentOS7上安装Mumble的服务器端murmur
在CentOS7(RHEL7)上使用static mumble server安装包配置murmur 服务端
目录
1 安装
2 系统配置
- 2.1 配置Murmur.ini文件
- 2.2 允许作为后台进程运行
- 2.3 配置日志滚动
- 2.4 防火墙
- 2.5 SELinux
- 2.6 完成并启动
安装
下载Static Murmur Server,然后运行以下命令安装:
tar -vxjf ./murmur-static_x86-1.2.8.tar.bz2
sudo mkdir /usr/local/murmur
sudo cp -r ./murmur-static_x86-1.2.8/* /usr/local/murmur/
sudo cp ./murmur-static_x86-1.2.8/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
系统配置
Murmur.ini
确保在/etc/murmur.ini文件中正确配置了以下设置:
database=/var/lib/murmur/murmur.sqlite
logfile=/var/log/murmur/murmur.log
pidfile=/var/run/murmur/murmur.pid
# Reminder: When changing the port that murmur will listen to you will need to also update the firewall.
# Update the firewall by editing /etc/firewalld/services/murmur.xml
# Then run "sudo firewall-cmd --reload"
port=64738
# Comment out the following setting since the service will already be executing as the correct user:
# uname=murmur
允许作为后台进程运行
创建一个 systemd unit 文件,以便操作系统可以管理murmur服务。 使用您的文本编辑器,创建文件'/etc/systemd/system/murmur.service'(需要root权限)。 复制并粘贴以下内容:
[Unit]
Description=Mumble Server (Murmur)
Requires=network-online.target
After=network-online.target mariadb.service time-sync.target
[Service]
User=murmur
Type=forking
ExecStart=/usr/local/murmur/murmur.x86 -ini /etc/murmur.ini
PIDFile=/var/run/murmur/murmur.pid
ExecReload=/bin/kill -s HUP $MAINPID
[Install]
WantedBy=multi-user.target
在新系统上 /var/run 在重启后被丢弃。 要重新生成murmur的pid目录,请以root身份创建配置文件 “/etc/tmpfiles.d/murmur.conf” 并复制粘贴以下内容:
d /var/run/murmur 775 murmur murmur
配置日志滚动
配置logrotate,以致murmur的日志不填满 /var/log 。 以root身份创建 '/etc/logrotate.d/murmur' 配置文件并复制并粘贴以下内容:
/var/log/murmur/*log {
su murmur murmur
dateext
rotate 4
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload murmur.service > /dev/null 2>/dev/null || true
endscript
}
防火墙
配置firewalld以便它允许服务侦听 TCP/UDP 。如果您修改了murmur.ini以便它侦听非默认端口,那么您在此步骤需要修改对应端口以适配您对murmur.ini的修改。 以root用户身份创建配置文件'/etc/firewalld/services/murmur.xml'并复制粘贴以下内容:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Murmur</short>
<description>Mumble Server (Murmur)</description>
<port protocol="tcp" port="64738" /><!-- Reminder: Update /etc/murmur.ini so that it uses the same ports -->
<port protocol="udp" port="64738" />
</service>
然后运行以下命令将防火墙规则添加到默认区域,并重新加载:
sudo firewall-cmd --permanent --add-service=murmur
sudo firewall-cmd --reload
SELinux
注意:请先尝试在SELinux强制模式下运行murmur。在RHEL或CentOS 7.2以上系统中,SELinux似乎不再阻止murmur的运行 。 如有异常,请在'/var/log/audit/audit.log'中检查与murmur相关的AVC条目。
注意:此处列出的步骤可能会使安全人士感到畏缩。 如果有人有时间和耐心解决SELinux,请考虑使用适当的解决方案更新本文档。
SELinux默认会阻止murmur正常运作。 快速简便的解决方案是简单地禁用它。 要暂时禁用(直到下次重新启动),请运行以下命令:
sudo setenforce 0
要永久禁用(在下次重启后),请编辑 '/etc/sysconfig/selinux' 并将“SELINUX”行更改为:
SELINUX=disabled
完成并运行
更新您的系统配置,以便它可以启动 murmur 服务:
sudo systemd-tmpfiles --create /etc/tmpfiles.d/murmur.conf
sudo systemctl daemon-reload
要暂时启动 murmur 服务(直到下次重启),请运行:
sudo systemctl start murmur.service
告诉系统自动启动murmur服务(这不会立即运行murmur,而是在下次重启时启动):
sudo systemctl enable murmur.service
警告:如果在启动Murmur时遇到僵尸进程(zombie process),则必须安装redhat-lsb-core软件包。
6666666666666666666666666666