對於強大的linux來講,咱們必定程度上都會認爲是她秀堅強、穩定,同時也頗有魅力。更多的如何使用她,而並無對她的安全篇有不少的涉足,拋磚引玉,簡單從經常使用的日誌審計及pam用戶驗證塊作個實例應用。
linux
一、操做日誌審計安全
系統的history再必定程度上能夠告訴咱們都幹了什麼,但對於這個多用戶的操做系統,從單個終端的操做日誌記錄方式已經不能知足對 操做命令的一個審計工做。bash
也許會有人提示以下:ssh
chattr +a ~/.bash_history ide
這種修改雖然能夠避免刪除.bash_history或重定向到/dev/null。 post
(題外:ln -sf /dev/null ~/.bash_history)測試
可是對於這種狀況, 異常登陸的用戶我不去操做 .bash_history的相關權限,直接執行histroy -c 上面的這些設置也就未果了。ui
下面藉助 PROMPT_COMMAND 來實現操做命令及時記錄。操作系統
1)、在/etc/profile追加以下:日誌
export HISTORY_FILE=/var/log/history/userhistory.log readonly PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$NF}") #### $(id|awk "{print \$1}") #### $(history 1 | { read x cmd; echo "$cmd";})"; } >>$HISTORY_FILE'
重讀 source /etc/profile便可生效.
mkdir -p /var/log/history/
touch /var/log/history/userhistory.log
chmod 002 /var/log/history/userhistory.log
chattr +a /var/log/history/userhistory.log
2)、藉助logrotate實現日誌切割。
#cat /etc/logrotate.d/userhistory /var/log/history/userhistory.log { weekly notifempty prerotate /usr/bin/chattr -a /var/log/history/userhistory.log endscript postrotate /bin/chmod 002 /var/log/history/userhistory.log /usr/bin/chattr +a /var/log/history/userhistory.log endscript }
具體的參數註解及 logrotate如何實現日誌切割 參看
http://colynn.blog.51cto.com/5971950/1441436
二、pam用戶驗證(pam_tally)
因/etc/pam.d/login及 /etc/pam.d/sshd 都會include system-auth,
故直接配置system-auth, 對從 tty及終端登陸均會生效,
版本5
#cat /etc/pam.d/system-auth (注意該條目的位置) auth requisite pam_tally.so deny=5 even_deny_root_account unlock_time=300
版本6
#cat /etc/pam.d/system-auth auth requisite pam_tally2.so deny=5 even_deny_root unlock_time=300
建議:限制用戶包括 root, 使用自定義環境測試後再使用。
that's all.