在Linux下基于路由策略的IP地址控制
一、背景描述
本文出自 51CTO.COM技术博客 如图,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
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
而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这一台而已。
这里,我们还可以做一个小
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,会怎么样呢?双方会话将会失败!
好,我们来利用这一点!
首先,我写了一个文件iproute.c
代码:
#include <stdlib.h> #include <stdio.h>
main ()
{
int i;
for(i=2;i<255;i++)
printf("192.168.1.%d\t\t00:00:00:00:00:00\n",i);
}
gcc iproute.c -o iproute 将编译出一个可执行文件
注:不应该包括
其次,生成一个C的IP地址和全为00的MAC地址
代码:
./iproute > /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,把你的机器变得更加坚固! 出自 51CTO.COM博客 |


51cisco
博客统计信息
热门文章
最新评论
友情链接