1 / 29

NetFilter

NetFilter. IPTables. Introduction. 當封包抵達 Linux 防火牆的時候,依照它的目的地可以進入 Linux 主機由應用程式接收,或者是經由另外的介面轉送出去。 Netfilter 就是在封包進入以及轉出主機中的路徑上,加上一些掛載點( Hook) 並使用封包所屬的 table 來決定如何處置封包。 掛載點 (Hook) 、表格 (Table). 在 netfilter 中,定義了五個掛載點 (Hook) 分別是 Pre-Routing 、 Local-in 、 Local-out 、 Forward 和 Post-Routing.

kennan
Download Presentation

NetFilter

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NetFilter IPTables

  2. Introduction • 當封包抵達 Linux 防火牆的時候,依照它的目的地可以進入 Linux 主機由應用程式接收,或者是經由另外的介面轉送出去。 • Netfilter 就是在封包進入以及轉出主機中的路徑上,加上一些掛載點(Hook)並使用封包所屬的table來決定如何處置封包。 • 掛載點(Hook)、表格(Table)

  3. 在netfilter中,定義了五個掛載點(Hook)分別是Pre-Routing、Local-in、Local-out、Forward和Post-Routing 在netfilter中,定義了五個掛載點(Hook)分別是Pre-Routing、Local-in、Local-out、Forward和Post-Routing

  4. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  5. 當封包經過這些掛載點,就可以依照事先規定的動作來處理封包,如Accept、Drop、Queue、Return、Log、Mark、Reject、 Masquerade、Redirect等動作。

  6. 當封包由介面可接收後會先進入Pre-Routing Hook,再由Routing判斷封包是要進入本機或是要送到另依個網路中 • 如果是送到本機上則會進入Local-In來檢查封包 • 如果是要送到另依個網路則送到Forward 檢查 • 如果封包由本機送出則會先進入Local-out 檢查,最後如果封包要送到媒體上則會進入Post-Routing中檢查

  7. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  8. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  9. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  10. Netfilter還定義了三種表格 filter、NAT、Mangle,讓使用者能夠在不同的表格中取得他所需要的功能

  11. filter table • filter table中所包含的掛載點一共有三個分別是Local-in、Forward以及Local-out • 在filter table中主要是用來設定封包過濾的動作,常用的動作分別是 • DROP、REJECT、ACCEPT以及LOG

  12. Filter • LOG紀錄該封包資訊 • REJECT退回該封包 • ACCEPT讓封包通過 • DROP丟棄封包

  13. NAT table • 在NAT table中包含三個掛載點Pre-Routing、Local-Out和Post-Routing,提供了操作NAT時所需要的全部功能。 • 轉譯封包位址資訊

  14. Nat • SNAT轉譯來源位址 • DNAT轉譯目的位址 • MASQUERADE轉譯來源位址成為 NIC 的位址 • REDIRECT轉送至本機某個 Port

  15. mangle table • mangle table中所包含的掛載點Pre-Routing、Local-out,他是用來在封包標頭中增加一些資料來幫助linux kernel network sub-system來分類封包 • 他的動作包括TTL、TOS以及增加MARK標示封包。

  16. Mangle • TTL修改 Time To Live 資訊 • MARK標記該封包 • TOS設定 Type Of Service 資訊

  17. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  18. 如果當我分別在Pre-Routing、Post-Routing和filter上分別增加:如果當我分別在Pre-Routing、Post-Routing和filter上分別增加: • iptables –A INPUT –p icmp –j LOG • iptables –A OUTPUT –p icmp –j LOG • iptables –A FORWARD –p icmp –j LOG

  19. Pre-Routing Forward • Post-Routing Routing Routing Local-in Local-out Linux Protocol Stack

  20. 心得 • 參數 • PORT • Protocol • IP

  21. iptables 指令 • -N建立新的chain • -X移除空的chain • -P變更chain的標準規則 • -L列示在chain中的規則 • -F將一個chain中的規則排除掉 • -Z將封包和位元組計數器歸零

  22. -A加入一個新的規則 • -I插入一個新的規則 • -R置換一個規則 • -D刪除一個規則 • 參數值前面加”!”代表”Not” • -p !TCP

  23. 清空現有的rules • iptables –F • 刪除自訂chains • iptables –X • 設定預設policy • iptables –P INPUT DROPiptables –P FORWARD DROPiptables –P OUTPUT DROP

  24. Example • 允許192.168.2.0/24能夠telnet 到140.134.4.20 • #iptables –A FORWARD –s 192.168.2.0/24 –d 140.134.4.20 –p tcp --dport 23 –j ACCEPT • #iptables –A FORWARD –s 140.134.4.20 –d 192.168.2.0/24 –p tcp --sport 23 –j ACCEPT

  25. 192.168.2.200上逢甲BBS轉到210.64.125.5 • #iptables –t nat –A PREROUTING –s 192.168.2.200 –d 140.134.4.5 –p tcp --dport 23 –j DNAT --to-destination 210.64.125.5

  26. 指令順序的問題

  27. netfilter處理判斷順序 • Tables  Chains  Rules  Policy

More Related