iptables知識理論的學習與實踐舉例
iptables知識理論的學習與實踐舉例
。iptables的命令使用結構是這樣的 ; ;iptables[-ttable]command[match][target] ;下面一項一項來介紹。 。[-ttable]部分。 。[-ttable]選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規則和鏈的信息包過濾表。有三個可用的表選項:filter、nat和mangle。該選項不是必需的,如果未指定,則filter作為缺省表。 。filter ;用于一般信息包的過濾,包含INPUT、OUTPUT和FORWARD鏈。 。INPUT:代表匹配目的IP是本機的數據包。 。OUTPUT:代表匹配源ip是本機的數據包。 。
導讀 。iptables的命令使用結構是這樣的 ; ;iptables[-ttable]command[match][target] ;下面一項一項來介紹。 。[-ttable]部分。 。[-ttable]選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規則和鏈的信息包過濾表。有三個可用的表選項:filter、nat和mangle。該選項不是必需的,如果未指定,則filter作為缺省表。 。filter ;用于一般信息包的過濾,包含INPUT、OUTPUT和FORWARD鏈。 。INPUT:代表匹配目的IP是本機的數據包。 。OUTPUT:代表匹配源ip是本機的數據包。 。
![](https://img.51dongshi.com/20250104/wz/18542811752.jpg)
iptables是什么?不解釋,直接進入正題。?iptables的命令使用結構是這樣的??iptables[-ttable]command[match][target]?下面一項一項來介紹?[-ttable]部分?[-ttable]選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規則和鏈的信息包過濾表。有三個可用的表選項:filter、nat和mangle。該選項不是必需的,如果未指定,則filter作為缺省表。?filter?用于一般信息包的過濾,包含INPUT、OUTPUT和FORWARD鏈。?INPUT:代表匹配目的IP是本機的數據包?OUTPUT:代表匹配源ip是本機的數據包?FORWARD:代表匹配穿過本機的數據包?nat?用于要轉發的信息包,包含PREROUTING、OUTPUT和POSTROUTING鏈。?PREROUTING:修改目的地址(DNAT)???POSTROUTING:修改源地址(SNAT)?mangle?這個表不是很理解,反正我沒有用過,嘻嘻?#############################################################################?command部分?command部分是iptables命令最重要的部分。它告訴iptables命令要做什么,例如插入規則、將規則添加到鏈的末尾或刪除規則。?-A<鏈名>??APPEND,追加一條規則(放到最后)??例如:??iptables-tfilter-AINPUT-jDROP???在filter表的INPUT鏈里追加一條規則(作為最后一條規則),將所有目的IP為本機的包全部丟棄。???在沒有開啟防火墻之前,我可以ping192.168.254.153這臺機子,防火墻開后,ping不通了,而且我的ssh也斷開了,因為防火墻是將所有的包都丟棄了,自然包括ssh鏈接的包。由于無法再使用ssh鏈接,所以我只能到服務器上清空防火墻,清空后,就可以ping了???????INPUT:?匹配目的IP是本機的數據包????FORWARD?穿過本機的數據包,????PREROUTING用于修改目的地址(DNAT)????POSTROUTING,用于修改源地址(SNAT)??為了能保證我測試iptables用法時ssh不會斷開,所以在這里我首先加上一條iptables規則我還是開啟將所有目的IP為本機的包丟棄?????然后我追加一條策略???可以看到,我新增加的這個策略是在drop的后面,也就是先拒絕了所有包,所以網絡就不同了,上面也提到了,-A就是添加到INPUT的最后一條。??這里正好也用到了刪除鏈的命令iptables-DINPUT?-s192.168.254.153-jACCEPT,所以-D的用法也就不用強調了?iptables-IINPUT?-s192.168.254.153-jACCEPT?-----------------這里的-I是指加規則放在第一個?從圖中也可以看到兩者的差別?將所有的命令重新總結一下,我用個表格對比一下???命令功能描述用法舉例-A(或--append)將一條規則添加到鏈的末尾iptables-tfilter-AINPUT-jDROP在input鏈的末尾添加一條規則,將所有目的IP為本機的包全部丟棄-D(或--delete)將指定的規則或者規則的位置編號從鏈中刪除?iptables-DINPUT?-s192.168.254.153-jACCEPT將匹配該規則的包刪除;iptables-DOUPUT?3將OUPUT鏈中編號為3的規則刪除-P(--policy)設置鏈的默認目標,所有與鏈中任何不匹配的信息報都被強制使用此鏈的策略iptables-PINPUTDROP丟棄所有與INPUT鏈中任何規則都不匹配的信息包?-N(--new-chain)創建一個新的鏈?iptables-Nallowed-chain新建一個鏈??-F(--flush)如果指定鏈名,那么就會刪除該鏈,如果沒有指定,就會刪除所有的鏈iptables-FINPUT清空INPUT鏈iptables-F?清空所有的鏈-L(--list)列出鏈中所有的規則iptables-L?(INPUT)只列出(INPUT)鏈的策略-I將一條規則添加到鏈的第一個?iptables-IINPUT?-s192.168.254.153-jACCEPT?###########################################################################match部分----------匹配的條件?iptables命令的可選match部分指定信息包與規則匹配所應具有的特征(如源地址、目的地址、協議等)。匹配分為通用匹配和特定于協議的匹配兩大類。這里將介紹可用于采用任何協議的信息包的通用匹配。還是再用個表格來對比吧。?參數功能舉例?-p(--protocol)匹配協議,例如TCP、UDP、ICMPiptables-AINPUT-pTCP,UDP等同于iptales-AINPUT-p!ICMP都是匹配TCP和UDP的意思?-s(--source)信息報源地址的匹配?iptables-A?OUTPUT-s192.168.0.125-d(--destination)匹配信息包的目的IP?iptables-A?INPUT-d192.168.0.125########################################################################target目標部分------------匹配到以后的動作www.dnzg.cn?參數功能舉例ACCEPT當信息包與具有ACCEPT目標的規則完全匹配時,就會被接受,允許它前往目的地?iptables-AINPUT?-s192.168.254.153-jACCEPT?DROP當信息包與具有DROP目標的規則完全匹配時,會阻止該信息包?iptables-AINPUT?-s192.168.254.153-jDROPREJECT與DROP類似,但是比DROP好,REJECT會將錯誤信息發回給信息包的發送方,并且不會留下死套接字?iptables?-A?FORWARD-pTCP--dport22-jREJECTSNAT?源地址轉換,SNAT支持轉換為單IP,也支持轉換到IP地址池?iptables-tnat-APOSTROUTING-s192.168.0.0/24?-jSNAT--to1.1.1.1?將內網192.168.0.0/24的原地址修改為1.1.1.1??#######################################################################簡單應用舉例?iptables-tnat-APOSTROUTING-s10.8.0.0/255.255.255.0-oeth0-jSNAT--to-source192.168.5.3?把所有10.8.0.0網段的數據包SNAT成192.168.5.3的ip然后發出去(源地址的轉換)???iptables?-t?filter?-A?INPUT?-p?icmp?-j?REJECT?----------------拒絕其他主機ping??iptables?-t??filter?-IINPUT??-p?tcp?--dport?22?-j?reject?------------禁止通過ssh訪問我的主機???iptables?-t??filter?-A?INPUT??-p?tcp?--dport?22-s10.1.1.1?-j?ACCEPT------------允許10.1.1.1通過ssh訪問我的主機iptables-tfilter-AINPUT-mmac--mac-source00:14:5E:28:A3:20-ptcp--dport22-jACCEPT?iptables-tfilter-AINPUT-ptcp--dport22-jREJECT???????-------------------------------------只有這個mac地址的用戶才能ssh訪問我的主機????iptables-tnat-APOSTROUTING-s192.168.0.0/24-jMASQUERADE---------將源地址是192.168.0.0/24的數據包進行地址偽裝???iptables?-t??filter?-A?INPUT?-i?eth0?-p?tcp?--dport?22?-j?ACCEPT??iptables?-t??filter?-A?INPUT?-i?eth1?-p?tcp?--dport?22?-j?reject?------------------------------------------允許用戶通過eth0網口ssh過來本文來自系統大全為您提供如需轉載請注明!推薦win10下載
iptables知識理論的學習與實踐舉例
。iptables的命令使用結構是這樣的 ; ;iptables[-ttable]command[match][target] ;下面一項一項來介紹。 。[-ttable]部分。 。[-ttable]選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規則和鏈的信息包過濾表。有三個可用的表選項:filter、nat和mangle。該選項不是必需的,如果未指定,則filter作為缺省表。 。filter ;用于一般信息包的過濾,包含INPUT、OUTPUT和FORWARD鏈。 。INPUT:代表匹配目的IP是本機的數據包。 。OUTPUT:代表匹配源ip是本機的數據包。 。
為你推薦