Page 1

網工班 85 期 Linux 30% 報告

Iptables+fwbuilder+VPN

姓名:楊忠漢 指導老師: 彭學勤

楊宏文 林旺聰


Iptables+fwbuilder 防火牆概述 在網路的世界中存在著許多駭客,亦或是有一些有心或無心的人士,倘若這 些人入侵了企業內部網路,便有可能使得內部電腦癱瘓,所以為了增加內部主機 的安全性,需要架設防火牆,作為保護本機或內部主機的第一道防線。

防火牆總類 防火牆大致上分為兩類,硬體式與軟體式: 硬體式防火牆:此種防火牆是使用專門的硬體負責執行,因此此硬體裝置是專門 用來建構防火牆,故可讓硬體裝置與作業系統達到最佳化,以提升整體效能,其 缺點是價格較昂貴。 軟體式防火牆:此種防火牆是於目前所使用的作業系統中,再額外的安裝防火牆 軟體,因此其執行的效能會受到系統的其他程序之影響,但可提供較高的使用彈 性,且價格較硬體式防火牆便宜。

防火牆運作方式 依照防火牆之運作方式大概可分為兩種,Filter Firewall 與 Application Firewall Filter Firewall:為封包過濾式的防火牆,是針對來源來過濾封包的 header, 也就是表頭,來進行比對分析的動作,若比對結果符合我們所設定的規則,則進 行進一步的處理,看是要放行、丟棄、拒絕、偽裝或執行,完全視管理者如何做 設定,iptables 便是此類防火牆。 Application Firewall:最典型的代表為 Proxy,即所謂代理伺服器,是當 Client 端有所需求時,會由 Proxy 幫忙 Client 端至 Internet 取回所需資料,然後再回 應給 Client 端,因此對 Client 端來說是較為安全的。


以區域型的防火牆而言, 由於此類防火牆都是當作路由器角色,因此防火 牆類型主要則有封包過濾的 Netfilter 與利用代理伺服器 (proxy server) 進 行存取代理的方式了。 在 Linux 上面我們使用核心內建的 Netfilter 這個機制,而 Netfilter 提供了 iptables 這個軟體來作為防火牆封包過濾的指令。由於 Netfilter 是 核心內建的功能,因此他的效率非常的高,非常適合於一般小型環境的設定。 Netfilter 利用一些封包過濾的規則設定,來定義出什麼資料可以接收,什麼資 料需要剔除,以達到保護主機的目的。

Linux 的封包過濾軟體:iptables Linux 的防火牆為什麼功能這麼好?這是因為他本身就是由 Linux 核心所 提供,由於直接經過核心來處理,因此效能非常好! 不過,不同核心版本所使 用的防火牆軟體是不一樣的,因為核心支援的防火牆是逐漸演進而來的。 

Version 2.0:使用 ipfwadm 這個防火牆機制;

Version 2.2:使用的是 ipchains 這個防火牆機制; Version 2.4 與 2.6 :主要是使用 iptables 這個防火牆機制,不過在 某些早期的 Version 2.4 版本的 distributions 當中,亦同時支援 ipchains (編譯成為模組),好讓使用者仍然可以使用來自 2.2 版的 ipchains 的防火牆規劃。不過,不建議在 2.4 以上的核心版本使用 ipchains !

Iptables 抵擋封包的方式 

拒絕讓 Internet 的封包進入 Linux 主機的某些 port

拒絕某些來源 IP 的封包進入

拒絕讓帶有某些特殊旗標(flag)的封包進入

分析硬體位置(MAC)來提供服務

Iptables 是利用封包過濾的機制,所以她會分析封包裡的表頭資料。根據 表頭資料比對定義的規則來決定該封包是否可以進入主機或者是被丟棄。根據封


包的分析資料比對預先定義的規則內容,若封包與規則內容相同則進行動作,否 則就繼續進行下一條規則的比對,因此重點在於比對與分析順序(規則是有順序 的) 。


這個防火牆軟體裡面有多個表格 (table) ,每個表格都定義出自己的預設政 策與規則, 且每個表格的用途都不相同。

管理本機進出的 filter 、管理後端主機 (防火牆內部的其他電腦) 的 nat 、管理特殊旗標使用的 mangle (較少使用) 。 

filter (過濾器):主要跟進入 Linux 本機的封包有關,為預設的 table 。 o

