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/

【先睹爲快】

【環境】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詳細配置門請自行查詢資料)。

可以看到,日誌全部被記錄下來。但如果是重複使用的命令,可能不會記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章