0

我在 Debian 6.0 上运行 Shorewall 作为防火墙和 NAT。

我现在有一个问题,我的 /var/log/syslog 和 /var/log/messages 充满了像这样的数十万行:

Aug 15 22:37:34 pathfinder kernel: [ 3091.789049] Shorewall:loc2fw:REJECT:IN=eth0 OUT= MAC=00:32:4d:7a:d7:53:00:24:8c:df:44:48:08:00 SRC=192.168.1.100 DST=83.233.146.100 LEN=104 TOS=0x00 PREC=0x00 TTL=64 ID=29973 PROTO=UDP SPT=60003 DPT=53247 LEN=84 
Aug 15 22:37:37 pathfinder kernel: [ 3094.790387] Shorewall:loc2fw:REJECT:IN=eth0 OUT= MAC=00:32:4d:7a:d7:53:00:24:8c:df:44:48:08:00 SRC=192.168.1.100 DST=83.233.146.100 LEN=104 TOS=0x00 PREC=0x00 TTL=64 ID=29974 PROTO=UDP SPT=60003 DPT=53247 LEN=84 

我不确定为什么 192.168.1.100 机器会这样做(试图从路由器上的内部网络接口 eth0 中访问我的公共 IP。现在这并不重要,但我不想让我的日志充满这个.

我的日志设置看起来像这样 /etc/shorewall/shorewall.conf

###############################################################################
#                              L O G G I N G
###############################################################################

LOGFILE=/var/log/messages

STARTUP_LOG=/var/log/shorewall-init.log

LOG_VERBOSITY=1

LOGFORMAT="Shorewall:%s:%s:"

LOGTAGONLY=No

LOGRATE=

LOGBURST=

LOGALLNEW=

BLACKLIST_LOGLEVEL=

MACLIST_LOG_LEVEL=info

TCP_FLAGS_LOG_LEVEL=""
# above was in original setting info

SMURF_LOG_LEVEL=info

LOG_MARTIANS=Yes

我尝试将 log_verbosity 设置为 0 和 -1 均未成功。我也尝试过(如您所见)将 tcp_flag_log_level 更改为空字符串。

岸墙的哪个部分产生这些消息,我怎样才能阻止它们出现在我的日志文件中?

4

2 回答 2

3

我找到了问题!

/etc/shorewall/policy 看起来像这样

###############################################################################
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

loc             net             ACCEPT
loc             $FW             ACCEPT
net             all             DROP            info
$FW             net             ACCEPT
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

我把它改成了

###############################################################################
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

loc             net             ACCEPT
loc             $FW             ACCEPT
net             all             DROP            warn
$FW             net             ACCEPT
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

最后我的日志文件又恢复了。

于 2012-08-16T16:28:31.797 回答
0

在 /etc/cron.d 我放置了一个文件:log2zero。基本上它会运行 ecery 8 分钟的命令,将大于 100mb 的日志文件设置为零。

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
*/8 * * * *   root  find /var/log /var/local/log -size +100M -type f | while read file; do cat /dev/null > $file && echo "$file > 100M (set to zero)"; done
于 2012-08-16T01:45:35.003 回答