紅旗Linux上的iptables使用簡(jiǎn)介
紅旗Linux上的iptables使用過(guò)程非常簡(jiǎn)單,只要?jiǎng)觿?dòng)手就能解決。和我來(lái)看看吧!
編寫(xiě)Iptables規(guī)則腳本
所謂規(guī)則,就是指在一條鏈上,對(duì)不同的連接和數(shù)據(jù)包進(jìn)行阻塞或是允許它們的去向。所有的規(guī)則都需要插入到特定的鏈上才能產(chǎn)生效果。書(shū)寫(xiě)規(guī)則的語(yǔ)法的格式為:
Iptables [-t table] command [match] [target | jump]
-t 指定表名,一般情況下沒(méi)必要指定使用的表,因?yàn)閕ptables默認(rèn)使用filter表來(lái)執(zhí)行所有的命令。
command 指該條規(guī)則需要進(jìn)行什么操作。如在該表中的某一鏈上插入或刪除一條規(guī)則等
match 此項(xiàng)描述與該規(guī)則匹配的數(shù)據(jù)包的特征。如指定數(shù)據(jù)包的來(lái)源IP,網(wǎng)絡(luò)接口等等。
target 是最后數(shù)據(jù)包的目的所在,對(duì)于符合match的數(shù)據(jù)包,由target處理。
下面介紹幾個(gè)簡(jiǎn)單的iptables規(guī)則:
iptables –I INPUT 1 -i eth0 –p all –j ACCEPT
該腳本的作用是在默認(rèn)的filter表的INPUT鏈的第一個(gè)位置插入一條過(guò)濾規(guī)則——接受經(jīng)過(guò)以太網(wǎng)卡0(eth0)所有協(xié)議的數(shù)據(jù)包。從鏈表圖中可以看到,一個(gè)傳入本機(jī)的數(shù)據(jù)包,在fiter表的INPUT鏈上被接受,則意味著應(yīng)用程序能夠接收到此數(shù)據(jù)包。
iptables –A INPUT –i eth0 –p icmp –icmp-type 8 –j DROP
在filter表的INPUT鏈的最后追加一條規(guī)則——丟棄通過(guò)eth0傳入的序號(hào)為8的icmp協(xié)議數(shù)據(jù)包,即ping request,這樣其他主機(jī)將不能成功的ping通本機(jī)了。
利用iptables還可以方便的架設(shè)一臺(tái)網(wǎng)關(guān)。如果eth0連接的是外部網(wǎng)絡(luò),而eth1連接的是局域網(wǎng)(192.168.0.0/24),假設(shè)在外部網(wǎng)絡(luò)上,本機(jī)的IP為202.113.13.91,我們只需要一條命令,就可以使得局域網(wǎng)內(nèi)部的所有主機(jī)都可以通過(guò)本機(jī)訪問(wèn)外部網(wǎng)絡(luò)。
iptables –t nat –A POSTROUTING –o eth0 –s 192.168.0.0/24 –j SNAT --to 202.113.13.91
該腳本實(shí)際上是向nat表的POSTROUTING鏈增加了一條SNAT規(guī)則,對(duì)于所有來(lái)自局域網(wǎng)的需要轉(zhuǎn)發(fā)的數(shù)據(jù)包,將其源地址偽裝成本機(jī)IP,向外部網(wǎng)絡(luò)發(fā)送。這樣便實(shí)現(xiàn)了局域網(wǎng)網(wǎng)關(guān)的功能。
要記住,在這之前還需要echo 1 > /proc/sys/net/ipv4/ip_forward 以開(kāi)啟IP轉(zhuǎn)發(fā)功能。
同樣,利用iptables也可以輕松實(shí)現(xiàn)端口映射功能。例如,我們需要外部網(wǎng)絡(luò)能夠通過(guò)本機(jī)訪問(wèn)局域網(wǎng)內(nèi)192.168.0.110主機(jī)的FTP服務(wù),腳本如下:
iptables-t nat –A PREROUTING –i eth0 –p tcp –d 202.113.13.91 --dport 21 –j DNAT –to 192.168.0.110
該腳本描述的規(guī)則是:將外部網(wǎng)絡(luò)對(duì)本機(jī)21號(hào)端口發(fā)送的TCP數(shù)據(jù)包全部DNAT給局域網(wǎng)內(nèi)部的一臺(tái)主機(jī)(當(dāng)然您需要確保這臺(tái)主機(jī)上開(kāi)啟了FTP服務(wù)),這樣外部網(wǎng)絡(luò)就可以通過(guò)202.113.13.91這個(gè)IP訪問(wèn)到局域網(wǎng)內(nèi)部的FTP服務(wù)了。
可以看出iptables的參數(shù)種類繁多,且規(guī)則組合方式多種多樣,只要了解數(shù)據(jù)包的流向,以及各個(gè)表和鏈的作用,熟練的掌握它們,就能夠方便的搭建出功能豐富的網(wǎng)絡(luò)防火墻。
iptables的網(wǎng)絡(luò)控制功能及其強(qiáng)大,本文只是介紹了iptables的很小一部分,希望能起到拋磚引玉的作用,想要進(jìn)一步學(xué)習(xí)可以在官方主頁(yè)找到iptables指南,也可以到下面的網(wǎng)址找到該指南的中文譯本。
通過(guò)上文的倆大步驟,相信大部分人都學(xué)會(huì)了在紅旗Linux上使用iptables,學(xué)會(huì)的朋友趕快去和朋友分享吧!
【編輯推薦】
- iptables-restore中文手冊(cè)
- 一些iptables的常用應(yīng)用
- 動(dòng)態(tài)iptables防火墻之dynfw
- Linux防火墻的IPtables設(shè)置與用法
- 巧用iptables建立Linux防火墻
- 使用iptables封殺內(nèi)網(wǎng)的bt軟件
- 用iptables來(lái)防止web服務(wù)器被CC攻擊