禁用不必要的打印服务和蓝牙驱动可有效精简服务器攻击面。Linux服务器通常无需CUPS和BlueZ,二者易引入漏洞(如CUPS远程代码执行、BlueZ权限提升),应通过systemctl停用并禁用自启,卸载相关包,并屏蔽内核模块;操作后需验证端口释放、进程退出、模块未加载,防火墙也应显式拒绝相关端口。

禁用不必要的打印服务和蓝牙驱动,是精简服务器攻击面的有效手段。Linux 服务器通常无需打印功能和蓝牙支持,这两类服务若保持启用状态,不仅占用系统资源,还可能引入未修复的漏洞(如 CUPS 远程代码执行、BlueZ 权限提升等),成为攻击入口。
确认并停止打印服务(CUPS)
大多数 Linux 发行版默认安装 CUPS(Common Unix Printing System),即使无打印机也常驻运行。
- 检查状态:
systemctl is-active cups或sudo ss -tlnp | grep :631(CUPS 默认监听 631 端口) - 临时停用:
sudo systemctl stop cups - 永久禁用(防止开机自启):
sudo systemctl disable cups cups-browsed - 可选:彻底卸载(若确认完全不需要):
sudo apt purge cups cups-core-drivers(Debian/Ubuntu)或sudo dnf remove cups(RHEL/CentOS/Fedora)
禁用蓝牙子系统(BlueZ)
服务器环境极少使用蓝牙,BlueZ 守护进程(bluetoothd)及其内核模块存在历史漏洞(如 CVE-2020-0543、CVE-2023-25187),应主动关闭。
- 停止服务:
sudo systemctl stop bluetooth - 禁用自启:
sudo systemctl disable bluetooth - 屏蔽服务(更强约束,阻止手动启动):
sudo systemctl mask bluetooth - 卸载 BlueZ 包(推荐):
sudo apt purge bluez或sudo dnf remove bluez - 禁用内核蓝牙模块(防止加载):
创建/etc/modprobe.d/disable-bluetooth.conf,写入:blacklist btusbblacklist bluetoothblacklist btrtlblacklist btbcmblacklist btintel
执行sudo update-initramfs -u(Debian/Ubuntu)或sudo dracut -f(RHEL/Fedora)更新 initramfs
验证与加固效果
操作后需确认服务已退出、端口已释放、模块未加载,并防止意外恢复。
- 检查端口:
sudo ss -tln | grep :631(应无输出) - 检查进程:
ps aux | grep -i 'cups\|bluetooth'(不应有活跃进程) - 检查模块:
lsmod | grep -i 'bt\|bluetooth\|usblp'(应为空) - 审计启动项:
systemctl list-unit-files --state=enabled | grep -E 'cups|bluetooth'(应无结果) - 补充建议:在防火墙中显式拒绝 631/TCP 和蓝牙相关协议端口(如 17/UDP for SDP),即便服务已停,可多一层防护
注意事项与例外场景
禁用前请确认业务无依赖,部分监控工具或旧管理脚本可能误调用 CUPS 接口;某些硬件管理模块(如 iDRAC、iLO 的串口重定向)不依赖蓝牙,但需留意 BMC 配置是否启用蓝牙代理(极罕见)。
- 容器化环境:若使用 Docker/Podman,确保宿主机禁用后,容器内也不挂载
/var/run/cups.sock或启用--device /dev/bluetooth - 云服务器:AWS EC2、Azure VM 等默认不启用蓝牙和 CUPS,但仍建议扫描确认,尤其自定义镜像可能包含这些组件
- 最小化安装系统(如 Alpine、CoreOS)通常默认不含二者,但升级后可能被间接引入,需定期检查


















