syslog是用来记录系统日志信息的,主要是记录重要信息。但一些无聊的日志信息很可能会把关键信息给冲掉,或者导致寻找信息很麻烦。例如,在/var/log/messages中就经常看到这样的信息:

   Nov  9 17:10:02 mail crond(pam_unix)[4768]: session closed for user root

   Nov  9 17:10:02 mail crond(pam_unix)[4769]: session closed for user root

   Nov  9 17:15:01 mail crond(pam_unix)[4780]: session opened for user root by (uid=0)
   Nov  9 17:15:01 mail crond(pam_unix)[4780]: session closed for user root

 没5分钟、10分钟就执行一次,烦不烦啊?一定要解决掉。

一、解决方法

    修改/etc/pam.d/su

 session    required     /lib/security/$ISA/pam_stack.so service=system-auth

 为:

 #session    required     /lib/security/$ISA/pam_stack.so service=system-auth

   注意,这时候使用su切换用户日志就不会记录了,需要注意安全问题哦。不能修改sshdsession配置,否则会登陆不上服务器的。

二、另解

上述的方法可以针对不同的应用屏蔽信息,但可能会带来安全的问题。

而且如果您在使用Oracle RAC的话,必定要搭建ssh key校验,这样就会出现大量类似信息:

      Nov  9 18:59:39 mail sshd(pam_unix)[6435]: session opened for user root by root(uid=0)

   上面的方法也帮不了你。当然,还是有方法可以解决的:修改syslog的配置。

1.syslog

   大部分的发行版都使用sysklogd作为默认的日志服务器,其配置文件在/etc/syslog.conf

2.主日志文件不记录验证信息

 把原来:

  *.info;mail.none;news.none;authpriv.none;cron.none             /var/log/messages

   修改为:

   *.info;auth.none;mail.none;news.none;authpriv.none;cron.none            /var/log/messages

   也就是加入auth.none

    authsyslog记录的选择条件,其表示由pam_pwdb报告的认证活动。使用none就是相关信息不记录到后面指定的日志文件中。这样,所有和pam相关的信息(包括出错信息)都不会记录到该主配置文件了。

3.增加安全配置日志

  完全不记录PAM验证信息当然不行,因此,我们可以把这些信息记录到单独的文件中。

  而如果你安装了红旗的rflogview套件,/etc/syslog.conf中就有:

      auth.=info;auth.=notice;authpriv.=info;authpriv.=notice          -/var/log/rflogview/secure_info

     你也可以自己加入:

     auth.info       /var/log/authlog

     最后,重启syslog服务:

     # service syslog restart

     这样,所有PAM登陆信息就统一登记在/var/log/authlog文件了:

# cat authlog

   Nov  9 19:17:02 mail su(pam_unix)[6560]: session opened for user root by root(uid=0)

   Nov  9 19:17:02 mail su(pam_unix)[6560]: session closed for user root

   Nov  9 19:17:12 mail sshd(pam_unix)[6601]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser=rhost =192.168.228.244  user=root

   Nov  9 19:17:16 mail sshd(pam_unix)[6603]: session opened for user root by root(uid=0)

   从管理的角度来说,这样也是最方便的。