服务器如何配置防火墙规则以阻止恶意流量和DDoS攻击?

防火墙是保护服务器免受恶意流量和 DDoS 攻击的第一道防线。通过合理配置防火墙规则,可以有效阻止恶意访问、限制不必要的流量,并减少攻击对服务器的影响。

以下是配置防火墙规则的全面指南,包括基础规则设置、防御 DDoS 攻击的高级策略和最佳实践。


1. 配置防火墙规则的基础方法

大多数服务器使用以下防火墙工具之一:

  • UFW(Uncomplicated Firewall):适用于 Ubuntu 等系统,简单易用。
  • iptables:功能强大,适用于更复杂的防火墙配置。
  • firewalld:适用于 CentOS/RHEL,支持动态防火墙规则。
  • 云提供商的防火墙:如 AWS、阿里云、腾讯云等自带的安全组。

1.1 基础防火墙规则配置

(1) 允许必要的端口
  • 常见端口

    • SSH(默认端口 22,建议更改为非标准端口)
    • HTTP(80)和 HTTPS(443)
    • 数据库端口(如 MySQL 的 3306,PostgreSQL 的 5432),建议限制来源 IP。
  • UFW 示例

    bash

    复制

    # 默认拒绝所有入站流量
    sudo ufw default deny incoming
    # 默认允许所有出站流量
    sudo ufw default allow outgoing# 允许 SSH
    sudo ufw allow 22
    # 允许 HTTP 和 HTTPS
    sudo ufw allow 80
    sudo ufw allow 443
    # 允许 MySQL,仅限特定 IP
    sudo ufw allow from 192.168.1.100 to any port 3306
    
  • iptables 示例

    bash

    复制

    # 清除现有规则
    sudo iptables -F# 默认策略:拒绝所有入站流量,允许出站流量
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT# 允许本地环回接口
    sudo iptables -A INPUT -i lo -j ACCEPT# 允许 SSH
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    # 允许 HTTP 和 HTTPS
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT# 允许特定 IP 访问 MySQL
    sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
    

(2) 阻止所有其他流量
  • UFW 默认已阻止所有未明确允许的流量。
  • iptables

    bash

    复制

    # 拒绝所有其他入站流量
    sudo iptables -A INPUT -j DROP
    

(3) 限制 SSH 登录的访问
  • 更改默认端口
    修改 /etc/ssh/sshd_config,将默认端口从 22 改为非标准端口(如 2222)。

    plaintext

    复制

    Port 2222
    

    重启 SSH 服务:

    bash

    复制

    sudo systemctl restart sshd
    
  • 限制 SSH 登录的 IP
    仅允许可信 IP 访问 SSH:

    bash

    复制

    sudo ufw allow from <trusted_ip> to any port 2222
    

2. 防御恶意流量的高级配置

2.1 阻止特定 IP 或 IP 段

  • 阻止单个 IP

    • UFW:

      bash

      复制

      sudo ufw deny from 192.168.1.101
      
    • iptables:

      bash

      复制

      sudo iptables -A INPUT -s 192.168.1.101 -j DROP
      
  • 阻止整个 IP 段

    • UFW:

      bash

      复制

      sudo ufw deny from 192.168.1.0/24
      
    • iptables:

      bash

      复制

      sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
      

2.2 限制每秒连接数(防止暴力破解)

  • 限制单个 IP 的连接请求速率
    • iptables 示例:

      bash

      复制

      sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
      sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
      
      解释
      • 每个 IP 在 60 秒内最多允许发起 5 次新的连接请求。

2.3 使用 Fail2Ban 防止暴力破解

Fail2Ban 是一个基于日志文件的防护工具,可以自动封禁多次失败登录尝试的 IP。

  • 安装 Fail2Ban

    bash

    复制

    sudo apt install fail2ban
    
  • 配置 SSH 防护
    编辑 /etc/fail2ban/jail.local

    plaintext

    复制

    [sshd]
    enabled = true
    port = 2222  # 如果更改了 SSH 端口,更新此处
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 5
    bantime = 3600
    
  • 启动服务

    bash

    复制

    sudo systemctl restart fail2ban
    

3. 防御 DDoS 攻击的高级策略

3.1 限制每秒请求数

  • iptables 示例
    限制每秒最多 10 个请求:

    bash

    复制

    sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/second --limit-burst 20 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j DROP
    

3.2 使用防火墙模块(如 iptables 的 conntrack 模块)

  • 限制单个 IP 的最大并发连接数:

    bash

    复制

    sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP
    
    解释
    • 单个 IP 同时最多允许 20 个连接请求。

3.3 使用云服务的 DDoS 防护

  • 如果您使用云服务器(如 AWS、阿里云、腾讯云),可以启用其提供的 DDoS 防护功能:
    • 阿里云:云盾 DDoS 基础防护。
    • 腾讯云:DDoS 高防 IP。
    • AWS:Shield Standard(免费)或 Shield Advanced(付费)。

