工作中我們常常遇到,有的員工不安於被分配的權限,老是想sudo echo "ziji" /usr/bin/visudo NOPASSWD:ALL來進行提權,造成誤刪了數據庫某條重要的數據,或者執行了一條命令對線上生產造成了嚴重的影響,部門老大又苦於找不到造成這種現象的操作者,CTO對你們部門直接扣除績效,這樣你們集體成了背鍋俠。。。為了記錄員工做的違規操作行為,所以就有了以下的方案。
我們今天要學習的是:sudo日志審計,專門對使用sudo命令的系統用戶記錄其執行的命令相關信息。
說明:所謂sudo命令日志審計,並不記錄普通用戶的普通操作,而是記錄,那些執行sudo命令的用戶的操作。
1、安裝sudo命令,rsyslog服務
2、配置/etc/sudoers
增加配置 “Defaults logfile=/var/log/sudo.log” 到/etc/sudoers中,注意:不包含引號。
3、配置系統日志/etc/rsyslog.conf
增加配置local.debug到/etc/rsyslog.conf中
4、重啟syslog內核日志記錄器
[root@lrz ~]# /etc/init.d/rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
此時,會自動建立一個/var/log/sudo.log文件(日志中配置的名字)並且文件權限為600,所有者和組均為root(如果看不到日志文件,就退出重新登錄看看)。
[root@king ~]# ls -l /var/log/sudo.log -rw-------. 1 root root 0 Dec 3 14:50 /var/log/sudo.log
5、測試sudo 日志審計結果
根據前文講解的建立用戶oldboy擁有sudo 權限,同時使用root用戶登錄查看/var/log/sudo.log
[xiaorui@lrz ~]$ sudo useradd zzy [sudo] password for xiaorui: [xiaorui@lrz ~]$ sudo userdel zzy [xiaorui@lrz ~]$ cd /home [xiaorui@lrz home]$ ls xiaorui zzy [xiaorui@lrz home]$ sudo userdel -r zzy userdel: user 'zzy' does not exist [xiaorui@lrz home]$ rm -rf zzy/ rm: 無法刪除"zzy": 權限不夠 [xiaorui@lrz home]$ sudo rm -rf zzy/ [xiaorui@lrz home]$ ls xiaorui
查看日志統計結果:
[root@lrz ~]# tail -20 /var/log/sudo.log Dec 3 14:53:03 : xiaorui : TTY=pts/0 ; PWD=/home/xiaorui ; USER=root ; COMMAND=/usr/sbin/useradd zzy Dec 3 14:53:14 : xiaorui : TTY=pts/0 ; PWD=/home/xiaorui ; USER=root ; COMMAND=/usr/sbin/userdel zzy Dec 3 14:53:36 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/usr/sbin/userdel -r zzy Dec 3 14:53:53 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/bin/rm -rf zzy/ Dec 3 14:54:03 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/bin/su -
生產環境日志審計解決方案:
所謂日志審計,就是記錄所有系統及相關用戶行為的信息,並且可以自動分析,處理,展示(包括文本或着錄像)
方法1:通過環境變量命令及syslog服務進行全部日志審計(信息太大,不推薦)
方法2:sudo配合syslog服務,進行日志審計(信息較少,效果不錯)
方法3:在bash解釋器程序里嵌入一個監視器,讓所有被審計的系統用戶使用修改過的增加了監視器的特殊bash程序作為解釋程序。
方法4:齊治的堡壘機:商業產品
日志集中管理(了解):
1、rsync+inotify或定時任務+rsync,推到日志管理服務器上,10.0.0.7_20151203.sudo.log
2、rsyslog服務來處理
[root@lrz ~]# echo "10.0.2.164 logserver">>/etc/hosts [root@lrz ~]# echo "*.info @logserver">>/etc/rsyslog.conf
3、日志收集解決工具:scribe,flume,stom,logstashLInux