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系统中,正确保存修改后的文件是日常操作中的关键环节,无论是通过命令行编辑器修改配置文件,还是在图形界面中编写代码,保存操作直接关系到数据的完整性和系统的稳定性,由于Linux环境下的编辑工具多样、操作场景复杂,掌握不同场景下的保存方法及注意事项至关重要,本文将详细解析Linux系统中各类文件修改后的……

    2025年9月21日
    17500
  • 如何极速定位Linux文件?

    基础语法解析find [搜索路径] [表达式] [操作]搜索路径:默认为当前目录(),可指定绝对路径(如/home)表达式:定义搜索条件(名称、类型、时间等)操作:对结果执行动作(如打印、删除)核心搜索表达式按名称/扩展名搜索find /var/log -name "*.log" # 搜索……

    2025年6月22日
    21400
  • Linux设备注册的实现步骤与流程是怎样的?

    Linux设备注册是驱动开发中的核心环节,其本质是将硬件设备抽象为Linux内核可管理的设备对象,并建立与驱动的关联,从而实现用户空间对设备的访问,整个过程依托Linux设备模型展开,涉及设备号分配、设备结构体初始化、设备添加到系统模型等多个步骤,以下从设备模型基础、字符设备注册流程、其他设备类型注册及注意事项……

    2025年10月5日
    15300
  • 如何用PE给电脑安装Linux系统并备份?

    使用PE(Preinstallation Environment)给电脑安装Linux系统并进行备份,是一种灵活且高效的方式,尤其适合需要在原系统基础上保留数据或进行多系统管理的用户,以下是详细操作步骤,涵盖准备工作、系统安装、备份方法及注意事项,准备工作在开始操作前,需确保工具齐全且数据安全,具体清单如下(可……

    2025年9月19日
    19000
  • 如何高效管理Linux计划任务?

    计划任务的类型Linux计划任务分为两类:周期性任务(cron):按固定周期(分钟/小时/天等)重复执行,一次性任务(at):在指定时间点运行一次,查看cron计划任务用户级任务(当前用户)命令: crontab -l # 查看当前用户的计划任务示例输出: 30 3 * * * /home/user/backu……

    2025年7月27日
    20000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信