2019年9月19日 星期四

開源網路存取控制系統:PacketFence




我們已經習慣智慧型手機所帶來的強大功能與方便,因此員工帶著自己的手機進入企業環境是稀鬆平常的事。那麼隨著而來的需求之一就是網路連線能力,在企業內外網界線日益模糊的今日,已經無法單純的信任內部網路絕對安全。

因此,我們須要一套具備網路存取控制能力的解決方案,來搞定網路連線的各種策略與實行。







方案介紹

在開源軟體的世界裡,已經具有功能相當良好的同類型套件,可以幫我們解決經費不足的困擾。

PacketFence 是一款功能齊備的 NAC (Network Access Control) 網路存取控制解決方案,它採用 GPL 授權釋出。

  • 全 Web 化操作介面
  • 集中管理裝置連線狀態
  • 整合無線網路管理機制
  • 支援多種身份驗證來源
  • 提供裝置使用註冊方式
  • 整合網管設備隔離裝置
  • 自動檢測裝置安全能力
  • 判斷使用行為異常與否



PacketFence 整合了許多優秀開源軟體而成,在官方的介紹上有一張圖片非常清楚的呈現了整個 PacketFence 套件的基礎架構,以及不同功能所整理的套件清單:


元件架構圖 (圖片取自官網)



支援設備


對 PacketFence 來說,只要能支援開放標準的網路設備通常都可以被他所支援,主要是 MAC 驗證、802.1X 與 RADIUS 這幾項,即便 PacketFence 的支援清單上沒有您的裝置,但只要能支援上述技術標準者,應該都能使用無虞。


網路架構圖 (圖片取自官網)


以 Switch 為例,列出我較常看見的支援廠牌:
  • Alcatel
  • AlliedTelesis
  • Avaya
  • Brocade
  • Cisco
  • D-Link
  • Dell
  • Edge core
  • Extreme Networks
  • Huawei
  • H3C
  • HP
  • HP ProCurve
  • Huawei
  • IBM
  • Intel
  • Juniper
  • LG-Ericsson
  • Linksys
  • Netgear
  • Nortel
  • Pica8
  • SMC
  • Ubiquiti


