服務器如何配置防火墻規則以阻止惡意流量和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
英文地址,請注明出處:http://en.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標準格…