iptables开启日志
iptables的日志(log)由syslogd纪录和管理。初始存放在 /var/log/messages里面。自动采取循环纪录(rotation)的方式记录。但是由于混在 messages中,对于管理和监视产生了不便。由于iptables是linux的内核本身的功能,由dmesg或syslogd的facility结合内核管理。iptables的日志的初始值是[warn(=4)], 需要修改 rsyslog.conf。
# 1.修改rsyslog配置文件
vim /etc/rsyslog.conf
#kern日志修改为iptablesd单独日志文件
#kern.* -/var/log/kern.log
kern.* -/var/log/iptables.log
2
3
4
重启
/etc/init.d/rsyslog restart
# 2.开启iptables日志
两种方法:
第一种,直接写入iptables文件
-A FORWARD -j LOG --log-level crit --log-ip-options --log-tcp-options --log-prefix "***iptables-forward***"
保存,重启
sudo sh -c "/sbin/iptables-restore < /etc/gw/iptables.gateway"
第二种,通过命令行
iptables -A FORWARD -p tcp -j LOG --log-level crit --log-ip-options --log-tcp-options --log-prefix "***iptables-forward***"
保存,重启
iptables-save
iptables-restart
2
3
参考地址:https://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html#LOGTARGET
常用命令
查看规则行号
iptables -nL --line-number
通过规则行号删除规则
iptables -D INPUT 2
# 3. 日志滚动
/var/log/iptables.log,默认使用的是系统的轮替规则,当然也可以根据自己的需要去修改。
在目录/etc/logrotate.d/下创建一个日志转储的配置文件(名字可以自己定义,只要在该目录下就会被执行),比如iptables。
配置文件iptables的内容如下:
/var/log/iptables.log {
daily
dateext
copytruncate
nocompress
rotate 15
}
2
3
4
5
6
7
左大括号之前的/var/log/iptables.log指出了要转储的日志文件的具体位置和文件名;
daily:按天去转储;
dateext:表示转储后的日志文件会附加上日期信息
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断;
nocompress 不要对转储的日志压缩
rotate 15 保留多少个转储之后的日志文件;
确保iptables文件的权限为:-rw-r--r--
加一个chain
iptables -N LOG_OUTGOING_ACCEPT
iptables -A LOG_OUTGOING_ACCEPT -j LOG --log-prefix "GW:OUTGOING: " --log-level 6
iptables -A LOG_OUTGOING_ACCEPT -j ACCEPT
2
3
把原Rule:-A FORWARD -s 10.10.10.0/24 -d 8.8.8.8/32 -j ACCEPT
修改为跳转至新chain处理:-A FORWARD -s 10.10.10.0/24 -d 8.8.8.8/32 -j LOG_OUTGOING_ACCEPT
====