[原]屏蔽syslog里记录由crond执行pam session的信息

   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分钟就执行一次,烦不烦啊?一定要解决掉。
一、原因
要解决问题,就要知道引起问题的原因。该日志是记录下面的动作的:

引用
# cat /etc/cron.d/mrtg
*/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,把下面这行:

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

注释掉:

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

保存即可。
◎补充
后来发现,这个解决方法会导致/var/log/cron报错:

引用
Nov  9 19:30:01 mail crond[6772]: System error
Nov  9 19:30:01 mail crond[6771]: System error

虽然网上很多说法是没问题的,但还是仅供参考吧,下面的方法更好。

三、同解
类似这种:

引用
Nov  9 17:38:23 mail su(pam_unix)[4977]: session opened for user root by root(uid=0)
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:

引用
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)

从管理的角度来说,这样也是最方便的。
。※不明白系统默认配置为什么不是这样。另外,记得及时清空过大的日志哦!
此外,红旗DC上还带有syslog-ng,一个可以增强版的syslog,但默认是关闭的,以后再讲解。

本地终端无法登陆系统故障
[转]通过pam限制置顶用户无法登录系统
解决set_loginuid failed opening loginuid报错
使用php-syslog-ng查看syslog-ng的信息
在红旗上使用syslog-ng日志服务器

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/112511.html

(0)
上一篇 2021年8月27日
下一篇 2021年8月27日

相关推荐

发表回复

登录后才能评论