Linux如何查看网站是否遭受攻击?

Linux环境下,网站被攻击的迹象可能隐藏在日志、网络流量或系统进程中,通过系统化的排查方法可有效发现攻击行为,常见的攻击类型包括DDoS(分布式拒绝服务)、SQL注入、XSS跨站脚本、暴力破解、Webshell上传等,不同攻击类型需通过不同工具和日志进行分析,以下从日志分析、网络监控、安全工具、实时系统监控及WAF日志五个维度,详细介绍如何在Linux中查看网站被攻击的情况。

linux 如何查看 网站被攻击

系统日志分析:发现异常登录与操作痕迹

Linux系统日志记录了用户登录、命令执行、系统服务等关键信息,是排查攻击的基础。

系统认证日志

  • 文件位置

    • Ubuntu/Debian:/var/log/auth.log
    • CentOS/RHEL:/var/log/secure
  • 查看方法
    通过grep过滤登录失败、异常IP或非法命令,

    # 查看登录失败的IP和次数(统计前10个高频IP)
    grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
    # 查看非登录时间段的SSH连接(如凌晨3点后)
    grep "sshd.*Accepted" /var/log/auth.log | awk -F: '{print $2}' | awk '{print $2}' | sort | uniq -c | awk '$1>5{print}'

    若出现大量“Failed password”或来自陌生IP的“Accepted publickey”,可能存在暴力破解。

Web服务器日志

Web服务器日志(如Nginx的access.log、Apache的access_log)记录了所有HTTP请求,是发现SQL注入、XSS等攻击的核心。

  • Nginx日志分析

    # 过滤包含SQL注入特征的请求(如union、select、information_schema)
    grep -i "union.*select|select.*information_schema|or.*1.*=" /var/log/nginx/access.log
    # 统计访问频率最高的URL(发现异常路径扫描)
    awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20

    若日志中出现大量/admin.php/wp-config.php等敏感路径的扫描请求,或请求参数包含<script>UNION SELECT等恶意代码,可能存在Web攻击。

系统操作日志

  • 文件位置/var/log/messages(系统日志)、/var/log/secure安全日志
  • 关键操作:检查是否有异常用户创建(如useradd)、sudo权限滥用(sudo命令记录)或敏感文件修改(如/etc/passwd)。

表:Linux常见日志文件及作用
| 日志文件 | 作用 | 常见攻击痕迹 |
|——————|——————————-|—————————–|
| /var/log/auth.log | 记录用户登录认证(SSH、FTP等) | 暴力破解登录失败、异常IP登录 |
| /var/log/nginx/access.log | Nginx访问日志 | SQL注入、XSS、路径扫描请求 |
| /var/log/audit/audit.log | 审计日志(需开启auditd) | 文件篡改、权限提升、系统调用异常 |

网络流量监控:识别异常连接与DDoS攻击

攻击常伴随异常网络流量,可通过工具实时监控网络连接和数据包。

实时连接状态查看

  • 使用netstatss命令

    linux 如何查看 网站被攻击

    # 查看当前所有TCP连接(按连接数排序,发现异常IP)
    ss -tulnp | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10
    # 检查是否有异常端口监听(如非Web端口80/443开放了8080)
    netstat -tulnp | grep ":8080" | grep -v "nginx|apache"

    若出现大量来自同一IP的ESTABLISHED连接,或非业务端口被未知进程监听,可能存在DDoS或后门连接。

抓包分析异常流量

  • 使用tcpdump

    # 抓取80端口的HTTP请求,过滤GET/POST方法(发现CC攻击)
    tcpdump -i eth0 -nn port 80 -c 1000 | grep -i "GET|POST" | awk '{print $3}' | cut -d. -f1-4 | sort | uniq -c | sort -nr
    # 抓取异常数据包(如SYN Flood攻击特征)
    tcpdump -i eth0 -nn 'tcp[tcpflags] & (tcp-syn|tcp-rst|tcp-ack) != tcp-ack' -c 100

    若短时间内出现大量HTTP请求(如每秒上千次)或SYN包(未完成三次握手),可能存在DDoS/CC攻击。

带宽与进程流量监控

  • iftop/nethogs

    # 安装iftop(Ubuntu: apt install iftop; CentOS: yum install iftop)
    iftop -i eth0 -nNP  # 按IP查看实时带宽占用,发现异常流量IP
    # nethogs按进程查看网络占用(发现挖矿程序或后门进程)
    nethogs -t -c 5

安全工具应用:自动化检测与入侵响应

手动分析日志效率低,结合安全工具可提升检测精度。

Fail2ban:自动封禁恶意IP

基于日志分析自动封禁IP,适用于暴力破解、CC攻击等场景。

  • 配置示例(封禁SSH暴力破解):
    # /etc/fail2ban/jail.local
    [sshd]
    enabled = true
    port = 22
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime = 3600  # 封禁1小时

    执行fail2ban-client status sshd可查看封禁IP列表。

OSSEC:入侵检测与系统审计

开源主机入侵检测系统(HIDS),监控文件变更、登录异常、rootkit等。

  • 功能
    • 实时检测/var/www目录文件变更(如Webshell上传);
    • 告警异地登录或特权命令执行(如sudo su -)。

ELK Stack:日志集中分析

大型网站可通过Elasticsearch、Logstash、Kibana搭建日志分析平台,可视化攻击趋势:

  • Logstash:收集Nginx、系统日志至Elasticsearch;
  • Kibana:创建仪表盘,展示“TOP攻击IP”“恶意请求类型”等维度。

