初識iptables工具

2021-08-15 07:30:17 字數 1696 閱讀 3637

1、 配置防火牆的主要工作就是新增、修改和刪除一些規則 ,規則(rules)其實就是網路管理員預定義的條件,規則一般的為「如果資料報頭符合這樣的條件,就這樣處理這個資料報」。規則儲存在核心空間的資訊 包過濾表中,這些規則分別指定了源位址、目的位址、傳輸協議(如tcp、udp、icmp)和服務型別(如http、ftp和smtp)等。當資料報與規則匹配時iptables就根據規則所定義的方法來處理這些資料報,如放行(accept)、拒絕(reject)和丟棄(drop)等。

2、表(tables)提供特定的功能,iptables內建了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網路位址轉換。

鏈(chains)是資料報傳播的路徑,每一條鏈其實就是眾多規則中的乙個檢查清單,每一條鏈中可以有一 條或數條規則。當乙個資料報到達乙個鏈時,iptables就會從鏈中第一條規則開始檢查,看該資料報是否滿足規則所定義的條件。如果滿足,系統就會根據 該條規則所定義的方法處理該資料報;否則iptables將繼續檢查下一條規則,如果該資料報不符合鏈中任一條規則,iptables就會根據該鏈預先定 義的預設策略來處理資料報。、包重構(修改)和資料跟蹤處理。

規則表:

1.filter表——三個鏈:input、forward、output

作用:過濾資料報  核心模組:iptables_filter.

2.nat表——三個鏈:prerouting、postrouting、output

作用:用於網路位址轉換(ip、埠) 核心模組:iptable_nat

3.mangle表——五個鏈:prerouting、postrouting、input、output、forward

作用:修改資料報的服務型別、ttl、並且可以配置路由實現qos核心模組:iptable_mangle(別看這個表這麼麻煩,咱們設定策略時幾乎都不會用到它)

4.raw表——兩個鏈:output、prerouting

作用:決定資料報是否被狀態跟蹤機制處理  核心模組:iptable_raw

(這個是rehl4沒有的,不過不用怕,用的不多)

iptables的基本語法格式

iptables [-t 表名] 命令選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]

說明:表名、鏈名用於指定 iptables命令所操作的表和鏈,命令選項用於指定管理iptables規則的方式(比如:插入、增加、刪除、檢視等;條件匹配用於指定對符合什麼樣 條件的資料報進行處理;目標動作或跳轉用於指定資料報的處理方式(比如允許通過、拒絕、丟棄、跳轉(jump)給其它鏈處理。

簡單來說,就是檢查時先看第一條,如果第一條是允許第二條是拒絕,那最終還是允許。

ps:禁止外網訪問某一ip的http伺服器訪問:iptables -a forward

-p tcp

-d ip位址--dport 80 -j drop(禁止)【accept允許】

1、如果禁止訪問本機的http服務,forward

改為input

。2、如果192.168.0.100的http服務對應的埠不是80,將80改為對應的埠即可,例如:提供https服務,埠是443,將80改為443即可。

3、如果是允許訪問,將drop改為accept

即可本文參考:

推薦:

初識編譯工具gcc make ckame

c c 開發中使用到的 編譯工具gcc make cmake,進化歷程如下。1 為什麼需要gcc?試想,我們寫了乙份c 原始碼檔案main.cpp,該如何讓它變成可執行檔案呢?對,用編譯器將原始碼檔案翻譯成可執行檔案,此時就會用到gcc。2 為什麼需要make?實際上,在乙個專案 工程中會包含很多原...

Git版本控制工具初識

git使用教程 初次使用git前的配置 需要配置一下,讓它知道操作的主人是誰。因為每一次提交都會用到這些資訊。一旦確定之後不可更改。在命令列模式下輸入以下命令 git config global user.name 使用者名稱 你的使用者名稱,相當於暱稱 git config global user...

Iptables 10 Iptables自定義鏈

之前我們一直在討論和使用預設的鏈,感覺已經滿足我們的需要了,但是這樣嗎?有沒有可能我們想針對某乙個服務自定義一條鏈,所有與之相關的規則都放在一起,這樣會更好管理,我們不用在一大堆雜亂的規則中花大量時間找出我們想要的規則 答案是可以的,我們現在便新建一條自己的鏈吧 現在我們想自定義一條與web相關的鏈...