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 AJP Connector 端口
Red Hat Certificate System Administration Guide 中的 Red Hat Certificate System User Interfaces 章节中描述的所有服务页面和接口都使用实例的 URL 和相应的端口号连接。例如:
https://server.example.com:8443/ca/ee/ca
https://server.example.com:8443/ca/ee/ca
要访问管理控制台,URL 指定 admin 端口:
pkiconsole https://server.example.com:8443/ca
pkiconsole https://server.example.com:8443/ca
所有代理和 admin 功能都需要 SSL/TLS 客户端身份验证。对于来自端实体的请求,证书系统侦听 SSL/TLS (加密)端口和非 SSL/TLS 端口。
端口在 server.xml
文件中定义。如果没有使用端口,可以在该文件中禁用它。例如:
<Service name="Catalina"> <!--Connector port="8080" ... /--> unused standard port <Connector port="8443" ... />
<Service name="Catalina">
<!--Connector port="8080" ... /--> unused standard port
<Connector port="8443" ... />
每当安装的一个新实例时,请确保新端口在主机系统上是唯一的。
要验证端口是否可用,请检查操作系统的适当文件。网络可访问的服务的端口号通常在名为 services
的文件中维护。在 Red Hat Enterprise Linux 上,通过运行命令 semanage port -l
列出当前具有 SELinux 上下文的所有端口,确认 SELinux 没有分配端口也很有帮助。
当创建新子系统实例时,1 到 65535 之间的任意数字都可以指定为安全端口号。