A.2. IKE 配置

A.2.1. remote 指令
A.2.2. sainfo 指令
A.2.3. 示例 IKE 配置文件

Sun Ray Client 上 IPsec 所需的基本配置是 IKE 配置文件,该文件从 racoon.conf 文件派生。IKE 配置文件定义如何使用 racoon 守护进程在两台主机之间建立安全连接。对于 Sun Ray Software,只需要 IKE 配置文件中的一部分指令和语句。IKE 配置文件的完整文档在 racoon.conf 手册页中提供。

IKE 配置文件包含一组指令,每个指令包含一个关键字和一组参数。有些指令后面可以跟有一组嵌套的语句。IKE 配置文件必须存储在固件的简单文件系统/ike/default.conf 中。/ike 目录的使用符合包含文件的目录指示其类型或格式的策略。

Sun Ray IKE 配置文件只需要两个指令:

一般而言,可以有多个 remotesainfo 指令,并使用名称、地址或默认的 anonymous 关键字作为标签。但是对于 Sun Ray Software 实现,每种指令仅允许有一个。

以下指令不是必需的,但是支持这些指令以提供更高级的配置:

其他参数(例如各种辅助文件和端口的位置)都有固定值。

A.2.1. remote 指令

remote 指令指定 IKE 协商的参数。

支持以下语句。根据需要提供了特定的注意事项和限制。

  • ca_type-根证书类型(仅限 X509)和根证书文件名。

  • certificate_type-客户端证书类型(仅限 X509)、私钥文件名和证书文件名。

  • dpd-启用失效对等体检测 (Dead Peer Detection, DPD) 的开关。默认为打开状态。

  • dpd_delay-两次活跃度请求之间的时间。0 值禁用检查功能。默认值为 0。

  • dpd_maxfail-如果设置了 dpd_delay,则此语句设置在将对等体视为失效之前要请求的活跃度证明(无回复)的最大数量。默认值为 5。

  • dpd_retry-如果设置了 dpd_delay,此语句设置在将请求视为失败并发送另一个请求之前等待活跃度证明的延迟(单位为秒)。默认值为 5。

  • exchange_mode-要用作 IKE 启动器的交换模式。值:mainaggressivebaseaggressive 模式不受 Oracle Solaris 支持。

  • ike_frag-启用 IKE 分段的开关。

  • lifetime-建议的 IKE 生存期。

  • my_identifier-阶段 1 的 IKE 标识符的类型和值。支持以下标识符类型:

    • address-IP 地址。这是默认值,但是不适用于使用 DHCP 获取其地址的 Sun Ray Client。

    • asn1dn-ASN.1 标识名。如果未指定值,则从证书的 "Subject"(主题)字段中获取该值。

    • fqdn-完全限定域名。

    • keyid-任意字符串。

    • subnet-IP 子网。

    • user_fqdn-用户完全限定名称。

  • nat_traversal-启用 NAT 遍历的开关。

  • nonce_size-IKE 交换中使用的临时文件大小。默认值为 16 字节。

  • peers_certfile-本地存储的对等体证书类型(仅限 X509)和证书文件名。

  • peers_identifier-预期对等体标识符的类型和值。支持以下标识符类型:

    • address-IP 地址。这是默认选项。

    • asn1dn-ASN.1 标识名。如果未指定值,则从证书的 "Subject"(主题)字段中获取该值。

    • fqdn-完全限定域名。

    • keyid-任意字符串。

    • subnet-IP 子网。

    • user_fqdn-用户完全限定名称。

  • proposal-建议语句列表。仅允许使用一个建议语句。

    • authentication_method-指定使用的验证方法。值:pre_shared_keyrsasig

      验证模式为 pre_shared_key 时使用预共享密钥文件,该文件必须存储在固件的简单文件系统/preshared/keys 文件中。预共享密钥文件由包含 id 和密钥对(通过一些空格或制表符字符分隔)的行组成。以 "0x" 开头的密钥都解释为十六进制的字符串。所有引用的证书文件都必须存储在 /certs 目录中,而文件中提供的公钥/私钥对必须存储在 /keys 目录中。

    • dh_group-指定用于 Diffie-Hellman 求幂的组。值:modp768modp1024modp1536modp2048modp3072modp4096modp6144 或对应的 DH 组编号 1、2、5、14、15、16、17 或 18。

    • encryption_algorithm-指定用于阶段 1 协商的加密算法。值:aes3desnullaes 后面可以跟有密钥大小 128192256,使用空格分隔。

    • hash_algorithm-指定用于阶段 1 协商的散列算法。值:md5(已过时)、sha1sha256sha384sha512。Oracle Linux 5.8 和 Oracle Linux 6.3 不支持 sha384sha512 散列算法。

    • lifetime-指定 IKE 生存期。

  • remote_address-连接另一端的远程 IP 地址。

  • proposal_check-建议检查类型。值:claimexactobeystrict

  • send_cert-启用客户端证书发送的开关。默认为打开状态。

  • send_cr-启用证书请求发送的开关。默认为打开状态。

  • verify_cert-验证对等体证书的开关。默认为打开状态。

  • verify_identifier-启用 ID 和证书之间身份验证的开关。默认为关闭状态。

