工作中我們常常遇到,有的員工不安於被分配的權限,老是想sudo echo "ziji" /usr/bin/visudo NOPASSWD:ALL來進行提權,造成誤刪了數據庫某條重要的數據,或者執行了一條命令對線上生產造成了嚴重的影響,部門老大又苦於找不到造成這種現象的操作者,CTO對你們部門直接扣除績效,這樣你們集體成了背鍋俠。。。為了記錄員工做的違規操作行為,所以就有了以下的方案。
我們今天要學習的是:sudo日志審計,專門對使用sudo命令的系統用戶記錄其執行的命令相關信息,所謂日志審計,就是記錄所有系統及相關用戶行為的信息,並且可以自動分析,處理,展示(包括文本或着錄像)
一)生產環境日志審計解決方案:
通過環境變量命令及syslog服務進行全部日志審計(信息太大,不推薦)
sudo配合syslog服務,進行日志審計(信息較少,效果不錯)
在bash解釋器程序里嵌入一個監視器,讓所有被審計的系統用戶使用修改過的增加了監視器的特殊bash程序作為解釋程序。
齊治的堡壘機:商業產品
二)配置sudo日志審計
說明:所謂sudo命令日志審計,並不記錄普通用戶的普通操作,而是記錄,那些執行sudo命令的用戶的操作。
1、安裝sudo命令,rsyslog服務
1 [root@s-28 /]# rpm -qa|grep sudo #要是沒安裝執行yum install sudo -y 2 sudo-1.8.19p2-13.el7.x86_64 3 [root@s-28 /]# rpm -qa|grep rsyslog #要是沒安裝執行yum install rsyslog -y 4 rsyslog-8.24.0-16.el7.x86_64 5 [root@s-28 /]#
2、配置服務
2.1配置系統日志/etc/rsyslog.conf,增加配置local.debug到/etc/rsyslog.conf中
1 [root@s-28 /]# cat /var/log/ #查看日志文件是否存在沒有就創建mkdir -p /var/log 2 cat: /var/log/: Is a directory 3 [root@s-28 /]# cat /etc/redhat-release 4 CentOS Linux release 7.5.1804 (Core) 5 [root@s-28 /]# uname -r 6 3.10.0-862.el7.x86_64 7 [root@s-28 /]# tail -1 /etc/rsyslog.conf #沒有就執行echo "local.debug /var/log/sudo.log">>/etc/rsyslog.conf 8 local.debug /var/log/sudo.log 9 [root@s-28 /]#
2.2配置/etc/sudoers,增加配置 “Defaults logfile=/var/log/sudo.log” 到/etc/sudoers中,注意:不包含引號。
1 [root@s-28 /]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers 2 [root@s-28 /]# tail -1 /etc/sudoers 3 Defaults logfile=/var/log/sudo.log 4 [root@s-28 /]# visudo -c 5 /etc/sudoers: parsed OK 6 [root@s-28 /]#
3、重啟syslog內核日志記錄器(簡單來說就是重啟服務了)
1 [root@s-28 /]# systemctl restart rsyslog 2 [root@s-28 /]#
說到審計,有時候需要自定義審計規則,想了解的請參考下文哦:
CentOS 7上編寫自定義系統審計規則