如何理解Linux的iptables

如何理解Linux的iptables,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

十年的宿松網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整宿松建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“宿松網(wǎng)站設(shè)計(jì)”,“宿松網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

所謂防火墻,實(shí)質(zhì)上是指由軟硬件組合成的一個(gè)在內(nèi)外網(wǎng)之間構(gòu)造的一種保護(hù)屏障,它是一種隔離技術(shù)。因此從物理上區(qū)分,可以分為軟件和硬件防火墻,從邏輯上區(qū)分,可以分為主機(jī)和網(wǎng)絡(luò)防火墻,而我們現(xiàn)在要講到的iptables,是屬于防火墻中的軟件防火墻的范疇,但它只是一個(gè)命令行工具或者說(shuō)是一種客戶端代理,并不是真正的防火墻,用戶通過(guò)這個(gè)代理,把安全設(shè)定執(zhí)行到真正的防火墻框架中,這個(gè)框架叫做Netfilter

如何理解Linux的iptables

原理

Netfilter是 Linux 中的一個(gè)子項(xiàng)目,它的主要功能是進(jìn)行數(shù)據(jù)包過(guò)濾、連接跟蹤、地址轉(zhuǎn)換等,而iptables則是netfilter提供的對(duì)用戶數(shù)據(jù)包進(jìn)行過(guò)濾、修改等操作的一種命令行工具,當(dāng)數(shù)據(jù)包通過(guò)網(wǎng)卡進(jìn)入進(jìn)入內(nèi)核時(shí),它得先經(jīng)過(guò)iptables的五條鏈,這些鏈都有相應(yīng)的處理數(shù)據(jù)包的規(guī)則,而我們正是通過(guò)在這些鏈上設(shè)置規(guī)則來(lái)控制管理數(shù)據(jù)包,從而達(dá)到防火墻的功能。每當(dāng)數(shù)據(jù)包到達(dá)一個(gè)鏈時(shí),iptables就會(huì)從鏈中的所有規(guī)則逐一開(kāi)始校驗(yàn)該數(shù)據(jù)包是否符合規(guī)則中限定的條件。若滿足,系統(tǒng)就會(huì)根據(jù)每個(gè)規(guī)則定義的方法來(lái)處理該數(shù)據(jù)包;若不滿足,iptables則繼續(xù)檢查下一條規(guī)則,如果該數(shù)據(jù)包不符合鏈中的任意規(guī)則,iptables則會(huì)該鏈的默認(rèn)策略去處理該數(shù)據(jù)包。

四個(gè)表

iptables的結(jié)構(gòu)是由tables組成,而tables是由鏈組成,鏈又是由具體的規(guī)則組成。因此我們?cè)诰帉慽ptables的規(guī)則時(shí),通過(guò)要先指定表,再指定鏈。tables的作用是區(qū)分不同功能的規(guī)則,并且存儲(chǔ)這些規(guī)則。

tables的類型分別有:

如何理解Linux的iptables

五條鏈

鏈,也稱為鉤子函數(shù),它是一系列規(guī)則的一個(gè)組合,當(dāng)數(shù)據(jù)包經(jīng)過(guò)這些狗子函數(shù)時(shí),她必須完全匹配每一個(gè)鉤子函數(shù)中的所有規(guī)則,方能進(jìn)入下一個(gè)鉤子函數(shù)。

鉤子函數(shù)的類型分別有:

如何理解Linux的iptables

語(yǔ)法規(guī)則

語(yǔ)法:iptables [-t 表名] 命令選項(xiàng) [鏈名] [條件匹配] [-j 目標(biāo)動(dòng)作或跳轉(zhuǎn)]

1)常用的命令選項(xiàng):

-t:指定要操縱的表(四個(gè)表);
-A:向規(guī)則鏈中添加條目;
-D:從規(guī)則鏈中刪除條目;
-i:向規(guī)則鏈中插入條目;
-R:替換規(guī)則鏈中的條目;
-L:顯示規(guī)則鏈中已有的條目;
-F:清楚規(guī)則鏈中已有的條目;
-Z:清空規(guī)則鏈中的數(shù)據(jù)包計(jì)算器和字節(jié)計(jì)數(shù)器;
-N:創(chuàng)建新的用戶自定義規(guī)則鏈;
-P:定義規(guī)則鏈中的默認(rèn)目標(biāo);
-h:顯示幫助信息;
-p:指定要匹配的數(shù)據(jù)包協(xié)議類型;
-s:指定要匹配的數(shù)據(jù)包源

2)常用的處理動(dòng)作:

ACCEPT:允許數(shù)據(jù)包通過(guò)
DROP:直接丟棄數(shù)據(jù)包,不給任何回應(yīng)信息
REJECT: 拒絕數(shù)據(jù)包通過(guò),必要時(shí)會(huì)給數(shù)據(jù)發(fā)送端一個(gè)響應(yīng)的信息。
LOG:在/var/log/messages文件中記錄日志然后將數(shù)據(jù)包傳遞給下一條規(guī)則
REDIRECT:  端口映射。
SNAT :源地址轉(zhuǎn)換,修改包來(lái)源IP為某IP或IP范圍,做內(nèi)網(wǎng)和公網(wǎng)之間的轉(zhuǎn)換。
DNAT::目標(biāo)地址轉(zhuǎn)換。 修改數(shù)據(jù)包目的地IP為某 Ip 或 IP 范圍。

3)常用的條件匹配:

1、狀態(tài)匹配:-m state --state 連接狀態(tài)
NEW:與任何連接無(wú)關(guān)的
ESTABLISHED:響應(yīng)請(qǐng)求或已建立連接的
RELATED:與已有連接有相關(guān)性的,如FTP數(shù)據(jù)連接
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、拒絕轉(zhuǎn)發(fā)來(lái)自192.168.2.33主機(jī)的數(shù)據(jù)
iptables -A FORWARD -s 192.168.2.33 -j REJECT
2、允許轉(zhuǎn)發(fā)來(lái)自192.168.2.1/99網(wǎng)段的數(shù)據(jù)
iptables -A FORWARD -s 192.168.2.1/99 -j ACCEPT
3、允許本機(jī)開(kāi)放從TCP端口20-1024提供的應(yīng)用服務(wù)。
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網(wǎng)段使用SSH遠(yuǎn)程登錄防火墻主機(jī)。
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、 允許轉(zhuǎn)發(fā)來(lái)自192.168.0.0/24局域網(wǎng)段的DNS解析請(qǐng)求數(shù)據(jù)包。
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的訪問(wèn)
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、允許所有本機(jī)向外的訪問(wèn)iptables -A OUTPUT -j ACCEPT
11、允許訪問(wèn)22端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT

5)常用的iptables命令:

1、查看當(dāng)前 IPTABLES 規(guī)則
service iptables status
2、 將所有iptables以序號(hào)標(biāo)記顯示
iptables -L -n --line-numbers
3、 比如要?jiǎng)h除INPUT里序號(hào)為22的規(guī)則
iptables -D INPUT 22

看完上述內(nèi)容,你們掌握如何理解Linux的iptables的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文題目:如何理解Linux的iptables
瀏覽地址:http://www.muchs.cn/article46/pieihg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、定制開(kāi)發(fā)面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)