天天看點

history使用者操作審計記錄方案_beta

【概述】:多人共同使用的伺服器權限确實不好管理,誤操作等造成故障,無法追究,最好的辦法就是将使用者操作實時記錄到日志,并推送到遠端日志伺服器上。包括(使用者登陸時間,目錄,操作指令及時間戳等)。以便事後追查。

    測試了網上的多種方法,但均含有不同程度bug,或者不能滿足需求。對于安裝修改bash4.1的方法,暫未測試。力求在盡可能少的改動伺服器的原則上,尋求解決方案。測試過至少4這種方法。當然本文此法也不是最好的,簡單單是不隐蔽。在此感謝,itnihao,hxl2009等童鞋的共同測試與讨論。其中測試過的2種方法有:

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

http://jablonskis.org/2011/howto-log-bash-history-to-syslog/

【先睹為快】

history使用者操作審計記錄方案_beta

【環境】Centos 5.8 ,2台。

日志伺服器IP:192.168.217.129

客戶機IP:192.168.217.130

【伺服器端logserver配置】

  1. # echo "*.info    /var/log/client" >> /etc/syslog.conf #配置日志儲存檔案,把該檔案第一行的*.info 提出來。單獨放一行。
  2. # service syslog restart  #重新開機服務
  1. #vim /etc/sysconfig/syslog                   #接收遠端日志寫入 
  2. SYSLOGD_OPTIONS="-m 1 -r"                    # -m是時間,分鐘,-r表示接收遠端日志寫入 

【用戶端client配置】

1、客戶機[client],/etc/bashrc嗎,末行中添加指令行。将使用者操作記錄到日志檔案。也可以添加到/etc/profile,但是有時候不生效,重新登入必須手動source。

  1. #vim /etc/bashrc
  2. export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
  3. # source /etc/bashrc

2、客戶機修改日志伺服器。

  1. # echo "192.168.217.129 logserver" >> /etc/hosts       #日志伺服器位址 
  2. # echo "*.info   @logserver" >> /etc/syslog.conf       #将info日志推送到日志伺服器,把該檔案第一行的*.info 提出來。單獨放一行。 
  3. # service syslog restart                               #重新開機syslog 

【測試】在客戶機輸入指令,在日志伺服器上檢視(注意防火牆,syslog詳細配置門請自行查詢資料)。

繼續閱讀