注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

linux路由工具:iproute2/iptables(路由配置实例)  

2013-06-23 19:07:01|  分类: 路由负载均衡 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、ip route add 和 ip rule add to之间的区别

       ip route add ......是往main表中增加目的地址路由表项.

        ip route add*****此处只能以源地址来区分路由;

linux路由工具:iproute2/iptables(路由配置实例) - itoedr - itoedr的it学苑

        ip rule add to,往指定表增加目的地址路由表项. 我们可以建多个表,可以以目标地址区分路由;
        ip rule add from,往指定表中增加源地址路由表项 ;

 linux路由工具:iproute2/iptables(路由配置实例) - itoedr - itoedr的it学苑
2、Linux下基于路由策略的IP地址控制实例

(1)背景描述

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,是内网用户的网关。

(2)需求分析

内网用户应该走172.17.1.1这个路由上网。

但由于工作需要,部分用户应该有访问图中“专用网络”的权限。

也就是说,应该走192.168.10.1这个路由。

另外一点,所有人应该可以访问FTP服务器,这个服务器的IP是192.168.10.96

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

(3)解决方案

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

ip route

ip rule

arp


*******************

注:关于ip命令的用法,请查阅ip中文手册。

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地址。

在ubuntu下,使用interfaces来定义;


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看到的,实际是路由表mai。

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

开始添加我们自己的路由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。


5、让所有人可以访问192.168.10.xx

       因为其余人都走了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

#include

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网段的内容,为了安全,可以去掉。

参考实例:

ip route add 58.14.0.0/15 via 192.168.33.1 table cnline

此处会新建路由表cnline;
ip route add 58.16.0.0/16 via 192.168.33.1 table cnline

    #

ip route del default
     #操作的是路由表main;
ip route add default via 192.168.33.1 
    #也给主路由表main加上了cnline相同的网关,单网卡情况,只能如此,多网卡即可出于不同网卡了,使用ebtables也可以实现类似功能;
ip rule add from 192.168.2.6 pref 1000 lookup cnline #表示主机源192.168.2.6的请求都去cnline表的规定路由;
ip rule add from 192.168.2.4 pref 1000 lookup cnline
ip rule add from 192.168.2.32 pref 1000 lookup cnline
ip rule add to 10.10.10.189 pref 1000 lookup cnline      #即去目标地址为10.10.10.189的数据包也在cnline中找出路;其中lookup可以省去,不过笔者喜欢写着,意义更明确。
  评论这张
 
阅读(1040)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017