5.3. 强化网络服务
系统管理员在 Red Hat Enterprise Linux 8 服务器上部署红帽 Ceph 存储集群。SELinux 默认是开启的,防火墙会阻止除 SSH 服务端口 22
之外的所有入站流量;但是,您需要确定系统确实是这样配置的,以确定没有打开未验证的端口或没有启用不需要的服务。
在每个服务器节点上,执行以下操作:
启动
firewalld
服务,启用它在引导时运行并确保它正在运行:systemctl enable firewalld systemctl start firewalld systemctl status firewalld
# systemctl enable firewalld # systemctl start firewalld # systemctl status firewalld
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取所有开放端口的清单。
firewall-cmd --list-all
# firewall-cmd --list-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在新安装中,
sources:
部分应为空,表示没有打开任何端口。services
部分应指示ssh
表示 SSH 服务(以及端口22
)和dhcpv6-client
已启用。sources: services: ssh dhcpv6-client
sources: services: ssh dhcpv6-client
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保 SELinux 正在运行并设置为
Enforcing
。getenforce
# getenforce Enforcing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 SELinux 为
Permissive
,则将其设置为Enforcing
模式。setenforce 1
# setenforce 1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 SELinux 没有运行,请启用它。请参阅红帽客户门户网站 的产品文档 Red Hat Enterprise Linux 产品文档中的 安全强化 指南中的使用 SELinux 指南。
每个 Ceph 守护进程使用一个或多个端口与 Red Hat Ceph Storage 集群中的其他守护进程通信。在某些情况下,您可以更改默认端口设置。管理员通常仅更改使用 Ceph 对象网关或 ceph-radosgw
守护进程的默认端口。
TCP/UDP 端口 | Daemon | 配置选项 |
---|---|---|
|
|
|
|
| N/A |
|
|
|
|
|
|
|
| N/A |
Ceph Storage 集群守护进程包括 ceph-mon
、ceph-mgr
和 ceph-osd
。这些守护进程及其主机组成了 Ceph 集群安全区,该区域应使用自己的子网来强化目的。
Ceph 客户端包括 ceph-radosgw
、ceph-mds
、ceph-fuse
、libcephfs
、rbd
、librbd
和 librados
。这些守护进程及其主机组成存储访问安全区,该区应使用自己的子网来强化目的。
在 Ceph Storage Cluster zone 主机上,请考虑仅启用运行 Ceph 客户端的主机来连接 Ceph Storage Cluster 守护进程。例如:
firewall-cmd --zone=<zone-name> --add-rich-rule="rule family="ipv4" \ source address="<ip-address>/<netmask>" port protocol="tcp" \ port="<port-number>" accept"
# firewall-cmd --zone=<zone-name> --add-rich-rule="rule family="ipv4" \
source address="<ip-address>/<netmask>" port protocol="tcp" \
port="<port-number>" accept"
将 <zone-name>
替换为区名称,<ipaddress>
替换为 IP 地址,<netmask>
替换为 CIDR 标记中的子网掩码,将 <port-number>
替换为端口号或范围。使用 --permanent
标志重复该过程,以便更改在重新引导后仍然有效。例如:
firewall-cmd --zone=<zone-name> --add-rich-rule="rule family="ipv4" \ source address="<ip-address>/<netmask>" port protocol="tcp" \ port="<port-number>" accept" --permanent
# firewall-cmd --zone=<zone-name> --add-rich-rule="rule family="ipv4" \
source address="<ip-address>/<netmask>" port protocol="tcp" \
port="<port-number>" accept" --permanent