在上一篇文章中,我们了解了使用 IPSec协议来保护IP通信。
存储的实现趋势是采用诸如iSCSI这样的基于IP的方案,因此IP传输的安全性显得日益重要,目前在网络中还有不少程序使用明文传输,例如FTP, Telnet, POP3和IMAP。
在异构环境中,我们可以在应用层,如使用安全套接字层(Secure Sockets Layer,简称SSL),或者使用传输层安全性(Transport Layer Security,简称TLS),也可以在 IP层使用IPSec。本文旨在演示在 Windows 2003 Server下如何使用IPSec对通信进行加密。
我们知道"即开即用"(out of the box)的 IP不安全,但对不少应用来说,问题不大, 对于安全有要求的通信,就需要配置 IPSec。在Server 2003中使用IPSec很简单,但要设置适合的安全等级是有讲究的。
设置安全等级
一般来说,当用IPSec加密数据时,有四种可选安全策略:
阻塞传输:该策略让IPSec封锁来自从A计算机到B计算机所有传输。由接受系统丢弃传输数据。阻塞所有的传输数据的工作量很大,该策略不太常用。
加密传输:加密传输答应在计算机之间通信,但数据必须经过加密以防窃听,此时,IPSec使用封装安全负载(Encapsulating Security Payload,简称ESP)协议来加密数据,窃听到的数据表现为不可读的字节流。
签名传输:签名传输用来防止"中间人"攻击,用于数字签名的认证包头(Authentication Header,简称AH) 协议是在网络包的结尾添加一位,以验证数据在传输中是否被改变。
无需签名或者无需加密,答应未加改变地传输: 这是安全性的缺省设置。答应所有数据进行传输,无需验证数据完整性。
开发一个总体的IPSec安全性策略
一旦了解了IPSec的加密选项,下一步是开发总体的IPSec安全策略。同其他安全策略一样,IPSec安全策略也是一个平衡和折衷方案,即既要让让信息为大量用户访问,又要保护敏感信息不被窃取。
在安全界,对于标准的安全策略,与之对应的手段并没有精确的定义。安全策略的内容多种多样,取决于公司的策略和架构。下列的安全级别可作为规划 IPSec配置的基本准则:
最低程度的安全性:敏感数据不通过计算机网络传送,因此IPSec在缺省情况下关闭,在Server 2003中,可以选择关闭IPSec。
中等程度的安全性:当诸如数据库或者文件服务器这样的网络系统在传输或者保存敏感数据时,必须进行IPSec安全设置。但是,这些安全措施需要综合考虑,不能对日常工作造成影响。 Server 2003提供了缺省的加密数据的IPSec策略,不提倡对客户(仅仅响应)和服务器(请求安全)采用过分严格的安全措施。使用这些缺省的安全设计可以优化效率,且不会降低安全性。
高安全性:对于那些任何情况下都不能篡改或者添加的数据,需要使用高安全性策略。在一些场合中,对于缺省的IPSec安全设置,安全服务器将提供需要的安全等级。同没有配置IPSec的计算机进行通信是不安全,也是不答应的。
配置IPSec安全性
一旦确定了IPSec安全级别,下一步是配置IPSec安全性。IPSec策略配置是把安全需求转换为一个或者多项 IPSec策略, 且在可以在域级,或者公司级,和本地级进行设置。每项IPSec策略包含一条或者多条IPSec规则,每条IPSec规则包含一个过滤列表,过滤动作,认证方法以及连接类型。
过滤列表决定了受安全规则制约的IP流量类型,一旦过滤器被触发,就会采取过滤动作。过滤动作指明了对应于过滤列表中所标出的IP地址所采取的安全措施。 配置 IPSec 过滤动作时,有三种可选动作:
答应:IPSec安全策略中的答应选项是缺省值。数据包答应在网络中传输,无需 IPSec保护。
阻塞: 当使用阻塞过滤选项时, 网络中不答应运行满足相应的IP过滤条件的协议。
协商安全性:假如一项IPSec过滤条件得到匹配, 协商安全性选项可以让治理员设置对数据的加密算法。
IPSec规则的另外一个要害要素是认证,有三种不同的认证方法:
Kerberos - Kerberos v5常用于Windows Server 2003,是其缺省认证方式。 Kerberos能在域内进行安全协议认证,使用时,它既对用户的身份也对网络服务进行验证。Kerberos的优点是可以在 用户和服务器之间相互认证,也具有互操作性。Kerberos可以在 Server 2003的域和使用Kerberos 认证的UNix环境系统之间提供认证服务。
公钥证书 (PKI) - PKI用来对非受信域的成员,非Windows客户,或者没有运行Kerberos v5 认证协议的计算机进行认证,认证证书由一个作为证书机关(CA)系统签署。
预先共享密钥 -在预先共享密钥认证中,计算机系统必须认同在IPSec策略中使用的一个共享密钥 ,使用预先共享密钥仅当证书和Kerberos无法配置的场合。
预定义IPSec策略
正如前面提到的,IP传输规则 用来创建IPSec策略。Server 2003中包含三种预定义的可能会满足公司需要的IPSec策略,这些安全策略可以缺省方式工作,也可以修改为适合公司的非凡需要。
通过检查缺省的选项,且对照其设置,可以在创建安全策略时,更好地理解需要完成的工作。 缺省的 IPSec策略包括:客户(仅仅响应),服务器 (请求安全性),以及加密服务器(需要安全性)。
客户(仅仅响应)
在客户(仅仅响应)配置模式下,客户告诉Server 2003不使用缺省的IPSec选项。仅当另外一个系统或者网络设备请求它实现 IPSec策略时,才打开该功能。在该配置模式下,客户系统不会打开IPSec 安全选项,仅当出现外界的请求时,才使用 IPSec策略。
缺省的策略出自缺省的响应规则,该缺省的响应规则应用于数据流入流出的连接,缺省的配置设置为:
IP过滤列表(IP Filter List):
过滤动作(Filter Action): Default Response
认证(Authentication): Kerberos
隧道设置(Tunnel Setting):: None
连接类型(Connection Type):All
假如上面的缺省设置不能满足我们的需求,可以修改它们,或者创建新策略。例如,假如需要,我们可以把认证类型从Kerberos改为 PKI,或者我们可以 把连接类型从All改成LAN,或者仅答应远程访问。
服务器 (请求安全性)
服务器 (请求安全性)选项比客户选项提供了更多安全性。在该配置中,系统在初始时请求IPSec加密传输方式,但是假如其他系统不支持IPSec,也会采取折衷,并答应进行不安全的通信。此时,假如系统没有开启IPSec,整个通信不受保护。要了解该策略是如何制定的,需要仔细查看一下创建策略的规则。有三种规则:
规则 1:
IP过滤列表(IP Filter List):All IP Traffic
过滤动作(Filter Action): Request Security (Optional)
认证(Authentication): Kerberos
隧道设置(Tunnel Setting): None
连接类型(Connection Type):All
规则2:
IP过滤列表(IP Filter List): All ICMP Traffic
过滤动作(Filter Action): Permit
认证(Authentication): N/A
隧道设置(Tunnel Setting): None
连接类型(Connection Type): All
规则3 (与客户选项相同)
IP过滤列表(IP Filter List):
过滤动作(Filter Action): Default Response
认证(Authentication): Kerberos
隧道设置(Tunnel Setting):None
连接类型(Connection Type): All
加密服务器(需要安全性)
一旦开启,加密服务器(需要安全性)选项提供了最高级别的安全性。加密服务器策略 对所有采用IPSec策略传输的网络数据进行加密。该策略将拒绝所有来自非IPSec客户的数据包。该策略有一条规则需求对所有IP传输数据进行加密,但是注重该规则答应ICMP类型的传输数据,另外 缺省的响应规则类似于其他预定义策略。
规则1:
IP过滤列表(IP Filter List):All IP Traffic
过滤动作(Filter Action):Require Security
认证(Authentication):N/A
隧道设置(Tunnel Setting): None
连接类型(Connection Type):All
规则2:
P过滤列表(IP Filter List): All ICMP Traffic
过滤动作(Filter Action):Permit
认证(Authentication): Kerberos
隧道设置(Tunnel Setting) None
连接类型(Connection Type):All
规则 3 (与客户选项相同)
P过滤列表(IP Filter List):
过滤动作(Filter Action):Default Response
认证(Authentication):Kerberos
隧道设置(Tunnel Setting)None
连接类型(Connection Type):All
结论
通过检查这些预定义的Server 2003 策略的多种规则,我们现在对如何设计满足公司要求的安全策略有了更好的理解。使用规则来创建策略,可以让安全设计具有灵活性,可以让治理员设置用于IP数据传输的合适的安全级别。