Debian 环境下 Cobbler 的安全加固清单
一 基础加固与网络边界
- 最小化开放端口与暴露面:仅开放必要服务端口(如 TCP 80/443 用于 Web 与镜像分发,UDP 67/68 用于 DHCP,UDP 69 用于 TFTP)。在 Debian 上使用 UFW 或 nftables 实施白名单策略,限制管理网段访问。示例(UFW):ufw allow from 192.168.1.0/24 to any port 80,443,69,67,68 proto udp;其余默认拒绝。
- 服务最小权限与隔离:将 TFTP 运行在 xinetd 下并限制可访问目录;DHCP 若由 Cobbler 托管,确保仅监听内网接口;镜像仓库与 Web 根目录仅对必要用户与进程可读。
- 禁用不安全组件:除非必须,禁用 Telnet、明文 FTP 等协议;Web 管理端与镜像分发尽量使用 HTTPS。
二 身份与访问控制
- 强口令与默认口令整改:立即修改 Cobbler Web 管理员口令与系统默认 root 初始口令。生成 MD5 加密口令并写入 /etc/cobbler/settings 的 default_password_crypted,该口令将作为新装系统的 root 初始密码。示例:openssl passwd -1 -salt ‘randomsalt’ ‘YourStrongP@ssw0rd’;将输出写入 default_password_crypted 后执行 systemctl restart cobblerd。
- Web 认证方式:优先使用基于文件的 Digest 认证(修改 /etc/cobbler/modules.conf 的 authn 模块为 authn_configfile,使用 htdigest 创建用户)。如需更高安全,可结合反向代理或企业 SSO/LDAP 前置认证网关。
- 最小权限原则:仅授予运维人员必要的 Web 与 API 访问权限;定期审计 /etc/cobbler/users.digest 与 sudoers 配置。
三 服务与配置安全
- 关键参数校验与固化:在 /etc/cobbler/settings 中确保 server 与 next_server 均设置为可达的 IP/可解析主机名(不能为 127.0.0.1 或 localhost),否则 PXE/Kickstart 将不可用。
- 引导文件与加载器:执行 cobbler get-loaders 下载网络引导文件(如 pxelinux.0、menu.c32、elilo.efi、yaboot),确保 TFTP 目录与文件权限最小化,仅允许读取。
- DHCP 与模板管理:若由 Cobbler 托管 DHCP,在 /etc/cobbler/dhcp.template 中仅开放所需 subnet/range,设置 next-server=$next_server,并通过 cobbler sync 自动生成与分发配置,避免直接手工改动 /etc/dhcp/dhcpd.conf。
- 服务启用与自检:启用并开机自启 tftp、rsync、httpd、cobblerd;定期运行 cobbler check,按提示修复问题,变更后执行 cobbler sync 使配置生效。
四 Debian 仓库与镜像安全
- 安装与配置 debmirror:部署 Debian/Ubuntu 镜像需安装 debmirror,并按需调整 /etc/debmirror.conf(例如仅同步所需 sections/architectures),避免不必要数据拉取与泄露。
- 仓库与签名校验:启用 HTTPS 获取上游仓库元数据与内容;在客户端 apt 配置中启用 GPG 签名校验(默认已启用),确保镜像完整性与来源可信。
五 审计、备份与恢复
- 日志集中与留存:集中收集 /var/log/cobbler/、/var/log/apache2/、/var/log/syslog 等日志,设置合适的保留周期与远程日志转发;对 cobblerd、httpd、dhcpd、tftp 的异常与关键操作进行告警。
- 配置与镜像备份:定期备份 /etc/cobbler/(含 settings、modules.conf、users.digest、dhcp.template 等)与 /var/www/cobbler/(镜像与 ks 文件),并进行离线或异地存储;变更前先备份,变更后执行 cobbler check && cobbler sync 验证。
- 安全基线与演练:建立 Cobbler 安全基线(端口、账号、权限、模板、镜像源),定期演练恢复流程与应急响应(如被篡改、镜像被污染、口令泄露等场景)。