LINUX 下基于路由策略的IP地址控制实例

一、背景描述
如图 , Linux是一台网关服务器 , 内有3块网卡
eth1绑定172.17.0.0/16的IP , 该网段IP可以通过172.17.1.1上网
eth0绑定192.168.10.0/24的IP , 该网段IP可以通过192.168.10.1上网
eth2绑定192.168.1.1 , 是内网用户的网关
二、需求分析
内网用户应该走172.17.1.1这个路由上网
但由于工作需要 , 部分用户应该有访问图中“专用网络”的权限
也就是说 , 应该走192.168.10.1这个路由
另外一点 , 所有人应该可以访问FTP服务器 , 这个服务器的IP是192.168.10.96
也就是说 , 走172.17.1.1路由的人 , 也应该能访问192.168.10.96 , 且可以上网
三、解决方案
要解决这个问题 , 用到了一下几个命令 , 具体使用方法需要另查资料
ip route
ip rule
arp
注:关于ip命令的用法 , 请查阅ip中文手册 , www.Google.com上有
1、绑定IP
ifconfig eth1 172.17.3.x netmask 255.255.0.0
ifconfig eth0 192.168.10.2 netmask 255.255.255.0
ifconfig eth2 192.168.1.1 netmask 255.255.255.0
然后分别修改/etc/sysconfig/network-script/ifcfg-ethx文件 , 以使计算机启动自动设置IP地址
2、创建非凡路由表
vi /etc/iproute2/rt_table
代码:
#
# reserved values
#
255;;local
254;;main
253;;default
0;;;;unspec
200;;NET10
#
# local
#
#1;;;inr.ruhep
上面那个200 NET10为新添加 , 自定义编号为200 , 名字为NET10
3、向NET10路由中添加它自己的默认路由
代码:
ip route add default via 192.168.10.1 table NET10
注重 , 这个table NET10一定不要忘了写 , 否则写到了主路由表中
4、创建非凡路由规则
用ip rule可以看到计算机当前的路由规则
引用:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
可以看到 , 规则中走了3个路由表 , local、main、default
我们平常用route看到的 , 实际是路由表main
这些规则是按序号大小顺序走的 , 一个不同 , 则走下一个 , 知道通路或走完为止
开始添加我们自己的路由NET10到路由表中
代码:
ip rule add from 192.168.1.222 pref 10000 table NET10
这个意思是说 , 假如来自IP地址为192.168.1.222的访问 , 则启用NET10的路由表中的路由规则
而NET10的路由规则是什么呢?上面已经设置了 , 走的是192.168.10.1的网段
接下来 , 使LINUX可以NAT(这里不再细说HOW TO了)
5、让所有人可以访问192.168.10.xx(这个IP不便说出来)
因为其余人都走了172.17.1.1这个路由 , 所以他们是无法访问192.168.10.xx的
怎么才能实现呢?再添加个策略就可以了!
代码:
ip rule add to 192.168.10.xx pref 10001 table NET10
这句话的意思是说 , 所有人 , 假如目的IP是192.168.10.xx , 则临时使用NET10的路由表
这样做 , 安全会不会有安全问题呢?路由变了 , 他们会不会访问到专用网络呢?
不会的 , 因为路由规则是to 192.168.10.xx , 也就是目标是96时 , 才该路由的 , 访问别的网站还是走原来的路由 。
假如说访问到专用网络的机器 , 也就只有10.xx这一台而已 。
这里 , 我们还可以做一个小技巧 , 不告诉别人192.168.10.xx的地址 , 只告诉他们网关192.168.1.1上有这个服务
iptables -t nat -A PREROUTING -d 192.168.1.1/32 --dport 21 -j DNAT --to 192.168.10.xx:21

6、防止其他人篡改IP地址而获得非凡权限
arp有个静态功能CM , 不是C , 大家可能知道
假如给一个IP地址强行绑定一个非他自己的MAC , 会怎么样呢?双方会话将会失败!

推荐阅读