Linux系统中易受攻击的常见服务与风险概览
一台面向互联网的Linux主机,它的攻击面究竟在哪里?简单来说,风险往往就潜伏在那些提供远程访问、数据交换和核心功能的组件里。无论是远程登录、文件共享,还是承载业务的Web与数据库服务,甚至是底层的容器与内核机制,都可能成为攻击者的突破口。下面,我们就将这些风险来源分门别类,梳理出典型服务及其防护要点,帮你快速定位问题并实施加固。
高风险服务清单与典型风险
| 服务 | 典型端口 | 常见风险 | 关键加固要点 |
|---|---|---|---|
| SSH | 22/TCP | 弱口令/暴力破解、旧版本漏洞、root 直登 | 禁用 root 登录、仅用密钥认证、限制登录尝试、改端口+防火墙、必要时用 Fail2ban |
| FTP / Telnet / Rlogin / Rsh | 21/TCP、23/TCP 等 | 明文传输被嗅探、暴力破解、弱认证 | 淘汰明文协议,改用 SFTP/FTPS 或 OpenSSH;不使用时关闭服务与端口 |
| Web 服务器(Apache/Nginx) | 80/TCP、443/TCP | 配置错误导致信息泄露、SQL 注入、XSS 等 | 隐藏版本信息(如 Nginx 的 server_tokens off)、及时打补丁、最小化权限与目录访问 |
| NFS | 依赖 rpcbind/mountd | 导出列表泄露(如 showmount -e)、访问控制不严、no_root_squash 导致提权 | 限制可访问网段、禁用/限制 rpcbind/mountd、避免 no_root_squash、最小共享 |
| CUPS(cups-browsed) | 631/TCP | 远程代码执行风险(历史问题) | 不需要时禁用 cups-browsed 与不必要的打印服务 |
| Redis | 6379/TCP | 未授权访问、写入 SSH 公钥、远程代码执行 | 启用强认证、绑定本地/白名单、禁用危险命令、开启防火墙 |
| MySQL / MariaDB | 3306/TCP | 弱口令/默认账户、UDF 提权、导入导出滥用 | 删除匿名/弱口令账户、限制网络访问、控制 secure_file_priv、及时升级 |
| PostgreSQL | 5432/TCP | 弱口令、滥用函数执行高权限操作 | 强认证、限制来源 IP、最小权限与函数白名单 |
| 容器与 Docker | 多种 | 特权容器、容器逃逸、内核共享风险 | 避免 –privileged、最小权限与能力限制、镜像与运行时加固、内核/组件更新 |
| 内核与特权机制 | 本地 | 本地提权(如脏牛 Dirty Cow、Dirty Pipe)、SUID/SGID 滥用、sudo 过度授权、LD_PRELOAD/LD_LIBRARY_PATH 劫持 | 及时更新内核、清理不必要的 SUID/SGID、收敛 sudo 权限、限制环境变量劫持路径 |
上面这张表里列出的风险和加固建议,可不是凭空想象。它们综合了业界多年的血泪教训和公开的实战资料,涵盖了从SSH弱口令暴力破解、到明文协议的数据裸奔风险,再到Web配置不当导致的信息泄露、NFS共享提权、乃至容器逃逸和内核本地提权等方方面面。可以说,这些都是需要优先关注的“高危地带”。
快速自查要点
道理都懂了,具体该怎么查?别急,这里有几个快速上手的命令,能帮你立刻摸清家底:
- 查看外网暴露与监听端口:
ss -tulpen | grep -E ‘(:22|:80|:443|:21|:23|:6379|:3306|:5432)’一眼看清关键端口是否在监听。 - 检查 SSH 安全配置:
grep -E ‘^(PermitRootLogin|PasswordAuthentication|Protocol|MaxAuthTries|AllowUsers)’ /etc/ssh/sshd_config核心安全选项尽在掌握。 - 排查明文与高风险服务:
systemctl is-active vsftpd telnet rsh如果发现这些“古董”协议还在运行,别犹豫,优先停用,用SFTP或SSH替代。 - 检查 NFS 暴露面:
showmount -e <本机IP>看看自己共享了些什么。如果不需要NFS,顺手把rpcbind、mountd这些相关服务也关掉。 - Web 信息泄露:
curl -I https://localhost/观察返回的Server头。对于Nginx,记得在配置里加上server_tokens off;来关闭版本显示。 - Redis/DB 未授权:
netstat -anp | grep -E ‘:(6379|3306|5432)’确认这些服务是否只监听在本地或可信白名单IP上,并且认证功能是否已开启。
加固优先级建议
发现问题了,先从哪里下手?安全加固讲究个轻重缓急,遵循下面的优先级顺序,能让你的工作事半功倍:
- 优先顺序:补丁与版本升级 > 关闭/替换明文与高风险服务 > 访问控制与防火墙 > 认证加固(密钥、强口令、MFA)> 最小权限与隔离(容器/内核能力/SELinux/apparmor)。这个顺序的核心思路是:先堵上已知的漏洞,再减少暴露面,最后层层加锁,实现深度防御。
- 远程登录:坚决禁用root直接登录,全面转向SSH密钥认证。同时,限制登录尝试次数和来源IP,在必要的情况下,可以引入Fail2ban或端口敲门(Port Knocking)这类工具增加一道防线。
- 文件传输与共享:是时候和FTP说再见了,用SFTP或FTPS彻底替代。对于NFS,务必严格限制访问来源和权限,那个危险的
no_root_squash选项能不用就不用。 - Web 与数据库:隐藏好你的版本信息,给漏洞修复争取时间。及时打补丁永远是第一要务。同时,遵循最小权限原则,做好网络隔离,并开启审计日志和异常告警,以便事后追溯和及时响应。
- 容器与内核:运行容器时,避免使用
–privileged特权模式。严格限制容器的能力和文件系统挂载。别忘了,容器安全的基础是宿主机安全,及时更新宿主机内核和容器运行时至关重要。
安全是一个持续的过程,而非一劳永逸的状态。以上提供的清单和要点,可以作为一个扎实的起点。如果你需要,完全可以基于你系统的实际服务清单,生成一份更具体的、可逐项执行的命令行核查与配置片段,让加固操作落到实处。
