350M - Transparent Mode 實作筆記

1、前言

本文實作為將 Juniper 350M 設備,設定為「透明模式 (Transparent Mode)」並實作下列項目:
  • 阻擋特定 LAN IP 無法上 Internet。
  • 限制特定 LAN IP Group 上 Internet 使用頻寬。
  • 限制特定網址無法連結 (例如 facebook, plurk)。



文章目錄

1、前言
2、實作環境
3、安裝及設定
4、設定 Juniper 350M 為 Transparent Mode
          步驟1.設定 Interface Zone
          步驟2.設定 Default Gateway
          步驟3.設定 Policy
          步驟4.測試 Transparent Mode 設定是否成功
          CLI 文字介面操作
5、實作一:阻擋特定 LAN IP 無法上 Internet
          GUI 圖形介面操作
          CLI 文字介面操作
6、實作二:限制特定 LAN IP Group 上 Internet 使用頻寬
          GUI 圖形介面操作
          CLI 文字介面操作
7、實作三:限制特定網址無法連結 (例如 facebook, plurk)
          GUI 圖形介面操作
          CLI 文字介面操作
8、備份設定檔
9、參考



2、實作環境

  • Juniper 350M
  • Firmware Version: 6.2.0r5.0 (Firewall + VPN)
  • VLAN1 IP Address: 192.168.0.20
  • Interface、Zone
  • ethernet0/1、V1-Trust
  • ethernet0/3、V1-Untrust

整個實作架構圖如下圖所示,採用 FreeBSD PF 負責 NAT/RDR 任務關於 FreeBSD PF 設定,請參考站內文章 Packet Filter - 建置 NAT 機制




3、安裝及設定

透過電腦的 RS-232 Port 用原廠附的 Console 線與 Juniper 350M 的 Console Port 對接,超級終端機設定值如下:
  • 傳輸位元 (Bits Per Second): 9600
  • 資料位元 (Data Bits): 8
  • 同位檢查 (Parity):
  • 停止位元 (Stop Bits): 1
  • 流量控制 (Flow Control):




4、設定 Juniper 350M 為 Transparent Mode

步驟 1. 設定 Interface Zone

要將 Juniper 350M 設定為 Transparent Mode ,則必須將 Interface 的 Zone 調整為 V1-Trust、V1-Untrust,本實作環境中將 ethernet0/1 Zone 設定為 V1-Trust 而將 ethernet0/3 Zone 設定為 V1-Untrust,同時將 VLAN1 設定 IP Address 192.168.0.20,以便屆時在 LAN IP 端可使用此 IP Address 登入 Juniper 350M 進行管理。

1. 使用預設帳號 netscreen 及預設密碼 netscreen 登入 Juniper 350M,切換至【Network】 >> 【Interfaces】 >> 【ethernet0/1】 >> 【Edit】 >> 調整 Zone Name 為 V1-Trust >> 【OK】。




2. 切換至【Network】 >> 【Interfaces】 >> 【ethernet0/3】 >> 【Edit】 >> 調整 Zone Name 為 V1-Untrust >> 【OK】。



3. 切換至【Network】 >> 【Interfaces】 >> 【vlan1】 >> 【Edit】 >> 輸入 IP Address 192.168.0.20 >> 【OK】。





步驟 2. 設定 Default Gateway

設定 Interface Zone 完成後,接著要指定 Default Gateway,其中 Gateway IP Address 為 NAT 與 Juniper 350M e0/3 V1-Untrust 相連接介面的 IP 位址,請參考此次實作架構圖:

切換至【Network】 >> 【Routing】 >> 【Routing Entries】 >> 【New】 來新增 Default Gateway,IP Address/Netmask 請填入「0.0.0.0/0」,而 Next Hop 請點選【Gateway】 >> Gateway IP Address 請填入 「192.168.0.1」 >> 【OK】。






步驟 3. 設定 Policy

Interface Zone 及 Default Gateway 都設定完成後,便剩下設定 Policy 即可完成 Transparent Mode 機制,由於本次實作 Juniper 設備僅擔任 Transparent 的角色,因此 Policy 設定為雙向 any pass。

1. 切換至【Policy】 >> 【Policies】 >> From 選擇【V1-Trust】 >> To 選擇【V1-Untrust】>> 按下【New】 來新增 Policy。


在新增 Policy 內容視窗中,請依序選擇或填入下列資訊:
  • Name(Optional): 請填入此 Policy 的名稱本例為 V1-Trust to V1-Untrust
  • Source Address: 請選擇 any
  • Destination Address: 請選擇 any
  • Service: 請選擇 ANY
  • 按下 【OK】 新增 Policy




2. 切換至【Policy】 >> 【Policies】 >> From 選擇【V1-Untrust】 >> To 選擇【V1-Trust】>> 按下【New】 來新增 Policy。


在新增 Policy 內容視窗中,請依序選擇或填入下列資訊:
  • Name(Optional): 請填入此 Policy 的名稱本例為 V1-Untrust to V1-Trust
  • Source Address: 請選擇 any
  • Destination Address: 請選擇 any
  • Service: 請選擇 ANY
  • 按下 【OK】 新增 Policy



