日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一.iptables介紹

iptables并不是真正意義上的防火墻,我們可以理解為一個客戶端工具,用戶通過ipatbles這個客戶端,將用戶 的安全設定執行到對應的"安全框架"中,這個"安全框架"才是真正的防火墻,這個框架的名字?.NET?lter。 net?lter才是防火墻真正的安全框架,net?lter位于內核空間。

iptables是一個命令行工具,位于用戶空間,通過這個命令行工具來操作net?lter。 net?lter/iptables(簡稱為iptables)組成linux平臺下的包過濾防火墻,與大多數的Linux軟件一樣,這個包 過濾防火墻是免費的,它可以代替昂貴的商業防火墻解決方案,完成封包過濾、封包重定向和網絡地址轉換(NAT)等功能

二.iptables的四表五鏈

說明

filter

過濾,防火墻

nat

網絡地址轉換 ;用于修改源ip或目標ip,也可以改端口

mangle

拆解報文,做出修改,并重新封裝起來

raw

關閉nat表上啟用的連接追蹤機制

 

鏈(內置):

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

在實際使用中,我們通常是用表來操作,這里列出表和鏈的關系:

raw

PREROUTING, OUTPUT

mangle

PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

nat

REROUTING,OUTPUT,POSTROUTING(centos7中還有INPUT,
centos6中沒有)

filter

INPUT,FORWARD,OUTPUT


 

報文流向:
流入本機:PREROUTING --> INPUT
由本機流出:OUTPUT --> POSTROUTING
轉發:PREROUTING --> FORWARD --> POSTROUTING

 

三.iptables基本用法

規則格式:iptables [-t table] COMMAND chain [-m matchname [per-match-options]] -j targetname [per-target-options]

-t table:

raw, mangle, nat, filter(默認)

COMMAND

鏈管理:

-F:flush,清空規則鏈:省略鏈,表示清空指定表上的所有的鏈;

-N:new, 自定義一條新的規則鏈;

-X: delete,刪除自定義的規則鏈;

-Z: zero,清零,置零規則計數器;

注意:僅能刪除 用戶自定義的 引用計數為0的 空的 鏈;

-P:Policy,設置默認策略;對filter表中的鏈而言,其默認策略有:

ACCEPT:接受

DROP:丟棄

REJECT:拒絕

-E: rEname 重命名自定義鏈;引用計數不為0的自定義鏈不能夠被重命名,也不能被刪除;

規則管理

-A:Append,追加;

-I:insert, 插入,要指明位置,省略時表示第一條;

-D:delete,刪除;

(1) 指明規則序號;

(2) 指明規則本身;

-R:replace,替換指定鏈上的指定規則;

-F:flush,清空指定的規則鏈;

-Z:zero,置零;

iptables的每條規則都有兩個計數器:

(1) 匹配到的報文的個數;

(2) 匹配到的所有報文的大小之和

查看

-L:list, 列出指定鏈上的所有規則;

-n:numberic,以數字格式顯示地址和端口號; -v:verbose,詳細信息; -vv, -vvv -x:exactly,顯示計數器結果的精確值;  --line-numbers:顯示規則的序號;

chain

PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

-j targetname(處理動作)

 

常用規則匹配器

 

命令用法總結

 

四.iptables進階用法

擴展匹配條件:

隱式擴展:在使用-p選項指明了特定的協議時,無需再同時使用-m選項指明擴展模塊的擴展機制;

顯式擴展:必須使用-m選項指明要調用的擴展模塊的擴展機制;

顯示擴展:

iprange擴展模塊

用iprange擴展模塊可以指定"一段連續的IP地址范圍",用于匹配報文的源地址或者目標地址。

–src-range:源地址范圍

–dst-range:目標地址范圍

]# iptables -t filter -I INPUT -m iprange --src-range 192.168.1.128-192.168.1.254 -j DROP

string擴展模塊

使用string擴展模塊,可以指定要匹配的字符串,如果報文中包含對應的字符串,則符合匹配條件。

-m string:表示使用string擴展模塊

–algo:用于指定匹配算法,可選的算法有bm與kmp,此選項為必須選項,我們不用糾結于選擇哪個算法,但 是我們必須指定一個。

