查看: 6092|回复: 15

OSI第二层网络架构安全要素

[复制链接]
发表于 2007-4-22 23:12:01 | 显示全部楼层 |阅读模式
许多安全管理员多关注网络层和应用层的安全问题,经常会忽略Layer 2网络架构(数据链路层),同时这也是网络安全和可靠性方面最容易被人忽视的一个方面。在本文中,我会向你展示如何修正交换机配置以及架构方面最常见的错误。虽然我使用Cisco来作为我的例子,但是同样的策略和所讨论的教训一样适用于其他厂商。这些安全手续对任何数据网络来说都是必须的,特别是在使用IP电话的时候。
启用SSh,禁止Telnet
对于一台Cisco设备来说,最明显需要设置的就是口令和启用加密了。如果你让它保持空白的话,你的交换机就等于是在敞开大门,任何人都可以查看并攻击你的VLAN设置。如果你有多台交换机,以及多位系统管理员时,最好使用AAA认证模式,并使用一个本地用户数据库,集中的TACACS+,或者RADIUS服务器来管理所有的交换机和系统管理员。使用TACACS+可能是更正确的选择,因为它可以记录下所有的事件,以便你有一个历史记录,可以记录下所有做出的修改,以及是谁在你的交换机和路由器架构中做出了修改。不过要记住,最重要的事情是,不惜任何代价禁止Telnet,并持续的对所有交换机部署SSH。即便你的交换机上并没有一个启用加密的软件镜像,所有的当前镜像也依然可以让你SSH进交换机。为每一个系统管理员都建立一个独一无二的用户名以及口令。然后,你应当启用SSH,并干掉Telnet。

Cisco Native IOS上启用SSH,禁止Telnet
命令
描述
username admin1 privilege 15 password 0 Admin-Password
建立一个叫做admin1的系统管理员,每一个管理都必须重复。
aaa new-model
使用一个本地数据库,设置为AAA模式
aaa authentication login default local
aaa authorization exec default local
aaa authorization network default local
aaa session-id common
ip domain name MyDomain.com
建立一个用于认证的名字
crypto key generate rsa
建立数字证书。使用至少768位的Diffie-Hellman关键字
line vty 0 4
进入vty配置
transport input ssh
仅仅允许SSH登录


Cisco Catalyst OS上启用SSH,禁止Telnet
命令
描述
set crypto key rsa 1024
生成一个1024位的RSA key
set ip permit 10.0.10.0 255.255.255.0 ssh
明确仅允许指定IP范围内的地址SSH
set ip enable

要注意,对Cisco Native IOS交换机来说,Native IOS命令同样可以工作在Cisco IOS路由器上。无法使用SSH可能会导致口令被窃,并让攻击者获得对交换架构完全的控制权。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:13:30 | 显示全部楼层
基础端口锁闭
交换机应当像安全领域中的其他事物一样,使用那种最低权限的理念。设置一个交换机的最好方法就是在部署时先关闭所有的端口,然后再一一打开自己需要的端口。除此以外,你应当将每一个端口都放入一个不曾使用的,无处可去,没有默认网关的VLAN之中。你可以建立一个名为“unused(不曾使用)”的VLAN,并使用一个指定的数字,比如333,然后将所有的端口都放入这个VLAN之中。在下面的例子里,我们将使用一台基于传统CIsco IOS的48口交换机。
Cisco Native IOS上的基础端口锁闭
命令
描述
int range FastEthernet0/1 - 48
进入接口1 - 48
switchport access vlan 333
设置端口到VLAN 333
switchport mode access
关闭自动VLAN中继
shut
关闭端口
Cisco Catalyst OS上的基础端口锁闭
命令
描述
set vlan 333 1/1-2
设置sup卡端口到VLAN 333
set vlan 333 3/1-48
设置所有blade 3端口到VLAN 333
set trunk 1/1-2 off
禁止所有SUP卡端口的中继
set trunk 3/1-48 off
禁止在所有blade 3端口上的中继
set port disable 1/1-2
关闭所有Blade 1上的全部端口
set port disable 3/1-48
关闭所有Blade 3上的全部端口
对所有交换机上的blade以及端口都需要重复"set vlan/trunk/port"命令
你将需要为所有的交换机进行上述工作,具体则要根据机器的型号和操作系统类型来定。如果你是在使用某种堆叠,你将不得不为每个堆叠都坐上一次。然后,当你插入服务器时,你“不关上”该端口,并将其设置到正确的VLAN上,或者甚至将其转化成一个中继端口(如果的确需要的话)。当你将VLAN设置到服务器和工作站上是,永远也不要使用VLAN1,这是默认的交换机上的自然VLAN,也不要使用你人工指派的VLAN数字。不在服务器,工作站,或者其他设备上使用native VLAN将可以有效阻挡频繁的VLAN攻击。如果你不进行这个基础锁闭进程的话,那么在VLAN1上,所有的交换机端口默认都是打开的。而这正是许多人当前使用交换机的方式,多么恐怖的一个错误!
当你检查每一个端口,并连上新设备时,你应当在Cisco IOS中使用“description My-Port-Name”命令,来对每一个端口正确标示。Cisco Catalyst OS使用“set port name 3/43 My-Port-Name”命令来标示端口。这一点在SNMP向类似Solarwinds或者HP OpenView这样的服务器报告时特别有用,因为在报告中将直接给出端口描述。这是最好的文档形式,因为它们的确有用。
那些不曾使用这个基本端口锁闭进程的人们,则相当于允许任何人闯入他们的交换机网络,并连上任何一个他们喜欢的VLAN。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:13:45 | 显示全部楼层
VLAN中继锁闭 无论何时,当在任意端口上使用VLAN中继时,该中继端口应当最小化VLAN数目,仅保留那些需要穿越交换机的VLAN。在下述例子中,我们将配置一个中继端口,仅允许VLAN 12-14以及20-22。

