終結非法設備盜連:802.1X

林國龍 Bill Lin

  • 精誠資訊/恆逸教育訓練中心-資深講師
  • 技術分類:網路管理與通訊應用

 

 

在資訊安全作業標準化的教學歷程中,大家經常會討論到如何阻擋公司同仁違反公司資安規定,私自偷接自己的筆電到企業內部網路中,或者阻擋無線網路的盜連問題。因應的技術方法,一般企業中最常見的做法就是利用連接埠安全性(Port Security)將主機的網卡實體位址(MAC)設定在交換器的過濾清單中,如此一來:只有授權的該網卡實體位址(MAC)才能通過交換器的檢查,順利存取企業內部網路。

這個做法可以正常運作的基本前提即是:每個主機的網卡實體位址是全球獨一無二且不能竄改的,隨著網路管理工具與虛擬化的普及化,幾乎稍微學過網路基礎觀念的人都已經了解如何自行修改這個實體位址了,因為只要在Windows作業系統的網卡上按右鍵,選擇內容,就可以輕易地修改它。所以,只要使用者執行 ipconfig /all 就可以輕鬆的查看自己的網卡實體位址,再將其套用到自己私帶的筆電網卡上,負責在第一線把關的交換器,就會被蒙騙,乖乖地放行。再者:虛擬化環境中的虛擬機,原本就是可以任意指定網卡實體位址,裝在筆電中的虛擬機,只要利用橋接模式,完全就是可以偽造任何實體位址再對外通訊。資安經常討論到三個A:驗證(Authentication) 、授權(Authorization) 、紀錄(Accounting)。在此我們想要做的是:確認這台電腦必須是公司合法授權的設備,所以上述三個A的要求,都必須被包含在解決方案中。

因應資安政策的要求:我們實務上會建議組織導入 IEEE 802.1X 技術。這個通訊協議,工作於網路中的資料鏈路層,在設備連上有線網路的交換器、或無線網路的基地台時,都可以在第一時間進行設備的驗證,最常見的驗證方式有兩種:

一是基於帳號、密碼為基礎的驗證,例如:連上有線網路、或無線網路時,要求使用者輸入帳號與密碼,這種方式適合用在只要是【對的人】就放行,因為檢查的是用戶知不知道合法的帳號密碼,跟設備無關,若公司的資安政策是開放BYOD,每個人都可以用自己的設備存取企業網路資源,那我們當然只在乎【人品】,人對就好,機器無所謂。這種做法最大的風險就是相信設備都是健康安全的,不會傳染病毒,每個員工都有能力管好自己的設備!只要有個人【機品】不好,這就是資安的修羅場、病毒傳播的樂園了。

二是基於憑證的身分驗證,每個設備必須具備可以證明身分的電腦憑證,通常會由公司架設的憑證授權服務 (CA) 發放,例如:微軟的企業型憑證服務,可以透過群組原則(GPO)自動發行電腦憑證給加入網域的Windows電腦,行動裝置管理系統 (MDM) 也可以達到自動發行設備的憑證給平板與手機,這種做法確認的是【對的裝置】,可以做到只有企業公發的裝置才能通過身分驗證,上述提及的私自攜帶個人設備,就會被拒於企業網路之外了。

這篇文章中,我們先來討論第一種(以帳號、密碼為基礎的驗證)實作方式:802.1X又稱為Port Base Authentication (以連接埠為基礎的驗證),這個驗證過程中共有三個角色:

  1. 申請者(Supplicant):需要連上網路的設備,有線或無線的終端裝置都算,支援的手機、作業系統都算,它們必須提供被驗證的資訊。
  2. 驗證者(Authenticator):通常是網路設備,例如,乙太網路交換器或無線網路存取點(基地台),驗證者充當請求者和驗證伺服器之間的代理。它從客戶端收集身份驗證信息並將其發送到身份驗證伺服器。並且在伺服器身份驗證後,由驗證者授予客戶端適當的存取權限,或者拒絕存取。這些連接設備數量眾多,不可能在每個設備上儲存所有驗證資訊,因此需要一套集中式的AAA協議:遠端使用者撥入驗證服務(RADIUS, Remote Authentication Dial In User Service),這個協議的用戶端就是網路設備。
  3. 驗證伺服器(Authentication Server):集中處理所有來自乙太網路交換器或無線存取點的驗證請求,並通知該設備可否放行,如何放行(這也稱為授權行為),並且有需要還可以留下存取的紀錄。也就是遠端使用者撥入驗證服務(RADIUS, Remote Authentication Dial In User Service)的伺服器端。

它們之間還需要一種共通的溝通語言或者說驗證封裝方式:延伸驗證協議(EAP),透過它就可以支援各式各樣的驗證方法,各家廠商也可以加入獨家的驗證、授權資訊。例如:通過驗證後可以存取哪個虛擬網路(Vlan)。



驗證伺服器:下面我們用微軟的NPS服務來做示範:

