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切换用户日志就不会记录了,需要注意安全问题哦。不能修改sshd的session配置,否则会登陆不上服务器的。
二、另解
上述的方法可以针对不同的应用屏蔽信息,但可能会带来安全的问题。
而且如果您在使用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。 |
auth是syslog记录的选择条件,其表示由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) |
从管理的角度来说,这样也是最方便的。
转载于:https://blog.51cto.com/fzguon/399669