对于强大的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.