在 Wifi 設備方面,則至少有這些:
  • Avaya
  • Aruba
  • Brocade
  • Cisco
  • D-Link
  • Fortinet FortiGate
  • hostapd (OpenWrt Chaos Calmer 15.05)
  • Mikrotik
  • HP
  • Motorola
  • Ruckus
  • Ruckus SmartZone
  • Ubiquiti
  • Xirrus











    安裝方式

    PacketFence 的安裝並不困難 (難在設定與搭配網路裝置使用),短短幾行指令即可完成安裝,以 Debian 為例:

    (以下內容取自官網文件)

    加入軟體套件來源與 Key
    echo 'deb http://inverse.ca/downloads/PacketFence/debian stretch' > /etc/apt/sources.list.d/packetfence.list
    sudo apt-key adv --keyserver keys.gnupg.net --recv-key 0xFE9E84327B18FF82B0378B6719CDA6A9810273C4
    

    完成以後,接下來只要兩行指令即可輕鬆完成。

    安裝 PacketFence 套件
    sudo apt-get update
    sudo apt-get install packetfence
    

    至此,只要打開瀏覽器輸入 https://ip:1443/configurator 即可開始進入使用介面,在接下面的步驟會引導一步一步輸入 RADIUS、資料庫、網域名稱、DHCP 伺服器等基本資訊,完成後即可正式啟動服務,並將您導向 https://ip:1443/admin 管理中心。



    設定 Active Directory 驗證來源
    在管理中心點選 [Configuration] -> [Policies and Access Control] -> [Domains] -> [Active Directory Domain] ->[Add domain],並依據畫面完成 AD 相關資訊,即可準備下一步。


    設定 Cisco 2960 Switch
    依據官網所提供的範例,可以如下進行設置,其中 172.20.100.2 是 PacketFence 的 IP,而 172.21.2.3 是 Switch 的 IP,所要設定的是 Switch 的 Port 10。

    #啟用 802.1X
    dot1x system-auth-control
    
    #啟用 AAA
    aaa new-model
    aaa group server radius packetfence
     server PF_MANAGEMENT_IP auth-port 1812 acct-port 1813
    aaa authentication login default local
    aaa authentication dot1x default group packetfence
    aaa authorization network default group packetfence
    radius-server host PF_MANAGEMENT_IP auth-port 1812 acct-port 1813 timeout 2 key useStrongerSecret
    radius-server vsa send authentication
    snmp-server community public RO
    snmp-server community private RW
    
    #設定連接埠的 802.1X
    interface fastEthernet 0/10
    switchport mode access
    authentication host-mode single-host
    authentication order dot1x mab
    authentication priority dot1x mab
    authentication port-control auto
    authentication periodic
    authentication timer restart 10800
    authentication timer reauthenticate 10800
    mab
    no snmp trap link-status
    dot1x pae authenticator
    dot1x timeout quiet-period 2
    dot1x timeout tx-period 3
    

    將 Switch 加入 PacketFence
    回到 PacketFence 管理中心,點選 [Configuration] -> [Policies and Access Control] -> [Network Devices] -> [Switches] -> [Add switch] -> [default],並輸入 172.21.2.3、RADIUS 欄位輸入安裝階段所設定的 RADIUS 密碼,SNMP 欄位中輸入 Switch 上相對應的 SNMP Communuty 內容。


    配置連線設定檔
    進入 [Configuration] -> [Policies and Access Control] -> [Connection Profiles] -> [Add connection profile],做出以下設定並按下 [Save] 存檔:

    * Profile Name: 8021x
    * Profile Description: 802.1X wired connections
    * Enable profile: 請勾選
    * Automatically register devices: 請勾選
    * Filters: Connection Type 選擇 Ethernet-EAP
    * Sources: your newly created Active Directory authentication source


    配置 Windows 連線支援
    到 Windows 7 電腦上,請先至 [控制台] -> [服務],將 [Wired AutoConfig] 服務設定為自動啟動,並立即啟動它。

    接著到 [控制台] -> [網路連線] -> [區域連線] -> 滑鼠右鍵[內容] -> [驗證]
    * 勾選 [啟用 IEEE802.1X 驗證]
    * 網路驗證方法選取 [Microsoft: Protected EAP (PEAP)]
    * 點選 [設定] 進入細節,並且不要勾選 [透過憑證來確認伺器身份識別],以及驗證方法選擇 [Secured password (EAP-MSCHAP v2)]


    連線設定檔


    測試裝置連線
    請先到管理中心,進入 [Status] -> [Services],按下 [radiused] 服務的 [Restart] 將服務給重啟。

    這時候,將 Windows 7 電腦接上 Switch 的 Port 10,電腦應該會顯示一個登入介面,需要輸入帳號與密碼。輸入 AD 的帳號與密碼後,應該會驗證成功,並且在 PacketFence 管理中心上看到這台 Windows 7 電腦的 MAC 位址出現。

    至此,我們做完了基本的 PacketFence 功能建置與測試。








    主要功能

    在搭配網管功能的網路裝置上,可以支援相當多主流設備,因此可以整合不同廠牌與現有設備,不需以單一廠商方案做為統一採購。

    當使用者的裝置接進有線網路時,PacketFence 是採用 SNMP Trap 機制從網路交換器收到通知,檢查該裝置是否經過註冊、是否違反政策等,再依據所設定的政策判定作法,例如將這些裝置放到一個獨立隔離的 VLAN 區段。


    SNMP Trap 進行 VLAN 隔離 (圖片取自官網)


    在無線網路的整合上,PacketFence 使用 SNMP、CLI (Telnet 或 SSH)、RADIUS Dyn-Auth 或 WebService 方式與無線網路設備溝通以決定使用者的裝置是否允許連線或者放到獨立隔離 SSID 區段禁止接入網路。



    802.1X 搭配 MAC 驗證 (圖片取自官網)


    對於接入網路的裝置,PacketFence 整合了 OpenVAS,透過 OpenVAS 對接入的裝置進行弱點掃描,管理者可以定義若是有高危險漏洞的裝置必需先修補好漏洞或採用其它機制,確認沒有問題後才允許放行進入網路,可以大幅減少有風險的網路裝置因為進入網路而將外部的問題帶入網路,甚至擴散。



    搭配 OpenVAS 進行檢測與處理 (圖片取自官網)


    使用者裝置的註冊機制除了傳統的由管理員預先登錄、使用者於申請頁面註冊之外,還可以產生單日有效密碼、電子郵件註冊、簡訊註冊等機制。更有趣的是它還能整合 Facebook、Google、GitHub 等現在流行的身份驗證來源,在某些情況下會是非常有用的設定方式。







    結論

    PacketFence 提供了相當豐富的功能與彈性,雖然它是開源軟體所搭建而成,但是它同樣可以為組織做到相當程度的網路存取控制能力,對於想要更進一步保護內部網路安全的 IT,將會是極為有利的良好工具。

    最後,若您環境中的設備無法支援 VLAN 功能卻又想以 PacketFence 做控管時,可以採用 Inline 的方式進行佈署,配置兩張網卡給 PacketFence 主機,讓所有的流量都必須經過它才能到達 Gateway 來達到管理的效果。不過這僅是做為替代方案,並不建議將此佈建做為主要方式。








    參考資料