1、背景描述
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,是内网用户的网关
2、需求分析
但因为工做须要,部分用户应该有访问图中“专用
网络
”的权限
也就是说,应该走192.168.10.1这个路由
另一点,全部人应该能够访问FTP服务器,这个服务器的IP是192.168.10.96
也就是说,走172.17.1.1路由的人,也应该能访问192.168.10.96,且能够上网。
3、解决方案
要解决这个问题,用到了一下几个命令,具体
使用
方法须要另查资料。
ip route
ip rule
一、绑定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地址。
二、建立特殊路由表
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
三、向NET10路由中添加它本身的默认路由
代码:
ip route add default via 192.168.10.1 table NET10
注意,这个table NET10必定不要忘了写,不然写到了主路由表中。
四、建立特殊路由规则
用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了)。
五、让全部人能够访问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
六、防止其余人篡改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
将编译出一个可执行文件
注:不该该包括
主机
IP地址自己,因此从2循环到254(255是广播)
其次,生成一个C的IP地址和全为00的MAC地址
代码:
./iproute > /etc/ethers
再次,修改IP-MAC匹配列表
vi /etc/ethers
具体怎么该我就不用细说了,相信你们都会
最后,作静态IP-MAC绑定
arp -f
默认的路由表应该有192.168.10.0/24和172.17.0.0/16网段的内容,为了安全,能够去掉。
另外,若是是AS3的话,还会有169.254.0.0/16的路由,具体为何我不知道,去掉。
而后写一个防火墙脚本,利用iptables,把你的机器变得更加坚固!
出自 51CTO.COM博客