表:常用安全监控工具对比
| 工具名称 | 功能 | 适用场景 |
|————|——————————-|————————-|
| Fail2ban | 基于日志自动封禁IP | 暴力破解、CC攻击 |
| OSSEC | 主机入侵检测(文件/进程/日志) | Webshell、权限提升、rootkit |
| ELK Stack | 日志集中分析与可视化 | 大型网站攻击趋势分析 |

linux 如何查看 网站被攻击

实时系统监控:发现异常进程与资源占用

攻击者可能植入挖矿程序、后门进程,消耗系统资源或留下后门。

进程与资源监控

  • top/htop:按CPU/内存排序,发现异常进程(如命名为“python”“bash”但占用高资源);
  • ps aux:查看进程详情,过滤可疑命令(如/bin/bash -i反向shell、xmrig挖矿程序)。

定时任务与自启项检查

攻击者常通过crontab/etc/rc.local植入自启脚本:

# 查看当前用户crontab
crontab -l
# 检查系统级定时任务(如/etc/cron.hourly/下的异常脚本)
ls -la /etc/cron.hourly/ /etc/cron.daily/ | grep -v ".*.log$|.*.sh$"
# 查看开机自启(systemctl)
systemctl list-unit-files --state=enabled | grep -v "nginx|ssh|network"

Web应用防火墙(WAF)日志分析

若网站部署WAF(如ModSecurity、Naxsi),其日志可直接记录攻击详情。

  • ModSecurity日志(默认路径:/var/log/modsec_audit.log):
    # 过滤SQL注入规则匹配日志(如ModSecurity规则ID:981173)
    grep "981173" /var/log/modsec_audit.log | awk -F'"' '{print $8}' | cut -d? -f1 | sort | uniq -c

    日志中会包含攻击IP、请求URL、攻击载荷(如' OR 1=1--),可直接用于溯源和封禁。

Linux环境下查看网站被攻击需结合“日志分析-网络监控-安全工具-系统检查”多维度排查:优先查看auth.lognginx/access.log等基础日志,通过tcpdumpiftop分析流量异常,借助Fail2ban、OSSEC自动化检测,最后检查进程和自启项,定期备份日志、开启审计(如auditd)、部署WAF,可提升攻击发现效率,降低损失。

相关问答FAQs

Q1:如何区分正常访问流量和恶意攻击流量?
A:可通过以下特征区分:① 请求频率:正常用户访问间隔分散,攻击者(如DDoS)会在短时间内发起大量高频请求(如每秒>100次);② 请求路径:正常用户访问业务页面(如/home/product),攻击者常扫描敏感路径(/admin/wp-config.php.env);③ 请求参数:正常参数格式规范,攻击参数包含恶意代码(如<script>alert(1)</script>UNION SELECT、目录穿越);④ IP分布:正常访问来自多地区、多IP,攻击可能来自单一IP或代理池(如Tor出口节点)。

Q2:网站被攻击后如何快速定位攻击源IP?
A:定位攻击源IP需结合日志和流量分析:① Web服务器日志:通过awk提取高频访问IP(awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr),重点排查访问量异常的IP;② WAF/防火墙日志:若部署WAF(如ModSecurity),日志中会直接标记攻击IP及攻击类型;③ 流量抓包:用tcpdump抓取异常数据包(如SYN Flood),通过Wireshark分析源IP;④ Fail2ban封禁记录:执行fail2ban-client status [jail名]查看已封禁IP,定位后可通过whois查询IP归属(如阿里云IP库、APNIC),若为恶意IP,可在防火墙(如iptables)中添加封禁规则:iptables -I INPUT -s [攻击IP] -j DROP

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31837.html

(0)
酷番叔酷番叔
上一篇 2025年9月28日 15:50
下一篇 2025年9月28日 16:09

相关推荐

  • linux 编辑如何保存退出命令

    Linux 中,使用 vi 编辑器保存并退出的命令是 :wq

    2025年8月15日
    5100
  • Linux环境下如何彻底卸载JDK并清理所有残留配置文件?

    在Linux系统中卸载JDK(Java Development Kit)需要根据安装方式选择不同的方法,通常分为通过包管理器安装和手动编译安装两种情况,卸载前需确认当前JDK版本及安装路径,避免误删其他软件依赖的Java环境,以下是详细卸载步骤及注意事项,卸载前检查确认JDK版本执行以下命令查看当前系统安装的J……

    2025年8月29日
    5500
  • linux如何使用AT命令

    Linux 中,使用 at 命令安排任务需先确保 atd 服务运行,然后通过 `at [时间]

    2025年8月14日
    5000
  • 如何在Linux环境下进行汇编程序的编写与运行?

    在Linux上进行汇编开发,需要掌握汇编工具链的使用、基本语法以及与操作系统的交互方式,以下是详细步骤和注意事项:环境搭建首先需要安装汇编器和链接器,主流的Linux发行版通常使用NASM(Netwide Assembler)作为汇编器,ld作为链接器,以Ubuntu/Debian为例,可通过以下命令安装:su……

    2025年10月2日
    3600
  • Linux如何安全删除文件夹及内容?

    核心命令:rm 和 findrm 命令(推荐) rm -rf /path/to/directory-r(或 –recursive):递归删除目录及其内容,-f(或 –force):强制删除,忽略不存在的文件或警告,示例:删除 ~/Documents/old_projects 及其所有内容:rm -rf……

    2025年7月25日
    7500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信