在 Oracle® Solaris 11.2 中确保网络安全

退出打印视图

更新时间: 2014 年 9 月
 
 

IPsec 服务、文件和命令

本节列出了 IPsec 服务、部分 IPsec RFC 以及与 IPsec 相关的文件和命令。

IPsec 服务

    服务管理工具 (Service Management Facility, SMF) 为 IPsec 提供以下服务:

  • svc:/network/ipsec/policy 服务-管理 IPsec 策略。缺省情况下,此服务处于启用状态。config_file 属性的值确定了 ipsecinit.conf 文件的位置。在运行 DefaultFixed 网络配置文件的系统上,初始值为 /etc/inet/ipsecinit.conf。在未运行此配置文件的系统上,属性值为空。

  • svc:/network/ipsec/ipsecalgs 服务-管理可用于 IPsec 的算法。缺省情况下,此服务处于启用状态。

  • svc:/network/ipsec/manual-key 服务-激活手动密钥管理。缺省情况下,此服务处于禁用状态。config_file 属性的值确定了 ipseckeys 配置文件的位置。初始值为 /etc/inet/secret/ipseckeys

  • svc:/network/ipsec/ike 服务-管理 IKE。缺省情况下,此服务处于禁用状态。有关可配置的属性,请参见IKEv2 服务IKEv1 服务

有关 SMF 的信息,请参见在 Oracle Solaris 11.2 中管理系统服务 中的第 1  章 服务管理工具简介。另请参见 smf(5)svcadm(1M)svccfg(1M) 手册页。

ipsecconf 命令

您可以使用 ipsecconf 命令为主机配置 IPsec 策略。当运行此命令来配置策略时,系统会在内核中创建 IPsec 策略项。系统使用这些项来检查所有传入和外发 IP 包的策略。未经过隧道传输和转发的包不受使用此命令添加的策略检查的约束。ipsecconf 命令还管理 security policy database, SPD(安全策略数据库)中的 IPsec 项。有关 IPsec 策略选项,请参见 ipsecconf(1M) 手册页。

您必须承担 root 角色才能调用 ipsecconf 命令。此命令可以配置保护双向通信的项,同时也可以配置仅保护单向通信的项。

具有本地地址和远程地址格式的策略项可以借助单个策略项保护双向通信。例如,如果没有为指定的主机指定方向,则包含模式 laddr host1raddr host2 的项会保护双向通信。因此,对于每台主机,只需一个策略项。

ipsecconf 命令添加的策略项在系统重新引导后不会保留。要确保在系统引导时 IPsec 策略处于活动状态,请向 /etc/inet/ipsecinit.conf 文件中添加相应策略项,然后刷新或启用 policy 服务。有关示例,请参见使用 IPsec 保护网络通信

ipsecinit.conf 配置文件

要在启动 Oracle Solaris 时启用 IPsec 安全策略,请创建一个配置文件以通过特定的 IPsec 策略项来初始化 IPsec。此文件的缺省名称为 /etc/inet/ipsecinit.conf。有关策略项及其格式的详细信息,请参见 ipsecconf(1M) 手册页。在配置策略后,可以使用 svcadm refresh ipsec/policy 命令刷新该策略。

ipsecinit.conf 文件样例

Oracle Solaris 软件中包括样例 IPsec 策略文件 ipsecinit.sample。您可以使用此文件作为模板来创建自己的 ipsecinit.conf 文件。ipsecinit.sample 文件包含以下示例:

...
# In the following simple example, outbound network traffic between the local
# host and a remote host will be encrypted. Inbound network traffic between
# these addresses is required to be encrypted as well.
#
# This example assumes that 10.0.0.1 is the IPv4 address of this host (laddr)
# and 10.0.0.2 is the IPv4 address of the remote host (raddr).
#

{laddr 10.0.0.1 raddr 10.0.0.2} ipsec
	{encr_algs aes encr_auth_algs sha256 sa shared}

# The policy syntax supports IPv4 and IPv6 addresses as well as symbolic names.
# Refer to the ipsecconf(1M) man page for warnings on using symbolic names and
# many more examples, configuration options and supported algorithms.
#
# This example assumes that 10.0.0.1 is the IPv4 address of this host (laddr)
# and 10.0.0.2 is the IPv4 address of the remote host (raddr).
#
# The remote host will also need an IPsec (and IKE) configuration that mirrors
# this one.
#
# The following line will allow ssh(1) traffic to pass without IPsec protection:

{lport 22 dir both} bypass {}

#
# {laddr 10.0.0.1 dir in} drop {}
#
# Uncommenting the above line will drop all network traffic to this host unless
# it matches the rules above. Leaving this rule commented out will allow
# network packets that do not match the above rules to pass up the IP
# network stack. ,,,
ipsecinit.confipsecconf 的安全注意事项

