我在Debian 6.0上运行Shorewall作为防火墙和NAT。
我现在遇到了一个问题,我的/var/log/syslog和/var/log/message被数十万行填满,如下所示:
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更改为空字符串。
海滨墙的哪个部分会产生这些消息,我如何才能阻止它们出现在我的日志文件中?
发布于 2012-08-17 00:28:32
我找到问题了!
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-16 09:45:35
在/etc/cron.d中,我放置了一个文件: log2zero。基本上,它每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)"; donehttps://stackoverflow.com/questions/11977000
复制相似问题