通透式防火牆


一般來講,Packet Filter Firewall 是在 Layer 3 運作的,因此會去牽涉到 Routing 的問題,若你的 Firewall 本身是建立在企業內部網路的 Gateway(或 NAT)上面,那這並不會是一個很大的問題。但假如今天你們的機器受到外界不斷的攻擊(不論它是 Linux 還是 Windows),你希望在不改變網路架構的前提下(IP 不改變,Routing 不更動),放置一臺 Firewall 在機器的前方抵擋外來的攻擊呢?這時你就需要使用 Transparant Firewall,也就是俗稱的通透式防火牆。

通透式防火牆最大的優點就是不需要去變動原有的網路架構,你只需要把網路線剪成二半,將通透式防火牆接在中間即可,如下圖的範例。

本來的網路架構:
伺服器 ---------> Router(OR Nat) ----------> INTERNET

裝上通透式防火牆就變成:
伺服器 ---------> Firewall ---------> Router(OR Nat) ----------> INTERNET

其實通透式防火牆的運作原理很簡單,它其實就是一臺 "Bridge",只是它具有防火牆的功能而已。Linux 是可以當做通透式防火牆來使用的,而且設定上非常的簡單。更棒的是由於 Linux 功能強大,你除了可以把它當作防火牆來使用以外,還可以搭配 Layer 7 Filter(應用層防火牆)來進行頻寬管理,例如限制 P2P 軟體可以使用的頻寬或是管控 MSN 等等。

接下來是讓 Linux 以 Bridge Mode 運作的設定方式。

網路 script 組態設定

一、/etc/sysconfig/network-scripts/ifcfg-br0:

引用:
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.100.254
NETMASK=255.255.255.0
ONBOOT=yes

註:如果需要進行遠端管理在bind IP到Bridge介面,否則不需bind任何IP。

 

二、/etc/sysconfig/network-scripts/ifcfg-eth0:

引用:
DEVICE=eth0
TYPE=ETHER
ONBOOT=yes
BRIDGE=br0

 

三、/etc/sysconfig/network-scripts/ifcfg-eth1:

引用:
DEVICE=eth1
TYPE=ETHER
ONBOOT=yes
BRIDGE=br0

 

設定好後,以 servier network restart 重新啟動網路界面,應該就可以發現 br0 這個 bridge 界面了。很簡單吧,只要輕輕鬆鬆的幾行設定就可以讓 Linux 搖身一變成為 Bridge Firewall,只要你懂得如何調較,Linux 一點都不會輸給那些貴死人的企業級firewall。事實上,有很多企業級 firewall 其實骨子裡也是使用 Linux......。

設定防火牆需註意事項:

1.過濾條件要寫在 FORWARD Chain

2.要使用 physdev 模組來過濾特定界面的封包,例如:

iptables -A forward -m physdev --physdev-in eth0 -j DROP
(從 eth0 進來的封包都丟掉)

iptables -A forward -m physdev --physdev-out eth0 -j DROP
(從 eth0 進來的封包都丟掉)

iptables -A forward -m physdev --physdev-is-in DROP
(進入 bridge 界面的封包都丟掉)

iptables -A forward -m physdev --physdev-is-out DROP
(從 bridge 界面送出去的封包都丟掉)

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料