首先安裝【網路原則與存取服務】這個伺服器角色,安裝時全部使用預設值即可。設定的部分需要在角色安裝完成後才能操作。



安裝後開啟 NPS 管理工具,選擇下圖中的【802.1X】無線或有線連線的 RADIUS 伺服器】,並點選【設定802.1X】



在【設定802.1X】畫面中,選擇【安全的有線(乙太網路)連線】,若要處理的是無線網路基地台,請改選【安全的無線連線】



輸入交換器的相關資訊,最重要的是IP 位址共用密碼,需與交換器設定一致,若使用 L3 交換器,可能會有多個 IP,最好在交換器上設定傳送驗證時要使用的是哪一個虛擬網路(Vlan) 的 IP 位址做為來源,以免被驗證伺服器拒絕。



驗證方法請選擇【Microsoft Protect EAP(EAP)】



設定完成後請檢查【連線要求原則】中是否出現如下圖的新原則,且順序要排在最上方,以免被其他原則優先符合,搶先處理,導致驗證失敗。



其次請檢查【網路原則】中是否出現如下圖的新原則,且順序要排在最上方,網路原則項目繁多,可以設定許多其他的授權條件、甚至套用第三層的存取控制清單與動態分配該終端設備所歸屬與可以存取的虛擬網路 (Vlan) ,若只是簡單驗證是否為合法授權的設備或帳號,則使用預設建立的原則即可。



最後記得打開防火牆的【udp 1812,1813】連接埠,這是在Windows Server 2019之後的 NPS 要特別留意之處!



本文中,我們實作的項目是:使用者驗證,所以請在AD網域中建立一般的使用者帳戶,此帳戶不需調整任何預設值,撥入選項使用預設的【透過NPS網路原則控制存取】即可。



驗證者:此處用思科的交換器示範:



主要設定解釋如下:

在交換器的全域模式(Global mode)下啟用 new-model 驗證方式:

    aaa new-model

設定 RADIUS 伺服器資訊與驗證的金鑰,此處必須與上面的 NPS 設定一致

    radius server lon-dc1
    address ipv4 192.168.10.10 auth-port 1812 acct-port 1813
    key Pa55w.rd

設定傳送驗證來源的 ip 是使用虛擬網路 Vlan 1介面,這在L3交換器同時存在多個 IP 位址時特別重要。

    aaa group server radius nps-servers
    server name lon-dc1
    ip radius source-interface Vlan 1
    domain-stripping

啟用 802.1X 系統驗證,順道啟用相關紀錄協助故障排除

    dot1x system-auth-control
    dot1x logging verbose

宣告驗證與授權所使用的 RADIUS 伺服器群組 (一個群組中可以包含多台伺服器,可用於容錯)

    aaa authentication dot1x default group nps-servers
    aaa authorization network default group nps-servers

在需要安全管制的交換器連接埠上啟用 802.1X 驗證

    interface g0/2
    spanning-tree portfast
    switchport mode access
    switchport access Vlan 20
    authentication port-control auto
    dot1x pae authenticator

若要了解詳細的運作原理與過程,建議可以啟用如下相關的稽核紀錄

    debug dot1x
    debug authentication
    debug radius


申請者(Supplicant):

此處使用 Windows 10 LTSC 版本做示範,預設中 Windows 10 並不啟用 802.1X 支援,所以需要手動去啟用下列服務:



啟用後,會在網卡設定介面中出現【驗證】這塊設定標籤頁



請勾選如下圖所示的項目



並依照步驟啟用驗證模式:使用者的驗證,並輸入正確的 AD 網域使用者帳戶



若一切正常運作,交換器主控台上會出現如下圖的驗證成功畫面



當我們輸入錯誤的驗證資訊時,網卡會出現如下圖的【驗證失敗】畫面



交換器主控台上會出現如下圖的【驗證失敗】畫面



若是用戶端主機不支援或沒有啟用 【802.1X】的驗證機制,交換器會直接封鎖該連接埠,連實體位址(MAC)也都不會自動學習到 MAC Address Table,用戶端完全無法存取企業網路。





結論:

802.1X驗證協議被稱為Port Base Authentication (以連接埠為基礎的驗證),透過該協議,我們可以讓所有網路設備(乙太網路交換器或無線網路存取點)透過集中設定與管理的方式,輕鬆驗證連入的終端設備是否符合公司的資安原則規定。搭配集中式的AAA協議(遠端使用者撥入驗證服務RADIUS, Remote Authentication Dial In User Service),我們只需要一或多台驗證伺服器(Authentication Server),就可以集中處理所有來自乙太網路交換器或無線存取點的驗證請求,並授權終端裝置的存取行為,並留下存取的稽核相關紀錄。許多企業都已經採購支援網管的交換器,簡單的實體位址過濾無法實現管制終端設備的資安政策,只需要稍加設定,就可以大幅度的提升企業網路資安水平,建議IT工作領域的朋友們都可以導入這套網路管理機制。


您可在下列課程中了解更多技巧喔!