–string:用于指定需要匹配的字符串

]# iptables -t filter -I INPUT -m string --algo bm --string “bit” -j REJECT

time擴展模塊

過time擴展模塊,根據時間段區匹配報文,如果報文到達的時間在指定的時間范圍以內,則符合匹配條件。

-m time:表示使用time擴展模塊

–timestart:選項用于指定起始時間,00:00:00格式時分秒。

–timestop:選項用于指定結束時間。

–weekdays:選項用于用數字指定星期幾,還能用縮寫表示,例如:Mon, Tue, Wed,Thu, Fri, Sat, Sun

–monthdays,–datestart,–datestop:指定日期范圍

~]# iptables -t filter -I OUTPUT -p TCP --dport 80 -m time --timestart 08:55:00 --timestop 17:00:00 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 80 -m time --weekdays 1,2,3,4,5 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 8080 -m time -monthdays 1,2 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 8080 -m time -datestart 2019-04-20 --datestop 2019-04-21 -j REJECT

connlimit擴展模塊

connlimit擴展模塊,可以限制每個IP地址同時鏈接到server端的鏈接數量,注意:我們不用指定IP,其默認就 是針對"每個客戶端IP",即對單IP的并發連接數限制。一般和協議、端口配合使用

–connlimit-above:限制連接上限

–connlimit-mask:按照網段限制連接上限

~]# iptables -t filter -I OUTPUT -p TCP --dport 22 -m connlimit -connlimit-above 2 -j REJECT

limit擴展模塊

limit模塊對"報文到達速率"進行限制,我們可以以秒為單位進行限制,也可以以分鐘、小時、天作為單位進行限

制。

–limit限制比較有意思,主要用來限制單位時間內可以流入的數據包的數量。

使用"–limit"選項時,可以選擇的時間單位有多種,如下 /second /minute /hour /day

~]# iptables -t filter -I INPUT -p icmp -m limit --limit 10/min -j REJECT

tcp-?ags模塊

tcp-?ags模塊也屬于我們之前講到過的tcp擴展模塊中的內容。 --tcp-?ags指的就是tcp頭中的標志位,看來,在使用iptables時,我們可以通過此擴展匹配條件,去匹配tcp報 文的頭部的標識位,然后根據標識位的實際情況實現訪問控制的功能。在網絡部分我們講了三次握手,四次揮手,講 了TCP的包頭,這里主要指tcp包頭中的標志位,SYN,ACK,FIN,RST,URG,PSH。

他的匹配規則是:“SYN,ACK,FIN,RST,URG,PSH SYN”,怎么來理解,我們可以把這串字符拆成兩部分去理解,第一部分為"SYN,ACK,FIN,RST,URG,PSH",第二部分為"SYN"。

第一部分表示:我們需要匹配報文tcp頭中的哪些標志位,那么上例的配置表示,我們需要匹配報文tcp頭中的6 個標志位,這6個標志位分別為為"SYN、ACK、FIN、RST、URG、PSH",我們可以把這一部分理解成需要匹配的標 志位列表。

第二部分表示:第一部分的標志位列表中,哪些標志位必須為1,上例中,第二部分為SYN,則表示,第一部分 需要匹配的標志位列表中,SYN標志位的值必須為1,其他標志位必須為0。

~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT #匹配第一次握手

~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT #匹配第二次握手

state擴展

state是一個非常重要的擴展,可以基于連接追蹤功能去查看每一報文當前所處的狀態。不論什么協議,客戶端 第一次訪問時,服務器會去內核內存中的追蹤表查看他之前是否來過,查不到就證明是第一次來,記錄入追蹤表,如 果查到以前來過就不檢查規則,直接允許訪問,這稱為連接追蹤機制。在訪問量特別大的場景下,比如負載均衡服務 器不建議開啟,追蹤表大只能記錄6萬多的條目,訪問數超過就會無法記錄出錯,導致所有的連接失敗。

報文狀態有五種:

NEW: 第一次連接時

ESTABLISHED:已建立的連接;

INVALID:無法識別的連接;

RELATED:相關聯的連接,當前連接是一個新請求,但附屬于某個已存在的連接

UNTRACKED:row表上關閉連接追蹤功能

~]# iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

分享到:
標簽:iptables
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定