将审计日志发送到 SYSLOG 服务器

syn*_*yn- 14 linux redhat audit syslog

我正在运行几个基于 RHEL 的系统,它们利用 2.6 内核中的审计功能来跟踪用户活动,我需要将这些日志发送到集中式 SYSLOG 服务器以进行监控和事件关联。有谁知道如何实现这一目标?

小智 18

最安全和正确的方法是使用 audispd syslog 插件和/或audisp-remote

要快速使其工作,您可以编辑 /etc/audisp/plugins.d/syslog.conf。RHEL 默认包含此功能,但它已被禁用。您只需要更改一行即可启用它,active = yes

active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_INFO
format = string
Run Code Online (Sandbox Code Playgroud)

但这在默认情况下不是很安全;syslog 在其基础上是一种不安全的协议,未加密、未经身份验证,并且在其原始 UDP 规范中,完全不可靠。它还在不安全的文件中存储了大量信息。Linux 审计系统处理比通常发送到 syslog 更敏感的信息,因此它是分离的。audisp-remote 还提供 Kerberos 身份验证和加密,因此它可以很好地作为安全传输。使用 audisp-remote,您可以使用 audispd 将审计消息发送到在中央系统日志服务器上运行的 audisp-remote 服务器。然后 audisp-remote 将使用 audispd syslog 插件将它们提供给 syslog dameon。

但是还有其他方法!rsyslog 非常健壮!rsyslog 还提供 Kerberos 加密和 TLS。只要确保它的配置安全。


Aar*_*ley 10

编辑:11/17/14

这个答案可能仍然有效,但在 2014 年,使用 Audisp 插件是更好的答案。


如果您正在运行库存 ksyslogd syslog 服务器,我不知道如何执行此操作。但是在他们的Wiki上有很好的使用 rsyslog 进行操作的说明。( http://wiki.rsyslog.com/index.php/Centralizing_the_audit_log )

我总结一下:

  • 在发送客户端 ( rsyslog.conf) 上:

    # 审计的审计日志  
    $InputFileName /var/log/audit/audit.log  
    $InputFileTag tag_audit_log:  
    $InputFileStateFile audit_log  
    $InputFileSeverity 信息  
    $InputFileFacility local6  
    $InputRunFileMonitor
    

    请注意,该imfile模块需要事先在 rsyslog 配置中加载。这是负责的行:

    $ModLoad 文件

    所以检查它是否在你的rsyslog.conf文件中。如果它不存在,请将其添加### MODULES ###到启用此模块的部分下;否则,auditd 日志的上述配置将不起作用。

  • 在接收服务器 ( rsyslog.conf) 上:

    $template HostAudit, "/var/log/rsyslog/%HOSTNAME%/audit_log"  
    本地6.*
    

service rsyslog restart在两台主机上重新启动服务 ( ),您应该开始接收auditd消息。