最後,檢查一下剛才新增的二條 Policy 是否都成功出現。




步驟 4. 測試 Transparent Mode 設定是否成功

上述設定完成後,來測試看看我們是否有將 Transparent Mode 機制設定成功,將與 Juniper 350M 的 e0/1 介面上,以及電腦主機設定 IP 192.168.0.100 來進行測試:

1. 設定測試電腦主機 IP 位址為 192.168.0.100。



2. 使用此 IP 位址嘗試 Ping Juniper 350M 設備的 vlan1 IP 192.168.0.20,測試 LAN IP 是否能連到 Juniper 350M 設備,以及 Ping Juniper 350M 設備上層的 NAT LAN IP 192.168.0.1,測試 LAN IP 是否能連到 NAT,因為 Juniper 350M 已經設定為 Transparent Mode (都要能正確 ping 到才是 OK 的!!)。



3. 使用此 IP 位址嘗試 Ping Internet IP 168.95.1.1,測試 LAN IP 是否能連到 Internet,接著再嘗試 Ping Internet FQDN tw.yahoo.com,測試 LAN IP 是否能連到 Internet 且 DNS 正常運作 (都要能正確 ping 到才是 OK 的!!)。



4. 開啟瀏覽器網址列輸入 192.168.0.20,測試能否連到 Juniper 350M 登入畫面。



5. 開啟瀏覽器網址列輸入 tw.yahoo.com,測試能否連到 Internet 網站。


測試至此,表示我們目前已經將 Juniper 350M 設備,設定 Transparent Mode 機制完成且順利運作中。



CLI 文字介面操作

上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
set interface "ethernet0/1" zone "V1-Trust"
set interface "ethernet0/3" zone "V1-Untrust"
set interface vlan1 ip 192.168.0.20/24
set interface vlan1 ip manageable
set policy id 1 name "V1-Trust to V1-Untrust" from "V1-Trust" to "V1-Untrust"  "Any" "Any" "ANY" permit
set policy id 1
exit
set policy id 2 name "V1-Untrust to V1-Trust" from "V1-Untrust" to "V1-Trust"  "Any" "Any" "ANY" permit
set policy id 2
exit
set route 0.0.0.0/0 interface vlan1 gateway 192.168.0.1






5、實作一:阻擋特定 LAN IP 無法上 Internet

GUI 圖形介面操作

本實作環境中,希望能 阻擋特定 LAN IP 位址無法通過 Juniper 350M 設備,所以若有 LAN IP 中毒,並且往外狂發封包的情況下設定此 Policy 之後,便能有效將封包阻擋在 Juniper 350M 設備這端而不影響到 NAT 運作,下列我們先設定要進行阻擋的 IP 清單,之後將這些要阻擋的 IP 清單加入至群組中,屆時 Policy 只要套用該筆群組即可,這樣不但管理上較方便且對 Juniper 運作效能也有改善的效果。

1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】準備新增 Policy,並新增三筆 IP 位址,資料名稱為 BadUser-A (192.168.0.34)、BadUser-B (192.168.0.78)、BadUser-C (192.168.0.100)。




2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】準備新增 Policy,並新增郡組 Block User IP List 並將剛才新增的三筆資料加入至群組中。





3. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
  • Source Address: 選擇剛才新增的群組 Block User IP List
  • Destination Address: 選擇 Any
  • Service: 選擇 ANY
  • Action: 選擇 Deny
  • 按下 OK 即新增 Policy




此時,您將會發現被限制的 LAN IP 仍然可以通過 Juniper 350M 到 Internet? 因為 Juniper 350M 為 First Match 式的防火牆,然而新增的 Policy 預設情況下會在最底部,由下圖中可以看到因為 Policy 第一條為 any to any,所以 LAN IP 當然可以通過 Juniper 350M 設備到 Internet,要使 Policy 生效我們只需要把該 Policy 往上移即可。

阻擋 Policy 往上移 LAN IP 仍 可以 通過 Juniper 350M 到 Internet。




阻擋 Policy 往上移後 LAN IP 即 無法 通過 Juniper 350M 到 Internet。





CLI 文字介面操作

上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
set address "V1-Trust" "BadUser-A" 192.168.0.34 255.255.255.0
set address "V1-Trust" "BadUser-B" 192.168.0.78 255.255.255.0
set address "V1-Trust" "BadUser-C" 192.168.0.100 255.255.255.0
set group address "V1-Trust" "Block User IP List"
set group address "V1-Trust" "Block User IP List" add "BadUser-A"
set group address "V1-Trust" "Block User IP List" add "BadUser-B"
set group address "V1-Trust" "Block User IP List" add "BadUser-C"
set policy id 3 from "V1-Trust" to "V1-Untrust"  "Block User IP List" "Any" "ANY" deny
set policy id 3
exit






6、實作二:限制特定 LAN IP Group 上 Internet 使用頻寬

GUI 圖形介面操作

本文實作環境中,希望能限制特定 LAN IP Group 通過 Juniper 350M 設備時,網路頻寬會被限制在指定的數值 200 kbps,所以不管屆時 LAN IP Group 內有多少筆記錄,只要其內所有的 IP 都將共用 200kbps。

