当前位置:首页>Linux>一招教会,Linux 服务器入侵溯源

一招教会,Linux 服务器入侵溯源

  • 2026-10-26 05:51:24
一招教会,Linux 服务器入侵溯源
服务器遭入侵时,必须迅速行动、冷静处置——锁定异常登录、追踪入侵源头、切断攻击路径,是控制局面的关键三步。本文将基于 Linux 常见的日志工具与排查流程,系统梳理如何快速分析登录历史、定位可疑 IP、实施紧急封堵,为运维人员与开发者提供一份直指实操的应急响应指南。
1. 查看失败登录尝试(lastb 命令)
lastb 可以查看系统所有登录失败的尝试,一般暴力破解的痕迹会出现此。
lastb | head -n 20   # 查看最近 20 次登录失败
若某个 IP 连续多次失败记录,则可能在尝试暴力破解:
    banned ssh:notty 103.20.45.89 Thu Apr 11 09:50 - 09:51 (00:01)
    2. 查看最近的登录记录(last 命令)
    使用 last 命令查看系统的登录历史,了解有哪些用户何时、从哪里登录了系统。
    last -n 20 # 查看最近 20 条登录记录
    last -f /var/log/wtmp # 指定登录日志文件(默认也是 wtmp)
    重点观察:
    • 用户名(如:root、admin、陌生账号等)
    • 登录时间(是否是凌晨、非工作时间等异常时段)
    • 登录来源 IP
    • 登录方式(如 SSH pts/X)
    示例输出:
    root pts/0 192.168.1.101 Thu Apr 11 10:15 still logged in
    hacker pts/1 20.76.100.89 Thu Apr 11 09:55 - 10:05 (00:10)
    如发现陌生账号或外部 IP 登录记录,极有可能是入侵痕迹。

    3. 检查 SSH 登录日志(/var/log/secure 或 /var/log/auth.log)
    3.1 查找登录成功记录
    grep "Accepted" /var/log/secure # CentOS/ RHEL
    grep "Accepted" /var/log/auth.log # Ubuntu/Debian
    示例输出:
      Apr 11 10:15:00 server sshd[1234]: Accepted password for root from 45.76.123.89 port 45678 ssh2

      3.2 查找登录失败记录

      grep "Failed password" /var/log/secure
      grep "Failed password" /var/log/auth.log
      3.3 查找 root 用户远程登录
        grep "session opened" /var/log/secure | grep "root"
        4. 查看当前在线用户(who / w)
          who
          w

          示例输出中如发现陌生用户名(如 hacker、test1234),说明系统已被控制。
          5. 检查 SSH 配置是否被篡改
          入侵者可能会修改 SSH 配置,放宽登录条件。

          cat /etc/ssh/sshd_config | grep PermitRootLogin
          建议设置为:
          PermitRootLogin no
          并修改默认端口,避免暴力扫描。
          6. 查看用户执行命令历史(.bash_history)
          cat ~/.bash_history | tail -n 50
          重点查找:
          • wget 或 curl 下载恶意脚本
          • chmod 777、./xxx 执行权限提升命令
          • 添加用户、植入后门的脚本
          7. 追踪可疑 IP 来源(whois / ping)

          例:
          whois 20.76.100.89
          ping -c 4 20.76.100.89
          还可以使用 AbuseIPDB 检查是否为恶意 IP:
            curl -s https://api.abuseipdb.com/api/v2/check?ipAddress=45.76.123.89
            8. 应急处理建议
            8.1 封禁可疑 IP
            iptables -A INPUT -s 20.76.100.89 -j DROP
            firewall-cmd --add-rich-rule='rule family="ipv4" source address="45.76.123.89" reject' --permanent
            fail2ban-client set sshd banip 45.76.123.89
            8.2 修改 SSH 配置
              vim /etc/ssh/sshd_config
              # 推荐配置
                Port 2222
                PermitRootLogin no
                systemctl restart sshd
                8.3 强制踢出可疑用户
                  pkill -u hacker
                  8.4 锁定高危账户
                    usermod -L hacker
                    8.5 更改所有密码
                      passwd root
                      8.6 更新系统与安全补丁
                        yum update -y  # CentOS
                        apt update && apt upgrade -y  # Ubuntu/Debian
                        9. 总结与建议
                               当发现服务器被入侵,第一步不是重装系统,而是排查入侵路径和清除隐患。通过 last、lastb、grep、w、bash_history 等常用命令,我们可以快速定位登录来源,分析入侵行为。
                               当然,如果系统已被完全控制,建议直接备份数据后重装系统,并使用如 雪花云这类稳定服务器平台重新部署,同时强化如下措施:
                        • 禁止 root 远程登录
                        • 使用非默认 SSH 端口
                        • 启用 fail2ban、防火墙策略
                        • 使用密钥登录替代密码登录
                        • 定期审计登录日志和账户活动

                        最新文章

                        随机文章