发送有关 SELinux 违规的电子邮件

发送有关 SELinux 违规的电子邮件

在我的桌面上,当发生 SELinux 违规时,我会收到 GNOME 通知,这使得调试变得简单,但对于服务器,我没有此通知。有什么方法可以设置 SELinux,以便在发生违规时它会向我发送一封包含详细信息的电子邮件吗?

笔记:我想在几 (2) 台服务器上部署它

答案1

基于其中之一关于的评论setroubleshoot你可以像这样安装这个额外的包:

$ sudo yum install -y setroubleshoot

安装后查看其配置文件,特别是此部分:

[email]
# recipients_filepath: Path name of file with email recipients. One address
# per line, optionally followed by enable flag. Comment character is #.
recipients_filepath = /var/lib/setroubleshoot/email_alert_recipients

现在继续创建引用的文件:

$ echo "[email protected]" > /var/lib/setroubleshoot/email_alert_recipients

然后重新启动/启动服务:

$ sudo systemctl start setroubleshoot

高级选项

setroubleshoot还提供通过 email_alert_recipients 文件过滤 SE 警报的功能:

[email protected]                       filter_type=after_first

这些滤镜有点难来自文档的光芒但他们的流程如下:

  • Ignore After First警报::

    • 这是默认设置。该地址仅在第一次触发时才会收到警报。电子邮件警报将针对所有后续警报触发的相关警报进行过滤。
  • Never Ignore::

    • 对于每个警报的每个实例,都会向此地址发送电子邮件警报。
  • Ignore Always::

    • 永远不会向该地址发送电子邮件警报。人们可以使用它来暂时禁用对某个地址的警报。

      但我想要接收电子邮件警报的节点上没有桌面会话?例如我如何监控服务器?

      您可以直接编辑该文件 /var/lib/setroubleshoot/email_alert_recipients。这是上面的 GUI 正在修改的文件。文件的格式是基于行的,井号(#)字符是注释字符,注释延伸到行尾,空白行被忽略。

  • 笔记:地址每行一个,地址后面(用空格分隔)是可选的选项,格式为名称=值。目前只有一种选择:

    • filter_type:: after_firstnever, 或者always

我对上面的代码片段进行了大量编辑,但试图将本节的“精神”保留在常见问题解答中。

参考

答案2

对于几个服务器,获得警报的更好方法是使用该logcheck包。

您安装logcheck在服务器端,并定义规则来根据您想要触发电子邮件的预期规则来处理和向您发送电子邮件。

这样,如果明天您需要 SELinux 以外的其他规则,您可以添加它们。

logcheck已经带有一组默认规则。我logcheck曾经使用过一段时间,当时我的基础设施规模较小,只有几台 Linux 服务器。

显然,为了发送电子邮件,您还必须拥有一个具有最低配置的 MTA 服务器端,以便能够向您发送电子邮件。根据电子邮件是内部电子邮件还是 Gmail,您必须进行不同的设置。

对于更大的基础设施,我建议拥有一个中央系统日志服务器,并处理该服务器上的日志,但是从您对 2 个服务器的回答来看,我不会进一步详细说明这一点。

相关内容