INPUT:主要與想要進入 Linux 本機的封包有關;

o

OUTPUT:主要與 Linux 本機所要送出的封包有關;

o

FORWARD:與 Linux 本機比較沒有關係, 他可以『轉遞封包』到後端

的電腦中,與 nat table 相關性較高。 

nat (位址轉換):是 Network Address Translation 的縮寫, 這個表格主

要在進行來源與目的之 IP 或 port 的轉換,與 Linux 本機較無關,主要 與 Linux 主機後的區域網路內電腦較有相關。 o

PREROUTING:在進行路由判斷之前所要進行的規則(DNAT/REDIRECT)

o

POSTROUTING:在進行路由判斷之後所要進行的規則

(SNAT/MASQUERADE) o

OUTPUT:與發送出去的封包有關


mangle (破壞者):這個表格主要是與特殊的封包的路由旗標有關, 早期僅

有 PREROUTING 及 OUTPUT 鏈,不過從 kernel 2.4.18 之後加入了 INPUT 及 FORWARD 鏈。 由於這個表格與特殊旗標相關性較高,較少使用。

NAT 1. 先經過 NAT table 的 PREROUTING 鏈; 2. 經由路由判斷確定這個封包是要進入本機與否,若不進入本機,則下一步; 3. 再經過 Filter table 的 FORWARD 鏈; 4. 通過 NAT table 的 POSTROUTING 鏈,最後傳送出去。

來源 NAT,SNAT:修改封包表頭的『來源』項目 1. 用戶端所發出的封包表頭中,來源會是 192.168.1.100 ,然後傳送到 NAT 這部主機; 2. NAT 這部主機的內部介面 (192.168.1.2) 接收到這個封包後,會主動分析 表頭資料, 因為表頭資料顯示目的並非 Linux 本機,所以開始經過路由, 將 此封包轉到可以連接到 Internet 的 Public IP 處; 3. 由於 private IP 與 public IP 不能互通,所以 Linux 主機透過 iptables 的 NAT table 內的 Postrouting 鏈將封包表頭的來源偽裝成為 Linux 的 Public IP ,並且將兩個不同來源 (192.168.1.100 及 public IP) 的封包對應寫入暫 存記憶體當中, 然後將此封包傳送出去了;

4. 在 Internet 上面的主機接到這個封包時,會將回應資料傳送給那個 Public IP 的主機;


5. 當 Linux NAT 伺服器收到來自 Internet 的回應封包後,會分析該封包的 序號,並比對剛剛記錄到記憶體當中的資料, 由於發現該封包為後端主機 之前傳送出去的,因此在 NAT Prerouting 鏈中,會將目標 IP 修改成為後端 主機,亦即那部 192.168.1.100,然後發現目標已經不是本機 (public IP), 所 以開始透過路由分析封包流向;

6. 封包會傳送到 192.168.1.2 這個內部介面,然後再傳送到最終目標 192.168.1.100 機器上去

目標 NAT, DNAT:修改封包表頭的『目標』項目 DNAT 則主要用在內部主機想要架設可以讓 Internet 存取的伺服器。

1. 外部主機想要連接到目的端的 WWW 服務,則必頇要連接到我們的 NAT 伺 服器上頭; 2. 我們的 NAT 伺服器已經設定好要分析出 port 80 的封包,所以當 NAT 伺服器接到這個封包後, 會將目標 IP 由 public IP 改成 192.168.1.210 ,且將該封包相關資訊記錄下來,等待內部伺服器的回應; 3. 上述的封包在經過路由後,來到 private 介面處,然後透過內部的 LAN 傳送到 192.168.1.210 上頭! 4. 192.186.1.210 會回應資料給 61.xx.xx.xx ,這個回應當然會傳送到 192.168.1.2 上頭去; 5. 經過路由判斷後,來到 NAT Postrouting 的鏈,然後透過剛剛第二步驟 的記錄,將來源 IP 由 192.168.1.210 改為 public IP 後,就可以傳送 出去了。


Iptables 優點 1.成本低廉 2.效能好 3.控管性高

Iptables 預計達成目標 開放內部流量至外部(http、https、ssh……) 開放 DMZ 區 DNS Server 提供外部人員查詢 開放 DMZ 區網頁讓外部人員連結瀏覽(預設 80port 改為 8080port)

Lab 實作 Iptables 建置版本 SuSEfirewall2 iptable

