我在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更改为空字符串。
shorewall的哪一部分会生成这些消息,如何阻止它们出现在我的日志文件中?
答案 0 :(得分: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
最后我的日志文件又恢复了理智。
答案 1 :(得分:0)
在/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)"; done