linux 开启独立iptables日志

有运维或运维开发方面的需求,可以联系博主QQ 452336092或Email:admin#centos.bz(收费)

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 添加日志前缀便于分析处理

3、让日志滚动

在/etc/logrotate.d/syslog中 添加
/var/log/iptables.log,默认使用的是系统的轮替规则,当然也可以根据自己的需要去修改

4、用自己的轮替规则

(1)在目录/etc/logrotate.d/下创建一个日志转储的配置文件(名字可以自己定义,只要在该目录下就会被执行),比如iptables

(2)配置文件iptables的内容如下

/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

原文出处:51cto -> http://babyshen.blog.51cto.com/8405584/1966077

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^