Cisco Native IOS上的VLAN中继锁闭
命令
描述
interface GigabitEthernet1/0/2
Cisco 3750上进入第二个gigabit端口
switchport mode trunk
打开中继模式
Switchport trunk encapsulation dot1q
设置中继类型为IEEE 802.1q
switchport trunk allow 12-14, 20-22
仅允许Vlan 12-14以及20-22


Cisco Catalyst OS上的VLAN中继锁闭
命令
描述
Clear trunk 1/1-2 1-1005
设置sup 卡端口到VLAN 333
Clear trunk 3/1-48 1-1005
在所有SUP卡端口上禁止中继
为每一个blade以及每一个端口重复"clear trunk"命令
Set trunk 1/2 12-14
设置端口1/2 允许vlan 12-14
Set trunk 1/2 20-22
设置端口1/2 允许vlan 20-22

要注意,在一个Catalyst os上,清除默认允许的VLAN中继将意味着非常大量的工作,因为默认状态下,所有的VLAN都是打开的。在这种情况下,事实上我们在Catalyst os上所定义的VLAN 12-14以及20-22将没有任何意义,因为它只不过是更大的1-1005中的一部分,而后者默认全部是打开的。而在Cisco Native IOS上,每一个VLAN默认都是被阻挡的,除非特别定义其打开。
如果在锁闭一个中继上允许的VLAN方面失败的话,将意味着所连接的设备可能会连上的VLAN数目,将会远远超过你的期望。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:14:38 | 显示全部楼层
STP BPDU以及Root防护
通过发送BPDU通讯,黑客们可以玩出所有的下流把戏,而BPDU可以迫使VLAN STP(展开树协议)重新计算,至少花费30秒才可以清除。这样他们就可以不定期的发动DoS攻击(拒绝服务)。他们也可以装作是STP root而染指相关通讯。BPDU防护以及root防护可以阻止这种类型的攻击。
Cisco Native IOS上的STP BPDU以及Root防护
命令
描述
spanning-tree portfast bpduguard
在交换机上打开BPDU防护
spanning-tree guard root
在交换机上开启“Root guard
spanning-tree rootguard
某些IOS版本上使用的另一个root guard命令


Cisco Catalyst OS上的STP BPDU以及Root防护
命令
描述
set spantree portfast bpdu-guard enable
在交换机上开启BPDU防护
set spantree guard root 1/1-2
blade 1开启root guard
set spantree guard root 3/1-48
blade 3开启root guard
为每一台blade以及每一个端口重复"set spantree guard root"命令

注意,你必须禁止所有连接其他交换机的端口上的root防护以及BPDU防护。如果这个安全功能部署失败的话,将允许黑客们针对整个交换结构发动BPDU拒绝服务攻击,并可能截取交换机通讯。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:15:21 | 显示全部楼层
阻止CAM表格以及DHCP耗尽
黑客们可以利用这样一个事实,那就是交换机和DHCP服务器所能保留的MAC地址或IP地址是有限的。黑客可以修改自己的MAC地址,并从DHCP服务器上要求多个DHCP地址,直到用尽DHCP池中每一个单独IP地址。黑客也可以非常迅速的修改自己的MAC地址,从而快速的将任意以太网交换机的CAM表格占满。一旦一台以太网交换机的CAM表格被塞满,它事实上就变成了一个以太网集线器。不仅会导致性能的急剧降低,同时交换机将被迫的向每一个端口广播所有的网络通信,这让黑客可以偷听交换机上的每一台设备,看起来就像是在使用一台集线器一样。要阻止CAM表格攻击以及DHCP耗尽攻击,你必须按照下属示例的方法对端口防护进行正确的配置。