3.4 启用 Web 应用防火墙(WAF)

WAF 是保护 Web 应用程序免受恶意访问和 DDoS 攻击的有效工具。

  • 推荐工具
    • Cloudflare(免费/付费)。
    • 阿里云 WAF。
    • ModSecurity(开源 WAF)。

4. 防火墙规则配置的最佳实践

  1. 最小化开放端口

    • 仅开放必要的端口,减少暴露面。
  2. 限制 SSH 访问

    • 使用非标准端口,并限制可信 IP 访问。
  3. 定期审查规则

    • 定期检查防火墙规则,清理过时或无效的规则。
  4. 启用日志记录

    • 确保防火墙记录所有被阻止的流量,以便分析潜在的攻击行为。
  5. 结合多层防护

    • 配置防火墙的同时,结合 Fail2Ban、WAF 和云服务的 DDoS 防护,形成多层次的安全防御。

5. 总结:如何配置防火墙规则以阻止恶意流量和 DDoS?

  1. 基础规则

    • 默认拒绝所有入站流量,仅允许必要端口。
    • 限制 SSH 访问,仅允许可信 IP。
  2. 高级策略

    • 设置速率限制,防止暴力破解和 DDoS 攻击。
    • 使用工具如 Fail2Ban 自动封禁恶意 IP。
  3. 云服务和 WAF

    • 利用云提供商的 DDoS 保护服务和 Web 应用防火墙,提升防御能力。

通过合理配置防火墙规则并结合多层防护,可以有效阻止恶意流量和 DDoS 攻击,确保服务器的安全和稳定运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87995.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87995.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

持续性投入是成就自我价值的关键一环

概述 时间&#xff0c;的唯一公平之处就是给你我的长度是相同的&#xff0c;这也是它唯一公平&#xff0c;也是不公平的地方。 所谓的公平&#xff0c;就是不患寡而患不均中所说的平均。 所谓的不公平就是&#xff0c;相同时间内我们彼此对应的标价不同&#xff0c;延伸到后…

使用allegro在BoardGeometry的Silkscreen_Top层画出图案

目录 1. 图形及图形放置显示2. 绘制 1. 图形及图形放置显示 绘制完成图案&#xff1a; 导出后图案&#xff1a; 2. 绘制 图层选中&#xff1b; 画圆型&#xff1b; 半径3.5mm&#xff0c;原点生成&#xff1b; 在图案中挖空&#xff1b; 用指令走线&#xff1a; …

Kotlin 协程:Channel 与 Flow 深度对比及 Channel 使用指南

前言 在 Kotlin 协程的异步编程世界里&#xff0c;Channel 和 Flow 是处理数据流的重要工具&#xff0c;它们有着不同的设计理念与适用场景。本文将对比二者功能与应用场景&#xff0c;详细讲解 Channel 的使用步骤及注意事项 。 一、Channel 与 Flow 的特性对比 Channel 是协程…

MYsql主从复制部署

MySQL 主从复制是将主数据库的变更自动同步到从数据库的过程&#xff0c;常用语读写分离、高可用性和数据备份。 1.环境准备 确保主从服务器已安装相同版本的 MySQL&#xff0c;并能通过网络互相访问。 # 检查 MySQL 版本 mysql -V 2.配置主服务器 &#xff08;1&#xff0…

安灯呼叫看板如何实现汽车生产异常秒级响应

在汽车零部件工厂的静置车间&#xff0c;传统生产管理依赖人工巡检与纸质记录&#xff0c;存在效率低、信息滞后、异常响应慢等问题。某汽车厂曾因物料静置时间未及时监控&#xff0c;导致批次混料&#xff0c;损失超10万元。而安灯呼叫看板系统的引入&#xff0c;通过实时状态…

构造函数注入在spring boot 中怎么使用详解

我们来详细讲解一下在 Spring Boot 中如何使用构造函数注入&#xff0c;并通过一个完整的、可运行的例子来演示。 构造函数注入是 Spring 官方最推荐的依赖注入方式&#xff0c;因为它能保证对象的不可变性和依赖的完整性。 核心理念 在 Spring Boot 中使用构造函数注入非常简单…

2025.6.30-2025.7.06第26周:第一次参加头马演讲俱乐部

现在是周一早上6:23&#xff0c;我开始写上周的周总结。 3件超出预期的事 参加头马俱乐部绝对是最超出预期的&#xff0c;使得这个周末格外的快乐简历的第一版终于改完了&#xff0c;花了好长的时间&#xff0c;其中有一天心情还很荡&#xff0c;因为&#xff0c;我想&#x…

2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--下篇

其实如何安装VM,如何安装MACOS网上的教程很多,我只是结合我的体验重新整理了一次,接下来才进入本教程最核心的部分,Flutter开发环境的配置部分。、一.配置前准备 主要是准备相应的工具包,以及其他虚拟机设置1.工具包 工具包的版本也可以自行配置,我这主要是我使用的是F…

