应限制cockpit等web管理终端的远程访问,核心是“只让可信的人、在可信的网络、用可信的方式访问”;需从网络层(缩小监听地址、叠加防火墙策略)、认证层(强制tls、禁用密码登录)、配置层(禁用非必要插件、定期审计日志)三方面加固。

限制Cockpit等Web管理终端的远程访问,核心是“只让可信的人、在可信的网络、用可信的方式访问”。默认开启的Web管理界面(如Cockpit监听在端口9090)若直接暴露在公网或开放给所有内网IP,极易成为攻击入口。以下从网络层、认证层和配置层三方面给出切实可行的安全加固步骤。
限制监听地址与绑定范围
Cockpit默认可能监听0.0.0.0:9090,即接受所有网络接口的连接。应缩小监听范围,仅绑定到管理专用网卡或本地回环:
- 编辑Cockpit配置文件:
/etc/cockpit/cockpit.conf - 在
[WebService]节下添加:Listen=127.0.0.1:9090(仅本地访问)
或Listen=192.168.10.5:9090(仅指定管理网段IP) - 重启服务:
sudo systemctl restart cockpit
配合防火墙精确放行
即使已限制监听地址,仍建议叠加主机防火墙策略,实现双重过滤:
- 使用
firewalld(RHEL/CentOS/Fedora):sudo firewall-cmd --permanent --remove-service=cockpitsudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="9090" protocol="tcp" accept'sudo firewall-cmd --reload - 使用
iptables(较老系统):iptables -A INPUT -p tcp --dport 9090 -s 192.168.10.0/24 -j ACCEPTiptables -A INPUT -p tcp --dport 9090 -j DROP
强制启用TLS与强身份认证
禁用HTTP明文通信,且不依赖系统账户弱密码:
- 为Cockpit配置有效TLS证书(推荐使用Let’s Encrypt或企业PKI签发的证书),避免自签名证书带来的信任风险
- 禁用密码登录,改用SSH密钥+PAM或集成LDAP/OAuth2:
在/etc/cockpit/cockpit.conf中设置:[Authentication]<br>AllowUnencrypted=false<br>SessionIdleTimeout=900
- 可结合
pam_faillock防暴力破解,或启用cockpit-ws的IP白名单模块(需额外配置)
关闭非必要功能与定期审计
减少攻击面,提升纵深防御能力:
- 禁用不使用的插件(如
docker、podman等容器管理模块),编辑/etc/cockpit/plugins或卸载对应包 - 定期检查登录日志:
journalctl -u cockpit -n 100 --no-pager,关注异常IP、高频失败尝试 - 将Cockpit服务设为按需启动(非开机自启),仅在需要时手动启用:
sudo systemctl disable cockpit.socketsudo systemctl stop cockpit.socket










