Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何从应用程序登录到AUDITD?_Linux_Logging_Syslog_Rsyslog - Fatal编程技术网

Linux 如何从应用程序登录到AUDITD?

Linux 如何从应用程序登录到AUDITD?,linux,logging,syslog,rsyslog,Linux,Logging,Syslog,Rsyslog,我们正在考虑从rsyslog迁移到auditd,但我还没有发现应用程序应该如何将日志消息输出到auditd。rsyslog有很好的文档记录。您对auditd作为日志记录替代品的理解是不正确的。Auditd不是syslog/rsyslog类型日志记录的直接替代品。而是基于对内核的系统调用生成日志 然后解释: auditd是Linux审计系统的用户空间组件。它是 负责将审核记录写入磁盘。查看日志 使用ausearch或aureport实用程序完成。配置 审核系统或加载规则使用auditctl实用程序

我们正在考虑从rsyslog迁移到auditd,但我还没有发现应用程序应该如何将日志消息输出到auditd。rsyslog有很好的文档记录。

您对auditd作为日志记录替代品的理解是不正确的。Auditd不是syslog/rsyslog类型日志记录的直接替代品。而是基于对内核的系统调用生成日志

然后解释:

auditd是Linux审计系统的用户空间组件。它是 负责将审核记录写入磁盘。查看日志 使用ausearch或aureport实用程序完成。配置 审核系统或加载规则使用auditctl实用程序完成。 启动期间,/etc/audit/audit.rules中的规则由 auditctl并加载到内核中。另外,还有一个 读取位于/etc/audit/rules.d中的规则的augenrules程序/ 并将它们编译到audit.rules文件中。审计守护进程本身 有一些管理员可能希望自定义的配置选项。 它们可以在auditd.conf文件中找到

还有一个很好的auditd概述,标题是:

。。。。由于它是在内核级别运行的,这就为我们提供了一个到任何我们想要的系统操作的钩子。我们可以选择在发生特定系统调用时写入日志,无论是unlink还是getpid。我们可以监控对任何文件的访问,所有网络流量,真的是我们想要的任何东西。细节的层次是非常惊人的,因为它在如此低的层次上运行,所以信息的粒度非常有用

我还将引导您阅读本教程,标题为:。这里有一个从auditd获得的日志类型示例

type=SYSCALL msg=audit(1434371271.277:135496): arch=c000003e syscall=2 success=yes exit=3 a0=7fff0054e929 a1=0 a2=1fffffffffff0000 a3=7fff0054c390 items=1 ppid=6265 pid=6266 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=113 comm="cat" exe="/usr/bin/cat" key="sshconfigchange"

type=CWD msg=audit(1434371271.277:135496):  cwd="/home/sammy"

type=PATH msg=audit(1434371271.277:135496): item=0 name="/etc/ssh/sshd_config" inode=392210 dev=fd:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL
这都来自一个事件,但通过auditd记录了3条消息。您可以通过msg=audit来判断与哪些事件关联。。。田地

我向您展示这个示例,因为这种类型的日志记录是从内核驱动的,而不是从应用程序本身驱动的


注意:Auditd的真正目的是生成与Linux内核交互的审核日志,而syslog/rsyslog实际上是用于应用程序本身的通用日志记录。

我投票将这个问题作为主题外的问题结束,因为应该迁移到unix.stackexchange.com。我现在明白这不是应用程序问题,其他人也可以提出同样的问题。@ransh-如果其他问题是主题外的,然后,这些问题也应该被否决并关闭。你能举一些例子吗?我很乐意关闭那些离题的。我不能删除它。嗨,slm,在内核中添加额外的系统调用怎么样,这些调用代表系统问题,并由应用程序使用?这是一种有效的方法吗?@slm说auditd和rsyslog不可交换,服务于不同的用例是正确的。但请注意,您可以通过libaudit从用户空间创建auditd日志。例如,openssh服务器就是这样做的。