vss2013 发表于 2013-6-16 17:10:46

【上海腾科IT教育】IPTABLE介绍

一.基本格式
1.iptable[-t表]命令选项[连名]   匹配条件   [-j 动作]
2.常用命令选项如下:
-A 【append】 在指定的连的结尾添加规则
-D 【delete】删除指定连中的规则,可以按规则号或规则内容匹配
-I 【insert】插入一条新规则,默认是在最前面
-R 【replace】 替换某一条规则
-L 【list】列出所有规则
-F 【flush】清空所有规则
-N 【new】自定义一条规则连
-X 【--delete-chain】 删除用户自定义规则连
-P 【policy】设置默认策略
-n 【numeric】以数字方式显示,如:显示ip,但不显示主机名
-v 【verbose】显示详细信息
-V 【version】查看iptable的版本信息
--line-number查看规则连是,显示列表号
-Z   清空计数器值

二.举例
# iptable -t filter -F【清空filter表中所有规则】
# iptable -t filter -Z【清空filter表中的计数器值】
#iptable -t filter-X 【清除filter表中自定义连】
# iptable -t filter -P INPUT DROP 【设置INPUT连默认策略为DROP】
# iptable -t filter -P OUTPUT DROP
# iptable -t filter -P FORWROD DROP
# iptable -t filter -A INPUT -p tcp -j ACCEPT 【在INPUT连最后添加一条允许tcp协议的数据包进入的规则】
# iptable -t filter -R INPUT 1 -p tcp -j DROP 【替换INPUT连的第1条规则为拒绝tcp数据包进入】
# iptable -t nat -vnL--line-number【以详细的、数字的格式列出nat表中的所有规则】
# iptable -t nat -D POSTROUTING 1【删除nat表POSTROUTING 连中的第1条规则】

三.条件匹配
1. 协议匹配:用于检查数据包使用的协议,符合规则就允许,反之拒绝。允许使用的协议名在/etc/protocols文件中。
   常用的协议有tcp,udp,icmp,ip 和all。【-p协议名 】
# iptable -I INPUT -p icmp-j REJECT 【拒绝进入防火墙本身的icmp数据包】
# iptable -A FORWARD -p udp -j ACCEPT【允许转发udp的所有数据包】
2. 地址匹配:用于检查数据包的地址是否符合规则,包括源地址和目的地址。【-s源地址, -d目的地址】
# iptable -A FORWARD -s 10.0.0.0/8   -j DROP【拒绝转发来自10.0.0.0/8 网段的数据包】

# iptable -A FORWARD -d 80.0.0.0/8   -j DROP【 拒绝转发目的是80.0.0.0/8 网段的数据包】

3.端口匹配:用于检查数据包的tcp或udp端口,需要和 “-p 协议类型” 一起使用【-sport源端口,-dport 目的端口】
# iptables -A FORWARD -s 10.0.0.0/8-p tcp--dport80    -j ACCEPT 【允许转发来自10.0.0.0/8网段,目的端口是80的数据包】
# iptables -I FORWARD -s 10.0.0.0/8-p tcp--sport 21   -j ACCEPT【允许转发来自10.0.0.0/8网段,源端口是21的数据包】
4.接口匹配:用于检查数据包从防火墙那个接口进入或出去,来判断是否允许。
# iptables -A FORWARD-i eth0 -s 10.0.0.0/8 -p tcp --dport 80-j ACCEPT
【允许转发从eth0进入,来自10.0.0.0/8网段,使用tcp 协议,目的端口椒80的数据包】
# iptables -A INPUT -i eth0-s 80.0.0.0/8-j DORP 【拒绝从eth0进入,来自80.0.0.0/8的数据包】
5.SNAT转换:一般linux充当网关服务器时使用
SNAT只能用在nat表的POSTROUTING连,用于对源地址进行转换。要结合 --to 使用。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8-j SNAT--to 202.106.1.1
【将来自10.0.0.0/8网段的所有数据包的源地址转为202.106.1.1】
# iptables -t nat -A POSTROUTING-i eth0-s 80.0.0.0/8-p tcp --dport 25 -j SNAT--to 202.106.1.1

6.DNAT转换:只能用在nat表中的PREROUTING连,用于对目的地址或端口进行转换。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1-p tcp --dport80 -j DNAT --to 10.0.0.10
【将从eth1 进入,目的地址是202.106.1.1,使用tcp 协议,目的端口是80的数据包的目的地址转为10.0.0.1】
7.MASQUERADE:伪装,是SNAT的特例。
# iptables-t nat-A POSTROUTING -s 10.0.0.0/8 -o eth1-j MASQUERADE
【将来自10.0.0.0/8网段,从eth1出去的数据包的源地址伪装为eth1接口地址】


四.拓展模块
1.按来源MAC地址匹配
# iptables -t filter -A FORWARD -m --mac-source00:02:b2:03:a5:f6-j DROP
【拒绝转发来自该MAC地址的数据包】
2.按多端口或连续端口匹配
   20:      表示20以后的所有端口
   20:100   表示20到100的端口
   :20   表示20之前的所有端口
   -mmultiport [--prots, --sports,--dports]
#iptables -A INPUT -p tcp -mmultiport--dports 21,20,25,53,80-j ACCEPT 【多端口匹配】
#iptables -A INPUT -p tcp -dport20:    -j ACCEPT
#iptables -A INPUT -p tcp-sport 20:80   -j ACCEPT
#iptables -A INPUT -p tcp-sport:80    -j ACCEPT
3.还可以按数据包速率和状态匹配
-mlimit--limit 匹配速率   如: -mlimit --limit 50/s-j ACCEPT
-mstate--state状态   如: -mstate --state INVALID,RELATED-j ACCEPT

飞龙乱 发表于 2013-7-25 11:39:28

{:6_290:}{:6_290:}{:6_290:}{:6_267:}

撸提侠 发表于 2013-12-3 11:32:40

相信腾科,相信未来{:6_265:}

vss2013 发表于 2013-11-10 11:03:45

腾科红帽认证,学RHCE的小伙伴们,赶快联系吧

撸提侠 发表于 2013-11-10 11:26:54

{:6_267:}{:6_267:}{:6_267:}

amazing122 发表于 2013-11-12 11:23:19

{:6_295:}{:6_295:}

撸提侠 发表于 2013-11-12 22:41:13

{:6_291:}{:6_291:}{:6_291:}

togogo001 发表于 2013-11-14 14:47:40

{:6_265:}{:6_265:}{:6_265:}

撸提侠 发表于 2013-11-14 23:54:02

{:6_267:}{:6_267:}{:6_267:}

togogo001 发表于 2013-11-16 14:40:45

{:6_268:}{:6_268:}{:6_268:}{:6_268:}

撸提侠 发表于 2013-11-17 11:50:18

{:6_267:}{:6_267:}{:6_267:}

腾科--Amy老师 发表于 2013-11-22 09:42:04

腾科--Amy老师 发表于 2013-11-29 14:08:11

撸提侠 发表于 2013-12-2 13:07:20

{:6_290:}{:6_290:}{:6_290:}

togogo001 发表于 2013-12-2 12:55:29

{:6_264:}
页: [1] 2
查看完整版本: 【上海腾科IT教育】IPTABLE介绍