rsyslog 不会将远程消息写入特定主机的日志文件

Pet*_*ter 5 linux rsyslog

我已经设置了一个 rsyslog 服务器(基于 CentOS 6),它可以与某些远程主机正常工作。但是,当我添加 Cisco ASA 防火墙时,它确实会记录其消息!

rsyslog.conf 如下:

# rsyslog v5 configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

#### GLOBAL DIRECTIVES ####
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
Run Code Online (Sandbox Code Playgroud)

配置文件如下:

##RSYSLOG configuration file for Remote Logs
$FileCreateMode 0640 
$template PerHostLog,"/var/log/remote/%HOSTNAME%.log"

if ($fromhost-ip startswith '10.1.5' or $fromhost-ip startswith '10.2.8') then -?PerHostLog
& ~
Run Code Online (Sandbox Code Playgroud)

这些规则有什么问题吗?TCPdump 显示来自 10.2.8.1 主机的消息到达服务器,但 syslog 选择忽略它们。为什么??

eth*_*ish 0

我相信我已经得到了你的答案:

http://www.rsyslog.com/doc/rsconf1_allowedsender.html

 $AllowedSender UDP, 127.0.0.0/8, [::1]/128, 10.1.5.0/24, 10.2.8.0/24
Run Code Online (Sandbox Code Playgroud)

在阅读了足够多的文档后,我确认消息实际上已被接收,然后完善过滤器/匹配规则。

请告诉我您是否/如何修复此问题;你绝对激起了我的好奇心。

祝你好运。