iptables命令詳解

來源:互聯網
上載者:User

一:前言

防火牆用於實現Linux下存取控制的功能的,它分為硬體的或者軟體的防火牆兩種。無論是在哪個網路中,防火牆工作的地方一定是在網路的邊緣。而我們的任務就是需要去定義到底防火牆如何工作,這就是防火牆的策略,規則,以達到讓它對出入網路的IP、資料進行檢測。

目前市面上比較常見的有3、4層的防火牆,叫網路層的防火牆,還有7層的防火牆,其實是代理層的網關。

對於TCP/IP的七層模型來講,我們知道第三層是網路層,三層的防火牆會在這層對源地址和目標地址進行檢測。但是對於七層的防火牆,不管你源連接埠或者目標連接埠,源地址或者目標地址是什麼,都將對你所有的東西進行檢查。所以,七層防火牆更加安全,但是這卻帶來了效率更低。所以市面上通常的防火牆方案,都是兩者結合的。而又由於我們都需要從防火牆所控制的這個口來訪問,所以防火牆的工作效率就成了使用者能夠訪問資料多少的一個最重要的控制,配置的不好甚至有可能成為流量的瓶頸。

二:iptables 工作原理

iptables的結構:iptables -> Tables -> Chains -> Rules. 簡單地講,tables由chains組成,而chains又由rules組成。如所示。

 

五個規則鏈。

  1.PREROUTING (路由前)

  2.INPUT (資料包流入口)

  3.FORWARD (轉寄管卡)

  4.OUTPUT(資料包出口)

  5.POSTROUTING(路由後)

這是NetFilter規定的五個規則鏈,任何一個資料包,只要經過本機,必將經過這五個鏈中的其中一個鏈。

iptables具有Filter, NAT, Mangle, Raw四種內建表:

1. Filter表

Filter表示iptables的預設表,因此如果你沒有自訂表格,那麼就預設使用filter表,它具有以下三種內建鏈:

  • INPUT鏈 – 處理來自外部的資料。

  • OUTPUT鏈 – 處理向外發送的資料。

  • FORWARD鏈 – 將資料轉寄到原生其他網卡裝置上。

2. NAT表

NAT表有三種內建鏈:

  • PREROUTING鏈 – 處理剛到達本機並在路由轉寄前的資料包。它會轉換資料包中的目標IP地址(destination ip address),通常用於DNAT(destination NAT)。

  • POSTROUTING鏈 – 處理即將離開原生資料包。它會轉換資料包中的源IP地址(source ip address),通常用於SNAT(source NAT)。

  • OUTPUT鏈 – 處理本機產生的資料包。

3. Mangle表

Mangle表用於指定如何處理資料包。它能改變TCP頭中的QoS位。Mangle表具有5個內建鏈:

  • PREROUTING

  • OUTPUT

  • FORWARD

  • INPUT

  • POSTROUTING

4. Raw表Raw表用於處理異常,它具有2個內建鏈:
  • PREROUTING chain

  • OUTPUT chain

iptables還支援自己定義鏈。但是自己定義的鏈,必須是跟某種特定的鏈關聯起來的。在一個關卡設定,指定當有資料的時候專門去找某個特定的鏈來處理,當那個鏈處理完之後,再返回。接著在特定的鏈中繼續檢查。

注意:規則的次序非常關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的。

 

牢記以下三點式理解iptables規則的關鍵:

  • Rules包括一個條件和一個目標(target)

  • 如果滿足條件,就執行目標(target)中的規則或者特定值。

  • 如果不滿足條件,就判斷下一條Rules。

在target裡指定的特殊值:
  • ACCEPT – 允許防火牆接收資料包

  • DROP – 防火牆丟棄包

  • QUEUE – 防火牆將資料包移交到使用者空間

  • RETURN – 防火牆停止執行當前鏈中的後續Rules,並返回到調用鏈(the calling chain)中。

推薦閱讀:

iptables—包過濾(網路層)防火牆

Linux防火牆iptables詳細教程

iptables+L7+Squid實現完善的軟體防火牆

iptables的備份、恢複及防火牆指令碼的基本使用

Linux下防火牆iptables用法規則詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.