分类:
2012-08-14 16:08:11
在网络管理工作中,常常会碰到这样的情况:某些违反管理规定,私自修改自已的IP,以达到受限资源的目的。这样的行为,不但破坏了信息安全规 则,还可能因为冲突引起网络通讯故障。
网管管理员可能会试图如后文所述的各种技术手段来解决这一问题,但效果不一定很理想:首先技术手段无法完全阻止这种现象的发生,其次是增加 了管理的复杂性和成本。所以遏制这种现象最有效的方法是行政手段,这是技术手段所无法替代的。
在介绍这些管理手段之前我们先来看一个模拟的环境:工作站PC和SERVER连接到一台Cisco Catalyst 3550上,它们分属不同的VLAN,借助3550的路由功能进行通讯(附配置):
hostname Cisco3550
!
interface GigabitEthernet0/11 description Connect to PC
!
interface GigabitEthernet0/12 description Connect to SERVER switchport access vlan 2
!
interface Vlan1
p address 1.1.1.254 255.255.255.0
!
interface Vlan2
p address 2.1.1.254 255.255.255.0
如果不需要做权限限制,只是要防止IP地址冲突的话,最佳的方案可能是使用DHCP.DHCP 服务器可以为用户设置IP 地址、子网掩码、网关、DNS等参数,使用方便,还能节省IP地址。在Cisco设备上设置DPCP可以参考:《Cisco路由器上配置DHCP全程详 解》.静态的分配和设置需要较多管理开销,如果用户不捣乱的话,由于用户名和IP地址一一对应,维护起来比较方便,以下均假设采用的是静态的管理方法。
测试1.假设VLAN1内只允许IP 1.1.1.1 访问Server: 2.1.1.1,其它访问全部禁止。
限制方法:使用IP访问列表
interface Vlan1
p address 1.1.1.254 255.255.255.0
p access-group 100 in
access-list 100 permit ip host 1.1.1.1 host 2.1.1.1
突破方法:非法用户将IP地址自行改为 1.1.1.1即可访问Server.非法用户抢占地址1.1.1.1将会引起IP地址冲突问题。如果用户将IP地址设成网关的IP,还会影响到整个 VLAN的通讯。通过修改Windows 设置,可以防止用户修改“网络”属性,但这一方法也很容易被突破。
测试2.在测试1的基础上加上静态ARP绑定可以防止IP地址盗用。
实现方法:在测试1配置的基础上设置arp 1.1.1.1 0001.0001.1111 ARPA
注意以下的命令是错误的,因为ARP的端口参数是三层(路由)端口而非二层(交换)端口:
arp 1.1.1.1 0001.0001.1111 ARPA GigabitEthernet0/11
设置完成之后,如果非法用户把地址改为1.1.1.1,它发送到路由器的包正常,但是从目标服务器2.1.1.1返回的数据包在路由器上转发的 时候,目标MAC地址将总是设为0001.0001.1111,非法用户不能接收。
类似办法:使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表
突破方法:修改MAC地址很容易,在Windows网络连接设置修改网卡的配置,在“高级”页面中找到Network Address设置为指定的值即可。
测试3.使用Port Secure
原理:如果限制了指定端口只能被特定MAC地址的机器,用户若更改了MAC地址端口将会进入不可用状态。
设置方法:
interface g 0/1
switchport mode access
switchport port-security
设置完成之后,交换机端口上首次连接的PC的MAC地址将会记录到交换机中,成为唯一能够使用该端口的MAC地址。如果该PC更换MAC地址, 默认将会使用端口置于shutdown状态,无法与网络连通。
可以使用命令设置安全冲突的处理方法:
sw port-security violation [protect | restrict | shutdown ]
protect 丢弃来自非法源地址的包,不告警
restrict 丢弃来自非法源地址的包,发送syslog告警
shutdown(默认) 关闭端口,发送SNMP trap、Syslog 告警,除非管理员执行命令shut/no shut,否则端口一直处理down状态。
突破方法:代理服务器。用户在同一VLAN内能够对外访问的主机上安装代理服务器,通过代理访问。
测试4.使用VLAN,PVLAN隔离用户
原理:将授权用户和非授权用户划分到不同的VLAN中,并使用访问控制列表限制VLAN间的通讯。也可以使用PVLAN隔离使同一VLAN间某 些主机之间不能直接通讯……
interface range g 0/10
description Connect to PC1
switchport access vlan 7
interface range g 0/11
description Connect to PC2
switchport access vlan 8
特殊办法:交换机Cisco 3550交换机还能支持在二层(交换)端口上设置mac/ip 访问控制列表,以下设置将使f0/1端口上的PC只能使用ip地址1.1.1.1及mac地址0000.0c31.ba9b,否则网络通讯不正常。
ac access-list extended macacl
permit host 0000.0c31.ba9b any
permit any host 0000.0c31.ba9b
interface FastEthernet0/1
o ip address
p access-group ipacl in
ac access-group macacl in
p access-list extended ipacl
permit ip any host 1.1.1.1
permit ip host 1.1.1.1 any
突破方法:该用户跑到授权用户的机器上访问
这是非典型的突破方法,目前还没有很好的解决方法。
其他可能的限制方法:
1.认证代理:用户访问特定资源前必须在某个网页上输入用户名和密码,否则不通
2.802.1x:用户通过802.1x认证同时由DHCP服务器分配IP地址,否则不通
3.PPPoE:用户需安装PPPoE客户端软件,使用用户名和密码登录网络才能使用
讨论更新:一位叫Maying的朋友看了本文之后到BBS发帖子询问:“如何在路由器上设置过滤掉某个特定mac地址的流量?不希望使用这个 mac地址的主机通过路由器!”。
这个要求比较新鲜。当你针对一个MAC地址进行过滤的时候,这一动作发生在第二层。而路由器一般执行的是第三层路由的任务,只有很少情况下做桥 接的时候才对进入的MAC地址进行过滤,所以这样的过滤最好设置在二层交换设备上。
但这个要求对路由器来说也不是不可能的任务,麦子使用以下配置达到了要求的效果:
p cef//Rate-limit 需要cef的支持,路由器可能默认未启用cef interface Ethernet0/0 ip address 192.168.1.254 255.255.255.0 rate-limit input access-group rate-limit 100 8000 1500 2000 conform-action drop exceed-action drop //如果源MAC地址为指定值则丢弃(其他的都允许) access-list rate-limit 100 0001.0001.abcd //要限制的MAC地址
这时候要注意,目标工作站到达该路由器之前不能经过其他三层设备,否则MAC地址会被改掉。
讨论更新:Maying朋友再问:“我的路由器是Cisco 1720, 不支持CEF,怎么办?”
Cisco 1720路由器能够支持CEF, 但要求是12.0(3)T以上IP PLUS版本的软件,12.2(11)YV 起标准IP版软件也可以支持CEF.如果路由器目前IOS软件版本不够,需要升级。
也可以使用桥接(IRB)的方法来解决,这种方法只需要12.0(2)T 以上标准IP版软件即可。配置如下:
bridge irb //启用IRB支持
interface Ethernet0/0
o ip address //路由做到逻辑端口BVI 1上
bridge-group 1 //加入桥接组1
!
interface BVI1
p address 192.168.1.254 255.255.255.0 //为桥接组1提供路由
!
bridge 1 protocol ieee //运行生成树协议防止环路
bridge 1 route ip //路由IP流量
bridge 1 address 0001.0001.abcd discard
//丢弃来着于MAC地址0001.0001.abcd的数据包