追蹤
NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落
關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 174774

    累積人氣

  • 5

    今日人氣

    1

    追蹤人氣

CentOS 6.2 基於Transparent mode 透通式防火牆應用by Near

 實驗開始:

 由於本實驗需要用到遠端管理_防火牆,我們配置該防火牆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 網路安全技術與實現 第二版  陳勇勳(悅知)
相簿設定
標籤設定
相簿狀態