本帖最后由 郑全 于 2019-12-6 15:38 编辑
iptables的日志(log)由syslogd纪录和管理。初始存放在 /var/log/messages里面。自动采取循环纪录(rotation)的方式记录。但是由于混在 messages中,对于管理和监视产生了不便。
由于iptables是linux的内核本身的功能,由dmesg或syslogd的facility结合内核管理。iptables的日志的初始值是[warn(=4)], 需要修改 rsyslog.conf。
注:系统日志配置在CentOS5上叫syslog,而在CentOS6上叫rsyslog,叫增强版的syslog,CentOS5上的配置文件在/etc/syslog.conf下,而CentOS6在/etc/rsyslog.conf下。
1、修改/etc/rsyslog.conf
将
| *.info;mail.none;authpriv.none;cron.none /var/log/messages
|
修改为
| *.info;*.!notice;mail.none;authpriv.none;cron.none /var/log/messages
|
同时添加
| kern.=notice /var/log/iptables.log
|
建议改为notice,将iptables产生的日志放在 /var/log/iptables.log
2、iptablse添加日志选项
| iptables -t nat -I POSTROUTING -o eth0 -j LOG --log-level notice --log-prefix "iptables "
|
--log-level 为日志级别 --log-prefix 添加日志前缀便于分析处理
2、让日志滚动
在/etc/logrotate.d/syslog中 添加 /var/log/iptables.log,默认使用的是系统的轮替规则,当然也可以根据自己的需要去修改
3、用自己的轮替规则
(1)在目录/etc/logrotate.d/下创建一个日志转储的配置文件(名字可以自己定义,只要在该目录下就会被执行),比如iptables (2)配置文件iptables的内容如下 [size=1em]
| /var/log/iptables.log {
daily
dateext
copytruncate
nocompress
rotate 15
}
|
第一行的左大括号之前的/var/log/iptables.log 指出了要转储的日志文件的具体位置和文件名; daily:按天去转储; dateext:表示转储后的日志文件会附加上日期信息 copytruncate 用于还在打开中的日志文件,把当前日志备份并截断; nocompress 不要对转储的日志压缩 rotate 15 保留多少个转储之后的日志文件; (3)确保iptables的权限为:-rw-r--r--
A 七种信息等级 1)info 2)notice 3)warning或warn 4)err或error 5)crit 6)alert 7)emerg或panic:导致系统几乎要死机 B 信息等级的指定方式 1). xxx: 表示大于xxx级别的信息 2).=xxx:表示等于xxx级别的信息 3).!xxx:表示在xxx之外的等级的信息
附加: 更改linux rsyslog 日期格式 默认时间格式:Dec 16 09:52:01,看起来不习惯,修改成 2014-12-16 09:52:01
| vim /etc/rsyslog.conf
# 定义自己的本土化的时间格式
$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname% %syslogtag% %msg%\n"
# Use default timestamp format
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# 使用自定义的格式
$ActionFileDefaultTemplate myformat
|
|