成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iptables實戰:用hashlimit來限速

系統 Linux
iptables的基本原理是“匹配--處理”,hashlimit在這個工作過程中只能起到匹配的作用,它本身是無法對網絡數據包進行任何處理的。

iptables是用來設置、維護和檢查Linux內核的IP包過濾規則的,iptables可以定義不同的表,每個表都包含幾個內部的鏈,也能包含用戶定義的鏈。hashlimitiptables的一個匹配模塊,用它結合iptables的其它命令可以實現限速的功能(注意,單獨hashlimit模塊是無法限速的)。

不過首先必須明確,hashlimit本身只是一個“匹配”模塊。我們知道,iptables的基本原理是“匹配--處理”,hashlimit在這個工作過程中只能起到匹配的作用,它本身是無法對網絡數據包進行任何處理的。我看到網上有些hashlimit的例子里面說只 用一條包含hashlimit匹配規則的iptables語句就可以實現限速,那是錯誤的。

實際上,利用hashlimit來限速需要包括兩個步驟:

1.對符合hashlimit匹配規則包放行

2.丟棄/拒絕未放行的包

下面是一個簡單的例子:

  1. iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-name ssh 
  2. --hashlimit 5/sec 
  3. --hashlimit-burst 10 
  4. --hashlimit-mode srcip 
  5. --hashlimit-htable-expire 90000 -j ACCEPT   
  6. iptables -A INPUT -p tcp --dport 22 -j DROP  

然后,我們來著重講講hashlimit模塊具體是如何工作的。

hashlimit的匹配是基于令牌桶 (Token bucket)模型的。令牌桶是一種網絡通訊中常見的緩沖區工作原理,它有兩個重要的參數,令牌桶容量n和令牌產生速率s。我們可以把令牌當成是門票,而令牌桶則是負責制作和發放門票的管理員,它手里最多有n張令牌。

一開始,管理員開始手里有n張令牌。每當一個數據包到達后,管理員就看看手里是否還有可用的令牌。如果有,就把令牌發給這個數據包,hashlimit就告訴iptables,這個數據包被匹配了。而當管理員把手上所有的令牌都發完了,再來的數據包就拿不到令牌了。這時,hashlimit模塊就告訴iptables,這個數據包不能被匹配。除了發放令牌之外,只要令牌桶中的令牌數量少于n,它就會以速率s來產生新的令牌,直到令牌數量到達n為止。通過令牌桶機制,即可以有效的控制單位時間內通過(匹配)的數據包數量,又可以容許短時間內突發的大量數據包的通過(只要數據包數量不超過令牌桶n)。

hashlimit模塊提供了兩個參數--hashlimit和--hashlimit-burst,分別對應于令牌產生速率和令牌桶容量。除了令牌桶模型外,hashlimit匹配的另外一個重要概念是匹配項。在hashlimit中,每個匹配項擁有一個單獨的令牌桶,執行獨立的匹配計算。通過hashlimit的--hashlimit-mode參數,你可以指定四種匹配項及其組合,即:srcip(每個源地址IP為一個匹配項),dstip(每個目的地址IP為一個匹配項),srcport(每個源端口為一個匹配項),dstport(每個目的端口為一個匹配項)

除了前面介紹的三個參數外,hashlimit還有一個必須要用的參數,即--hashlimit-name。 hashlimit會在/proc/net/ipt_hashlimit目錄中,為每個調用了hashlimit模塊的iptables 命令建立一個文件,其中保存著各匹配項的信息。--hashlimit-name參數即用來指定該文件的文件名。

好了,以上我們已經介紹了hashlimit的工作原理和相應的參數,下面我們來看幾個例子。

首先是前面的那個例子:

  1. iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit-name ssh --hashlimit 5/sec --hashlimit-burst 10 --hashlimit-mode srcip -j ACCEPT   
  2. iptables -A INPUT -p tcp --dport 22 -j DROP  

在了解了hashlimit各參數的含義之后,我們現在就可以知道這兩條iptables命令的作用。

