iptables日志管理
Iptables的man参考页中提到: 我们可以使用iptables在linux内核中建立, 维护和检查IP包过滤规则表. 几个不同的表可能已经创建, 每一个表包含了很多内嵌的链, 也可能包含用户自定义的链.
Iptables默认把日志信息输出到/var/log/messages文件. 不过一些情况下你可能需要修改日志输出的位置. 下面向大家介绍如何建立一个新的日志文件/var/log/iptables.log. 通过修改或使用新的日志文件, 你可以创建更好的统计信息或者帮助你分析网络攻击信息.
Iptables默认的日志文件,屏幕将显示/var/log/messages文件中的iptables日志信息:
# tail -f /var/log/messages
一、iptables日志输出到syslog
在CentOS5上叫syslog,而在CentOS6上叫rsyslog,叫增强版的syslog,CentOS5上的配置文件在/etc/syslog.conf下,而CentOS6在/etc/rsyslog.conf下
1. vim /etc/rsyslog.conf 添加配置
/etc/rsyslog.conf中添加不同的日志级别(默认warn(=4))
kern.warning /var/log/iptables.log
kern.debug /var/log/iptables.log
kern.info /var/log/iptables.log
不过推荐全部日志都记录: kern.* /var/log/iptables.log
重启日志配置: service rsyslog restart
2. 让日志滚动,这一步是可选的
vim /etc/logrotate.d/syslog
加入/var/log/iptables
二、iptables添加日志规则
1. 在iptables添加日志选项-A参数添加到最后
iptables -A INPUT -j LOG --log-prefix "iptables"
这样就可以记录所有的记录了,只要通过了防火墙都会记录到日志里
iptables -A INPUT -p tcp -j LOG --log-prefix "iptables icmp warn"
这样就只记录tcp日志
iptables -A INPUT -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.100.250 -d 192.168.100.1 -m tcp -p tcp --dports 21,22,23,80 -j ACCEPT
2. 在iptables插入 自定义TEMP链 日志选项-I参数插入到第几条规则
iptables -I TEMP28 -s 198.168.1.0/24 -d 198.0.0.0/8 -p tcp -j LOG --log-prefix "iptables_198 "
iptables -I TEMP 28 -s 198.0.0.0/8 -d 198.168.1.0/24 -p tcp -j LOG --log-prefix "iptables_198168 "
iptables -I INPUT 5 -d 120.76.190.28 -j LOG --log-prefix "iptables "
iptables -I INPUT 5 -j LOG --log-prefix "iptables "
iptables -D INPUT 5
3. 清空所有iptables规则
iptables --flush 或者 iptables -F
iptables -t NAT -F 有些linux内核差别,上面命令不能清空NAT表
4. 然后保存并重启防火墙配置
service iptables save
service iptables restart