Cisco Native IOS阻止CAM表格以及DHCP爆炸
命令
描述
int range FastEthernet 0/1 - 48
进入接口1 - 48
switchport port-security
打开端口防护
switchport port-security maximum 5
允许最高5MAC地址
switchport port-security violation protect
超过5个的MAC地址后的数据包全部丢弃
switchport port-security aging time 2

switchport port-security aging type inactivity

对所有其他交换机上的所有其他端口重复上述步骤


Cisco Catalyst OS阻止CAM表格以及DHCP爆炸
命令
描述
set port security 1/1-2 enable
在所有blade 1端口上启用端口防护
set port security 3/1-48 enable
在所有blade 3端口上启用端口防护
set port security 1/1-2 port max 5
blade 1上允许5MAC地址
set port security 3/1-48 port max 5
blade 3上允许5MAC地址
set port security 1/1-2 violation protect
超过5个的MAC地址后的数据包全部丢弃
set port security 3/1-48 violation protect
超过5个的MAC地址后的数据包全部丢弃
set port security 1/1-2 age 2

set port security 3/1-48 age 2

set port security 1/1-2 timer-type inactivity

set port security 3/1-48 timer-type inactivity

对所有其他blade上的所有其他端口重复上述步骤

注意,你必须禁止那些连接其他交换机的端口的安全。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:16:01 | 显示全部楼层
阻止DHCP,MAC,以及IP欺骗
ARP以及IP欺骗允许黑客佯装其他人,从而截取通讯。DHCP欺骗则允许一个黑客将一个信任客户端放入一个伪造IP范围的以太网段上,从而淹没攻击者达到网络的其他地方。所有这些方式都是为了截取网路通讯,以便攻击者可以嗅探内部局域网上的各种秘密。你可以通过部署DHCP调查,动态ARP检查,以及IP源地址防护来阻止这些攻击。
Cisco Native IOS阻止DHCPMAC,以及IP欺骗
全局命令
描述
ip dhcp snooping vlan 1-1000
Vlan 1-1000打开DHCP调查
ip dhcp snooping
打开DHCP调查
no ip dhcp snooping information option

ip arp inspection vlan 1-1000
VLAN 1-1000上的ARP检查
ip arp inspection log-buffer entries 1024

ip arp inspection log-buffer logs 1024 interval 10

主机接口命令
描述
int range FastEthernet 0/1 - 48
进入接口1 - 48
no ip arp inspection trust
锁闭ARP的主机端口
ip arp inspection limit rate 15
设置ARP pps检查速率
ip verify source vlan dhcp-snooping
打开IP来源防护
DHCP客户端接口命令
描述
no ip dhcp snooping trust
不允许DHCP服务器
ip dhcp snooping limit rate 10
限制对DHCP的请求速率
仅在信任的DHCP端口以及连接其他信任交换机的端口上执行下述命令。下述部分命令将和上面的相反。在正当的互联交换机上以及DHCP服务器上执行下述命令失败,将会导致网络瘫痪以及DHCP瘫痪。
DHCP服务器接口命令
描述
ip dhcp snooping trust
这个端口允许DHCP服务器
交换机接口命令
描述
ip arp inspection trust
解锁用于连接信任交换机的端口

要注意,Cisco Catalyst OS不支持这些反欺骗功能,所以将你的大CAT OS迁移到Native OS上是一个很好的想法。这意味着你将不得不将你的MSFC路由器和CAT OS 交换机合并到一个单一的Native IOS镜像里。
对Layer 2的防护,以及强化交换机架构,应对内部局域网威胁而言,反欺骗绝对是一个非常重要的部件。内部威胁应当和外部威胁处于同等重要地位,因为一台简单的被恶意软件所侵害的工作站,加上rootkit工具,即可将一个外部威胁立刻转变成为内部威胁。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 23:16:56 | 显示全部楼层
限制STP域的大小
这也是在交换机架构方面常常为人忽视的一个方面。一个单一STP(展开树协议)域应当永远不允许长得太过巨大或者变成极度复杂。我曾在一个大学校园里,碰到一个个人用户,仅仅因为偶然插入一个小型桌面交换机,而后偶然的将CAT-5电缆接成自我回环,就瘫痪了整个校园的数千台电脑和IP电话。无论何时,一旦STP域中发生BPDU请求而导致STP重新计算的话,那些同样含有校园网VLAN的网络就会神秘中断,每次都会锁定整个校园网长达30秒之久。数据网络的中断已经够惨了,但是它同时还会导致IP电话架构瘫痪。于是数以百计的人们根本无法工作,因为没有数据,同时也没有了电话。

要避免过大和过于复杂的STP拓扑结构,你必须路由通讯,而不是交换通讯。实际上,这意味着你必须使用layer 3兼容交换机来取代Layer 2交换机,因为后者仅知道如何交换通讯,而不懂如何路由通讯。这也意味着VLAN将无法在那些不属于统一STP交换域的交换机之间展开。这种结构改变可能意味着整个校园局域网的基础架构重新设计,这可不是一件轻松的事情,但是在部署任何IP电话系统之前,这些问题必须被考虑。

