Red Hat Training

A Red Hat training course is available for RHEL 8

4.9. 使用密码保护 IPsec NSS 数据库

默认情况下,IPsec 服务在第一次启动时使用空密码创建其网络安全服务(NSS)数据库。使用以下命令添加密码保护。

注意

在 RHEL 6.6 和之前的版本中,您必须使用一个密码来保护 IPsec NSS 数据库,以满足 FIPS 140-2 标准的要求,因为 NSS 加密库是针对 FIPS 140-2 Level 2 标准认证的。在 RHEL 8 中,NIS 将 NSS 认证为标准级别 1,并且该状态不需要对数据库进行密码保护。

先决条件

  • /etc/ipsec.d 目录包含 NSS 数据库文件。

流程

  1. LibreswanNSS 数据库启用密码保护:

    # certutil -N -d sql:/etc/ipsec.d
    Enter Password or Pin for "NSS Certificate DB":
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    
    Enter new password:
  2. 创建包含您在上一步中设置的密码的 /etc/ipsec.d/nsspassword 文件,例如:

    # cat /etc/ipsec.d/nsspassword
    NSS Certificate DB:MyStrongPasswordHere

    请注意 , thensspassword 文件使用以下语法:

    token_1_name:the_password
    token_2_name:the_password

    默认 NSS 软件令牌是 NSS 证书 DB。如果您的系统以 FIPS 模式运行,则令牌的名称为 NSS FIPS 140-2 证书数据库

  3. 根据您的场景,在完成后启动或重启 ipsec 服务

    # systemctl restart ipsec

验证

  1. 检查 ipsec 服务在在其 NSS 数据库中添加非空密码后是否正在运行:

    # systemctl status ipsec
    ● ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec
       Loaded: loaded (/usr/lib/systemd/system/ipsec.service; enabled; vendor preset: disable>
       Active: active (running)...
  2. (可选)检查 Journal 日志是否包含确认成功初始化的条目:

    # journalctl -u ipsec
    ...
    pluto[23001]: NSS DB directory: sql:/etc/ipsec.d
    pluto[23001]: Initializing NSS
    pluto[23001]: Opening NSS database "sql:/etc/ipsec.d" read-only
    pluto[23001]: NSS Password from file "/etc/ipsec.d/nsspassword" for token "NSS Certificate DB" with length 20 passed to NSS
    pluto[23001]: NSS crypto library initialized
    ...

其它资源