利用rsyslog 对Linux用户进行审计

rsyslog 是标准Linux系统的一部分,能够实时的写日志,并且还可以将日志选择性的发送到远程日志服务器。

要审计用户执行的命令,依赖.bash_history 或 script 是不可靠的,两者虽然记录了用户行为,但是可能被用户篡改。利用rsyslog 可以将日志实时写入远程日志服务器,从而杜绝用户篡改,提高审计材料的真实度。

Ubuntu为例,下面的办法可以让rsyslog记录用户所执行的命令以及时间戳,供审计使用。 

1、rsyslog 添加日志

echo "local6.* /var/log/commands.log" >/etc/rsyslog.d/bash.conf

2、在/etc/profile 中加入

function bash2syslog

{

declare command

command=$(fc -ln -0)

logger -p local6.notice -t bash "$(who am i)"  :  "$command"

}

trap bash2syslog DEBUG


这里写入本地日志。logger 命令也可以直接将日志写入远程服务器,见man logger 。

建议root 用户的umask 值设置为027或者007,防止/var/log/commands.log文件被普通用户查看到。

3、日志轮转

编辑/etc/logrotate.d/rsyslog 在中间增加一段

/var/log/commands.log

{

rotate 30

weekly

missingok

notifempty

compress

delaycompress

sharedscripts

postrotate

reload rsyslog >/dev/null 2>&1 || true

endscript

4、重启rsyslog,用户退出重新登陆

service rsyslog restart


5、rsyslog 发送日志到远程服务器(可选)

echo "local6.*          @@192.168.0.2" >>/etc/rsyslog.conf

6、利用watchdog监视rsyslog,如果服务被停止,则重启机器 (可选)

apt-get install watchdog

update-rc.d watchdog defaults

Cat >> /etc/watchdog.conf  <<EOF

watchdog-device    = /dev/watchdog

admin                  = root

interval                = 1

logtick                = 1

log-dir                = /var/log/watchdog

pidfile                = /var/run/rsyslogd.pid

EOF

RHEL5.4部署中央日志服务器之rsyslog+Log Analyzer

CentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

RHEL5.4部署中央日志服务器之rsyslog+loganalyzer

使用rsyslog mysql 和logAnalyzer 的日志服务器

CentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

Rsyslog 的详细介绍请点这里
Rsyslog 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e64c8e57b49c33c5931f1bd28e498ab2.html