close
 實 驗 目 的

Transparent mode 透通式防火牆

便利性在於不變動現有環境下(例如: 調整NAT...等等先前必要解決問題先免了),

透明式做防火牆過濾動作(我們未必在此機器上放置IP(駭客不易發現此防火牆存在)

若使用者需要進行管理,亦可在此台防火牆增設管理用IP(基於安全考量,建議不要設IP)

透通式架構可辨識第二層架構(類似Layer 2 Switch運作,可辨識mac),由於Layer 2 層級無法辨識

Ethernet介面,我們此LAB將撰寫iptables 時須載入module "physdev" 方可進行介面辨識比對


本例實驗以Forward table 為主(不建議用本機 standalone應用)

實驗目標:

 (1.) 部署透通式防火牆至Server 192.168.11.101,192.168.11.102 上遊 以進行Packet 過濾目的
 
 (2.) 透通式防火牆管理IP: 192.168.11.225/24 ,內存在eth0(INBOUND 過濾標的) , eth1

         建立br0 界面並將eth0,eth1 網路界面加入br0 界面,啟用STP 功能(為防止廣播風爆產生)
 
 (3.) 最後我們在透通式防火牆撰寫 IPTABLE for 192.168.11.101,192.168.11.102 開放服務埠

         網頁/FTP伺服器: 192.168.11.101  運行80,143,21 埠須對外開放存取

         電子郵件伺服器:  192.168.11.102  運行 25,110 埠須對外開放存取


         透通式防火牆不開放對外PING(icmp deny),但透通式F/W本身可以對外Ping(icmp accept)

         只允許192.168.11.0/24 網段利用ssh port:22 進行遠端管理工作





 實驗開始:

 由於本實驗需要用到遠端管理_防火牆,我們配置該防火牆br0界面IP為192.168.11.225/24

然而我們會使用到封包轉送功能(Forward類型防火牆),我們必須啟用以下服務

vi  /etc/sysctl.conf

net.ipv4.ip_forward = 1   #將封包轉送功能設為 true 

sysctl   -p         #立即生效
 /etc/sysctl.conf  修改後設定

接者我們安裝" bridge-utls"管理工具(Layer 2),等會將使用此工具組態相關設定



接下來我們要修改eth0,eth1 兩張網卡初始化組態,很簡單請參考以下組態即可

 vi /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE="eth0"              #網卡eth1 組態也要依照此eth0內容做設定,在此不贅言
ONBOOT=yes
HWADDR=00:0C:29:C1:7F:41
BOOTPROTO=static

下一步,我們要開始手動建立br0界面(橋接界面),並將網卡eth0,eth1 加入br0 成員

brctl addbr br0                    #brctl addbr br0   新增一個bridge 界面br0
brctl addif br0 eth0            # brctl addif  br0 eth0  將eth0 加入br0 成員
brctl addif br0 eth1           # brctl addif  br0 eth0  將eth1 加入br0 成員
brctl stp br0 on                 # brctl  stp  br0 on stp協定啟用與L2環境設定相關,                                         
                                               為了防範廣播風爆產生機制


#我們使用brctl --help 搭配grep 指令查詢某個參數的使用方法

  以下圖為例,我要查尋關鍵字addbr 即其意為新增一個bridge界面,相當方便



上述設定皆OK後我們可以使用brctl show 指令查看設定成果,如下

 我們可以使用brctl delif/addif  [br界面] [乙太界面] 進行bridge界面管理,參考下圖

 但是這些設定,由於始我們手動組態,開機後設定會reset 清空,故建議撰寫簡易shell script

 寫入/etc/rc.local 檔案使其開機後自動執行上述所說指令(稍後再說)



到目前為止,我們都是在本機測試(還是不能遠端連入防火牆管理),但eth0,eth1 兩端點設備

是可互通的(可互Ping,若您防火牆內容是清空狀態為前提)

請執行以下指令(Transparent mode 主機)

ifconfig br0 192.168.11.225 netmask 255.255.255.0 up   #為br0增設IP 

ip route add default via 192.168.11.1      #撰寫default gw 指向主要gateway

上述指令執行OK後,我們可以找一台近端PC使用pietty 做遠端連線驗證測試(應OK)

總結上述設定,我把他總結寫成簡易shell script ,掛載/etc/rc.local 使其開機自動執行

chmod +x /usr/local/bin/trans.sh   #增加執行權限x

echo '/usr/local/bin/trans.sh' >> /etc/rc.local  #寫入/etc/rc.local



[ 撰寫適用於透通式防火牆之Rules ]

最前面提到bridge mode (Layer 2 )無法辨視 Ethernet(Layer3) 界面做比對,

所以我們本次撰寫rules 方式稍與平常寫的方式略差,差別在於我們需載入

-m physdev  --physdev-in/--physdev-out    

 #通常我們過濾外部進來封包INBOUD使用  
--physdev-in  eth0

  #本Lab中 eth0 為過濾封包界面 屬inboud ,故我的F/W RULES撰寫範例如下

   Line 20 行指定一變數 phsym =  "
-m physdev  --physdev-in eth0"  ,

                                                              我們接下來Rule都需載入此模組,做乙太網路界面比對
   
   
Line 27~34: 行 開放透通式防火牆該主機本身,可對外PING(ICMP)

                              icmp type 0 ,3,4,11,12,14,16,18 需ACCEPT 後,透通F/W才可對外PING
   
   Line 35 行:  拒絕icmp type 8 封包(也就是防止外來主機PING通透通式防火牆 

   Line 37 行:  只開放 192.168.11.0/24 網段,可以存取透通式防火牆22 Port 做遠端管理 


   Line 38 行:  開放80,443.21 Port 服務供外來者存取網頁,https,FTP 服務(.101 主機)

   Line 39 行:  開放25,110,143 Port  服務供外來者存取 電子郵件寄發與IMAP服務(.102主機) 
 
   Line  40 行: 設定FORWARD table 之 Default Policy 為 REJECT

#最後我們可以把本LAB設定通通寫成一個shell script 開機後執行即可完成透通式F/W佈署
   


分享最後完成Script內容,Near版權所有

#!/bin/bash

# add in  /etc/rc.local

iptables -F

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 on

ifconfig br0 192.168.11.225 netmask 255.255.255.0 up

ip route add default via 192.168.11.1

############Transparent_Firewall Rules by Near##########

#Load Module:

phsy="-m physdev --physdev-in"

######################

iptables -A FORWARD  $phsy eth0 -m state --state INVALID -j DROP
iptables -A FORWARD  $phsy eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
######################ICMP RULES###############################
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 0 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 3 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 4 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 11 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 12 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 14 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 16 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 18 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p icmp --icmp-type 8 -j  DROP
##################################################################
iptables -A FORWARD  $phsy eth0 -p tcp -s 192.168.11.0/24 -d 192.168.11.225 --dport 22 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p tcp --syn -d 192.168.11.101 -m multiport --dports 80,443,21 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -p tcp --syn -d 192.168.11.102 -m multiport --dports 25,110,143 -j ACCEPT
iptables -A FORWARD  $phsy eth0 -j REJECT
 
     
LAB實作時技術參考文獻:

Linux 網路安全技術與實現 第二版  陳勇勳(悅知)
arrow
arrow
    全站熱搜

    終極.凱因斯 發表在 痞客邦 留言(0) 人氣()