熱門分類
載入中…
目錄0%

🧩 Juniper SRX 8-Port 測試環境設定範例:Security Zone、DHCP Pool 與混合介面模式

    🧩 Juniper SRX 8-Port 測試環境設定範例:Security Zone、DHCP Pool 與混合介面模式

    這篇不是教學文,是一份 Juniper SRX 8 埠測試環境的 show configuration | display set 完整輸出,逐段拆解每一區塊在做什麼。這類多埠混合模式(路由介面 + 交換介面 + 撥接備援)的組態常見於實驗室或臨時測試機,拿真實輸出來讀,比空講語法更容易建立直覺。文末也會指出這份組態裡幾處不建議照抄的設計問題。

    ⚠️ 原始輸出中的 root-authentication encrypted-password 雜湊值已整段移除,不予公開。雜湊值理論上仍可能被離線暴力破解,即使不是明碼也不應該公開發布。

    1️⃣ 系統基本設定

    set version 15.1X49-D150.2
    set system name-server 8.8.8.8
    set system name-server 8.8.4.4
    set system services ssh
    set system services netconf ssh
    set system services web-management https system-generated-certificate
    set system syslog archive size 100k
    set system syslog archive files 3
    set system max-configurations-on-flash 5
    set system max-configuration-rollbacks 5

    版本是 15.1X49-D150.2,屬於 SRX branch 系列的 Junos 分支。web-management https system-generated-certificate 代表 J-Web 用的是設備自動產生的自簽憑證,瀏覽器一定會跳警告,這在測試機上可以接受,正式環境建議換成內部 CA 簽發的憑證(可參考本站 Windows ADCS 憑證自動註冊 系列)。max-configuration-rollbacks 5 只保留 5 個歷史組態版本,測試機夠用,正式環境視變更頻率可能要調高。


    2️⃣ Autoinstallation:無人值守開局

    set system autoinstallation traceoptions level verbose
    set system autoinstallation traceoptions flag all
    set system autoinstallation interfaces ge-0/0/0 bootp
    set system autoinstallation interfaces ge-0/0/15 bootp

    Autoinstallation 是 Junos 出廠或組態清空後的無人值守開局機制:設備開機時若偵測到指定介面連上 DHCP/BOOTP 伺服器,會嘗試下載組態檔自動套用。這裡把 ge-0/0/0 與 ge-0/0/15 都設成 bootp 來源,代表這台設備原本設計成可以從任一邊插線觸發自動配置,常見於出貨前的批次佈署流程。traceoptions ... flag all 開了完整除錯紀錄,正式量產機通常不會保留這麼詳細的 trace,這也是這份組態帶著「測試機」痕跡的線索之一。


    3️⃣ 介面配置總覽:路由 + 交換混合模式

    這台設備的 16 個實體埠分成三種角色,整理如下:

    介面模式角色備註
    ge-0/0/0 ~ ge-0/0/7Layer 3(routed port)各自獨立 /24 網段的閘道,同時歸屬 trust zone每個埠就是一個獨立子網的預設閘道,不是傳統交換器的 access port
    ge-0/0/8 ~ ge-0/0/14Layer 2(ethernet-switching)全部歸屬 vlan-trust(vlan-id 3)這 7 個埠彼此是同一個 VLAN,走交換而非路由
    ge-0/0/15Layer 3(family inet,無 IP)Autoinstallation 來源埠之一只設 bootp,未配置實際 IP
    fxp0Layer 3頻外管理介面192.168.1.1/24,獨立於業務網段
    irb.0Layer 3vlan-trust 的 VLAN 間路由介面192.168.2.1/24,讓 ge-0/0/8~14 這個 VLAN 具備路由能力
    dl0(撥接介面)Dialer備援線路(如 3G/4G 或 ISDN 撥接)掛在 cl-1/0/0 dialer pool 上

    這是典型的「路由埠 + 交換埠混合」設計:前 8 個埠各自是不同網段的閘道(像一台多埠路由器),後 7 個埠則是同一個 VLAN 內的交換埠(像傳統交換器),中間用 irb.0 把這個 VLAN 接上路由層。這種混合模式在 SRX 這類「防火牆兼具交換器功能」的設備上很常見,但也代表這台設備同時身兼路由器、交換器、防火牆三種角色,組態複雜度會比單一角色的設備高不少。

    # Layer 3 埠範例
    set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.254/24
    ...
    set interfaces ge-0/0/7 unit 0 family inet address 192.168.80.254/24
    
    # Layer 2 埠範例
    set interfaces ge-0/0/8 unit 0 family ethernet-switching vlan members vlan-trust
    ...
    set interfaces ge-0/0/14 unit 0 family ethernet-switching vlan members vlan-trust
    
    # VLAN 與 IRB 綁定
    set vlans vlan-trust vlan-id 3
    set vlans vlan-trust l3-interface irb.0

    4️⃣ 撥接備援介面(dl0 / cl-1/0/0)

    set interfaces cl-1/0/0 dialer-options pool 1 priority 100
    set interfaces dl0 unit 0 family inet negotiate-address
    set interfaces dl0 unit 0 family inet6 negotiate-address
    set interfaces dl0 unit 0 dialer-options pool 1
    set interfaces dl0 unit 0 dialer-options always-on
    set interfaces dl0 unit 0 dialer-options dial-string 1234

    dl0 是 Junos 的邏輯撥接介面(dialer interface),實體撥接載體是 cl-1/0/0(通常對應內建的 3G/4G 模組或序列埠模組)。negotiate-address 代表 IP 位址由撥接對端協商取得,不是固定 IP;always-on 讓這條備援線路保持常開而非按需撥接。dial-string 1234 顯然是佔位測試值,正式環境要換成實際的撥號字串(APN 相關設定或實際電話號碼,依載體模組而定)。這一段在單純的機房測試環境通常用不到,比較像是把出貨模板裡的備援線路設定原封不動保留下來。


    5️⃣ Security Zone 與 Policy:測試用的全開放設定

    set security zones security-zone trust host-inbound-traffic system-services all
    set security zones security-zone trust host-inbound-traffic protocols all
    set security zones security-zone trust interfaces ge-0/0/0.0
    ...
    set security zones security-zone trust interfaces ge-0/0/7.0
    
    set security policies from-zone trust to-zone trust policy trust-to-trust match source-address any
    set security policies from-zone trust to-zone trust policy trust-to-trust match destination-address any
    set security policies from-zone trust to-zone trust policy trust-to-trust match application any
    set security policies from-zone trust to-zone trust policy trust-to-trust then permit

    ⚠️ 這是這份組態裡最需要提醒的部分:trust-to-trust policy 用 any / any / any 全部放行,加上 host-inbound-traffic system-services all 與 protocols all,等於 trust zone 內部完全不設防、且允許所有管理服務從業務介面進來。這種設定只適合封閉的測試網段,拿來當正式環境的起手模板會是嚴重的安全疏漏——會後續加嚴規則的人請務必記得回來收斂,不要讓「測試先求通」的暫時設定變成永久設定。

    被定義但未實際套用的 screen 選項

    set security screen ids-option untrust-screen icmp ping-death
    set security screen ids-option untrust-screen ip source-route-option
    set security screen ids-option untrust-screen ip tear-drop
    set security screen ids-option untrust-screen tcp syn-flood alarm-threshold 1024
    set security screen ids-option untrust-screen tcp syn-flood attack-threshold 200
    set security screen ids-option untrust-screen tcp syn-flood source-threshold 1024
    set security screen ids-option untrust-screen tcp syn-flood destination-threshold 2048
    set security screen ids-option untrust-screen tcp syn-flood timeout 20
    set security screen ids-option untrust-screen tcp land

    這段定義了一組叫 untrust-screen 的攻擊防護規則(ping of death、IP source route、teardrop、SYN flood 各項門檻、land attack),涵蓋常見的 DoS 攻擊特徵防護。但整份輸出裡沒有任何一行把這個 screen 套用到 zone 上(正常應該要有類似 set security zones security-zone untrust screen untrust-screen 這一行)。這是實務上很容易發生的落差:定義了防護規則、卻忘記實際掛載,commit 不會報錯,但這組規則從頭到尾沒有生效過。檢查 screen 是否真的在保護流量,要看 zone 底下有沒有 screen 這個屬性,而不是只看 security screen 底下有沒有定義。


    6️⃣ 路由與交換協定設定

    set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 passive
    set protocols l2-learning global-mode switching
    set protocols rstp interface all

    只有 ge-0/0/0.0 一個介面掛進 OSPF,且是 passive(通告網段但不建鄰居關係),其餘 7 個路由介面(ge-0/0/1~7)都沒有納入任何動態路由協定,代表對外/對其他設備的路由,這份組態目前是不完整或依賴其他機制(如預設路由,但本輸出中也沒看到 routing-options static 相關設定)。rstp interface all 對所有介面開啟 RSTP,避免 Layer 2 迴圈,這是交換器層級的基本保護,測試環境保留是合理的。


    7️⃣ DHCP Local Server 與位址池:網段對應要留意

    set system services dhcp-local-server group jdhcp-group interface ge-0/0/0.0
    ...(ge-0/0/1 ~ ge-0/0/7、fxp0.0、irb.0 全部列入 )
    
    set access address-assignment pool junosDHCPPool1 family inet network 192.168.1.0/24
    set access address-assignment pool junosDHCPPool1 family inet dhcp-attributes router 192.168.1.1
    set access address-assignment pool junosDHCPPool1 family inet dhcp-attributes propagate-settings ge-0/0/0.0
    
    set access address-assignment pool POOL_NET10 family inet network 192.168.10.0/24
    set access address-assignment pool POOL_NET10 family inet range R10 low 192.168.10.100
    set access address-assignment pool POOL_NET10 family inet range R10 high 192.168.10.200

    ⚠️ 這裡有一個組態不一致,值得提醒:junosDHCPPool1 的網段是 192.168.1.0/24、閘道寫 192.168.1.1,但實際上 ge-0/0/0 這個介面的 IP 是 192.168.10.254/24(第 3 節看到的),兩者網段完全對不上。同樣地,junosDHCPPool2 網段是 192.168.2.0/24,也跟任何一個 ge-0/0/x 的實際網段不符(比較接近 irb.0 的 192.168.2.1/24,但 propagate-settings 卻寫 ge-0/0/0.0)。而後面新增的 POOL_NET10 ~ POOL_NET80 才是真正跟 ge-0/0/0 ~ ge-0/0/7 網段對應一致的位址池。

    比較合理的解讀是:junosDHCPPool1/junosDHCPPool2 是設備出廠或範本裡原本就帶的預設池,後來使用者又手動加了 POOL_NET10 到 POOL_NET80 這組跟實際網段對應的池,但沒有回頭清掉舊的預設池。這種「新舊設定並存、範圍重疊或衝突」的狀況,在組態範本反覆修改後很常見,實務上建議定期用 show access address-assignment pool 之類的指令盤點一次,把不再對應任何介面的舊池清掉,避免日後排查 DHCP 問題時被兩組互相矛盾的池搞混。


    8️⃣ 這份組態不建議照抄的三個地方

    項目問題建議做法
    trust-to-trust policyany/any/any 全放行,搭配 host-inbound all,等同不設防正式環境依實際需求收斂 source/destination/application,並限縮 host-inbound-traffic 到必要服務
    untrust-screen 未套用定義了 DoS 防護規則但沒有掛到任何 zone,規則從未生效確認 screen 規則有對應的 zone screen 設定,commit 前用 show 指令核對,不要只看規則有沒有定義
    DHCP Pool 網段不一致junosDHCPPool1/2 網段與實際介面 IP 對不上,與新增的 POOL_NET* 系列並存造成混亂盤點所有位址池與其對應介面,清除不再使用的舊池,保持一個介面對應一個明確的池

    📚 延伸閱讀(站內相關文章)


    ✅ 結論與行動建議

    拿一份真實輸出逐段拆解,比空講語法更容易看出「教科書式設定」跟「實際會遇到的組態」之間的落差——這份組態同時示範了正確的混合介面設計,也留下了三個典型的實務痕跡:測試用的全開放 policy、定義了但沒套用的防護規則、以及新舊 DHCP 池並存造成的網段錯亂。如果手上有類似的既有組態要接手維運,建議照第 8 節的順序先盤點:policy 是否過於寬鬆、screen/filter 是否真的掛在對的地方、位址池是否還對應著實際存在的介面,再決定哪些該保留、哪些該清掉,不要假設「commit 沒報錯」就等於「設定如預期生效」。

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級