3.4_SVNr142-7.6

ver1.3.5

OS :SERVER 10

Iptables 指令格式 Iptables [-AI 鏈][-io 網路介面][-p tcp.udp][-s 來源 ip/網 域]\[- -sport 埠口範圍][-d 目標 ip/網域][- -dport 埠口範圍]\ -j [ACCEPT][DROP][REJECT]


開放 PING 流量

開放查詢外部 DNS

開放各項服務


開啟 NAT 功能

開放對外 DNS 以及網頁供使用者使用及瀏覽

Iptables 規則儲存及匯入


Firewall Builder 讓管理者便於管理防火牆的工具,同時也是多平台的防火牆配置工 具。

GUI 圖形介面

支援 Microsoft、Linux 及 MAC 等作業平台

支援包括 iptables、FWSM、IPFilter、ipfw、OpenBSD PF 和 Cisco PIX 等防火 牆


VPN VPN(Virtual Private Network)是可以讓遠端使用者透過網際網路來安全的 存取公司內部網路。使用起來就像是在區域網路一樣安全又方便。

OpenVPN 建立在 OSI Layer2 以及 Layer3,並非在 Application Layer,不透過 Web Browser 進行操作,由於安全性架構在 OSI 的底層,因此在安全性上自然也是大 大的提升。

OpenVPN 傳輸方式 OpenVPN 比較特別的是安裝完成之後會模擬出虛擬的網路裝置來 進行資料的傳輸,而其所使用的虛擬裝置為 tun/tap tun (network TUNnel)虛擬的是點對點設備 -simulates a network layer device -layer 3 packets, such as IP packet -used with routing


可被視為虛擬的點對點裝置,就像一般家用的 modem、ADSL 一樣,使用此裝 置的模式稱為 routed mode,因為是在連線後才決定 VPN 雙方的連線路徑,因此 可瞭解 tun 裝置所處理的是 OSILayer3 的工作。

tap (network TAP) 虛擬的是乙太網路設備 -simulates an Ethernet device -layer 2 packets, such as Ethernet frames -used to create a network bridg 可被視為虛擬的 ethernet 網路卡,可以透過此裝置啟動一個 daemon 來接收 ethernet 訊框,稱為 bridge mode,因為裝置是以 bridge 的方式來運作,這是 tun 裝置做不到的,因為 tap 裝置所處理的是 OSILayer2 的工作。

OpenVPN 的好處 

跨平台的可移植性 –Linux

優秀的穩定性

提供 VPN 使用者統一的加密通道進行網路傳輸加強安全性

簡單的安裝過程

透過 VPN 所建立的通道,幾乎可以與目前所有安全機制溝通無礙。

僅需要開啟防火牆單一 Port(1194) 即可處理來自多方的連線,減少惡意入

-Windows

侵的機會。

OpenVPN 預計達成目標 Client 端從外部 VPN 至內部連線 FTP Server

Lab 實作 OpenVPN 建置版本 OpenVPN Server Ver 2.1-0.17

-MacOS


iptable

ver1.4.2

OS :SERVER 10

心得 這次的 Linux LAB 與之前所遇到過的微軟 LAB 實在是有很大的相異之處, 雖然說是 30%團體報告,但由於各自選各自喜歡的主題,因此再結合部分就困難 許多,也比較沒有整體的感覺,但還是很感謝組員的幫忙,大家一起努力研究 Xen 這個鬼東西,讓我們在前置作業不用浪費太多的時間。 與上一次的微軟 Lab 一樣,我負責的是整體的專案設計以及防火牆和對外的 VPN,在建置過程比起微軟的系統真的簡單許多,但相反的,由於是開放式系統, 需要花更多時間去研究細部設定的部分,也透過這樣的方式讓我更了解防火牆、 NAT、VPN 的架構及概念,以及開放式系統的操作。 這次為了 Linux 的 LAB,大概有一個禮拜的時間都直接睡在教室,雖然很累, 但可以跟同學一起留下來奮戰,真的覺得很充實,也覺得自己成長很多,從一開 始接觸到 Linux 的害怕與不安,到現在可以很清楚的駕馭它,我想這次的學習經 驗,對於我未來在職場上一定會是一個很大的助力。

Linux30%Lab-JACK  

Linux30%Lab-JACK

Read more
Read more
Similar to
Popular now
Just for you