Linux的銅牆鐵壁iptables
所謂防火牆,實質上是指由軟硬體組合成的一個在內外網之間構造的一種保護屏障,它是一種隔離技術。因此從物理上區分,可以分為軟體和硬體防火牆,從邏輯上區分,可以分為主機和網路防火牆,而我們現在要講到的iptables,是屬於防火牆中的軟體防火牆的範疇,但它只是一個命令列工具或者說是一種客戶端代理,並不是真正的防火牆,使用者透過這個代理,把安全設定執行到真正的防火牆框架中,這個框架叫做Netfilter |
原理
Netfilter是 中的一個子專案,它的主要功能是進行資料包過濾、連線跟蹤、地址轉換等,而iptables則是netfilter提供的對使用者資料包進行過濾、修改等操作的一種命令列工具,當資料包透過網路卡進入進入核心時,它得先經過iptables的五條鏈,這些鏈都有相應的處理資料包的規則,而我們正是透過在這些鏈上設定規則來控制管理資料包,從而達到防火牆的功能。每當資料包到達一個鏈時,iptables就會從鏈中的所有規則逐一開始校驗該資料包是否符合規則中限定的條件。若滿足,系統就會根據每個規則定義的方法來處理該資料包;若不滿足,iptables則繼續檢查下一條規則,如果該資料包不符合鏈中的任意規則,iptables則會該鏈的預設策略去處理該資料包。
四個表
iptables的結構是由tables組成,而tables是由鏈組成,鏈又是由具體的規則組成。因此我們在編寫iptables的規則時,透過要先指定表,再指定鏈。tables的作用是區分不同功能的規則,並且儲存這些規則。
tables的型別分別有:
五條鏈
鏈,也稱為鉤子函式,它是一系列規則的一個組合,當資料包經過這些狗子函式時,她必須完全匹配每一個鉤子函式中的所有規則,方能進入下一個鉤子函式。
鉤子函式的型別分別有:
語法規則
語法:iptables [-t 表名] 命令選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]
1)常用的命令選項:
-t:指定要操縱的表(四個表); -A:向規則鏈中新增條目; -D:從規則鏈中刪除條目; -i:向規則鏈中插入條目; -R:替換規則鏈中的條目; -L:顯示規則鏈中已有的條目; -F:清楚規則鏈中已有的條目; -Z:清空規則鏈中的資料包計算器和位元組計數器; -N:建立新的使用者自定義規則鏈; -P:定義規則鏈中的預設目標; -h:顯示幫助資訊; -p:指定要匹配的資料包協議型別; -s:指定要匹配的資料包源
2)常用的處理動作:
ACCEPT:允許資料包透過 DROP:直接丟棄資料包,不給任何回應資訊 REJECT: 拒絕資料包透過,必要時會給資料傳送端一個響應的資訊。 LOG:在/var/log/messages檔案中記錄日誌然後將資料包傳遞給下一條規則 REDIRECT: 埠對映。 SNAT :源地址轉換,修改包來源IP為某IP或IP範圍,做內網和公網之間的轉換。 DNAT::目標地址轉換。 修改資料包目的地IP為某 Ip 或 IP 範圍。
3)常用的條件匹配:
1、狀態匹配:-m state --state 連線狀態 NEW:與任何連線無關的 ESTABLISHED:響應請求或已建立連線的 RELATED:與已有連線有相關性的,如FTP資料連線 2、MAC地址匹配:-m mac --mac-source MAC地址 eg:iptables -A INPUT -m mac --mac-source f0:1b:12:12:22:4f -j DROP 3、IP範圍匹配:-m iprange --src-range IP範圍 eg:iptables -A FORWARD -p tcp -m iprange --src-range 192.168.0.1-192.168.0.10 -j ACCEPT 4、多埠匹配:-m multiport --sports 源埠列表 和 -m multiport --sports 目的埠列表 eg:iptables -A INPUT -p tcp -m multiport --dport 11,29,116,121 -j ACCEPT
4)常用的一些iptables策略:
1、拒絕轉發來自192.168.2.33主機的資料 iptables -A FORWARD -s 192.168.2.33 -j REJECT 2、允許轉發來自192.168.2.1/99網段的資料 iptables -A FORWARD -s 192.168.2.1/99 -j ACCEPT 3、允許本機開放從TCP埠20-1024提供的應用服務。 iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT 4、只允許管理員從202.13.0.0/16網段使用SSH遠端登入防火牆主機。 iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP 5、 允許轉發來自192.168.0.0/24區域網段的DNS解析請求資料包。 iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT 6、遮蔽ip 110.1.1.1的訪問 iptables -I INPUT -s 110.1.1.1 -j DROP 7、遮蔽從123.0.0.1到123.255.255.254iptables -I INPUT -s 123.0.0.0/8 -j DROP 8、遮蔽從從123.45.0.1到123.45.255.254iptables -I INPUT -s 124.45.0.0/16 -j DROP 9、遮蔽從從123.45.6.1到123.45.6.254iptables -I INPUT -s 123.45.6.0/24 -j DROP 10、允許所有本機向外的訪問iptables -A OUTPUT -j ACCEPT 11、允許訪問22埠iptables -A INPUT -p tcp --dport 22 -j ACCEPT
5)常用的iptables命令:
1、檢視當前 IPTABLES 規則 service iptables status 2、 將所有iptables以序號標記顯示 iptables -L -n --line-numbers 3、 比如要刪除INPUT裡序號為22的規則 iptables -D INPUT 22
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2218699/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux防火牆iptablesLinux防火牆
- linux放火牆------iptables(filter)LinuxFilter
- iptables 配置LINUX防火牆Linux防火牆
- Linux設定防火牆iptablesLinux防火牆
- Linux 防火牆 學習 iptablesLinux防火牆
- Linux基礎命令---iptables防火牆Linux防火牆
- Linux中iptables防火牆的簡單配置Linux防火牆
- 防火牆IPTABLES防火牆
- iptables防火牆防火牆
- Linux防火牆iptables實用設定Linux防火牆
- Linux 防火牆開放特定埠 (iptables)Linux防火牆
- Linux 自帶防火牆 Iptables 基本配置Linux防火牆
- 使用iptables建置Linux 防火牆(2)(轉)Linux防火牆
- 使用iptables建置Linux 防火牆(3)(轉)Linux防火牆
- iptables配置-Linux系統安全防火牆Linux防火牆
- Linux IPTables:如何新增防火牆規則Linux防火牆
- Linux防火牆之IPtables概念與用法(轉)Linux防火牆
- Linux 防火牆:關於 iptables 和 firewalld 的那些事Linux防火牆
- Iptables防火牆應用防火牆
- iptables防火牆規則防火牆
- 防火牆iptables 設定防火牆
- 動態iptables 防火牆防火牆
- 13個關於Linux防火牆’iptables’的面試問答Linux防火牆面試
- Linux系統iptables與Firewalld防火牆區別?Linux防火牆
- Linux 防火牆配置(iptables和firewalld)詳細教程。Linux防火牆
- Linux防火牆iptables學習筆記(三)iptables命令詳解和舉例Linux防火牆筆記
- linux系統中個人防火牆iptables的詳細教程Linux防火牆
- Linux防火牆介紹和iptables常用命令Linux防火牆
- 用一臺linux主機做iptables防火牆薦Linux防火牆
- 基於iptables防火牆堵漏防火牆
- Centos iptables防火牆設定CentOS防火牆
- 動態 iptables 防火牆(轉)防火牆
- NAT iptables防火牆(script)(轉)防火牆
- 使用IPtables搭建防火牆的規則(轉)防火牆
- Iptables防火牆規則使用梳理防火牆
- 動態iptables防火牆dynfw(轉)防火牆
- 【Linux學習筆記26-1】Linux的火牆優化策略之iptablesLinux筆記優化
- 超級實用的 iptables 防火牆指令碼防火牆指令碼