ddos攻击的简单应急处理办法

2023-10-31

ddos攻击是一种非常常见的黑客攻击服务器手法

根据wiki的说法:

拒绝服务攻击(英语:denial-of-service attack,简称DoS攻击)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。

黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,称为分布式拒绝服务攻击(distributed denial-of-service attack,简称DDoS攻击)。

我们在面对ddos的时候,常用的防御办法有CDN,硬件防火墙,或者专业的安全软件。但是有时候我们的服务器被黑客发现了真实的后端IP,这时,服务器就要面对来自攻击方的直接洪水攻击,在没有专业防火墙和软件的情况下怎么办呢?

针对linux系统的本身安全防御能力,比如内核层面的防御参数,防火墙等,我们可以充分利用这些基础条件做一些临时的“救急防御”。

首先,我们需要对攻击的IP做出一定的识别,我们知道ddos的攻击特征是发送大量的模拟正常的请求,那就意味着一个ip会发送大量的请求,也就是会在服务器上建立多个连接,我们可通过如下命令找出连接数过多的IP。

netstat -unt |egrep -v "servers|Address|127.0.0.1"|awk '{print $5}'|awk -F: '{print $1}'|sort |uniq -c|sort -nr |awk '{if($1>100){print $2}}'

注意这里的关键最后的 if($1>100) 这个判断,可以按照你机器的实际情况来改变这个数值去查询,不一定要100,可以是你认为异常的重复数值。

这个命令的意思是找出那些重复连接数超过一定数量的IP,也就是可疑的IP。

如果对方攻击并不高级的话,IP数量应该就不会很多,这时我们可以手动通过将IP加进iptables的黑名单来拦截从此IP发来的攻击流量。

iptables命令如下:

iptables -A input -s 192.168.4.11 -j DROP

如果IP特别多呢?

也没有关系,我们写一个简单的for循环即可:

for i in $(netstat -unt |egrep -v "servers|Address|127.0.0.1"|awk '{print $5}'|awk -F: '{print $1}'|sort |uniq -c|sort -nr |awk '{if($1>100){print $2}}');do iptables -A input -s $i -j DROP;done

这样一个简单的操作就可以马上有效的拦截大部分攻击流量,但这并不能完全解决问题,我们最好还是安装专业的硬件防火墙设备或者专业的安全软件,使用CDN的时候也要小心不要暴露了后端服务器的真实地址。

另外,如果是nginx服务器的话也可以分析被攻击这段时间内的nginx访问日志中的IP来筛选出攻击者IP,方法类似。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ddos攻击的简单应急处理办法 的相关文章

  • 如何回忆上一个 bash 命令的参数?

    Bash 有没有办法回忆上一个命令的参数 我通常这样做vi file c其次是gcc file c Bash 有没有办法回忆上一个命令的参数 您可以使用 or 调用上一个命令的最后一个参数 Also Alt can be used to r
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 如何在 Ubuntu/Linux 发行版中安装 Tesseract-OCR 3.03?

    我和一个朋友有兴趣为 CV 项目训练 tesseract OCR 引擎 我们尝试使用一些包装器 例如 PyTesser 和 pyocr 但结果目前不如我们需要的那么准确 因此 我们希望尝试训练超立方体以更好地实现我们的目的 即识别食品标签上
  • Linux 上的“软/硬 nofile”是什么意思

    当我尝试在RedHat EL5上安装软件时 我得到了错误 软 硬nofile的期望值是4096 而默认值是1024 我设法增加了这个数字 但我不知道参数是什么 他们指的是软链接和硬链接吗 我改变的方法是 a 修改 etc security
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • 如何从 Linux 命令行确定 LCD 显示器是否打开

    如何通过 Linux 命令行判断计算机的显示器是否打开 关闭 我传统上认为显示器是仅输出的设备 但我注意到 Gnome 显示器首选项对话框具有 检测显示器 功能 这可以推广到确定显示器是否物理关闭吗 VESA DDC 连接是I2C http
  • %config(noreplace) 文件上出现意外的 RPM 冲突

    我正在创建我自己的RPM using rpmbuild My RPM 包含配置文件哪个应该永远不会被覆盖 即使 RPM 包含这些配置文件的新版本 为了存档这个 我用以下标签标记了它们 config noreplace opt mypacka
  • 有没有办法只安装mysql客户端(Linux)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有不需要安装整个mysql db安装包的Linux mysql命令行工具 我想做的是从服务器 1 应用程序服务器 执行将在服务器 2
  • 为什么 proc/ID/maps 有多个共享库条目

    我正在查看嵌入式Linux下的proc ID maps 我注意到一些共享库在进程的内存映射中出现了几次 为什么会这样呢 40094000 400d9000 r xp 00000000 b3 09 723 system lib libc so

