Homer 设置

来自 Alpine Linux
此材料已过时...

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 的内容

... define('AUTHENTICATION',"LDAP"); ...

取消注释 LDAP 部分,并根据你的服务器配置添加/更新参数

/etc/homer/preferences.php 的内容

... define('LDAP_HOST',"localhost"); define('LDAP_PORT',389); define('LDAP_VERSION',3); define('LDAP_BIND_USER',"cn=HOMER,ou=Apps,dc=example,dc=com"); define('LDAP_BIND_PASSWORD',"secret"); define('LDAP_BASEDN',"ou=Users,dc=example,dc=com"); ...

根据是否应使用 STARTTLS 机制来保护 LDAP 连接,添加以下行之一

/etc/homer/preferences.php 的内容

... define('LDAP_ENCRYPTION',"none"); define('LDAP_ENCRYPTION',"tls"); ...

如果使用 TLS,则必须确保相关的根证书是受信任的。如果使用自签名根证书,一种实现此目的的方法是将 TLS_CACERT 参数添加到 /etc/openldap/ldap.conf,指定受信任的 CA 证书的路径。

指定应具有管理员权限的用户

/etc/homer/preferences.php 的内容

... define('LDAP_ADMIN_USERS',"donald,mike"); ...

除非你想基于组成员身份授权用户,否则删除以 LDAP_GROUP_ 开头的参数。

使用 Active Directory 的嵌套组

/etc/homer/preferences.php 中的默认设置适用于符合 RFC 2307 的 LDAP 模式。否则,你可能需要修改以 LDAP_USERNAME_ATTRIBUTE_ 开头的参数。以下示例演示了如何基于嵌套组成员身份针对 Microsoft Windows Active Directory 验证和授权用户

/etc/homer/preferences.php 的内容

... define('LDAP_USERNAME_ATTRIBUTE_OPEN',"(&(samaccountname="); define('LDAP_USERNAME_ATTRIBUTE_CLOSE',")(memberof:1.2.840.113556.1.4.1941:=cn=HOMER,ou=Groups,dc=example,dc=com))"); ...

数据库节点

为了使你的 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-hostcapture-port 参数。捕获主机是主节点或附加数据库节点。端口应设置为 9060

启用服务

# rc-update add captagent # rc-service captagent start

如果使用防火墙,则必须允许将捕获的 SIP 数据包发送到指定捕获主机的 UDP 端口 9060。

捕获数据包的保留期限

一个 cron 作业负责从捕获主机数据库中删除过时的数据。可以通过修改 /etc/homer/rotation.ini 来调整保留期限。