1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,新增三筆 IP 資料名稱為 QosUser-A (192.168.0.100)、QosUser-B (192.168.0.113)、QosUser-C (192.168.0.150)。



2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】,新增郡組 Qos User IP List 並將剛才新增的三筆資料加入至群組中。




3. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
  • Source Address: 選擇剛才新增的群組 Qos User IP List
  • Destination Address: 選擇 Any
  • Service: 選擇 ANY
  • 移至最下方按下 Advanced,勾選【Traffic Shaping】 >> 選擇【Maximum Bandwidth】 並填入頻寬大小為 200 kbps,按下 【OK】 >> 【OK】 即新增 Policy





4. 完成後,記得將此 Policy 移至 any to any policy 之前,才會正確套用生效。


若您想了解此 Policy 套用之後,使用的頻寬狀況可以切換到 【Reports】 >> 【Policies】 >> 點選【View Detail】圖示,便可以即時看到 Policy 頻寬使用情況。





CLI 文字介面操作

上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
set address "V1-Trust" "QosUser-A" 192.168.0.100 255.255.255.0
set address "V1-Trust" "QosUser-B" 192.168.0.113 255.255.255.0
set address "V1-Trust" "QosUser-C" 192.168.0.150 255.255.255.0
set group address "V1-Trust" "Qos User IP List"
set group address "V1-Trust" "Qos User IP List" add "QosUser-A"
set group address "V1-Trust" "Qos User IP List" add "QosUser-B"
set group address "V1-Trust" "Qos User IP List" add "QosUser-C"
set policy id 4 from "V1-Trust" to "V1-Untrust"  "Qos User IP List" "Any" "ANY" permit traffic mbw 200
set policy id 4






7、實作三:限制特定網址無法連結 (例如 facebook, plurk)

GUI 圖形介面操作

若公司要防止員工上班種菜浪費公司頻寬,您也可以利用 DNS 方式來阻擋相關網站即可,由於是利用 DNS 方式來阻擋,因此也必須為您的 Juniper 350M 設定 DNS Server 清單,如此一來 Juniper 350M 才能判斷網站的 FQDN 解析之後的 IP Address,並且進行後續的阻擋動作。

1. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
  • Address Name 請填入 facebook
  • 點選【Domain Name】並填入 facebook.com
  • Zone 請選擇 V1-Untrust
  • 按下【OK】新增記錄



2. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >> 【List】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
  • Address Name 請填入 plurk
  • 點選【Domain Name】並填入 plurk.com
  • Zone 請選擇 V1-Untrust
  • 按下【OK】新增記錄



3. 切換到 【Policy】 >> 【Policy Elements】 >> 【Addresses】 >>【Groups】 >> 按下【New】,
新增群組 Block Sites List ,並且將剛才新增的二筆資料加入至群組中。





4. 切換到 【Network】 >> 【DNS】 >> 【Host】,然後在視窗中依序填入或選擇相關欄位值:
  • Primary DNS Server 請填入 168.95.192.1
  • Secondary DNS Server 請填入 168.95.1.1
  • 按下【Apply】即指定 DNS Server 生效,您可按下【Show DNS Lookup Table】即會顯示 facebook.com、plurk.com 其 FQDN 所解析的 IP Address




5. 切換到 【Policy】 >> 【Policies V1-Trust to V1-Untrust】 >> 按下【New】,然後在視窗中依序填入或選擇相關欄位值:
  • Source Address: 選擇 Any
  • Destination Address: 選擇剛才新增的群組 Block Sites List
  • Service: 選擇 ANY
  • Action: 選擇 Deny
  • 按下 OK 即新增 Policy



6. 別忘了,新增的 Policy 在最底部,記得將 Policy 調整至 any to any policy 之前才能正確套用生效。



完成 Policy 的新增作業後,由下圖測試結果可以看到使用者可正常瀏覽 Yahoo 奇摩網站,卻無法瀏覽剛才限制的 facebook.com 及 plurk.com 二個網站。






CLI 文字介面操作

上述 GUI 圖形介面操作雖然簡單明瞭,若您習慣在 CLI 文字介面下操作,可輸入如下指令達到同樣的效果。
set dns host dns1 168.95.192.1
set dns host dns2 168.95.1.1
set address "V1-Untrust" "facebook" facebook.com
set address "V1-Untrust" "plurk" plurk.com
set group address "V1-Untrust" "Block Sites List"
set group address "V1-Untrust" "Block Sites List" add "facebook"
set group address "V1-Untrust" "Block Sites List" add "plurk"
set policy id 5 from "V1-Trust" to "V1-Untrust"  "Any" "Block Sites List" "ANY" deny
set policy id 5
exit






8、備份設定檔

相關機制都設定並測試完畢後,記得備份設定檔,以便發生不可預期錯誤時可快速回復至當初的設定檔。請切換到 【Configuration】 >> 【Update】 >> 【Config File】 >> 按下【Save To File】 即可備份設定檔至目前登入的主機上。






9、參考