A.2.2. sainfo 指令

sainfo 指令用于指定创建用于保护关联通信流量的 IPsec 安全关联 (Security Association, SA) 时使用的安全参数。对于 Sun Ray Software,仅支持封装安全有效负荷 (Encapsulating Security Payload, ESP),而不支持验证头 (Authentication Header, AH) 协议。

不需要 Sun Ray Software 安全策略数据库 (Security Policy Database, SPD) 的完全实现,因为 Sun Ray Client 和其他对等体之间的通信仅需要选择一些开关,这些开关已包含在固件配置 GUI 的 IPsec 配置菜单中。

支持以下语句。根据需要提供了特定的注意事项和限制。

  • authentication_algorithm-指定逗号分隔的验证算法列表。值包括 hash_algorithm 值的 hmac 形式,例如 hmac_md5hmac_sha1hmac_sha256hmac_sha384hmac_sha512

  • encryption_algorithm-指定逗号分隔的可以在阶段 2 建议中使用的加密算法集。值:aes3desaes 值后面可以跟有密钥大小,例如 aes 256

  • lifetime-定义使用 IPsec SA 的时间有多长。

  • pfs_group-定义用于阶段 2 中的完全正向保密 (Perfect Forward Secrecy, PFS) 的组。相同的值用作 dh_group。如果忽略,则不使用 PFS。

  • sha2_trunc-将 SHA-2 散列的截断设置为 96 位(而非 RFC 4868 中指定的 128)的开关。这允许与具有此行为的某些 Oracle Linux 系统进行互操作。对 Oracle Linux 使用 sha256 散列算法时必须设置此项。

在阶段 2 协商期间生成的建议由 encryption_algorithmauthentication_algorithm 所有可能的组合组成。

A.2.3. 示例 IKE 配置文件

下面的示例 Sun Ray IKE 配置文件用于指定具有固定 IP 地址 (10.213.25.230) 的 Sun Ray Client 和使用预共享密钥的 Sun Ray 服务器 (10.213.21.43) 之间的连接。

remote address 10.213.21.43 {
        my_identifier address 10.213.25.230;
        exchange_mode main;
        proposal {
                authentication_method pre_shared_key;
                encryption_algorithm aes;
                hash_algorithm sha1;
                dh_group 2;
        }
        proposal_check claim;
}
sainfo address 10.213.25.230 address 10.213.21.43 {
        lifetime time 12 hour;
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
}
注意

如果为 exchange_mode 语句指定 main,则在使用预共享密钥时 IKE 连接的标识符必须为 IP 地址。

下面是用于基于证书的验证的另一个示例 Sun Ray IKE 配置文件。

remote anonymous {
        exchange_mode main;
        my_identifier asn1dn;
        ca_type x509 "cacert.pem";
        certificate_type x509 "mycert.pem" "mykey.pem";
        proposal {
                authentication_method rsasig;
                encryption_algorithm 3des;
                hash_algorithm md5;
                dh_group modp1024;
        }
        lifetime time 24 hour;
        proposal_check claim;
}
sainfo anonymous {
        authentication_algorithm hmac_sha1;
        encryption_algorithm aes;
        lifetime time 8 hour;
}