【iptables防火墻】 -- DDos防御

最近有客戶要定制路由器的默認防火墻等級,然后涉及到了DDos規則,對比客戶提供的規則發現我們現有的規則存在明顯的錯誤,在此記錄一下如何使用iptables防護DDoS攻擊

直接貼一下規則

#開啟TCP SYN Cookies 機制
sysctl -w net.ipv4.tcp_syncookies=1
#減少發送SYN-ACK包的重試次數,從而達到減少半連接的存活時間效果,盡快釋放隊列
sysctl -w net.ipv4.tcp_synack_retries=3
#擴大半連接隊列的容量
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
#每秒允許100個syn請求,且允許突發150個請求
iptables -w -I SYNFLOOD -p tcp -m tcp --syn -m limit --limit 100/s --limit-burst 150 -j RETURN
iptables -w -A SYNFLOOD -p tcp -m tcp --syn -j DROP

1.內核參數優化

sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_max_syn_backlog=2048

當服務器收到大量 TCP SYN 包(三次握手的第一步)時,內核的半連接隊列(SYN Queue)可能被占滿,導致合法用戶無法建立連接,以此癱瘓服務器。啟用 tcp_syncookies 后,內核會在隊列滿時生成加密的 Cookie 值代替存儲連接信息,客戶端返回的 ACK 包會攜帶此 Cookie 進行驗證,從而?繞過半連接隊列限制,即使攻擊者發送百萬級 SYN 包,也不會耗盡隊列資源。

2.防火墻規則

iptables -w -I SYNFLOOD -p tcp -m tcp --syn -m limit --limit 100/s --limit-burst 150 -j RETURN
iptables -w -A SYNFLOOD -p tcp -m tcp --syn -j DROP

這一步主要是要注意將SYNFLOOD子鏈放在INPUT的第一個,如此即可達到限制syn連接數的同時又不影響到后續其他規則的生效。

需要注意DDos攻擊無法完全防御,如果需要更好的效果,可以使用鈔能力~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80913.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Java][Leetcode simple]26. 刪除有序數組中的重復項

思路 第一個元素不動從第二個元素開始&#xff1a;只要跟上一個元素不一樣就放入數組中 public int removeDuplicates(int[] nums) {int cnt1;for(int i 1; i < nums.length; i) {if(nums[i] ! nums[i-1]) {nums[cnt] nums[i];}}return cnt;}

微服務!!

1.Nacos注冊中心 2.服務注冊 3.服務發現 4.負載均衡 5.OpenFeign 6.OpenFeign連接池 啟動程序 7.路由 8.微服務保護 1.雪崩問題 2.解決方案 1.請求限流 2.線程隔離 3.服務熔斷 3.Sentinel 1.鏈路 2.請求限流 3.線程隔離 4.Fallback 5.服務熔斷 4.分布式事務 1.Seata 2.部…

代碼隨想錄算法訓練營 Day44 動態規劃 ⅩⅠ 子序列問題

動態規劃 題目 1143. 最長公共子序列 - 力扣&#xff08;LeetCode&#xff09; 公共子序列&#xff0c;類似于最長重復子數組&#xff0c;但是不要求連續 (子序列) 1. 定義 dp&#xff0c;dp[i][j] 表示以 i-1 與 j-1 結尾的最長公共子序列的長度 2. 定義遞推公式 如果字符相…

聊一聊接口測試依賴第三方服務變更時如何處理?

目錄 一、依賴隔離與模擬 二、契約測試 三、版本控制與兼容性 四、變更監控與告警 五、容錯設計 六、自動化測試維護 七、協作機制與文檔自動化 第三方API突然改了參數或者返回結構&#xff0c;導致我們的測試用例失敗&#xff0c;這時候該怎么辦呢&#xff1f;首先想到…

Python程序,輸入IP,掃描該IP哪些端口對外是開放的,輸出端口列表

#!/usr/bin/env python # -*- coding: utf-8 -*-""" IP端口掃描程序 輸入IP地址&#xff0c;掃描該IP哪些端口對外是開放的&#xff0c;輸出端口列表 """import socket import sys import concurrent.futures import ipaddress from tabulate im…

Python----神經網絡(《Inverted Residuals and Linear Bottlenecks》論文概括和MobileNetV2網絡)

一、論文 MobileNetV2 論文提出了一種新的移動架構&#xff0c;該架構提高了移動模型在多個任務和基準測試中的性能&#xff0c;以及在各種不同模型大小范圍內的性能. 該架構基于倒殘差結構&#xff0c;其中 shortcut 連接在 thin bottleneck 層之間. 中間的 expansion 層使用輕…

Maven私服搭建與登錄全攻略

目錄 1.背景2.簡介3.安裝4.啟動總結參考文獻 1.背景 回顧下maven的構建流程&#xff0c;如果沒有私服&#xff0c;我們所需的所有jar包都需要通過maven的中央倉庫或者第三方的maven倉庫下載到本地&#xff0c;當一個公司或者一個團隊所有人都重復的從maven倉庫下載jar包&#…

EF Core 數據庫遷移命令參考

