[转帖]基于策略路由的IP地址控制_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4290 | 回复: 0   主题: [转帖]基于策略路由的IP地址控制        下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2011-8-2 9:35:00 | [全部帖] [楼主帖] 楼主

基于路由策略的IP地址控制

最近做了一套路由策略,觉得LINUX真的太强大了!于是心潮澎湃,写了这个文档!!!

一、背景描述
如图,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.xx

也就是说,走 172.17.1.1 路由的人,也应该能访问 192.168.10.xx,且可以上网

三、解决方案
要解决这个问题,用到了一下几个命令,具体使用方法需要另查资料

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
CODE:
[Copy to clipboard]
#
# reserved values
#
255     local
254     main
253     default
0       unspec
200     NET10
#
# local
#
#1      inr.ruhep上面那个 200 NET10 为新添加,自定义编号为 200,名字为 NET10


3、向NET10 路由中添加它自己的默认路由

CODE:
[Copy to clipboard]


ip route add default via 192.168.10.1 table NET10注意,这个 table NET10 一定不要忘了写,否则写到了主路由表中

4、创建特殊路由规则
用 ip rule 可以看到计算机当前的路由规则

QUOTE:
0:      from all lookup local
32766:  from all lookup main


32767:  from all lookup default可以看到,规则中走了3个路由表,local、main、default

我们平常用route看到的,实际是路由表main

这些规则是按序号大小顺序走的,一个不同,则走下一个,知道通路或走完为止

开始添加我们自己的路由NET10到路由表中

CODE:
[Copy to clipboard]


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 的

怎么才能实现呢?再添加个策略就可以了!

CODE:
[Copy to clipboard]


ip rule add to 192.168.10.xx pref 10001 table NET10这句话的意思是说,所有人,如果目的IP是 192.168.10.xx,则临时使用 NET10 的路由表

这样做,安全会不会有安全问题呢?路由变了,他们会不会访问到专用网络呢?

不会的,因为路由规则是 to 192.168.10.xx,也就是目标是 xx 时,才该路由的,访问别的网站还是走原来的路由。

如果说访问到专用网络的机器,也就只有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


6、防止其他人篡改IP地址而获得特殊权限
arp有个静态功能 CM,不是 C,大家可能知道

如果给一个IP地址强行绑定一个非他自己的 MAC,会怎么样呢?双方会话将会失败!

好,我们来利用这一点!

首先,我写了一个文件iproute.c

CODE:
[Copy to clipboard]
#include
#include
main ()
{
int i;
for(i=2;igcc iproute.c -o iproute


将编译出一个可执行文件

注:不应该包括主机IP地址本身,所以从 2 循环到 254(255 是广播)

其次,生成一个 C 的 IP 地址和全为 00 的 MAC 地址

CODE:
[Copy to clipboard]
# ./iproute > /etc/etherstips: 上面的方法写于不会 shell 时候的我,利用 bash 的特性可以很简单的将上面步骤简化为
CODE:
[Copy to clipboard]
# 修改于 2005.10.24
# for((i=2;i /etc/ethers再次,修改IP-MAC匹配列表
vi /etc/ethers


具体怎么该我就不用细说了,相信大家都会

最后,做静态 IP-MAC 绑定

arp -f


7、为了安全,建立防火墙,修改main路由表
默认的路由表应该有 192.168.10.0/24 和 172.17.0.0/16 网段的内容,为了安全,可以去掉

另外,如果是AS3的话,还会有 169.254.0.0/16 的路由,具体为什么我不知道,去掉

然后写一个防火墙教本,利用iptables,把你的机器变得更加坚固!




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论