TCP/IP详解 第七章 防火墙和网络地址转换(3) iptables防火墙的mangle表

mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。

 内网的客户机通过Linux主机连入Internet,而Linux主机与Internet连接时有两条线路,它们的网关如图所示。现要求对内网进行策略路由,所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去,而所有访问UDP协议53号端口的数据包都从Cernet线路出去。

这是一个策略路由的问题,为了达到目的,在对数据包进行路由前,要先根据数据包的协议和目的端口给数据包做上一种标志,然后再指定相应规则,根据数据包的标志进行策略路由。为了给特定的数据包做上标志,需要使用mangle表,mangle表共有5条链,由于需要在路由选择前做标志,因此应该使用PREROUTING链,下面是具体的命令。

iptables -t mangle -A PREROUTING -i eth0 -p tcp 
--dport 80 -j MARK --set-      mark 1  
iptables -t mangle -A PREROUTING -i eth0 -p udp 
--dprot 53 -j MARK --set-      mark 2 

以上命令在mangle表的PREROUTING链中添加规则,为来自eth0接口的数据包做标志,其匹配规则分别是TCP协议、目的端口号是80和UDP协议、目的端口号是53,标志的值分别是1和2。数据包经过PREROUTING链后,将要进入路由选择模块,为了对其进行策略路由,执行以下两条命令,添加相应的规则。

ip rule add from all fwmark 1 table 10  
ip rule add from all fwmark 2 table 20 

以上两条命令表示所有标志是1的数据包使用路由表10进行路由,而所有标志是2的数据包使用路由表20进行路由。路由表10和20分别使用了ChinaNet和Cernet线路上的网关作为默认网关,具体设置命令如下所示。

ip route add default via 10.10.1.1 dev eth1 table 10  
ip route add default via 10.10.2.1 dev eth2 table 20 

以上两条命令在路由表10和20上分别指定了10.10.1.1和10.10.2.1作为默认网关,它们分别位于ChinaNet和Cernet线路上。于是,使用路由表10的数据包将通过ChinaNet线路出去,而使用路由表20的数据包将通过Cernet线路出去。

 

(2)

 

iptables网关服务器三块网卡:eth0(网通ip:10.0.0.1)、eth1(电信ip:20.0.0.1);eth2:网关192.168.10.1。

要求:公司内网要求192.168.10.1---100以内的ip使用 10.0.0.1 网关上网(网通),其他IP使用 20.0.0.1 (电信)上网;

iptables网关服务器配置如下:

mangle应用顺序要高于nat、filter哈。

案例2、

iptables网关服务器三块网卡:eth0(网通ip:10.0.0.1)、eth1(电信ip:20.0.0.1);eth2:网关192.168.10.1。

要求:公司内网要求员工访问外面的网站服务;使用 10.0.0.1 网关上网(网通),其他IP使用 20.0.0.1 (电信)上网;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iptables是一个Linux下的防火墙工具,它基于Netfilter内核模块,可以过滤、修改和重定向网络数据包。iptables提供了很多不同的和链,可以通过这些和链来实现不同的防火墙策略。 iptables是数据包匹配规则的集合,包括: 1. filter:这是iptables默认的,用于过滤数据包,可以实现基本的防火墙功能。 2. nat:该用于网络地址转换(NAT),可以实现端口映射等功能。 3. mangle:该用于对数据包进行修改和处理,比如修改TTL、设置TOS等。 4. raw:该用于对数据包进行处理,但不会进行连接跟踪。 iptables的链是一系列规则的集合,用于对数据包进行处理,包括: 1. INPUT链:处理所有进入本机的数据包。 2. OUTPUT链:处理所有从本机发出的数据包。 3. FORWARD链:处理所有通过本机进行转发的数据包。 4. PREROUTING链:在数据包进入本机之前进行处理。 5. POSTROUTING链:在数据包离开本机之后进行处理。 对于iptables的操作,可以使用以下命令: 1. iptables -A/-I/-D/-R chain rule:添加/插入/删除/替换规则到指定链。 2. iptables -F chain:清空指定链的所有规则。 3. iptables -L/-n/-v chain:列出指定链的所有规则,可以选择是否显示IP地址和数据包数量。 4. iptables -P chain policy:设置指定链的默认策略。 5. iptables-save/-restore:保存和恢复iptables规则。 以上是iptables防火墙和链的操作,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值