无法更改已建立连接的 IPsec 策略。其策略不能更改的套接字称为锁定的套接字。新策略项不保护已锁定的套接字。有关更多信息,请参见 connect(3SOCKET)accept(3SOCKET) 手册页。如果有疑虑,请重新启动连接。有关更多信息,请参见 ipsecconf(1M) 手册页的“安全”部分。

ipsecalgs 命令

加密框架为 IPsec 提供了验证和加密算法。ipsecalgs 命令可以列出每个 IPsec 协议支持的算法。ipsecalgs 配置存储在 /etc/inet/ipsecalgs 文件中。通常,此文件无需修改,并且绝不能直接编辑。然而,如果您需要修改此文件,请使用 ipsecalgs 命令。系统引导时会通过 svc:/network/ipsec/ipsecalgs:default 服务使支持的算法与内核同步。

有效的 IPsec 协议和算法由 RFC 2407 中介绍的 ISAKMP domain of interpretation, DOI(系统解释域)进行说明。具体而言,ISAKMP DOI 为有效的 IPsec 算法及其协议(PROTO_IPSEC_AHPROTO_IPSEC_ESP)定义命名约定和编号约定。每个算法都仅与一项协议相关联。这些 ISAKMP DOI 定义位于 /etc/inet/ipsecalgs 文件中。算法和协议编号由 Internet 编号分配机构 (Internet Assigned Numbers Authority, IANA) 定义。使用 ipsecalgs 命令,可以针对 IPsec 扩展算法列表。

有关算法的更多信息,请参阅 ipsecalgs(1M) 手册页。有关加密框架的更多信息,请参见在 Oracle Solaris 11.2 中管理加密和证书 中的第 1  章 加密框架

ipseckey 命令

带有各种选项的 ipseckey 命令可用来手动管理 IPsec 密钥。有关 ipseckey 命令的说明,请参见 ipseckey(1M) 手册页。

ipseckey 的安全注意事项

拥有 Network Security(网络安全)或 Network IPsec Management(网络 IPsec 管理)权限配置文件的角色可以使用 ipseckey 命令输入敏感的密钥加密信息。如果入侵者获得对此文件的访问权,便会威胁 IPsec 通信的安全。


注 -  如果可以,请使用 IKE 而非手动加密。

有关更多信息,请参见 ipseckey(1M) 手册页的“安全”部分。

kstat 命令

kstat 命令可以显示关于 ESP、AH 和其他 IPsec 数据的统计信息。对 IPsec 和 IKE 语义错误进行故障排除 中列出了与 IPsec 相关的选项。另请参见 kstat(1M) 手册页。

snoop 命令和 IPsec

snoop 命令可以解析 AH 头和 ESP 头。由于 ESP 对自己的数据进行加密,因此,snoop 命令不能查看受 ESP 保护的加密头。AH 不对数据进行加密,因此,可以使用 snoop 命令来检查受 AH 保护的通信。此命令的 –V 选项显示何时对包使用 AH。有关更多信息,请参见 snoop(1M) 手册页。

有关受保护包中的详细 snoop 输出样例,请参见如何检验包是否受 IPsec 保护

也可以使用第三方网络分析器,例如免费的开源软件 Wireshark,此发行版中已捆绑该软件。

IPsec RFC

    Internet 工程任务组 (Internet Engineering Task Force, IETF) 已经发布了许多介绍 IP 层安全体系结构的请求注解文档 (Requests for Comment, RFC)。有关指向 RFC 的链接,请参见 http://www.ietf.org/http://www.ietf.org/。以下 RFC 列表包含更为常见的 IP 安全参考信息:

  • RFC 2411,"IP Security Document Roadmap",1998 年 11 月

  • RFC 2401,"Security Architecture for the Internet Protocol",1998 年 11 月

  • RFC 2402,"IP Authentication Header",1998 年 11 月

  • RFC 2406,"IP Encapsulating Security Payload (ESP)",1998 年 11 月

  • RFC 2408,"Internet Security Association and Key Management Protocol (ISAKMP)",1998 年 11 月

  • RFC 2407,"The Internet IP Security Domain of Interpretation for ISAKMP",1998 年 11 月

  • RFC 2409,"The Internet Key Exchange (IKEv1)",1998 年 11 月

  • RFC 5996,"Internet Key Exchange Protocol Version 2 (IKEv2)",2010 年 9 月

  • RFC 3554,"On the Use of Stream Control Transmission Protocol (SCTP) with IPsec",2003 年 7 月