在使用 Entity Framework Core 時&#xff0c;若你希望通過 Package Manager Console (PMC) 執行遷移相關命令&#xff0c;以下是常用的 EF Core 遷移命令&#xff1a; PMC 方式 ? 常用 EF Core PMC 命令&#xff08;適用于遷移&#xff09; 操作PMC 命令添加遷移Add-Migra…

商業 |阿里云又丟出了核彈

行業翹首以盼的DeepSeek-R2沒等到&#xff0c;阿里云卻先一步丟出了核彈。 4月29日凌晨&#xff0c;阿里云正式上線了Qwen3系列模型“全家桶”&#xff0c;包含2個MoE模型、6個稠密模型。 八個模型&#xff0c;小到0.6B大到235B&#xff0c;既能在手機使用&#xff0c;也有旗…

《Python星球日記》 第66天:序列建模與語言模型

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、傳統語言模型1. n-gram 模型基礎2. n-gram 模型的局限性二、RNN 在語言建模中的應用1. 語言模型的基本原理2. RNN 構建語言模型的優勢3. 實…

20250510解決NanoPi NEO core開發板在Ubuntu core22.04.3系統下適配移遠的4G模塊EC200A-CN的問題

1、h3-eflasher-friendlycore-jammy-4.14-armhf-20250402.img.gz 在WIN10下使用7-ZIP解壓縮/ubuntu20.04下使用tar 2、Win32DiskImager.exe 寫如32GB的TF卡。【以管理員身份運行】 3、TF卡如果已經做過會有3個磁盤分區&#xff0c;可以使用SD Card Formatter/SDCardFormatterv5…

C# 的異步任務中, 如何暫停, 繼續,停止任務

namespace taskTest {using System;using System.Threading;using System.Threading.Tasks;public class MyService{private Task? workTask;private readonly SemaphoreSlim semaphore new SemaphoreSlim(0, 1); // 初始為 0&#xff0c;Start() 啟動時手動放行private read…

關于nextjs中next-sitemap插件生成文件樣式丟失問題及自定義樣式處理

現象沒有默認樣式 修改后 代碼配置如下 next-sitemap.config.js如下 // const { routing } require(./src/i18n/routing) ;const { flatten } require(lodash) const fs require(fs); const path require(path);// 改為硬編碼locales值&#xff0c;與routing.ts保持一…

圖片的require問題

問題 <template><!--第一種方式--><img :src"require(/assets/${imageName})" style"width:100px;" /><!--第二種方式--><img :src"require(imageUrl)" style"width:100px;" /> </template><…

【官方題解】StarryCoding 入門教育賽 2 | acm | 藍橋杯 | 新手入門

比賽傳送門&#xff1a; 本場比賽開始時題面存在一些問題&#xff0c;私密馬賽&#xff01; A.池化【入門教育賽】 根據題目所給公式計算即可。 #include "bits/stdc.h"signed main() {int t; std::cin >> t;while (t --) {int l, k, s, p; std::cin >&…

課題推薦——低成本地磁導航入門,附公式推導和MATLAB例程運行演示

地磁導航利用地球磁場的自然特性&#xff0c;通過感知磁場變化&#xff0c;幫助機器人或無人設備實現定位和導航。相比于 GPS、激光雷達等導航方法&#xff0c;地磁導航具有以下優勢&#xff1a; 低成本&#xff1a;使用地磁傳感器&#xff08;如電子羅盤&#xff09;&#xff…

【人工智能】自然語言編程革命:騰訊云CodeBuddy實戰5步搭建客戶管理系統,效率飆升90%

CodeBuddy 導讀一、產品介紹1.1 **什么是騰訊云代碼助手&#xff1f;**1.2 插件安裝1.2.1 IDE版本要求1.2.2 注意事項1.2.4 插件安裝1.2.4.1 環境安裝1.2.4.2 安裝騰訊云AI代碼助手** 1.2.5 功能介紹1.2.5.1 Craft&#xff08;智能代碼生成&#xff09;1.2.5.2 Chat&#xff08…

游戲引擎學習第270天:生成可行走的點

回顧并為今天的內容定下基調 今天的計劃雖然還不完全確定&#xff0c;可能會做一些內存分析&#xff0c;也有可能暫時不做&#xff0c;因為目前并沒有特別迫切的需求。最終我們會根據當下的狀態隨性決定&#xff0c;重點是持續推動項目的進展&#xff0c;無論是 memory 方面還…

Java反射詳細介紹

的反射&#xff08;Reflection&#xff09;是一種強大的機制&#xff0c;允許程序在運行時動態獲取類的信息、操作類的成員&#xff08;屬性、方法、構造器&#xff09;&#xff0c;甚至修改類的行為。它是框架開發&#xff08;如 Spring、MyBatis&#xff09;、單元測試工具&a…

c語言第一個小游戲:貪吃蛇小游戲05

貪吃蛇脫韁自動向右走&#xff1a;脫韁的野蛇 #include <curses.h> #include <stdlib.h> struct snake{ int hang; int lie; struct snake *next; }; struct snake *head; struct snake *tail; void initNcurse() { initscr(); keypad(stdscr,1); } int …