Ansible 安全 之【命令審計(jì)】

服務(wù)器記錄命令

實(shí)現(xiàn)該功能要求如下:
1.接受審計(jì)的登錄用戶(hù)默認(rèn)shell必須為bash
2.bash版本至少3.00或以上

需要該要求的原因是實(shí)現(xiàn)功能的方法需要用到history命令的HISTTIMEFORMAT變量和PROMPT_COMMAND變量.
對(duì)于其他的shell我并未測(cè)試.如果其他shell可以實(shí)現(xiàn)這兩個(gè)變量的功能那么理論上也可以使用.

實(shí)現(xiàn)方法如下:
使用root用戶(hù) 操作

1.創(chuàng)建一個(gè)審計(jì)日志文件 
mkdir /var/log/shell_audit
touch /var/log/shell_audit/audit.log
2.將日志文件所有者賦予一個(gè)最低權(quán)限的用戶(hù)  
chown nobody:nobody /var/log/shell_audit/audit.log
3.給該日志文件賦予所有人的寫(xiě)權(quán)限  
chmod 002 /var/log/shell_audit/audit.log
4.設(shè)置文件權(quán)限,使所有用戶(hù)對(duì)該文件只有追加權(quán)限  
chattr +a /var/log/shell_audit/audit.log

5.編輯/etc/profile
在末尾添加下面內(nèi)容
HISTSIZE=2048
HISTTIMEFORMAT="%Y/%m/%d %T   ";export HISTTIMEFORMAT
export HISTORY_FILE=/var/log/shell_audit/audit.log
export PROMPT_COMMAND='{ code=$?;thisHistID=`history 1|awk "{print \\$1}"`;lastCommand=`history 1| awk "{\\$1=\"\" ;print}"`;user=`id -un`;whoStr=(`who -u am i`);realUser=${whoStr[0]};logDay=${whoStr[2]};logTime=${whoStr[3]};pid=${whoStr[5]};ip=${whoStr[6]};if [ ${thisHistID}x != ${lastHistID}x ];then echo -E `date "+%Y/%m/%d %H:%M:%S"` $user\($realUser\)@$ip[PID:$pid][LOGIN:$logDay $logTime] --- [$PWD]$lastCommand [$code];lastHistID=$thisHistID;fi; } >> $HISTORY_FILE' 
 

重新登錄后,即可看到/var/log/shell_audit/audit.log刷新的實(shí)時(shí)日志
2017/07/08 16:12:00 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:12:00 whoami [0]
2017/07/08 16:17:41 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:17:41 logrotate -vf /etc/logrotate.d/shell_audit [0]
2017/07/08 16:19:18 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:19:17 last [0]
2017/07/08 16:19:19 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:19:19 list [127]
2017/07/08 16:19:21 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:19:21 what [127]
2017/07/08 16:19:32 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:19:29 top [0]
2017/07/08 16:19:35 root(root)@(192.168.77.1)[PID:127876][LOGIN:2017-07-08 15:55] --- [/root] 2017/07/08 16:19:35 ps aux [0]


2017/07/08 16:12:00 記錄時(shí)間/命令執(zhí)行完成時(shí)間
root(root)  執(zhí)行命令的用戶(hù)(最初登錄的用戶(hù)) 
@(192.168.77.1) 登錄的IP
[PID:127876]    最初登錄時(shí)的LOGIN產(chǎn)生的PID
[LOGIN:2017-07-08 15:55]    命令執(zhí)行開(kāi)始的時(shí)間
[/root] 命令執(zhí)行的當(dāng)前目錄
2017/07/08 16:12:00 命令執(zhí)行開(kāi)始的時(shí)間
whoami  執(zhí)行的命令
[0] 命令返回的狀態(tài)碼

6. 設(shè)置audit.log的日志輪換
~]# cat /etc/logrotate.d/shell_audit 
/var/log/shell_audit/audit.log { 
    weekly  
    missingok 
    dateext 
    rotate 100
    sharedscripts 
    prerotate 
    /usr/bin/chattr -a /var/log/shell_audit/audit.log 
    endscript 
    sharedscripts 
    postrotate 
      /bin/touch /var/log/shell_audit/audit.log
      /bin/chmod 002 /var/log/shell_audit/audit.log
      /bin/chown nobody:nobody /var/log/shell_audit/audit.log
      /usr/bin/chattr +a /var/log/shell_audit/audit.log
    endscript 
}

可以測(cè)試一下缔恳!剛跑過(guò)了一次。
~]# logrotate -vf /etc/logrotate.d/shell_audit 
reading config file /etc/logrotate.d/shell_audit
reading config info for /var/log/shell_audit/audit.log 

Handling 1 logs

rotating pattern: /var/log/shell_audit/audit.log  forced from command line (100 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/shell_audit/audit.log
  log needs rotating
rotating log /var/log/shell_audit/audit.log, log->rotateCount is 100
dateext suffix '-20170708'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
running prerotate script
renaming /var/log/shell_audit/audit.log to /var/log/shell_audit/audit.log-20170708
running postrotate script

客戶(hù)端記錄日志

我們?cè)谑褂脁shell的時(shí)候,可以設(shè)置日志記錄比勉。

image.png

重新連接琐馆,在xshell窗口輸入命令逃顶,該該窗口的所有信息都會(huì)記錄到日志文件中搞挣。

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炫七,一起剝皮案震驚了整個(gè)濱河市差牛,隨后出現(xiàn)的幾起案子命锄,更是在濱河造成了極大的恐慌,老刑警劉巖偏化,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脐恩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡侦讨,警方通過(guò)查閱死者的電腦和手機(jī)驶冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)析孽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人只怎,你說(shuō)我怎么就攤上這事袜瞬。” “怎么了身堡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵邓尤,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我贴谎,道長(zhǎng)汞扎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任擅这,我火速辦了婚禮澈魄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仲翎。我一直安慰自己痹扇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布溯香。 她就那樣靜靜地躺著鲫构,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玫坛。 梳的紋絲不亂的頭發(fā)上结笨,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音湿镀,去河邊找鬼炕吸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛勉痴,可吹牛的內(nèi)容都是我干的赫模。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蚀腿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼嘴瓤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起莉钙,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤廓脆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后磁玉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體停忿,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蚊伞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了席赂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吮铭。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖颅停,靈堂內(nèi)的尸體忽然破棺而出谓晌,到底是詐尸還是另有隱情,我是刑警寧澤癞揉,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布纸肉,位于F島的核電站,受9級(jí)特大地震影響喊熟,放射性物質(zhì)發(fā)生泄漏柏肪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一芥牌、第九天 我趴在偏房一處隱蔽的房頂上張望烦味。 院中可真熱鬧,春花似錦壁拉、人聲如沸谬俄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凤瘦。三九已至,卻和暖如春案铺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梆靖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工控汉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人返吻。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓姑子,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親测僵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子街佑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,149評(píng)論 2 34
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,871評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)捍靠,斷路器沐旨,智...
    卡卡羅2017閱讀 134,638評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評(píng)論 6 342
  • 我去你去過(guò)的城市 走過(guò)你走過(guò)的街區(qū) 看不見(jiàn)你的腳步 就想象著你行色匆匆的樣子 也許在地鐵線(xiàn)交錯(cuò)的時(shí)候 曾為失之交臂...
    碼上說(shuō)閱讀 278評(píng)論 0 1