iptables基础讲解(2)

时间 : 14-06-14 栏目 : linux运维 作者 : 老薛 评论 : 0 点击 : 1,420 次

# create by bdkyr
# date 20110116
# linux运维社区

●匹配来源及目的地址
-s <匹配来源地址>
可以是 IP地址、整个网段等,也可空(表示任何地址)
例:
匹配入站主机:
iptables -A INPUT -s 192.168.0.1 匹配来自 192.168.0.1 的数据包
iptables -A INPUT -s 10.0.0.14 匹配来自 10.0.0.14 的数据包
iptables -A INPUT -s ! 10.0.0.14 匹配不是来自 10.0.0.14 的数据包

匹配入站网段
iptables -A INPUT -s 192.168.1.0/24 匹配来自 192.168.1.0/24 网络的数据包
iptables -A INPUT -s 192.168.0.0/16 匹配来自 192.168.0.0/16 网络的数据包

-d <匹配目的地址>
可以是 IP地址、整个网段等,也可空(表示任何地址)
例:
-d 124.43.67.89 匹配去往 124.43.67.89 的数据包
-d 203.67.0.0/16 匹配去往 203.67.0.0/16 网络的数据包
-d www.etiantian.org 匹配去往域名 www.etiantian.org 的数据包
实际命令:
iptables -t nat -I PREROUTING -d 10.0.0.15 -p tcp -m tcp --dport 3000 -j DNAT --to-destination 10.0.1.16:22
说明:请求目的地址10.0.0.15 的3000端口 被转换到10.0.1.16的22端口

●匹配来源目的端口

--sport <匹配源端口>
可以是指定端口,也可以是端口范围
例:
--sport 1000 匹配源端口是 1000 的数据包
--sport 1000:3000 匹配源端口是 1000-3000 的数据包(含1000、3000)
--sport :3000 匹配源端口是 3000 以下的数据包(含 3000)
--sport 1000: 匹配源端口是 1000 以上的数据包(含 1000)
$IPT -A INPUT -s 192.168.1.0/24 -p TCP -m multiport --dport 111,892,2049 -j ACCEPT
匹配端口范围:
iptables -A INPUT -p tcp --sport 22:80

--dport <匹配目的端口>
可以是指定端口,也可以是端口范围
例如:
--dport 80 匹配源端口是 80 的数据包
--dport 6000:8000 匹配源端口是 6000-8000 的数据包(含6000、8000)
--dport :3000 匹配源端口是 3000 以下的数据包(含 3000)
--dport 1000: 匹配源端口是 1000 以上的数据包(含 1000)
提示:--sport 和 --dport 须配合 -p 参数使用
实战命令:
允许NFS通过
iptables -A INPUT -s 192.168.1.0/24 -p TCP -m multiport --dport 111,892,2049 j ACCEPT
允许SNMP通过
iptables -A INPUT -s 192.168.1.0/24 -p UDP --dport 161 -j ACCEPT

动作(处理方式)
ACCEPT
DROP
DENY
SNAT
DNAT
MASQUERADE

-j ACCEPT
通过:允许数据包通过此规则

例:
iptables -A INPUT -j ACCEPT
允许所有访问本机 IP 的数据包通过

-j DROP
丢弃,阻止数据包通过本链而丢弃它
类似 Cisco 中 ACL 里的 deny

例如:
iptables -A FORWARD -s 192.168.80.39 -j DROP
阻止来源地址为 192.168.80.39 的数据包通过本机
-j SNAT --to IP[-IP][:端口-端口](nat 表的 POSTROUTING 链)
源地址转换,SNAT 支持转换为单 IP,也支持转换到 IP 地址池
(一组连续的 IP 地址)
SNAT - Source Network Address Translation源网络地址转换。这是一种改变数据包源ip地址的技术,经常用来使多台计算机分享一个Internet地址。这只在IPv4中使 用,因为IPv4的地址已快用完了,IPv6将解决这个问题。

例如:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \
-j SNAT --to 1.1.1.1
将内网 192.168.0.0/24 的原地址修改为 1.1.1.1,用于 NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \
-j SNAT --to 1.1.1.1-1.1.1.10
同上,只不过修改成一个地址池里的 IP

除非注明,文章均为( 老薛 )原创,转载请保留链接: http://www.bdkyr.com/xtyw002/150.html

iptables基础讲解(2):等您坐沙发呢!

发表评论

5 + 5 = ?


博主微信号,很高兴为您提供帮助

随便看看

为您推荐

0