1.6 设法简化操作
网络安全体系结构
网络设计师们每天都要就操作的复杂性做出决定。虽然他们并不将这项工作直接称为操作简化,但是他们还是得不断考虑某项技术给管理员或用户操作带来的困难和负担。本节关乎网络安全系统中的一项核心观念:是否能够简化操作反映了你和安全系统之间的关系—你们俩到底究竟谁为谁服务。
衡量一个系统的硬、软指标包括:
需要聘请多少位信息安全工程师来维护这个系统?
在你因为实际攻击而感到紧张时,你有多容易犯错?
在寻找攻击细节时,你要筛选多少日志数据才能找到有关信息?
在向法庭移交司法证据时,整理相关信息有多容易?
不过,简化操作这个概念不宜过多进行延伸。例如,操作的简便性往往不会通过简化拓扑而得到改善。我曾经听过有些设计师将简化后的拓扑用“优雅”这个词来形容。不幸的是,正如许多时尚设计师所说的那样,优雅往往只是表面功夫。任何安全系统的核心都是它的实际作用,如果它不能对于攻击作出迅速有效的响应,那么无论把拓扑简化到多么“优雅”都毫无价值。
举例来说,图1-4所示是Internet边界的传统设计,我本人就见过很多类似的网络边界设计。
网络边界往往与此类似,并不是因为这种是最理想的设计方案,而是因为公司的安全策略指定所有流量要流经一个单一的“安全控制点(choke point)”。虽然从拓扑的角度上看,这个十分简单,但它却存在很多问题。我讨论的重点在于人工错误(即操作复杂性)有可能在这样的环境中导致哪些问题。人工错误是配置问题的最根本原因之一—当安全管理员发现现在已经是凌晨2点了,而自己还在对某个问题进行排错时,尤其容易出现这类错误。
虽然图1-4所示的设计可能看上去很简单,但实际上这种设计却给操作带来了不必要的困难。因为该例中防火墙和其直连交换机上的配置过于复杂,也太容易受到操作者的错误影响,以至于哪怕最微不足道的错误也会使整个安全部署受到威胁。
为解决这个问题,应该创建一个如图1-5所示的网络,尽管从拓扑的角度上,这个网络乍一看要复杂得多。
图1-5所示的拓扑在实现时既容易理解,也不会犯错。尽管这个网络包含了更多的设备,看上去也不如图1-4所示的例子“优雅”,但是通信的路径、网络中哪些部分安全哪些部分不安全一目了然,同时各个区域之间都进行了安全隔离。在这个改进的设计中,出站Internet的访问由一台防火墙进行处理,入站的虚拟专用网(Virtual Private Network,VPN)访问则由连接了VPN设备的另一台防火墙处理。另外,这个拓扑为每个VLAN部署了独立的交换机,而不是在同一个交换机上划分多个VLAN。此时最重要的是,访问规则和需要修改的配置更加简单。
为确保操作简单,你必须时常评估自己所能接受的复杂程度,确保你的安全系统既易于部署又容易维护。通过本书,我提供了许多用于安全网络体系结构的替代设计。有时,虽然我们为了解决一些难题,而不得不把拓扑设计得相对复杂一些,但一切设计都应该朝着简化的方向努力,不仅要让它们易于设计、易于实施,最重要的是,要让设计易于操作。