Homer 设置
![]() homer 软件包在 alpine 3.16 及更高版本中不存在 (讨论) |
此页面描述了如何在 Alpine Linux 上设置 HOMER。
这些软件包从 Alpine Linux 3.6 开始在 community 仓库中可用。确保在 /etc/apk/repositories 中启用了此仓库。
主节点
安装所需的软件包,设置数据库,并启用所需的服务
# apk add homer-api-doc homer-ui mariadb kamailio-mysql nginx php7-fpm
# rc-service mariadb setup # rc-update add mariadb # rc-service mariadb start # mysql_secure_installation
# homer_db_init # rc-update add crond # rc-service crond start
# cp /usr/share/doc/homer-api/examples/sipcapture/sipcapture.kamailio /etc/kamailio/kamailio.cfg # echo rc_need=mariadb > /etc/conf.d/kamailio # rc-update add kamailio # rc-service kamailio start
# cp /usr/share/doc/homer-api/examples/web/homer5.php-fpm /etc/php7/php-fpm.d/homer5.conf # rc-update add php-fpm7 # rc-service php-fpm7 start
使用 HOMER 模板覆盖默认的 nginx 配置
: > /etc/nginx/conf.d/default.conf cp /usr/share/doc/homer-api/examples/web/homer5.nginx /etc/nginx/conf.d/homer5.conf
在 /etc/nginx/conf.d/homer5.conf 中进行以下更改
root | /usr/share/webapps/homer |
server_name | 你的服务器主机名 |
fastcgi_pass | 127.0.0.1:9001
|
如果你打算在此主节点之外部署数据库节点,请将 /etc/homer/configuration.php 中的 SINGLE_NODE
更改为 0
。
根据你的时区在 /etc/homer/preferences.php 中设置 HOMER_TIMEZONE
。
启用 nginx
服务
# rc-update add nginx # rc-service nginx start
如果使用防火墙,则必须允许用户使用 HTTP 访问 nginx 服务器。此外,必须允许在 UDP 端口 9060 上接收捕获的 SIP 流量。
LDAP 认证
如果你打算使用 LDAP 认证 HOMER 用户,请安装 LDAP 认证模块
# apk add homer-api-ldap
此外,如果使用防火墙,则必须允许连接到 LDAP 服务器。
在 /etc/homer/preferences.php 中的更改
启用 LDAP 认证
/etc/homer/preferences.php 的内容
取消注释 LDAP 部分,并根据你的服务器配置添加/更新参数
/etc/homer/preferences.php 的内容
根据是否应使用 STARTTLS 机制来保护 LDAP 连接,添加以下行之一
/etc/homer/preferences.php 的内容
如果使用 TLS,则必须确保相关的根证书是受信任的。如果使用自签名根证书,一种实现此目的的方法是将 TLS_CACERT
参数添加到 /etc/openldap/ldap.conf,指定受信任的 CA 证书的路径。
指定应具有管理员权限的用户
/etc/homer/preferences.php 的内容
除非你想基于组成员身份授权用户,否则删除以 LDAP_GROUP_
开头的参数。
使用 Active Directory 的嵌套组
/etc/homer/preferences.php 中的默认设置适用于符合 RFC 2307 的 LDAP 模式。否则,你可能需要修改以 LDAP_USERNAME_ATTRIBUTE_
开头的参数。以下示例演示了如何基于嵌套组成员身份针对 Microsoft Windows Active Directory 验证和授权用户
/etc/homer/preferences.php 的内容
数据库节点
为了使你的 HOMER 系统更具可扩展性,你可能需要部署多个数据库节点。本节指导如何设置额外的数据库节点。
在新数据库节点上安装所需的软件包并启用数据库服务
# apk add homer-api-doc homer-db mariadb kamailio-mysql
# rc-service mariadb setup # rc-update add mariadb # rc-service mariadb start
设置数据库。你可能想要禁用对数据库的远程 root 登录。
# mysql_secure_installation # homer_db_init -r
你可能想要更改 HOMER 数据库用户的默认密码。可以按如下方式完成
# mysql -e "SET PASSWORD FOR 'homer_user' = PASSWORD('<password>');"
启用 crond
服务
# rc-update add crond # rc-service crond start
使用 HOMER 模板覆盖 Kamailio 配置
# cp /usr/share/doc/homer-api/examples/sipcapture/sipcapture.kamailio /etc/kamailio/kamailio.cfg
将 /etc/kamailio/kamailio.cfg 中的 capture_node
参数更改为唯一值。如果你更改了数据库用户密码,请相应地更新 HOMER_DB_PASSWORD
参数。
启用 kamailio
服务
# echo rc_need=mariadb > /etc/conf.d/kamailio # rc-update add kamailio # rc-service kamailio start
如果使用防火墙,则必须允许在 UDP 端口 9060 上接收捕获的 SIP 数据包。此外,你必须允许主节点访问本地数据库。
最后,你必须通过 Web 用户界面将数据库节点添加到主服务器配置中。以管理员用户身份登录。单击面板,系统管理,然后单击添加节点。使用以下值
节点 | /etc/kamailio/kamailio.cfg 中的 capture_node 的值 |
主机 | 数据库节点的主机名或 IP 地址 |
端口 | 3306
|
数据库名称 | homer_data
|
数据库用户名 | homer_user
|
数据库密码 | 数据库密码,除非你已更改,否则为 homer_password |
数据库表 | sip_capture
|
捕获节点
要在 SIP 服务器上捕获数据包,请安装 HOMER CaptAgent
# apk add captagent
在 /etc/captagent/transport_hep.xml 中配置 capture-host
和 capture-port
参数。捕获主机是主节点或附加数据库节点。端口应设置为 9060
。
启用服务
# rc-update add captagent # rc-service captagent start
如果使用防火墙,则必须允许将捕获的 SIP 数据包发送到指定捕获主机的 UDP 端口 9060。
捕获数据包的保留期限
一个 cron 作业负责从捕获主机数据库中删除过时的数据。可以通过修改 /etc/homer/rotation.ini 来调整保留期限。