15.3.2 利用sudo配置日志审计
您可以在百度里搜索“Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版) 艾草文学(www.321553.xyz)”查找最新章节!
15.3.2 利用sudo配置日志审计
首先增加配置“Defaults logfile=/var/log/sudo.log”到/etc/sudoers中,注意,不包含引号:
[root@oldboy ~]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers
sudo日志审计代码比较简单,具体如下:
[root@oldboy ~]# tail -1 /etc/sudoers
Defaults logfile=/var/log/sudo.log
[root@oldboy ~]# visudo -c #<==检查sudoers文件语法
/etc/sudoers file parsed OK
此时会自动建立一个/var/log/sudo.log文件(日志中配置的名字),并且文件权限为600(-rw-------),所有者和组均为root(如果看不到日志文件,就退出重新登录看看),实现代码如下:
[root@oldboy ~]# ls -l /var/log/sudo.log #<==确保只有root才能查看。
-rw------- 1 root root 0 Jan 26 00:48 /var/log/sudo.log
配置完成后,就可以测试sudo日志审计配置结果了。
执行useradd oldboy命令创建oldboy用户,并在visudo中进行如下授权操作:
oldboy ALL=(ALL) /bin/ls #<==授权oldboy用户以所有用户身份(含root)执行ls命令。
然后,切换到oldboy用户下进行测试,代码如下:
[root@oldboy ~]# su - oldboy #<==切换到oldboy用户下。
[oldboy@oldboy ~]$ ls /root #<==不用sudo操作,提示权限不够。
ls: 无法打开目录/root: 权限不够
[oldboy@oldboy ~]$ sudo ls /root #<==通过sudo执行,可以列出/root下的目录,授权成功。
anaconda-ks.cfg inno.txt install.log.syslog install.log
[oldboy@oldboy ~]$ logout #<==回到root环境。
[root@oldboy ~]# cat /var/log/sudo.log #<==已经记录了oldboy的sudo日志执行情况。
Jun 18 08:25:36 : oldboy : TTY=pts/0 ; PWD=/home/oldboy ; USER=root ;
COMMAND=/bin/ls /root #<==哇,好清晰啊。谁做了什么坏事,一眼就能查到
[root@oldboy ~]# ls -l /var/log/sudo.log
-rw-------. 1 root oldboy 96 6月 18 08:25 /var/log/sudo.log #<==root权限,普通用户无法删除和修改。
从测试结果来看,所有的普通用户执行sudo的命令都被记录监控了,这样一旦出现异常行为,就可以通过日志记录进行追查。 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)