centos cobbler如何提升安全性
小樊
44
2025-12-31 06:18:30
CentOS 上 Cobbler 安全加固清单
一 网络与服务暴露面最小化
- 将 Cobbler 相关服务仅绑定在内网接口,避免从公网可达;在 /etc/cobbler/settings 中正确设置 server 与 next_server 为内网地址,减少误暴露风险。
- 通过 firewalld/iptables 仅放行必要流量:
- UDP 69(TFTP)、TCP 80/443(HTTP/HTTPS 管理/镜像分发)、TCP 25151(Cobbler API/同步),其余默认拒绝。
- 建议按源地址白名单限制,仅允许受管网段访问管理端口。
- 在 /etc/xinetd.d/tftp 中确保仅在内网接口监听,并限制访问来源;必要时将 TFTP 根目录与文件权限收紧。
- 避免“全开”策略,严禁为了省事直接关闭 SELinux 或 firewalld;如必须临时调试,完成后应立即恢复并采用最小放行原则。
二 身份与访问控制
- 强化 Web 与管理接口认证:
- 使用 htdigest 管理 /etc/cobbler/users.digest,为 Cobbler 域创建管理员与运维账号,避免长期使用默认凭据。
- 在 /etc/cobbler/modules.conf 选择认证后端(如 authn_configfile),必要时对接 LDAP 实现统一认证。
- 执行最小权限原则:
- 以 cobbler 用户运行服务,避免以 root 直接运行;通过 systemd 单元或启动脚本设置 User=cobbler/Group=cobbler。
- 关键目录与文件(如 /etc/cobbler、/var/lib/cobbler)权限建议设为 750,属主属组为 cobbler:cobbler。
- 加固 SSH 访问:
- 禁用 root 登录,使用 SSH 密钥 登录,限制可登录用户与来源网段。
- 加强 Kickstart 安全:
- 使用 openssl passwd -1 生成加密串,替换 /etc/cobbler/settings 中的 default_password_crypted,避免明文或弱口令流入镜像。
三 传输加密与引导安全
- 启用 TLS/SSL 保护 Web 与 API 访问(部署有效的服务器证书),对外仅开放 HTTPS,将 HTTP 重定向到 HTTPS。
- 保护 PXE 传输:
- 在内网启用 DHCP 动态更新 DNS 或使用静态租约,确保 next-server 指向受控的 TFTP 服务;
- 通过 MAC 白名单、GRUB 2/pxelinux 配置校验 等手段,限制可引导主机;
- 为 TFTP 传输的内核与 initrd 采用 HTTPS 分发或在隔离网络中传输,降低被篡改风险。
四 配置与补丁管理
- 基线加固:
- 完成 cobbler check 检查项,修正 server/next_server、TFTP 启用、引导文件 获取、rsync 服务等基础配置;
- 使用 cobbler sync 使配置变更生效,变更前先备份 /etc/cobbler 与 /var/lib/cobbler。
- 及时更新:
- 定期执行 yum update cobbler(及依赖),修复已知漏洞;变更窗口内评估对现有 Profile/System 的影响。
- 安全审计与扫描:
- 启用并定期审计 /var/log/cobbler/cobbler.log 与 journalctl -u cobblerd,关注失败登录、异常同步与配置变更;
- 使用 OpenVAS/Nessus 等定期扫描,验证端口、服务与配置合规性。
五 快速加固命令示例
- 防火墙仅放行必要端口(示例为内网 192.168.1.0/24):
- firewall-cmd --permanent --zone=internal --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“80” protocol=“tcp” accept’
- firewall-cmd --permanent --zone=internal --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“443” protocol=“tcp” accept’
- firewall-cmd --permanent --zone=internal --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“69” protocol=“udp” accept’
- firewall-cmd --permanent --zone=internal --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“25151” protocol=“tcp” accept’
- firewall-cmd --reload
- 设置强密码并替换默认密钥:
- openssl passwd -1 -salt “$(openssl rand -hex 4)” “YourStrongP@ssw0rd”
- 将输出写入 /etc/cobbler/settings 的 default_password_crypted
- Web 管理用户(示例创建管理员 admin):
- htdigest /etc/cobbler/users.digest “Cobbler” admin
- 权限与属主收紧:
- chown -R cobbler:cobbler /etc/cobbler /var/lib/cobbler
- chmod 750 /etc/cobbler /var/lib/cobbler
- 变更生效与验证:
- cobbler sync
- cobbler check
- systemctl restart cobblerd httpd