随机推荐

  • SpringBoot使用Driud连接数据库(仅配置测试连接,通过配置类方法配置)

    1 下载SpringBoot官网下载SpringBoot项目 start spring io 2 使用sts工具 通过导入maven项目 将下载好的项目导入 sts工具下载地址 https spring io tools 目录结构如下 3
  • 部署一个私人网站需要会用到什么工具?

    要部署私人网站 你可能需要学习以下工具 服务器操作系统 如 Ubuntu CentOS 等 你需要会在服务器上安装软件和维护系统 网络配置 你需要会进行网络配置 使得网站可以被外界访问 Web 服务器软件 如 Apache Nginx II
  • JavaScript数组reduce()方法详解及奇淫技巧

    一 前言 reduce 方法接收一个函数作为累加器 数组中的每个值 从左到右 开始缩减 最终计算为一个值 reduce 可以作为一个高阶函数 用于函数的 compose reduce 方法可以搞定的东西 for循环 或者forEach方法有
  • 【JAVA练习-----集合API】练习ArrayList 集合、Iterator 迭代器、foreach循环、HashSet的使用。

    实验十四 在项目中使用集合API 一 实验目的 练习Java集合API的使用 二 实验内容 练习ArrayList 集合 Iterator 迭代器 foreach循环 HashSet的使用 实验步骤如下 一 有 2 个 ArrayList
  • 匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的

    0x00 前言 由于工作繁忙所以距离上一篇博客已经过去一个多月的时间了 因此决心这个周末无论如何也得写点东西出来 既是总结也是分享 那么本文主要的内容集中在了委托的使用以及内部结构 当然还有事件了 但是受制于篇幅故分为两篇文章 以及结合一部
  • Win10/11等关闭自动更新 打开家庭版组策略编辑器最全整理

    目录 Win10添加组策略 Win11添加组策略方法 最后一种方法 补充 调出组策略后禁用更新 Win10添加组策略 一 打开记事本 粘贴以下代码段 echo off pushd dp0 dir b SystemRoot servicing
  • 《程序员》2008年第1期"算法擂台" - Cantor表解答

    Name Cantor Table Author blackboy S N P Date 08 01 08 23 08 Description Coded by Dev C 4 9 9 2 include lt stdio h gt inc
  • Ubuntu20.04修改root用户密码

    我们装完Ubuntu20 04之后 就需要设置下root用户的密码 先看看这张图 这是实际操作流程 具体操作如下 1 第一步 执行如下命令 设置密码 sudo passwd 2 第二步 输入当前用户的密码 3 第三步 输入root用户的密码
  • vue中el-tree实现单选复选框

    vue中el tree实现单选复选框 遇到的问题 使用vue的element框架时el tree时 当填入复选框时 不能单选父节点 解决办法 结合el tree属性的控制和js配合来实现单选父子节点 去掉父子节点的关联 监听checkbox
  • 关于多线程的经典案例~

    static修饰的成员叫 类成员 类属性 类方法 不加static修饰的成员 叫做 实例成员 实例属性 实例方法 一个Java程序中 一个类对象只存在一份 JVM保证的 进一步的也就保证了类的static成员也是只有一份的 类对象 就是 c
  • 【STM32】时钟系统及其结构原理

    目录 Stm32时钟系统 时钟系统结构总览 解析结构及时钟系统工作原理 1 系统时钟与时钟源 2 系统时钟与外设 RCC寄存器 1 作用 2 常用的五个寄存器 3 时钟源相关库函数 Stm32时钟系统 时钟相当于给各部件工作的一个统一节拍
  • python 混淆矩阵_PyCM-多分类性能评估神器-混淆矩阵

    今天在看调试程序的时候需要计算FPR false positive rate 之前的论文里用到了这个参数 但是之前的数据是二分类的 所以直接调用 sklearn的confusion matrix方法 二分类问题的confusion matr
  • 《MySQL实战45讲》读后笔记

    MySQL实战45讲 读后笔记 WAL MySQL 里经常说到的 WAL 技术 WAL 的全称是 Write Ahead Logging 它的关键点就是先写日志 再写磁盘 bin log MySQL的Server层的日志 binlog只能用
  • springboot整合redis、redisson

    文章目录 springboot整合redis redisson springboot整合redis 依赖 配置文件 配置类 配置解析 使用 使用redisson实现分布式锁 Redis其他知识内容 springboot整合redis red
  • C++ 异常处理学习笔记

    一 使用情况 1 数组越界 包括数组索引小于0 或者大于数组长度 2 空指针 可以抛出 throw 各种类型的异常 catch的地方接收就可以
  • C++之vector和迭代器

    vector的简单使用 1 2 3 4 5 6 7 8 9 10 11
  • 鲸鱼优化算法(WOA)

    一 基本原理 标准 WOA 模拟了座头鲸特有的搜索方法和围捕机制 主要包括 围捕猎物 气泡网捕食 搜索猎物三个重要阶段 WOA 中每个座头鲸的位置代表一个潜在解 通过在解空间中不断更新鲸鱼的位置 最终获得全局最优解 围捕猎物 气泡网捕食 搜
  • python共享单车数据分析_共享单车数据可视化分析(Python/Seaborn)

    项目数据来源于kaggle项目 Bike Share Demand 使用Python对数据进行了可视化分析 共享单车项目分析 页面 01 jpg 共享单车项目分析 页面 02 jpg 共享单车项目分析 页面 03 jpg 共享单车项目分析
  • 用`visibilitychange`事件实现吸睛的十八禁

    18禁 我知道你们都是看这图进来的 但是这个图跟下面的内容没有必然联系 前不久在网上找资料的时候突然发现某个页面的 title 是啥 18 禁 电影 在线观看 突然就心头一紧 是哪个页面咋还自动弹广告页 还是新标签页面打开的 当时我的表情就
  • ddos攻击的简单应急处理办法

    ddos攻击是一种非常常见的黑客攻击服务器手法 根据wiki的说法 拒绝服务攻击 英语 denial of service attack 简称DoS攻击 亦称洪水攻击 是一种网络攻击手法 其目的在于使目标电脑的网络或系统资源耗尽 使服务暂时