1、ChinaUnix 讲座讲座2 小时玩转小时玩转 iptables 企业版企业版文档维护者:白金文档维护者:白金 (platinum)、陈绪、陈绪 (bjchenxu)最后修改:最后修改: Hongqt on 2014-05-20v1.6.1主题大纲主题大纲1. 概述2. 框架图3. 语法4. 实例分析5. 网管策略6. 使用总则、 FAQ7. 实战1. 概述概述2.4.x 内核 -。netfilter/iptablesIptables:外部设置工具Netfilter:内核起作用的决定因素2.1 框架框架 图图 (Kernel 3.14.3)PREROUTINGROUTEFORWARDPOST
2、ROUTINGmangle | mangle manglenat | filter | nat| | |v |INPUT OUTPUT| mangle,nat mangle| filter |filter,natv -local-|2.2 链和表链和表 链INPUT: 匹配目的 IP是本机的数据包OUTPUT: 匹配源 IP是 本机的数据包FORWARD: 匹配穿过本机的数据包PREROUTING: 用于修改目的地址( DNAT)POSTROUTING:用于修改源地址 ( SNAT) 表filter: 顾名思义,用于过滤的时候nat: 顾名思义,用于做 NAT 的时候NAT: Network
3、Address Translatormangle: 主要 作用是可以修改封包内容3.1 iptables 语法概述语法概述iptables -t 要操作的表 要操作的链 规则号码 匹配条件 -j 匹配的 动作 3.2 命令概述命令概述 操作命令( -A、 -I、 -D、 -R、 -P、 -F) 查看命令( -vnxL)3.2.1 -A-A APPEND,追加一条规则(放到最后)例如:iptables -t filter -A INPUT -j DROP在 filter表 的 INPUT链里追加 一条规则(作为最后一条规则)匹配所有访问本 机 IP的 数据包,匹配到的丢弃3.2.2 -I-I 规
4、则号码 INSERT,插入一条规则例如:iptables -I INPUT -j DROP在 filter表的 INPUT链里插入一条规则(插入成第 1 条)iptables -I INPUT 3 -j DROP在 filter表的 INPUT链里插入一条规则(插入成第 3 条)注意: 1、 -t filter 可不写,不写则自动默认是 filter 表2、 -I 链名 规则号码 ,如果不写规则号码,则默认是 13、确保规则号码 (已有规则数 + 1),否则报错3.2.3 -D-D DELETE,删除一条规则例如:iptables -D INPUT 3(按号码匹配)删除 filter表的 INPUT链 里的 第三条规则(不管它的内容是什么)iptables -D INPUT -s 192.168.0.1 -j DROP(按内容匹配)删除 filter表的 INPUT链里内容为 “-s 192.168.0.1 -j DROP”的规则(不管其位置在哪里)注意:1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条2、按号码匹配删除时,确保规则号码 已有规则数,否则报错3、按内容匹配删除时,确保规则存在,否则报错