|
IPTable相关理解记录 Iptable的处理机制IPTable是一种封包过滤机制,版本在2.4.xx以上的Linux内核都支持并预装iptable,而在此之前以2.2.xx为核心的linux主要以ipchains作为过滤机制。IPTable具有过滤指定的数据封包、IP伪装、达成 NAT 的主机等功能。
IPTables与Netfilter IPTables和Netfilter的关系有时容易使人混淆不清。这里首先做一说明,IPTables是基于Netfilter基本架构实现的一个可扩展的数据报高级管理系统或核外配置工具,像防火墙(Firewall)、网址转换(NAT)、数据包(package)记录、流量统计,这样的功能全是Linux内核中的Netfilter子系统所提供的,而IPTables是控管Netfilter的唯一工具程序。
IPTables的结构IPTable采用表(table)与链(chain)的分层结构。
表(Tables)
一般来说IPTables有三张表,每张表中会预先设置多条链(chain),具体如下:
表(Table)
表中预设的链(Chain)
作用内核模块Filter INPUT FORWARD OUTPUT过滤数据包iptables_filter Nat PREROUTING POSTROUTING OUTPUT用于网络地址转换iptable_nat Mangle PREROUTING POSTROUTING INPUT OUTPUT FORWARD修改数据包的传输特性iptable_mangle各表的查看命令:
1 # iptables –L –n (查看filter表)
2 # iptables –t nat –L (查看Nat表)
3 # iptables –t mangle –L (查看Mangle表)
链( Chains )
Linux内核数据包处理流程中,共设置了五个(鱼钩)拦截点(hook points),这五个拦截点在IPTables中被作为链(chain)来呈现,并且每条链(chain)中会有相应的策略规则(rule)。
INPUT「进来的数据包应用此规则链中的策略」
OUTPUT「外出的数据包应用此规则链中的策略」
FORWARD「转发数据包时应用此规则链中的策略」
PREROUTING「对数据包作路由选择前应用此链中的规则」
POSTROUTING「对数据包作路由选择后应用此链中的规则」
|
|