服务器加固第一步是关闭不必要网络服务,需先用ss -tuln或netstat -tuln识别监听端口及进程,结合lsof确认服务名,再通过systemctl list-unit-files筛选含ftp、telnet等关键词的自启服务,针对性禁用telnet、ftp、rpcbind、avahi、cups等高风险服务,并验证端口关闭、防火墙收紧及依赖关系。

服务器系统加固的第一步,就是关闭所有不必要网络服务。这些服务一旦暴露在公网,极易成为攻击入口,哪怕本身没有高危漏洞,也可能因配置不当或版本老旧被利用。
识别当前运行的网络服务
先摸清家底,避免误关关键服务。常用命令如下:
- Linux(systemd):运行 sudo ss -tuln 或 sudo netstat -tuln 查看监听端口及对应进程
- 结合 sudo lsof -i -P -n | grep LISTEN 进一步确认服务名和所属用户
- 检查开机自启服务:sudo systemctl list-unit-files --type=service | grep enabled,重点关注名称含 ftp、telnet、rsh、rpcbind、avahi、cups 等的服务
常见需关闭的非必要服务示例
以下服务在绝大多数Web/应用服务器中无需启用,且历史漏洞多、风险高:
- Telnet(端口23):明文传输,已被SSH完全替代;禁用命令:sudo systemctl stop telnet.socket && sudo systemctl disable telnet.socket
- FTP(端口21):若无特殊需求,应停用vsftpd/proftpd;改用SFTP(基于SSH)传输文件
- RPCBind / NFS相关(端口111、2049等):除非明确提供NFS共享,否则关闭 rpcbind、nfs-server、nfs-lock
- Avahi-daemon(端口5353):用于局域网零配置发现,云服务器或生产环境通常无用,直接禁用
- CUPS(端口631):打印服务,在无打印机场景下可安全关闭
关闭服务后的验证与防护增强
关完不是终点,要确认效果并堵住残留风险:
- 再次执行 ss -tuln,确认目标端口已不再监听
- 使用本地或跳板机执行 nc -zv 服务器IP 端口号 验证外部是否仍可连接
- 配合防火墙收紧策略:即使服务已停,也建议用 ufw 或 firewalld 默认拒绝入站,仅放行业务必需端口(如80/443/22)
- 定期复查:新装软件可能悄悄启用服务(如某些监控代理、数据库工具),建议将端口扫描纳入运维巡检项
注意事项与例外处理
操作前务必确认服务用途,避免影响业务:
- 不要直接 kill 进程代替 systemctl stop —— 下次重启仍会拉起
- 某些服务由其他单元依赖启动(如 docker.socket 可能触发 docker.service),需检查依赖关系:systemctl list-dependencies --reverse 服务名
- 若使用云平台,注意安全组规则与系统级防火墙协同——关服务 + 收紧安全组,双保险更稳妥

















