SELinux 阻止 Asterisk 连接到 IMAP 服务器以发送语音邮件

SELinux 阻止 Asterisk 连接到 IMAP 服务器以发送语音邮件

我在 Fedora 23 上运行 Asterisk,并使用语音邮件 IMAP 模块将语音邮件存储到 Gmail。当 SELinux 处于强制模式时,它会阻止 Asterisk 连接到 Gmail。以下是来自 /var/log/audit/audit.log 的错误消息:

type=AVC msg=audit(1460344333.315:70807): avc:  denied  { name_connect } for  pid=823 comm="asterisk" dest=993 scontext=system_u:system_r:asterisk_t:s0 tcontext=system_u:object_r:pop_port_t:s0 tclass=tcp_socket permissive=0

因此,我不得不将 SELinux 置于宽容模式。如何修复 SELinux 以停止阻止 Asterisk 建立出站连接?

答案1

您需要创建自定义 SELinux 策略并将其应用于您的系统。看起来 asterisk 无法在 993 端口上打开 tcp_socket,因此策略可能是:

#cat asterpolicy.te   
module asterpolicy 1.0
require {
          type asterisk_t
          type pop_port_t;
          class tcp_socket name_connect;
}
#============= asterisk_t ==============
allow asterisk_t pop_port_t:tcp_socket name_connect;

之后编译并启用你的策略

checkmodule -M -m asterpolicy.te -o asterpolicy.mod
semodule_package -o asterpolicy.pp -m asterpolicy.mod
semodule -i asterpolicy.pp

如果你仍然遇到 SELinux 问题 - 尝试审计为什么看看哪些类型的违规会被拒绝,并制定自定义政策audit2allow

PS:首先,我错过了字符串

module asterpolicy 1.0

因此,更新了它。

相关内容