syslog是用来记录系统日志信息的,主要是记录重要信息。但一些无聊的日志信息很可能会把关键信息给冲掉,或者导致寻找信息很麻烦。例如,在/var/log/messages中就经常看到这样的信息:
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分钟就执行一次,烦不烦啊?一定要解决掉。
一、原因
要解决问题,就要知道引起问题的原因。该日志是记录下面的动作的:
*/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg –lock-file /var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok
# cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
也就是每5、10分钟就使用root用户执行一次mrtg和sa1命令。密度相当频繁。
二、解决
既然知道是crond切换用户的时候,pam发出的信息,那就从源头出发:
修改/etc/pam.d/crond,把下面这行:
注释掉:
保存即可。
◎补充
后来发现,这个解决方法会导致/var/log/cron报错:
Nov 9 19:30:01 mail crond[6771]: System error
虽然网上很多说法是没问题的,但还是仅供参考吧,下面的方法更好。
三、同解
类似这种:
Nov 9 17:38:27 mail su(pam_unix)[4977]: session closed for user root
Nov 9 17:42:33 mail su(pam_unix)[5154]: session opened for user root by root(uid=0)
Nov 9 17:42:35 mail su(pam_unix)[5154]: session closed for user root
是su通过pam记录到日志的信息,可以修改/etc/pam.d/su:
为:
※注意,这时候使用su切换用户日志就不会记录了,需要注意安全问题哦。不能修改sshd的session配置,否则会登陆不上服务器的。
四、另解
上述的方法可以针对不同的应用屏蔽信息,但可能会带来安全的问题。
而且如果您在使用Oracle RAC的话,必定要搭建ssh key校验,这样就会出现大量类似信息:
上面的方法也帮不了你。当然,还是有方法可以解决的:修改syslog的配置。
1、syslog
大部分的发行版都使用sysklogd作为默认的日志服务器,其配置文件在/etc/syslog.conf。
2、主日志文件不记录验证信息
把原来:
修改为:
也就是加入auth.none。
auth是syslog记录的选择条件,其表示由pam_pwdb报告的认证活动。使用none就是相关信息不记录到后面指定的日志文件中。这样,所有和pam相关的信息(包括出错信息)都不会记录到该主配置文件了。
3、增加安全配置日志
完全不记录PAM验证信息当然不行,因此,我们可以把这些信息记录到单独的文件中。
而如果你安装了红旗的rflogview套件,/etc/syslog.conf中就有:
你也可以自己加入:
最后,重启syslog服务:
这样,所有PAM登陆信息就统一登记在/var/log/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)
从管理的角度来说,这样也是最方便的。
。※不明白系统默认配置为什么不是这样。另外,记得及时清空过大的日志哦!
此外,红旗DC上还带有syslog-ng,一个可以增强版的syslog,但默认是关闭的,以后再讲解。
[转]通过pam限制置顶用户无法登录系统
解决set_loginuid failed opening loginuid报错
使用php-syslog-ng查看syslog-ng的信息
在红旗上使用syslog-ng日志服务器
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/linux/112511.html