Linux系统安全加固需停用、禁用、卸载非必要服务:先用ss -tuln识别监听端口,重点关注0.0.0.0绑定项;再区分默认服务(如Avahi、CUPS)与业务必需服务;最后通过systemctl stop/disable及apt purge或dnf remove彻底卸载,并清理配置。

Linux系统默认开放的端口和服务往往成为安全薄弱点,尤其在生产环境中,未必要的服务若未关闭或卸载,可能带来远程利用风险。关键不是“扫出所有端口”,而是识别哪些端口对应非必要服务,并从根源移除——即停用、禁用、卸载三步到位。
一、快速识别当前监听端口及对应服务
使用 ss -tuln 或 netstat -tuln(需安装 net-tools)查看所有监听中的 TCP/UDP 端口:
- ss -tuln 更轻量,推荐优先使用;-t(TCP)、-u(UDP)、-l(监听中)、-n(不解析名称)
- 重点关注 0.0.0.0:端口号(表示对外网开放),而非仅 127.0.0.1:端口号(本地回环)
- 加 -p 参数(需 root 权限)可显示进程名和 PID:
sudo ss -tulpn
二、区分系统默认服务与业务必需服务
常见 Linux 发行版(如 Ubuntu/Debian、CentOS/RHEL)默认启用的服务包括:
- SSH(22/tcp):通常必须保留,但建议改端口、禁密码登录、配密钥
- Avahi(5353/udp):mDNS 服务,桌面环境常用,服务器上基本无用,可安全卸载
- CUPS(631/tcp):打印服务,无打印机需求时应关闭并卸载
- RPCbind(111/tcp&udp):NFS 相关,若未用 NFS,应禁用
- Postfix(25/tcp)或 Exim:邮件传输代理,除非自建邮件服务,否则属冗余
判断依据:查服务用途 + 看是否被业务调用(systemctl list-dependencies --reverse servicename)
三、彻底卸载非必要服务(以 systemd 为例)
卸载 ≠ 仅 stop/disable,要清除二进制、配置、依赖包:
- 停止服务:
sudo systemctl stop avahi-daemon - 禁止开机启动:
sudo systemctl disable avahi-daemon - 卸载软件包:
• Ubuntu/Debian:sudo apt purge avahi-daemon avahi-utils
• CentOS/RHEL 8+:sudo dnf remove avahi
• CentOS/RHEL 7:sudo yum remove avahi - 清理残留配置(可选但推荐):
sudo rm -rf /etc/avahi/ - 验证端口释放:
sudo ss -tuln | grep ':5353'应无输出
四、加固建议:减少默认攻击面
- 安装防火墙(如 ufw 或 firewalld),默认拒绝入站,仅放行明确需要的端口
- 禁用不需要的 systemd socket 单元(如
cups.socket、rpcbind.socket) - 定期执行
systemctl list-unit-files --state=enabled审计开机自启项 - 最小化安装系统:部署时选 “minimal install” 或 “server with no GUI”,避免桌面套件自带服务










