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 下,可通过命令“useradd -m -g root [用户名]”创建用户,

    2025年8月10日
    3400
  • linux如何去掉大小写限制

    Linux 中,可通过修改 /etc/ssh/sshd_config 文件,

    2025年8月17日
    3000
  • Linux中如何覆盖原文件的操作步骤与方法是什么?

    在Linux操作系统中,覆盖原文件是指将新文件的内容或属性替换到已存在的目标文件上,这一操作在日常管理和系统维护中较为常见,但需谨慎处理以避免数据丢失,本文将详细说明Linux中覆盖原文件的多种方法、适用场景及注意事项,帮助用户安全高效地完成操作,Linux文件覆盖的基本概念文件覆盖的本质是“替换”,即通过特定……

    2025年10月6日
    1100
  • ARM架构如何运行Linux系统?

    ARM架构作为全球主流的处理器架构之一,凭借其低功耗、高性能和可扩展性特点,在嵌入式设备、移动终端、服务器等领域广泛应用,Linux系统作为开源操作系统,凭借其稳定性和灵活性,成为ARM平台的首选操作系统之一,ARM设备运行Linux系统涉及硬件基础、系统移植、启动流程和软件生态等多个环节,下面将详细解析这一过……

    2025年10月8日
    1200
  • Linux系统如何查毒?常用方法、工具及操作步骤详解?

    Linux系统以其稳定性和安全性著称,但并不意味着绝对免疫于病毒或恶意软件,随着Linux服务器在企业和个人环境中的广泛应用,针对Linux的恶意程序(如挖矿木马、勒索软件、Rootkit等)也逐渐增多,掌握Linux系统的查毒方法至关重要,本文将详细介绍Linux系统查毒的常用工具、手动检查方法、自动化防护策……

    2025年9月17日
    2100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信