跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中保护网络安全 Oracle Solaris 11.1 Information Library (简体中文) |
以下任务列表列出了在管理 IPsec 时可能要执行的任务。
|
以下过程为如何使用 IPsec 保证两个系统之间的通信安全中的步骤 4 提供了加密材料。您要为两个系统(partym 和 enigma)生成密钥。您在一个系统上生成密钥,然后在两个系统中使用在第一个系统中生成的密钥。
开始之前
您必须位于全局区域中,才能手动管理非全局区域的加密材料。
您必须承担 root 角色。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
您需要将三个十六进制随机数用于外发通信,三个十六进制随机数用于传入通信。因此,一个系统需要生成以下数字:
两个作为 spi 关键字值的十六进制随机数。一个数字用于外发通信,一个数字用于传入通信。每个数字的长度最大可以为八个字符。
两个用于 AH 的 SHA-2 算法的十六进制随机数。每个数字的长度都必须为 512 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym。
两个用于 ESP 的 3DES 算法的十六进制随机数。每个数字的长度都必须为 168 个字符。一个数字用于 dst enigma,另一个数字用于 dst partym。
如果您的站点上有随机数生成器,请使用此生成器。
使用 pktool 命令,如《Oracle Solaris 11.1 管理:安全服务》中的"如何使用 pktool 命令生成对称密钥"和该节中的 IPsec 示例所示。
# ipseckeys - This file takes the file format documented in # ipseckey(1m). # Note that naming services might not be available when this file # loads, just like ipsecinit.conf. # # Backslashes indicate command continuation. # # for outbound packets on enigma add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg 3des \ auth_alg sha512 \ encrkey d41fb74470271826a8e7a80d343cc5aa... \ authkey e896f8df7f78d6cab36c94ccf293f031... # # for inbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg 3des \ auth_alg sha512 \ encrkey dd325c5c137fb4739a55c9b3a1747baa... \ authkey ad9ced7ad5f255c9a8605fba5eb4d2fd...
# chmod 400 /etc/inet/secret/ipseckeys
# ipseckey -c -f /etc/inet/secret/ipseckeys
注 - 两个系统上的加密材料必须完全相同。
# svcadm enable svc:/network/ipsec/manual-key:default
# svcadm refresh ipsec/manual-key
接下来的步骤
如果建立 IPsec 策略未完成,请返回到 IPsec 过程以启用或刷新 IPsec 策略。
如果您要使用 Oracle Solaris 的基于角色的访问控制 (role-based access control, RBAC) 功能来管理系统,请使用此过程提供网络管理角色或网络安全角色。
开始之前
您必须承担 root 角色才能创建和指定角色。一般用户可以列出并查看可用权限配置文件的内容。
% getent prof_attr | grep Network | more Console User:RO::Manage System as the Console User... Network Management:RO::Manage the host and network configuration... Network Autoconf Admin:RO::Manage Network Auto-Magic configuration via nwamd... Network Autoconf User:RO::Network Auto-Magic User... Network ILB:RO::Manage ILB configuration via ilbadm... Network LLDP:RO::Manage LLDP agents via lldpadm... Network VRRP:RO::Manage VRRP instances... Network Observability:RO::Allow access to observability devices... Network Security:RO::Manage network and host security...:profiles=Network Wifi Security,Network Link Security,Network IPsec Management... Network Wifi Management:RO::Manage wifi network configuration... Network Wifi Security:RO::Manage wifi network security... Network Link Security:RO::Manage network link security... Network IPsec Management:RO::Manage IPsec and IKE... System Administrator:RO::Can perform most non-security administrative tasks: profiles=...Network Management... Information Security:RO::Maintains MAC and DAC security policies: profiles=...Network Security...
Network Management(网络管理)配置文件是 System Administrator(系统管理员)配置文件的补充配置文件。如果您将 System Administrator(系统管理员)权限配置文件纳入角色,则此角色可以执行 Network Management(网络管理)配置文件中的命令。
% getent exec_attr | grep "Network Management" ... Network Management:solaris:cmd:::/sbin/dlstat:euid=dladm;egid=sys ... Network Management:solaris:cmd:::/usr/sbin/snoop:privs=net_observability Network Management:solaris:cmd:::/usr/sbin/spray:euid=0 ...
使用步骤 1 中的权限配置文件定义指导您做出决定。
要创建处理所有网络安全的角色,请使用 Network Security(网络安全)权限配置文件。
要创建只处理 IPsec 和 IKE 的角色,请使用 Network IPsec Management(网络 IPsec 管理)权限配置文件。
对于拥有除 Network Management(网络管理)配置文件外还拥有 Network Security(网络安全)或 Network IPsec Management(网络 IPsec 管理)权限配置文件的角色,除了可执行其他命令外,还可按相应的特权执行 ipadm、ipseckey 和 snoop 命令。
要创建该角色、将该角色指定给用户以及使用命名服务注册更改,请参见《Oracle Solaris 11.1 管理:安全服务》中的"初次配置 RBAC(任务列表)"。
示例 7-4 在角色之间划分网络安全职责
在此示例中,管理员要在两个角色之间划分网络安全职责。其中一个角色负责管理 Wifi 和链路安全,另一个角色负责管理 IPsec 和 IKE。为每个角色指定三个人,一人一班。
管理员创建的角色如下:
管理员将第一个角色命名为 LinkWifi。
管理员将 Network Wifi(网络 Wifi)、Network Link Security(网络链路安全)和 Network Management(网络管理)权限配置文件指定给该角色。
然后,管理员将 LinkWifi 角色指定给适当的用户。
管理员将第二个角色命名为 IPsec Administrator。
管理员将 Network IPsec Management(网络 IPsec 管理)和 Network Management(网络管理)权限配置文件指定给该角色。
然后,管理员将 IPsec Administrator(IPsec 管理员)角色指定给适当的用户。
以下步骤提供了最有可能针对 IPsec、IKE 和手动密钥管理使用 SMF 服务的情况。缺省情况下,policy 和 ipsecalgs 服务处于启用状态,而 ike 和 manual-key 服务处于禁用状态。
开始之前
您必须承担 root 角色。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
# svcadm refresh svc:/network/ipsec/policy
# svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf # svccfg -s policy listprop config/config_file config/config_file astring /etc/inet/MyIpsecinit.conf # svcadm refresh svc:/network/ipsec/policy # svcadm restart svc:/network/ipsec/policy
# svcadm enable svc:/network/ipsec/ike
# svcadm restart svc:/network/ipsec/ike:default
# svccfg -s ike setprop config/admin_privilege = astring: "modkeys" # svccfg -s ike listprop config/admin_privilege config/admin_privilege astring modkeys # svcadm refresh svc:/network/ipsec/ike # svcadm restart svc:/network/ipsec/ike
# svcadm disable svc:/network/ipsec/ike
# svcadm enable svc:/network/ipsec/manual-key:default
# svcadm refresh manual-key
# svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile # svccfg -s manual-key listprop config/config_file config/config_file astring /etc/inet/secret/MyIpseckeyfile # svcadm refresh svc:/network/ipsec/manual-key # svcadm restart svc:/network/ipsec/manual-key
# svcadm disable svc:/network/ipsec/manual-key
# svcadm refresh svc:/network/ipsec/ipsecalgs
故障排除
使用 svcs service 命令找到服务的状态。如果服务处于 maintenance 模式,请遵循 svcs -x service 命令输出的调试建议。
要检验包是否受到保护,请使用 snoop 命令来测试连接。以下前缀可以在 snoop 输出中显示:
AH: 前缀指明 AH 正在保护头。如果已使用 auth_alg 来保护通信,则会看到 AH:。
ESP: 前缀指明正在发送加密数据。如果已使用 encr_auth_alg 或 encr_alg 来保护通信,则会看到 ESP:。
开始之前
必须可以同时访问两个系统才能测试连接。
您必须承担 root 角色才能创建 snoop 输出。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
% su - Password: Type root password #
在 partym 上的一个终端窗口中,从 enigma 系统搜寻包。
# snoop -d net0 -v enigma Using device /dev/bge (promiscuous mode)
在另一个终端窗口中,远程登录到 enigma 系统。提供您的口令。然后,承担 root 角色并将包从 enigma 系统发送到 partym 系统。包应该由 snoop -v enigma 命令捕获。
% ssh enigma Password: Type your password % su - Password: Type root password # ping partym
在 partym 系统上,您应该看到在初始 IP 头信息之后显示 AH 和 ESP 信息的输出。类似以下内容的 AH 和 ESP 信息表明包正在受到保护:
IP: Time to live = 64 seconds/hops IP: Protocol = 51 (AH) IP: Header checksum = 4e0e IP: Source address = 192.168.116.16, enigma IP: Destination address = 192.168.13.213, partym IP: No options IP: AH: ----- Authentication Header ----- AH: AH: Next header = 50 (ESP) AH: AH length = 4 (24 bytes) AH: <Reserved field = 0x0> AH: SPI = 0xb3a8d714 AH: Replay = 52 AH: ICV = c653901433ef5a7d77c76eaa AH: ESP: ----- Encapsulating Security Payload ----- ESP: ESP: SPI = 0xd4f40a61 ESP: Replay = 52 ESP: ....ENCRYPTED DATA.... ETHER: ----- Ether Header ----- ...