5.5. 规划网络和物理安全性
在部署任何证书系统子系统时,必须考虑子系统实例的物理和虚拟安全,因为子系统生成并存储的数据敏感度。
5.5.1. 考虑防火墙
在证书系统子系统中使用防火墙有两个注意事项:
- 保护敏感子系统不受未授权访问的影响
- 允许对防火墙外的其他子系统和客户端的适当访问
CA、KRA 和 TKS 始终放在防火墙中,因为它们包含关键信息,如果出现安全隐患,则可能导致它们被泄露。
TPS 和 OCSP 可以在防火墙外放置。同样,证书系统使用的其他服务和客户端可以在防火墙外的不同计算机上。在这种情况下,必须将本地网络配置为允许防火墙后面的子系统和它外的服务之间的访问。
LDAP 数据库可以位于不同的服务器上,即使位于不同的网络中,与使用它的子系统不同。在这种情况下,所有 LDAP 端口(默认情况下,LDAPS 的389
和 636
)都需要在防火墙中打开,以允许到目录服务的流量。如果没有访问 LDAP 数据库,所有子系统操作都可能会失败。
作为配置防火墙的一部分,如果启用了 iptables,则必须已经配置策略以允许通过适当的证书系统端口进行通信。使用和配置 firewalld 指南 中描述了配置 iptables。
5.5.2. 考虑物理安全和位置
由于其保存的敏感数据,请考虑将 CA、KRA 和 TKS 保留在具有足够物理访问限制的安全工具中。就像需要对系统的网络访问一样,还需要限制物理访问。
除了查找安全位置外,请考虑子系统代理和管理员的代理。例如,密钥恢复可能需要多个代理来提供批准;如果这些代理被分散到大型地理位置,则时间差异可能会对检索密钥的能力造成负面影响。根据管理子系统的代理和管理员的位置规划子系统的物理位置。
5.5.3. 规划端口
每个证书系统服务器使用最多四个端口:
- 用于不需要身份验证的最终实体服务的非安全 HTTP 端口
- 用于端点实体服务、代理服务、管理控制台和需要身份验证的 admin 服务的安全 HTTP 端口
- Tomcat 服务器管理端口
- Tomcat the Connector 端口
管理指南(Common Standard Edition) 的第 2 章 用户界面 中描述的所有服务页面和接口都使用实例的 URL 和相应的端口号连接到。例如:
https://server.example.com:8443/ca/ee/ca
要访问 admin 控制台,URL 指定 admin 端口:
# pkiconsole -d nssdb -n 'optional client cert nickname' https://server.example.com:8443/ca
所有代理和管理功能都需要 SSL/TLS 相互身份验证。对于来自最终实体的请求,证书系统同时侦听 SSL/TLS (加密)端口和非 SSL/TLS 端口。
端口在 server.xml
文件中定义。如果没有使用端口,则可以在该文件中禁用它。例如:
<Service name="Catalina"> <!--Connector port="8080" ... /--> unused standard port <Connector port="8443" ... />
每当安装新实例时,请确保新的端口在主机系统中是唯一的。
要验证端口是否可用,请检查适用于操作系统的适当文件。网络可访问的服务的端口号通常在名为 services
的文件中维护。在 Red Hat Enterprise Linux 上,通过运行命令 semanage port -l
列出当前具有 SELinux 上下文的所有端口,确认 SELinux 没有分配端口也很有帮助。
创建新子系统实例时,可以将 1 到 65535 之间的任何数字指定为安全端口号。
其他资源
- 有关访问目录服务器所需的端口的更多信息,请参阅 目录服务器安装指南中的相应部分。
-
有关使用
firewall-cmd
在系统上打开端口的详情,请参考 RHEL 文档中的 保护网络,或 firewall-cmd(1)手册页。https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/securing_networks/index#using-and-configuring-firewalld_securing-networks