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上有这个服务
上一篇: 网络安全方面的专业词汇 下一篇:OpenSSL对称加密算法中怎么样添加新算法 更多相关文章
|
推荐文章
精彩文章
|