一直找不到日志方面怎么弄,问了同事,同事给了个网址:
http://www.thegeekstuff.com/2012/08/iptables-log-packets/
下面就是我根据这个网址里面的设置自己实践的步骤以及自己的想法:
仔细看了一遍之后,感觉和以前玩的routeos的规则差不多:
1.就是先创建一个日志链
2.然后将所有的输入都跳转到这个日志链
3.然后就是记录日志链中drop调的数据
4.然后就是终止日志链
防火墙规则如下:
iptables -N LOGGING iptables -A INPUT -j LOGGING iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 iptables -A LOGGING -j DROP
现在我比较不熟悉的就是模块的m参数,网上搜索了下:大概意思就是固定时间段内限制多少个包被记录
那么,比如我们要记录4488端口的访问,那么我们应该使用如下的代码:
iptables -N LOGGING iptables -A INPUT -j LOGGING iptables -A LOGGING -p tcp --dport 4488 -m limit --limit 2/min -j LOG --log-prefix "drop port 4488" --log-level 7 iptables -A LOGGING -j DROP service iptables save service iptables restart
因为我设置了messages日志中的debug到独立的日志,所以我就设置log-level 7 也就是debug级别,这样这些日志就会记录到独立的日志文件了
而不是都记录在messages日志里面了!
对于 http://www.thegeekstuff.com/2012/08/iptables-log-packets/ 下面的评论有说设置后,服务器就不接受input connect了,
我认为我们这样记录日志的前提条件就是已经开启了允许的端口,
也就是说,我们设置防火墙的步骤应该是:
1.设置INPUT 默认禁止掉
2.设置允许的端口
3.INPUT跳转LOGGING
4.记录日志
5.禁止LOGGING