在企业级Ubuntu服务器环境中,提升安全性的关键在于最小化攻击面和遵循最小权限原则。以下是建议关闭或调整的默认服务及安全实践:
一、网络服务类(根据实际需求调整)
-
SSH (
ssh.service)- 不关闭,但需强化配置:
- 禁用root登录 (
PermitRootLogin no) - 使用密钥认证,禁用密码登录
- 更改默认端口(非22)
- 限制IP访问(通过防火墙或
AllowUsers)
- 禁用root登录 (
- 不关闭,但需强化配置:
-
Avahi/mDNS (
avahi-daemon.service)- 建议关闭:除非内网需要零配置网络发现,否则可能泄露主机信息。
sudo systemctl disable avahi-daemon
- 建议关闭:除非内网需要零配置网络发现,否则可能泄露主机信息。
-
CUPS打印服务 (
cups.service)- 关闭:除非服务器用作打印服务器。
sudo systemctl disable cups
- 关闭:除非服务器用作打印服务器。
-
蓝牙服务 (
bluetooth.service)- 关闭:服务器通常无需蓝牙。
sudo systemctl disable bluetooth
- 关闭:服务器通常无需蓝牙。
二、系统与调试类
-
Snap Daemon (
snapd.service)- 若不使用Snap包管理,可关闭以减少后台进程:
sudo systemctl disable snapd
- 若不使用Snap包管理,可关闭以减少后台进程:
-
系统日志调试服务 (
systemd-networkd-wait-online.service)- 若无严格网络依赖,可禁用等待网络完全就绪:
sudo systemctl disable systemd-networkd-wait-online
- 若无严格网络依赖,可禁用等待网络完全就绪:
-
无人值守升级 (
unattended-upgrades.service)- 谨慎处理:建议启用并配置安全更新,但需监控日志。
三、包管理自动更新
- apt-daily (
apt-daily.service/timer)- 可禁用自动更新,改为手动控制更新计划:
sudo systemctl disable apt-daily.timer
- 可禁用自动更新,改为手动控制更新计划:
四、内核与硬件相关
-
内核模块自动加载
- 移除不必要的内核模块(如USB存储、无线驱动):
sudo echo "blacklist module_name" >> /etc/modprobe.d/blacklist.conf
- 移除不必要的内核模块(如USB存储、无线驱动):
-
硬件管理服务 (如
lvm2-monitor,mdmonitor)- 若无LVM/RAID需求,可关闭。
五、通用安全加固步骤
-
防火墙配置:
sudo ufw enable sudo ufw default deny incoming sudo ufw allow <必要端口> -
禁用不必要的SUID/SGID二进制文件:
find / -type f -perm /6000 -exec chmod a-s {} ; -
审计与监控:
- 启用
auditd日志审计。 - 安装入侵检测工具(如AIDE、rkhunter)。
- 启用
-
用户与权限:
- 删除默认非必要用户账户。
- 设置强密码策略和会话超时。
-
内核参数调优:
- 编辑
/etc/sysctl.conf,启用防SYN洪水、禁止IP转发等。
- 编辑
六、注意事项
- 测试环境验证:任何修改前需在测试环境验证,避免影响业务。
- 服务依赖检查:使用
systemctl list-dependencies确认服务依赖关系。 - 监控与日志:变更后监控系统日志(
journalctl)及服务状态。 - 定期更新:保持系统关键安全补丁更新。
推荐工具
- Lynis:自动化安全审计工具。
- OpenSCAP:合规性检查与加固。
通过以上步骤,可显著减少潜在攻击面,但需根据实际业务需求灵活调整。建议参考CIS Ubuntu Benchmark等安全基线进行系统化加固。
CLOUD技术笔记