天天看点

linux系统安全加固基础篇1

 对于强大的linux来说,我们一定程度上都会认为是她秀坚强、稳定,同时也很有魅力。更多的如何使用她,而并没有对她的安全篇有很多的涉足,抛砖引玉,简单从常用的日志审计及pam用户验证块做个实例应用。

   1、操作日志审计

   系统的history再一定程度上可以告诉我们都干了什么,但对于这个多用户的操作系统,从单个终端的操作日志记录方式已经不能满足对 操作命令的一个审计工作。

   也许会有人提示如下:

    chattr +a ~/.bash_history 

   这种修改虽然可以避免删除.bash_history或重定向到/dev/null。 

     (题外:ln  -sf  /dev/null ~/.bash_history)

   但是对于这种情况, 异常登录的用户我不去操作 .bash_history的相关权限,直接执行histroy -c 上面的这些设置也就未果了。

   下面借助 PROMPT_COMMAND 来实现操作命令及时记录。

   1)、在/etc/profile追加如下:

1

2

<code>export</code> <code>HISTORY_FILE=</code><code>/var/log/history/userhistory</code><code>.log</code>

<code>readonly</code> <code>PROMPT_COMMAND=</code><code>'{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$NF}")  #### $(id|awk "{print \$1}") #### $(history 1 | { read x cmd; echo "$cmd";})"; } &gt;&gt;$HISTORY_FILE'</code>

   重读 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实现日志切割。    

3

4

5

6

7

8

9

10

11

12

<code>#cat /etc/logrotate.d/userhistory</code>

<code>/var/log/history/userhistory</code><code>.log {</code>

<code>        </code><code>weekly</code>

<code>        </code><code>notifempty</code>

<code>        </code><code>prerotate</code>

<code>        </code><code>/usr/bin/chattr</code> <code>-a </code><code>/var/log/history/userhistory</code><code>.log</code>

<code>        </code><code>endscript</code>

<code>        </code><code>postrotate</code>

<code>        </code><code>/bin/chmod</code> <code>002 </code><code>/var/log/history/userhistory</code><code>.log</code>

<code>        </code><code>/usr/bin/chattr</code> <code>+a </code><code>/var/log/history/userhistory</code><code>.log</code>

<code>}</code>

  具体的参数注解及 logrotate如何实现日志切割 参看

   2、pam用户验证(pam_tally)

      因/etc/pam.d/login及 /etc/pam.d/sshd 都会include system-auth,

      故直接配置system-auth, 对从 tty及终端登录均会生效,

      版本5     

<code>#cat /etc/pam.d/system-auth   (注意该条目的位置)</code>

<code>auth        requisite     pam_tally.so  deny=5 even_deny_root_account unlock_time=300</code>

<a href="http://s3.51cto.com/wyfs02/M02/41/07/wKiom1PQgKjRQJrxAAEY6t3DUMw865.jpg" target="_blank"></a>

      版本6

<code>#cat /etc/pam.d/system-auth</code>

<code>auth        requisite     pam_tally2.so  deny=5 even_deny_root unlock_time=300</code>

      建议:限制用户包括 root, 使用自定义环境测试后再使用。

      that's all.

本文转自 刘园  51CTO博客,原文链接:http://blog.51cto.com/colynn/1529574

继续阅读