审计的用户

审计的用户,第1张

利用rsyslog对Linux用户进行审计

如果用户执行的指令是在系统软件中本地执行的,那么对它们进行审计是非常简单的。您可以更改HISTTIMEFORMAT的参数,例如:

export HISTTIMEFORMAT="[%F %T $(who am i)] "


然而,仅仅依靠。bash_history或者script不靠谱。虽然它们记录了用户的个人行为,但很可能被用户篡改和消除。

Rsyslog是标准Linux系统软件的一部分,可以即时写日志,也可以有选择地将日志发送到远程控制日志服务器

Rsyslog可用于将日志立即加载到远程控制日志服务器,从而避免用户篡改,提高审计原始资料的真实性。


以ubuntu为例,下面的方法使rsyslog能够记录用户执行的指令及其时间格式,以供审计应用。


1、rsyslog加log

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

2.Addin/etc/profile

function bash2syslog { declare command command=$(fc -ln -0 2>/dev/null||true) if [ "$command" != "" ];then logger -p local6.notice -t bash -- "$(who am i)" $PWD $USER: "$command" fi }  trap bash2syslog DEBUG

在这里加载本地日志。然后rsyslog立即将日志加载到虚拟服务器中。


建议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.通过看门狗监控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


7.整个目标日志服务器配备了/etc/rsyslog.d/commands-audit.conf。

$template LOG_BY_HOSTIP, "/var/log/command-audit/%fromhost-ip%-commands.log" local6.notice ?LOG_BY_HOSTIP


8.其他促销

设置/etc/profile

shopt-shistappend,

让不同的对话共享资源历史数据,而不是临时存储在运行内存中。只有在对话被撤回后,资源才能被共享。

适度更改环境变量PROMPT_COMMAND



请参考文本文档

http://www.pointsoftware.ch/howto-bash-audit-command-logger/

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/

http://blog.rootshell.be/2009/02/28/bash-history-to-syslog/

http://askubuntu.com/questions/93566/how-to-log-all-bash-commands-by-all-users-on-a-server

http://askubuntu.com/questions/393574/logging-of-commands-executed-in-bash



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/784378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存