QSPI、OSPI与FSMC的区别与内存映射分析

QSPI、OSPI与FSMC的区别与内存映射分析 基本概念与区别 1. FSMC (灵活静态存储控制器) 接口类型&#xff1a;并行接口&#xff0c;通常8/16位数据总线总线标准&#xff1a;传统并行总线协议速度&#xff1a;相对较低&#xff0c;通常最高约100MHz应用场景&#xff1a;SRAM、NOR…

系统思考与心智模式探索

成长的真正障碍&#xff0c;不是能力的不足&#xff0c;而是看待问题的局限。 在复杂多变的商业环境中&#xff0c;我们往往习惯于解决“眼前”的问题&#xff0c;却忽视了深藏背后的系统性障碍。我们看到的只是表面的“症状”&#xff0c;而真正的根源&#xff0c;却往往隐藏…

物联网技术的关键技术与区块链发展趋势的深度融合分析

一、物联网技术的核心架构与关键技术 物联网技术体系由感知层、网络层、平台层、应用层和安全层构成&#xff0c;各层技术协同工作&#xff0c;实现物理世界与数字世界的深度融合。 感知层&#xff1a;物联网的“感官” 传感器技术&#xff1a;包括环境传感器&#xff08;温度…

针对Exhcnage Server的攻击防范措施

一、背景介绍最近&#xff0c;安全研究人员揭露了一个名为 NightEagle&#xff08;又名 APT-Q-95&#xff09; 的高级持续性威胁&#xff08;APT&#xff09;组织。这个组织被观察到利用 Microsoft Exchange 服务器中的零日漏洞链 进行攻击&#xff0c;其主要目标是中国政府、国…

编程基础:继承

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录继承&#xff1a;使用基类成员&#xff1a;前提——派生类必须同样支持基类成员(组件和功能)示例&#xff1a;动物Animal 有 鳃 和 会飞。则 鸟Bird 不是 Animal&#xff0c;因为Bird虽会飞&#xff0c;却没有鳃。鱼…

TMC4361A 使用(未验证)

prompt 我用STM32F103C8T6 来控制 TMC4361A 运动控制芯片 &#xff0c;我配置 STM32F103C8T6 的 SPI1 与 TMC4361A 进行通信&#xff0c;配置 PA4 作为片选线&#xff0c;配置 PA8 作为 RCC_MCO 输入时钟输入到 TMC4361A, 并将其连接到TMC4361A的CLK_EXT引脚。我想控制 TMC4361…

深度剖析:如何解决Node.js中mysqld_stmt_execute参数错误

在Node.js后端开发中&#xff0c;使用mysql2等数据库驱动与MySQL/MariaDB交互时&#xff0c;Incorrect arguments to mysqld_stmt_execute 是一个令人头疼的错误。它通常意味着你传递给SQL预处理语句的参数数量与SQL字符串中问号&#xff08;?&#xff09;占位符的数量不匹配。…

Vue3 学习教程,从入门到精通,Vue 3 安装指南及语法知识点详解(2)

Vue 3 安装指南及语法知识点详解 本文将详细介绍 Vue 3 的所有安装方式&#xff0c;并深入讲解 Vue 3 的语法知识点。此外&#xff0c;还将提供一些综合性案例&#xff0c;展示如何综合运用 Vue 3 的各项功能。一、安装 Vue 3 的所有方式 Vue 3 提供了多种安装方式&#xff0c;…

C++基础复习笔记

一、数组定义 在C中&#xff0c;数组初始化有多种方式&#xff0c;以下是常见的几种方法&#xff1a; 默认初始化 数组元素未显式初始化时&#xff0c;内置类型&#xff08;如int、float&#xff09;的元素值未定义&#xff08;垃圾值&#xff09;&#xff0c;类类型调用默认构…

手机和PC远控安全深度测评:TeamViewer/ToDesk/向日葵安全防线对比

声明&#xff1a;本测试报告系作者基于个人兴趣及使用场景开展的非专业测评&#xff0c;测试过程中所涉及的方法、数据及结论均为个人观点&#xff0c;不代表任何官方立场或行业标准。 一、引言 当下远程控制技术已深度融入大众的工作与生活&#xff0c;无论是上班族在家操…

Windows 11的开始菜单调整为左下角布局

1.桌面右键个性化 2.个性化中任务栏 3.任务栏选择任务栏行为 4.任务栏行为中 任务栏对齐方式选择靠左即可

Go语言项目工程化 — 常见开发工具与 CI/CD 支持

在Go语言的项目工程化实践中&#xff0c;常见开发工具与 CI/CD 支持是保障团队协作、高效交付与项目质量的关键。以下是第 68 章的详细内容。一、开发辅助工具Go语言生态为开发者提供了丰富的工具&#xff0c;以提高代码质量与开发效率。1. 格式化与静态检查工具说明gofmt标准格…