Iptables防火墙学习笔记
IPTables包在ubuntu包管理器中的描述:数据包过滤和网络地址转换(NAT)管理工具。是Linux内核中netfilter(./net/netfilter/*)和
iptables的用户空间管理工具(区别于内核空间的模块和功能,用户空间的iptables软件包只是一个管理工具)。netfilter和iptables
提供了有状态和无状态软件包过滤、网络和端口地址转换和其他IP数据包操作的框架。这个框架的前身是 ipchains。
netfilter和iptables被用于共享网络连接、防火墙、IP统计、透明代理、高级路由和传输控制等。
一、iptables的原理及工作流程:
原理:
iptables的结构:iptables-->tables-->chains-->rules.
1).tables:存放的是各种内置的或者用户定义的链。iptables存在多种不同的table。
2).chains:包含各种规则,用来匹配数据包。同时指定了对数据包做如何的处理,即若匹配成功,就交给target处理。
3).target:若数据包匹配成功,就交给由target所决定的下一条rule去处理。
iptables默认有四个表(表,也就是功能):
过滤表(Filter)、网络地址转换表(NAT)、数据包修改表(Mangle)、Raw表
表的优先级:raw-->Mangle-->NAT-->Filter
iptables的五个链(chain,链也叫过滤点):
INPUT: 通过路由表后目的地为本机
FORWARD: 通过路由表后,目的地不为本机
OUTPUT: 由本机产生,向外转发
PREROUTING: 数据包进入路由表之前
POSTROUTING: 发送到网卡接口之前
用户通过iptables命令来管理netfilter模块。iptables通过规则对数据进行访问控制,一个规则占一行,规则按顺序排列。每个
数据包按规则顺序依次匹配,若有匹配的,则立即执行该规则指定的动作(允许、丢弃)。
工作流程:
二、iptables的常用命令:
列出现有iptables规则:iptables -L
删除所有iptables规则:iptables -F
插入一个iptables规则:iptables -I INPUT 3 -p tcp --dport 80 -s 192.168.1.0/24 -j DROP删除一个iptables规则:iptables -D INPUT 3
iptables -D INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j DROP
配置一个NAT伪装:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables规则保存在配置文件(RHEL6):/etc/sysconfig/iptables
将当前iptables配置保存到配置文件中:service iptables save
三、iptables简单配置的例子:
参考:
(一)洞悉linux下的Netfilter&iptables:什么是Netfilter? http://blog.chinaunix.net/uid-23069658-id-3160506.html
(二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑 http://blog.chinaunix.net/uid-23069658-id-3162264.html
(三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target http://blog.chinaunix.net/uid-23069658-id-3163999.html
(四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filter http://blog.chinaunix.net/uid-23069658-id-3166140.html
(五)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【上】 http://blog.chinaunix.net/uid-23069658-id-3169450.html
(六)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【中】 http://blog.chinaunix.net/uid-23069658-id-3173360.html
(七)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【下】 http://blog.chinaunix.net/uid-23069658-id-3175235.html
(八)洞悉linux下的Netfilter&iptables:状态防火墙 http://blog.chinaunix.net/uid-23069658-id-3188216.html
(九)洞悉linux下的Netfilter&iptables:网络地址转换原理之DNAT http://blog.chinaunix.net/uid-23069658-id-3210931.html
(十)洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT http://blog.chinaunix.net/uid-23069658-id-3211992.html
Iptables入门教程:http://drops.wooyun.org/tips/1424
Iptables维基百科:http://zh.wikipedia.org/wiki/Iptables
IptablesHowTo:http://wiki.ubuntu.org.cn/IptablesHowTo
Iptables里的四表五链:http://blog.chinaunix.net/uid-7411781-id-3436224.html
Iptables官方手册整理:http://symphony.b3log.org/article/1363584956910
注: