Linux系統Iptables防火牆使用手冊

來源:互聯網
上載者:User

 轉自:http://www.linuxidc.com/Linux/2008-04/12493p3.htm

 

 

Linux 的內建firewall機制,是通過kernel中的netfilter模組實現的(www.netfilter.ort)。Linux kernel使用netfilter對進出的資料包進行過濾,netfilter由三個規則表組成,每個表又有許多內建的鏈組成。通過使用 iptables命令可以對這些錶鏈進行操作,如添加、刪除和列出規則等。 

 

一、Netfilter規則表—filter nat mangle

  filter,用於路由網路資料包。是預設的,也就是說如果沒有指定-t參數,當建立一條新規則時,它會預設存放到該表內。

  INPUT 網路資料包流向伺服器

  OUTPUT 網路資料包從伺服器流出

  FORWARD 網路資料包經伺服器路由

  nat,用於NAT表.NAT(Net Address Translation )是一種IP地址轉換方法。

  PREROUTING 網路資料包到達伺服器時可以被修改

  OUTPUT 網路資料包由伺服器流出

  POSTROUTING 網路資料包在即將從伺服器發出時可以被修改

  mangle,用於修改網路資料包的表,如TOS(Type Of Service),TTL(Time To Live),等

  INPUT 網路資料包流向伺服器

  OUTPUT 網路資料包流出伺服器

  FORWARD 網路資料包經由伺服器轉寄

  PREROUTING 網路資料包到達伺服器時可以被修改

  POSTROUTING 網路資料包在即將從伺服器發出時可以被修改

 

  1.配置Iptables

  當資料包進入伺服器時,Linux Kernel會尋找對應的鏈,直到找到一條規則與資料包匹配。如果該規則的target是ACCEPT,就會跳過剩下的規則,資料包會被繼續發送。如果該 規則的target是DROP,該資料包會被攔截掉,kernel不會再參考其他規則。

  Note:如果從始至終都沒有一條規則與資料包匹配,而且表末尾又沒有drop all的規則,那末該資料包會被accept。Cisco則相反,在表末尾會因含deny all的規則。

 

    1.) Iptables的命令選項

  iptables [-t tables] command option parameter target

  -A 在鏈尾添加一條規則

  -C 將規則添加到使用者定義鏈之前對其進行檢查

  -D 從鏈中刪除一條規則

  -E 重新命名使用者定義的鏈,不改變鏈本身

  -F 清空鏈,刪除鏈上的所有規則

  -I 在鏈中插入一條規則

  -L 列出某個鏈上的規則,如iptables –L INPUT 列出INPUT鏈的規則

  -N 建立一個新鏈

  -P 定義某個鏈的預設策略

  -R 替換鏈上的某條規則

  -X 刪除某個使用者相關的鏈

  -Z 將所有表的所有鏈的位元組和資料包計數器清零

 

  2.) Iptables的命令參數

  -p -–protocol

  應用於資料包的協議類型,可以是TCP UDP ICMP或ALL。!也可使用。

  當使用-p tcp時,還可使用其他可以選項,以便允許進一步定義規則。選項包括:

  --sport 允許指定匹配資料包源連接埠.port1:port ,表示port1和port2之間的所有連接埠

  --dport 目的連接埠,和--sport雷同。

  當使用-p !udp時,也有特殊的選項供使包括:

  --sport,--dport,與-p tcp 相同,只不過用以用於UDP包。

  使用-p icmp參數時,只有一個選項可用。

  --icmp-type,允許在過濾規則中指定icmp類型。

  -s –-source 指定資料包的源地址。該參數後跟一個IP地址,一個帶有sub-net mask的網路地址,或一個主機名稱。(不建議使用主機名稱)

  -d,--destination 資料包的目的地址,同-s.

  -j,--jump 用於指定一個target,告訴規則將該匹配的資料包發送到該 target。Target可以是ACCEPT,DROP,QUEUE,RETURN.如果沒有-j,那麼不會對資料包進行任何操作,只是將計數器加1。

    -i --in-interface ,對於INPUT FORWARD PREROUTING鏈,該參數指定資料包到達伺服器時所使用的連接埠。

  -o --out-interface,對於OUTPUT FORWARD POSTROUTING鏈,該參數指定資料包離開伺服器時使用的連接埠。

 

  3.) Iptables的命令target

  建立規則的最後一步是指定Iptables對資料包的操作。只要某一規則匹配該資料包,就不會再有別的規則的操作。內建的target有:ACCEPT DROP QUEUE RETURN。

  ACCEPT:允許資料包通過,到達目的地。

  DROP:拒絕資料包通過,丟棄該包。

  QUEUE:將資料包發送回到使用者應用程式處理。

  RETURN:不再根據當前鏈的其他規則來檢查資料包,而是直接返回,繼續被發送到其目的地址,或下一個鏈。

 

  2.應用Iptables規則樣本

  允許WWW

  iptables –A INPUT –p tcp –dport 80 –j ACCEPT

  該規則被添加到filter表的INPUT鏈,允許目的連接埠是80的資料包。

  在內部介面上允許DHCP

  iptables –A INPUT –i eth0 –p tcp - - sport 68 - -dport 67 ACCEPT

  iptables –A INPUT –i eth0 –p ucp - -sport 68 - -dport 67 ACCEPT

  以上同時允許TCP和UDP協議。

 

  3.儲存和恢複Iptables

  儲存Iptables

  使用iptables-save可將現行的iptables規則儲存,

  iptables-save > iptables儲存路徑,如# iptables-save > /etc/iptables.up.rule

  恢複Iptables

  使用iptables-restore 可從配置文檔恢複iptables表到現行iptables表.

  iptables-restore < /etc/iptables.up.rule

 

二、Ubuntu Server中的Iptables

  Ubuntu Server6.06中已經預設安裝iptables,版本是1.3.3.預設狀態是關閉。

  通過修改/etc/network/interfaces可將iptables開啟:

  auto lo

  Iface lo inet loopback

  auto eth0

  iface eth0 inet dhcp

  #添加以下內容

  pre-up iptables-restore < /etc/iptables.up.rule

  #call the restored rule when active the eth0

  post-down iptables-save > /etc/iptables.up.rule

  #restore the iptables rule when shutdown the interface eth0

  然後重新啟用eth0即可。

  另外,可隨時修改/etc/iptables.up.rule設定檔,來更改iptables的規則。Iptables.up.rule格式如下:

  #Generated by iptables-save V1.3.3 on Tue Jul 31 14:18:44 2007

  *filter

  :INPUT ACCEPT [73:8213]

  :FORWARD ACCEPT [0:0]

  :OUTPUT ACCEPT [8:825]

  -A INPUT –i lo –p icmp –j DROP

  -A INPUT –i eth0 –p icmp –j DROP

  COMMIT

  #Completed on Tue Jul 31 14:10:44 2007

  行與行之間不能有空行。

 

三.Summary

  iptables錶鏈中每條規則的順序很重要,如果首條是accept all,那末所有的資料包都會被允許通過firewall,因此應當適當的安排規則順序。

  通常的法則是:拒絕所有 允許少數.

 

完!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.