维护交换机软件到最新的稳定版本

在网络安全方面,最大以及最常见的罪恶之一,就是人们假设交换机以及架构上的路由是和铅制造一样的,并且你永远不需要去碰它。但是如果你是在运行一台Cisco交换机或者路由器,而它的软件镜像是半年之前的话,那么在你的交换机或者路由器上就很可能存有某些漏洞。说起来很悲哀,但是我的确看到人们在他们的Cisco设备上,运行3年以前或者4年以前的软件镜像,而没有任何想法。

永远更新你的网络设备,就像你不断从硬件厂商那里获取稳定的软件来更新你的客户端以及服务器电脑一样,并始终对相关的更新保持留意。所有的网络和安全工程师都应当问自己一句“上一次我对网络设备软件升级是什么时候了?”。制定出一份行动计划,其中包括一个立即执行的计划,以及一个长期实行的计划,并将其用于管理之中。保持你的远见,提前消除事故,而不是去等待事故的发生。

最终想法

Layer2 安全是信息安全方面最被人忽视的一个方面,常常被安全审核错过,特别是当那些审核更多的聚焦在策略之上,而不是实际部署的时候。黑客们不关心策略,他们只会利用任何可用的安全漏洞。在获得网络中单台电脑的根用户权限后,他们第一时间要做的事情之一,就是实施Layer 2攻击。Layer 2攻击常常被忽视的另一个方面,就是那些部署基于VPN的无线网络安全的公司。一旦不可靠的匿名客户端被允许进入一个AP,而AP通常都会直接连上一台内部交换机,并由VLAN进行分段,而你可能就会忘记Layer安全。要限制来自AP的MAC地址数量非常困难。基于这个原因,高度建议基于VPN的无线局域网安全,应当避免使用基于802.1x的无线局域网安全。

越过这些锁闭进程之后,则是Layer 2交换机安全的下一步,关于无线局域网802.1x安全的有线版。幸运的是,用于无线局域网认证的同一架构也适用于有线认证。基于端口的安全措施基本上说起来都是——即使你插入了一个端口,我们也不会让你进入我们的Layer 2交换机架构的,除非你能证明你是谁,以及你是被许可进入网络的。尽管许多公司已经部署了802.1x无线局域网安全,但部署802.1x有线版的还是很少。Windows XP自动进行无线局域网802.1x配置,但是不会自动进行802.1x有线局域网配置。这一点会在Vista中进行改变,无论有线还是无线的802.1x局域网都会自动进行配置。

除了对802.1x的增强之外,Vista也增加了NAP(网络访问保护)客户端,也就是微软版本的NAC(网络访问控制)标准。NAP或者NAC使用了802.1x基于端口的安全理念,并更进一步,不仅在它们被允许连上网络之前,要求来自客户端的认证和许可,同时也核定客户端的健康状况。如果一个客户端可以证明自己是谁,并证明自己得到网络的认证,他们还依旧必须证明自己是足够健康的。NAC健康通常被定义为完全进行了安全补丁方面的更新,正确部署了防火墙,并使用了最新的防病毒库定义。如果一个认证的客户端电脑不能通过健康测试,他们将被放入网络上的一个受限隔离区,直到他们使用正确的更新将自己修正完毕为止。

今天的无损耗网络,部署的是文章中记述的所有锁闭进程。而明天的无损耗网络,将部署本文中除NAP/NAC以外的所有一切。
回复

使用道具 举报

发表于 2007-4-23 06:48:48 | 显示全部楼层
MY Switch is Lenovo,No such functions!
回复

使用道具 举报

发表于 2007-4-23 10:22:49 | 显示全部楼层
好文要顶,看来还要多注意这些细节
回复

使用道具 举报

发表于 2007-4-25 11:45:14 | 显示全部楼层
好文。。。学习一个,顶
回复

使用道具 举报

发表于 2008-1-14 12:41:26 | 显示全部楼层
太好了~~~非常全面!!!!
回复

使用道具 举报

发表于 2008-1-31 19:10:26 | 显示全部楼层
不错!学习一下!有点看不懂
回复

使用道具 举报

发表于 2008-2-1 10:34:49 | 显示全部楼层
谢谢楼主的无私奉献!
回复

使用道具 举报

发表于 2008-2-20 08:54:32 | 显示全部楼层
有些复杂???????????????????
回复

使用道具 举报

发表于 2008-2-20 19:07:11 | 显示全部楼层
有点深奥!看不明白!
回复

使用道具 举报

发表于 2008-4-20 20:40:07 | 显示全部楼层
谢谢了!正需要,学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表