欢迎 skyaj 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2009年01月07日 星期三  您现在位于: 首页 → 技术文章 → LINUX下基于路由策...
   LINUX下基于路由策略的IP地址控制实例
作者:  出处:Unix爱好者家园unix-cd.com  更新时间: 2005年12月16日 

一、背景描述

如图,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,会怎么样呢?双方会话将会失败!
好,我们来利用这一点!

首先,我写了一个文件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

7、为了安全,建立防火墙,修改main路由表

默认的路由表应该有192.168.10.0/24和172.17.0.0/16网段的内容,为了安全,可以去掉
另外,如果是AS3的话,还会有169.254.0.0/16的路由,具体为什么我不知道,去掉
然后写一个防火墙脚本,利用iptables,把你的机器变得更加坚固!

 (本文已被浏览 2200 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:informix SQL汇总
下篇文章:bash脚本的打字游戏-仿TT
 相关文章:
很强悍!Ubuntu也能玩Photoshop CS2 35款Linux发行版名字的含义
Sybase Ase 12.5 for Linux全攻略 SYBASE 12.5 for Linux安装
红旗软件宣布推出支持英特尔MID的Midinux操作系统 使用Windows Vista引导Linux
Linux下的绘图程序-Gogh Linux DOSBOX 运行DOS游戏
VMware 6 Linux 版本下载安装配置编译序列号注册码 2007年八款最令人上瘾的Linux游戏
Linux系统下的攻击软件全接触 远程网络安装RedHat Linux系统的方法
六脉神剑捍卫企业 Linux系统(三) 六脉神剑捍卫企业 Linux系统(二)
在Linux高负载下mysql数据库彻底优化 VMware下编译Linux内核(2.4.32)全过程
Linux截图与考屏方法总结 基于网络的RedHat Linux无人值守安装
用比较法学Linux基本命令 Linu系统管理新手要了解的十个知识点

相关搜索
查看百度中关于LINUX下基于路由策略的IP地址控制实例的更多内容
查看google中关于LINUX下基于路由策略的IP地址控制实例的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.