如果单位的局域网划分了虚拟子网,最好的方式是为公司单独分配一个VLAN(虚拟局域网),在该VLAN上运用访问控制列表,限制对其他VLAN资源的访问。
本文以Cisco Catalyst系列交换机组建的网络为例,讲述如何建立VLAN和实施访问控制。假设单位局域网采用二层架构,核心交换机为Cisco Catalyst 4006,支持VLAN路由功能;接入层为Cisco Catalyst 2950系列交换机,支持VLAN的划分;局域网通过专线接入互联网。交换机采用基于端口的方式划分VLAN,交换机之间的连接链路为TRUNK模式,VLAN之间通过Cisco 4006路由,网络拓扑如下图。
VLAN的建立
VLAN的规划
假设单位原来有VLAN1、VLAN2、VLAN3、VLAN4和VLAN10共五个VLAN,建立VLAN20,供公司接入。各子网IP地址规划如表1所示。
| VLAN ID | 用途 | Ip网段 | 网关 | 备注 |
| VLAN1 | 管理设备 | 192.168.1.0/24 | 192.168.1.250 | 已存在 |
| VLAN2 | 服务器 | 172.16.2.0/24 | 172.16.2.250 | 已存在 |
| VLAN3 | 计财部 | 172.16.3.0/24 | 172.16.3.250 | 已存在 |
| VLAN4 | 营销部 | 172.16.4.0/24 | 172.16.4.250 | 已存在 |
| VLAN10 | 互联网连接 | 172.16.10.0/24 | 172.16.10.250 | 已存在 |
| VLAN20 | 公司 | 172.16.20.0/24 | 172.16.20.250 | 新添加 |
VLAN20的创建
在一台交换机上创建VLAN20,其他交换机如何知道局域网增加了VLAN20?各交换机如何保持VLAN信息的一致性呢?VTP(VLAN中继协议)可以实现。这些交换机被组织在一个VTP管理域中,有且只有一台交换机处于Server模式,它可以创建、删除和修改VLAN配置信息,通过交换机之间的Trunk(中继)链路定期向其他交换机通告VLAN信息。同一个VTP域中其余交换机一般设置为Client模式,接收和转发Server的通告信息。通常,我们将核心交换机设置为Server模式,本例Cisco 4006为SERVER模式,通过下面的命令创建VLAN20,其他的Cisco 2950交换机可以学习到VLAN20。
Cisco4006#vlan database
Cisco4006#vlan 20 name gongsi
VLAN20接口的创建
Cisco 4006是三层交换机,集成了路由功能,可以实现数据包的一次路由多次转发。在Cisco 4006上创建VLAN20接口,接口地址为172.16.20.250/24,公司通过该接口访问其他VLAN的数据。
Cisco4006
#interface vlan 20
Cisco4006#ip address 172.16.20.250 255.255.255.0
Cisco4006#no shutdown
VLAN20端口的分配
首先为Cisco2950-C配置下列参数:
> 交换机主机名;
> ENABLE密码和TELNET密码;
> 交换机管理IP地址和缺省网关;
> 上级交换机的下联端口和该交换机的上联端口设为TRUNK模式;
> VTP参数(注意VTP域名、密码和其他交换机一样)。
随后在Cisco2950-C上为公司分配VLAN20接口:
Cisco2950
#interface fa0/4
Cisco2950#switchport mode access
Cisco2950#switchport access vlan 20
至此,只要将公司的笔记本接入Cisco2950-C交换机的端口4,分配172.16.20.0/24网段的IP地址,指定网关为172.16.20.250,公司人员就可以浏览单位内部网页,共享其他工作站的文件了。如果要求上互联网,只需要在防火墙上添加其IP地址或者为其建立账户即可。
访问控制的实施
访问控制的实现
首先在路由器全局配置模式下定义ACL表,然后应用到网络接口,通过该接口的数据包和ACL表自上而下开始匹配,决定通过还是拒绝。当执行到ACL的最后,还没有与其相匹配的语句,数据包将被隐含的“拒绝”语句所拒绝。
下面假设允许VLAN20的机器访问互联网,允许通过VLAN2中的域名服务器172.16.2.2进行域名解析,允许访问VLAN4的工作站W2(172.16.4.2),不允许访问单位其他的服务器和工作站,可以这样实施访问控制:
在记事本中编辑ACL语句
也可以直接在Cisco 4006全局配置模式下输入ACL语句,在记事本中编辑的好处是便于修改和调序。
access-list 101 permit tcp 172.16.20.0 0.0.0.255 host 172.16.2.2 eq 53
access-list 101 permit udp 172.16.20.0 0.0.0.255 host 172.16.2.2 eq 53
access-list 101 permit ip 172.16.20.0 0.0.0.255 host 172.16.4.2
access-list 101 deny ip 172.16.20.0 0.0.0.255 172.16.2.0 0.255.255.255
access-list 101 deny ip 172.16.20.0 0.0.0.255 172.16.3.0 0.255.255.255
access-list 101 deny ip 172.16.20.0 0.0.0.255 172.16.4.0 0.255.255.255
access-list 101 permit ip 172.16.20.0 0.0.0.255 any
这里为什么没有禁止访问VLAN1呢?因为VLAN1是管理设备和交换设备所在的子网,最好在VLAN1的接口处定义ACL,除了允许网络管理员访问该VLAN以外,禁止所有其他VLAN的PC访问该VLAN的设备。因此在VLAN20接口处就不必重复禁止对VLAN1的访问,太多的ACL语句会降低路由器的转发效率。
将ACL表粘贴到Cisco4006
复制记事本中编写好的ACL语句,在Cisco 4006全局配置模式下,同时按住CTRL键和鼠标右键,ACL表就粘贴到Cisco 4006中了。
将ACL表应用到接口VLAN20
Cisco4006
#interface vlan 20
Cisco4006#ip access-group 101 in
ACL语句的修改
实施访问控制后,可以用show access-lists查看命中的数据包。随着网络和用户需求的变化,需要经常调整ACL,通过下面的步骤进行修改:
> Cisco4006#show run 查看ACL语句并用鼠标选定,同时按住CTRL和鼠标右键,打开记事本,选择粘贴,该ACL语句就复制到记事本了,在记事本中修改ACL语句。
> Cisco4006
> 将修改好的ACL再次复制到Cisco4006就可以了。
要使ACL语句生效而且高效执行,有三点要注意:
> ACL语句的顺序很关键;
> 应用到路由器接口时,是对IN方向还是OUT方向进行控制;
> 匹配成功率高的语句尽量放在前面。
实施访问控制的目的,一方面可以限制对单位敏感资源的访问,另一方面可以通过类似下面的端口控制,阻断像“冲击波”和SQL SLAMMER蠕虫的传播。
access-list 102 deny tcp any any eq 135
access-list 102 deny tcp any any eq 139
access-list 102 deny tcp any any eq 445
access-list 102 deny udp any any eq 445
access-list 102 deny udp any any eq tftp
access-list 102 deny tcp any any eq 69
access-list 102 deny udp any any eq 4444
access-list 102 deny tcp any any eq 4444
access-list 102 deny udp any any eq 3389
access-list 102 deny tcp any any eq 3389
access-list 102 deny tcp any any eq 1433
access-list 102 deny udp any any eq 1433
access-list 102 deny tcp any any eq 1434
access-list 102 deny udp any any eq 1434
如果设备功能强大,还可以使用基于时间的访问控制,允许在某个时间段内访问哪些机器,其他时间则禁止访问。还可以做端口映射,监控VLAN20的流量。访问控制做好了,就可以放心大胆地让公司使用网络。
文章转载地址:http://www.365master.com/kt_article_show.php?article_id=823&categ_code=10071007