9
honest.com 資策會第 79 期網路工程師養成班 Linux 30% 報告 Netfilter/iptables 規劃與建置 學員:鄭超文 聯絡方式: [email protected] 指導老師:彭學勤、楊宏文、林旺聰 資策會第 79 期網路工程師養成班 Linux 30% 報告 Netfilter/iptables 規劃與建置 學員:鄭超文 聯絡方式: [email protected] 指導老師:彭學勤、楊宏文、林旺聰

Linux 30% LAB --Netfilter/iptables

Embed Size (px)

DESCRIPTION

Netfilter/iptables LAB

Citation preview

Page 1: Linux 30% LAB --Netfilter/iptables

honest.com

資策會第79期網路工程師養成班

Linux 30%報告

Netfilter/iptables規劃與建置

學員:鄭超文

聯絡方式:[email protected]指導老師:彭學勤、楊宏文、林旺聰

資策會第79期網路工程師養成班

Linux 30%報告

Netfilter/iptables規劃與建置

學員:鄭超文

聯絡方式:[email protected]指導老師:彭學勤、楊宏文、林旺聰

Page 2: Linux 30% LAB --Netfilter/iptables

honest.com

2

網路拓樸

防火牆網卡設定:

VMware 防火牆網卡設定

Page 3: Linux 30% LAB --Netfilter/iptables

honest.com

3

前置動作 指令-執行 SCRIPT 來隨時套用防火牆規則、驗證結果。

指令-現行規則存檔

指令-登入後可自動執行規則還原動作(倒入 RAM)

加入一行:

防火牆規則 規則-啟動 LOG 紀錄

規則-預先定義 DROP 掉 INPUT 封包

Page 4: Linux 30% LAB --Netfilter/iptables

honest.com

4

規則-開放應用程式可使用本地位址並增加安全性,避免偽裝攻擊

ICMP 封包-PING 規則-開放內部網路可使用 NAT 上網

規則-開放防火牆可以 PING 到外部

規則-開放防火牆可以從外部 PING 到防火牆(測試用)

規則-開放所有內部網路可以 PING 到外部主機且連回來

規則-開放所有 PING 流量

Page 5: Linux 30% LAB --Netfilter/iptables

honest.com

5

測試-從防火牆 Ping Internet

測試-內部網路 Ping Internet

測試-開放內部網路可使用 NAT 上網

SMTP、POP3 封包 規則-開放 DNS 流量到外部 + 發佈 DNS Server

規則-開放內部網路收取外部信箱

Page 6: Linux 30% LAB --Netfilter/iptables

honest.com

6

規則-開放內部網路寄信到外部郵件主機

測試-從內部網路寄信到外部主機

測試-在內部網路收取外部信箱

測試-從外部網路向內部 DNS 伺服器查詢 mail.honest.com 的 IP 位址

Page 7: Linux 30% LAB --Netfilter/iptables

honest.com

7

問題解決 1.在架設防火牆上,起初碰到網路不通的問題,檢查方式是將流量全開:

使用 ICMP-PING 封包作測試,網路仍然不通,詳細檢查後發現網卡有問題,

VMware 因為新增網卡後系統沒套用,需下 serveice network restart 套用。 2.使用 SuSE Studio 的自訂系統設定網卡 IP 位址時,會發現 eth0 和 eth1 在重開

機後 IP 位址設定互換,造成與原先拓樸不合,原本可通過的流量都被檔掉,需

仔細確認。 3.設定 Vmware 的 bridge 網卡時,需注意 IP 位址勿與他人衝突,在 Linux 系統下

是不會警示的。 4.在作 ICMP-PING 封包測試時,內部網路一直無法 ping 到外部網路的主機,在

不斷的嘗試修改規則後,最後發現是設定規則時沒有考慮到 echo-reply 封包回來

的情況,給後期學弟妹作參考。

Netfilter 架構

Page 8: Linux 30% LAB --Netfilter/iptables

honest.com

8

封包經過 Netfilter 時(input),會先看 PREROUTING chain,由於 mangle 表

格可以先不設定(預設處理方式:ACCEPT),故先在 nat 表格比對有無相符條件,

比對到一個 rule 就套用它的處理方式(例如 -j DNAT --to )。若順利通過(沒

有被 DROP 掉或 REJECT),則檢查目的位址是 Netfilter 本身還是其他主機,目

的是到 Netfilter 時則到 INPUT chain 的 filter 表格作比對;目的是到其他主機時

則到 FORWARD chain 的 filter 表格作比對。 總結來說,設定規則時先選擇要管制那個 chain,然後再看它所對應的表格,

將 rule寫在 table上,指令中不指定表格時預設是 filter表格,不指定-s -d --sport --dport 時代表條件是所有來源、目的位址和所有來源、目的埠皆適用。

檢討 這次的 Linux LAB 30%讓我學到很多,我負責的是 Netfilter 防火牆,除了對

於封包的轉送流程瞭解更透徹外,對於團隊合作的精神有了更深一層的體悟。我

覺得扮演組長的我還有很多需要改進的地方,例如在時間緊迫下,當自己的部分

CRASH 掉無法與其他人作整合測試時,應該就要想其它的繞道方式,例如開放

所有封包流量,或是另外架一台 ROUTER 讓其他組員的伺服器有環境可以測

試,不然容易拖到整組進度。

Page 9: Linux 30% LAB --Netfilter/iptables

honest.com

9

參考資料 Linux 網路安全技術與實現,陳勇勳著,悅之文化出版 Linux iptables 技術實務,施威銘研究室著,旗標出版