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