根据公司需求,整理了一个linux用户审计的脚本,现和大家分享!
具体步骤如下:
一:配置调试
1.创建用户审计文件存放目录和审计日志文件 ;
mkdir -p /var/log/usermonitor/
2.创建用户审计日志文件;
echo usermonitor >/var/log/usermonitor/usermonitor.log
3.将日志文件所有者赋予一个最低权限的用户;
chown nobody:nobody /var/log/usermonitor/usermonitor.log
4.给该日志文件赋予所有人的写权限;
chmod 002 /var/log/usermonitor/usermonitor.log
5.设置文件权限,使所有用户对该文件只有追加权限 ;
chattr +a /var/log/usermonitor.log
6.编辑/etc/profile文件,添加如下脚本命令;
export HISTORY_FILE=/var/log/usermonitor/usermonitor.log
export PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'
7.使配置生效
source /etc/profile
二:功能测试
首先使用如下命令监测用户行为审计日志文件;
tail -f /var/log/usermonitor/usermonitor.log
############################################################################
1.root用户登录,本地测试;
执行如下测试命令
ll
more /etc/profile
vi /etc/profile
history
查看审计日志结果
12-03-20 00:00:13 ##### root pts/5 (192.168.0.101) #### ll
12-03-20 00:00:36 ##### root pts/5 (192.168.0.101) #### more /etc/profile
12-03-20 00:01:42 ##### root pts/5 (192.168.0.101) #### vi /etc/profile
12-03-20 00:01:47 ##### root pts/5 (192.168.0.101) #### history
12-03-20 00:01:59 ##### root pts/5 (192.168.0.101) #### history
############################################################################
2.审计日志文件权限测试;
测试在普通用户下,审计日志文件的权限控制功能是否实现?
测试普通用户读取审计日志文件,提示拒绝,表示普通用户无法读取审计日志文件;
[kjh@kjh ~]$ more /var/log/usermonitor/usermonitor.log
/var/log/usermonitor/usermonitor.log: Permission denied
测试普通用户对日志文件的写入权限,测试命令如下;
[kjh@kjh ~]$ echo 1 >>/var/log/usermonitor/usermonitor.log
[kjh@kjh ~]$ echo test >>/var/log/usermonitor/usermonitor.log
[kjh@kjh ~]$ echo test sm >>/var/log/usermonitor/usermonitor.log
[kjh@kjh ~]$ echo user test >>/var/log/usermonitor/usermonitor.log
查看日志监测结果;
12-03-20 00:05:18 ##### root pts/5 (192.168.0.101) #### useradd kjh
12-03-20 00:05:32 ##### root pts/5 (192.168.0.101) #### passwd kjh
1
test
test sm
user test
通过测试可以看出,用户审计日志文件权限控制功能生效(允许系统所有用户写入);
###########################################################################
3.普通用户登录审计测试;
使用管理软件使用普通用户登录服务器系统,查看监测日志,能否监测到用户操作命令
执行如下测试命令
vi /etc/profile
ll
free -i
history
查看审计日志结果
12-03-20 00:39:27 ##### kjh pts/2 (192.168.0.101) #### vi /etc/profile
12-03-20 00:39:33 ##### kjh pts/2 (192.168.0.101) #### ll
12-03-20 00:39:49 ##### kjh pts/2 (192.168.0.101) #### free -i
12-03-20 00:39:55 ##### kjh pts/2 (192.168.0.101) #### history
通过查看监测日志文件可以发现,普通用户登录后,所做的相关操作可以正常监控。