时尚

linux常见漏洞解决办法

时间:2010-12-5 17:23:32  作者:百科   来源:热点  查看:  评论:0
内容摘要:```html Linux常见漏洞解决办法 body { font-family: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-se

```html Linux常见漏洞解决办法

Linux常见漏洞解决办法

上周帮朋友处理一台被挖矿的服务器,SSH端口开着22,洞解root密码是见漏决办admin123,cron里被塞了三个恶意脚本。洞解这种事我每年至少碰到五六回。见漏决办Linux漏洞利用往往不是洞解多高深的技术,而是见漏决办基础配置的疏忽。下面直接说几个高频漏洞和对应的洞解处理办法,全是见漏决办实战里踩过的坑。

1. SSH暴力破解与弱口令

这是洞解最老套也最有效的攻击方式。我见过一台机器日志里/var/log/secure有几十万条失败登录记录,见漏决办攻击者用字典跑了一个月。洞解解决办法就三件事:

  • 改默认端口。见漏决办22换成22222之类,洞解能过滤掉90%的见漏决办自动化扫描。别抬杠说端口扫描也能发现,脚本小子没那个耐心。
  • 禁用密码登录,用密钥。在/etc/ssh/sshd_config里设PasswordAuthentication no,然后重启sshd。
  • 装fail2ban。它监控日志,连续失败几次就自动封IP。配置/etc/fail2ban/jail.local,把maxretry设为3,bantime设3600秒。
# 快速检查当前失败登录次数 grep "Failed password" /var/log/auth.log | wc -l

如果输出数字超过100,你的机器已经在被持续攻击了。别犹豫,立刻改配置。

2. 内核提权漏洞(如Dirty Pipe、PwnKit)

2022年的Dirty Pipe(CVE-2022-0847)影响Linux 5.8以上内核,普通用户能覆写只读文件提权到root。PwnKit(CVE-2021-4034)更狠,pkexec默认装在所有主流发行版上,一条命令就能拿root。补丁出来那周,我连夜给手头十几台机器跑了更新。

处理方式:

  • 立刻uname -r看内核版本。5.16.11以下且大于5.8的,赶紧升级。
  • Debian/Ubuntu:apt update && apt upgrade linux-image-$(uname -r),然后重启。
  • CentOS/RHEL:yum update kernel,重启后grub2-set-default选新内核。
  • 检查pkexec是否被利用:ls -l /usr/bin/pkexec,如果权限是rwsr-xr-x且没打补丁,临时chmod 0755 /usr/bin/pkexec去掉suid位。
注意:升级内核后必须重启,kexec之类的热补丁方案对提权漏洞不一定有效。别偷懒。

3. 配置错误:SUID/SGID滥用与计划任务

提权里最容易被忽略的是SUID文件。攻击者找到find / -perm -4000 -type f 2>/dev/null列出的可执行文件,只要有一个存在漏洞(比如老版本sudo、passwd),就能直接root。我习惯每季度跑一次这个命令,对照白名单删掉不必要的SUID位。

计划任务也是重灾区。/etc/cron.d/下多出陌生文件、/var/spool/cron/里用户crontab被改,都是入侵信号。用crontab -l和ls -la /etc/cron*定期检查。发现可疑脚本,先cat看内容,再chattr +i锁住文件防止被改回。

# 找出最近7天被修改过的计划任务文件 find /etc/cron* /var/spool/cron -mtime -7 -type f -exec ls -la { } \;

4. 服务暴露与未授权访问

Redis默认无密码、MongoDB监听0.0.0.0、Docker API开2375端口——这三个凑一块能直接让攻击者控制宿主机。去年有个客户,Redis绑在公网,攻击者写SSH公钥到/root/.ssh/authorized_keys,五分钟就登录进来了。

对策简单粗暴:

  • Redis:bind 127.0.0.1 + requirepass 强密码,或者干脆用rename-command CONFIG ""禁用危险命令。
  • MongoDB:启用认证security.authorization: enabled,别用默认端口27017。
  • Docker:dockerd -H unix:///var/run/docker.sock,别监听TCP。要远程管理就用SSH隧道。
  • 用ss -tlnp看监听端口,发现0.0.0.0:*的非必要服务,立刻改配置或防火墙封掉。

我自己的习惯是装完系统先iptables -P INPUT DROP,然后按需放行。虽然粗暴,但省心。


漏洞利用和修补就是猫鼠游戏。上面这些办法不复杂,关键在定期执行。我见过太多人补丁打完就不管了,三个月后同一个漏洞又被利用。设个日历提醒,每月花半小时跑一遍检查脚本,比出事后再救火划算得多。

最后说个真实案例:有台机器被入侵后,攻击者留了/usr/bin/curl的替换版本,每次curl都会上报数据。用rpm -Va或debsums校验文件完整性才发现的。所以,别只盯着网络层,系统文件完整性也得查。

```
最近更新
热门排行
copyright © 2026 powered by 烟消火灭网   sitemap