第一條的作用是,為所有訪問本機22端口的不同IP建立一個匹配項,匹配項對應的令牌桶容量為10,令牌產生速率為5個每秒。放行通過匹配的數據包。

第二條的作用是,丟棄所有其它訪問本機22端口的數據包。

通過這兩條命令,我們就實現了限制其它機器對本機22端口(ssh服務)頻繁訪問的功能.

再來我們看一個復雜點的限速。假設我們現在在一臺NAT網關上,想限制內部網某個網段 192.168.1.2/24對外的訪問頻率。(這個的主要作用是限制內部中毒主機對外的flood攻擊)

那我們可以這么做:

  1. iptables -N DEFLOOD   
  2. iptables -A FORWARD -s 192.168.1.2/24 -m state --state NEW -j DEFLOOD   
  3. iptables -A DEFLOOD -m hashlimit --hashlimit-name deflood --hashlimit 10/sec --hashlimit-burst 10 --hashlimit-mode srcip -j ACCEPT   
  4. iptables -P DEFLOOD -j DROP  

第一條命令建立了一個自定義的處理鏈

第二條命令,所有來自192.168.1.2/24網段,并且打算新建網絡連接的數據包,都進入DEFLOOD鏈處理

第三條命令,在DEFLOOD鏈中,為每個IP建立一個匹配項,對應令牌桶容量為10,產生速率為10個每秒。放行通過匹配的數據包。

第四條命令,在DEFLOOD鏈中丟棄所有其它的數據包

當然,hashlimit還有一些其他的參數,比如

  1. --hashlimit-htable-expire   
  2. --hashlimit-htable-size   
  3. --hashlimit-htable-max  

具體可以man iptables。

iptables實戰中關于用hashlimit來限速的內容介紹完了,希望通過本文iptables實戰內容的學習能對你有所幫助。

責任編輯:程站 來源: 比特網
相關推薦

2011-03-15 16:57:15

2011-03-01 13:35:43

交換機限速

2011-03-16 09:05:29

iptablesNAT

2011-03-16 16:06:46

iptables日志MySQL

2011-09-07 09:21:04

2011-09-05 14:31:20

路由器限速

2011-03-14 16:46:40

Linuxiptables上網

2021-12-07 09:12:32

Iptables 原理工具

2011-03-16 16:59:46

iptables 映射

2021-12-13 10:10:15

IPtablesTCPLinux

2009-07-02 14:25:21

iptables內網bt

2011-03-17 15:02:48

2011-03-17 10:11:13

2013-06-24 15:32:00

c++GCC

2011-09-05 11:24:26

Cisco路由器限速CEF

2011-08-18 10:22:44

2010-10-09 21:51:30

2025-01-13 00:00:40

2011-09-14 17:16:14

2020-09-30 16:15:46

ThreadLocal
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清久久 | 国产传媒视频在线观看 | 精品二区 | 久久毛片 | 91九色麻豆 | 国产精品观看 | 激情网站在线观看 | 在线观看国产网站 | 亚洲成人福利在线观看 | 超碰国产在线 | 中文字幕亚洲一区 | 欧美日韩精品专区 | 亚洲成人精品国产 | 亚洲在线一区二区 | 久久久无码精品亚洲日韩按摩 | av免费网站在线观看 | 精品国产一区二区三区久久 | 成人在线观看欧美 | 国内精品成人 | 天天草天天爱 | 国产不卡一区 | 日韩久久久久 | 综合国产在线 | 影音先锋中文在线 | 国产日韩精品一区二区三区 | 国产精品视频一二三区 | 毛片网站在线观看 | 久久av资源网 | 国产亚洲精品成人av久久ww | 亚洲交性| 色性av | 久久99深爱久久99精品 | 国产农村妇女毛片精品久久麻豆 | 欧美色综合一区二区三区 | 久久三区 | 精品99久久久久久 | 日本精品在线观看 | 免费99精品国产自在在线 | 日韩三级免费观看 | 久久久性 | 黄色一级大片在线免费看产 |