MAC認證簡介
定義
MAC認證,全稱MAC地址認證,是一種基於接口和終端MAC地址對用戶的訪問權限進行控制的認證方法。
優點
用戶終端不需要安裝任何客戶端軟件。
MAC認證過程中,不需要用戶手動輸入用戶名和密碼。
能夠對不具備802.1X認證能力的終端進行認證,如打印機和傳真機等啞終端。
認證系統
如圖所示,MAC認證系統為典型的客戶端/服務器結構,包括三個實體:終端、接入設備和認證服務器。
圖MAC認證系統
終端:嘗試接入網絡的終端設備。
接入設備:是終端訪問網絡的網絡控制點,是企業安全策略的實施者,負責按照客戶網絡制定的安全策略,實施相應的准入控制(允許、拒絕、隔離或限制)。
認證服務器:用於確認嘗試接入網絡的終端身份是否合法,還可以指定身份合法的終端所能擁有的網絡訪問權限。
用戶名形式
終端進行MAC認證時使用的用戶名和密碼需要在接入設備上預先配置,有以下幾種形式。缺省情況下,終端進行MAC認證時使用的用戶名和密碼均為終端的MAC地址。
MAC認證時使用的用戶名 密碼 適用場景
終端的MAC地址 兩種形式:
終端的MAC地址
指定的密碼
客戶端少量部署且MAC地址容易獲取的場景,例如對少量接入網絡的打印機進行認證。
指定的用戶名 指定的密碼 由於同一個接口下可以存在多個終端,此時所有終端均使用指定的用戶名和密碼進行MAC認證,服務器端僅需要配置一個賬戶即可滿足所有終端的認證需求,適用於終端比較可信的網絡環境。
DHCP選項,有三種形式:
circuit-id子選項
remote-id子選項
circuit-id子選項和remote-id子選項的組合
指定的密碼 該場景下終端需通過DHCP方式獲取IP地址,且需保證DHCP報文能夠觸發MAC認證。
MAC認證流程
對於MAC認證用戶密碼的處理,有PAP和CHAP兩種方式:
PAP:設備將MAC地址、共享密鑰、隨機值依次排列順序後,經過MD5算法進行HASH處理後封裝在屬性名”User-Password”中。
CHAP:設備將CHAP ID、MAC地址、隨機值依次排列順序後,經過MD5算法進行HASH處理後封裝在屬性名”CHAP-Password”和”CHAP-Challenge”中。
採用PAP和CHAP方式的MAC認證流程分別如 圖2-14和 圖2-15所示,兩者實現方式相似,以下重點介紹PAP方式。
圖2-14 MAC認證流程(PAP方式)
接入設備收到終端發送的arp/dhcp/dhcpv6/nd報文,觸發MAC認證。
設備隨機生成一個隨機值,並對MAC認證用戶的MAC地址、共享密鑰、隨機值依次排列後經過MD5算法進行HASH處理,然後將用戶名、HASH處理結果以及隨機值封裝在RADIUS認證請求報文中發送給RADIUS服務器,請求RADIUS服務器對該終端進行MAC認證。
RADIUS服務器使用收到的隨機值對本地數據庫中對應MAC認證用戶進行MAC地址、共享密鑰、隨機值依次排列後經過MD5算法進行HASH處理,如果與設備發來的值相同,則向設備發送認證接受報文,表示終端MAC認證成功,允許該終端訪問網絡。
圖2-15 MAC認證流程(CHAP方式)
MAC認證授權
認證用於確認嘗試接入網絡的用戶身份是否合法,而授權則用於指定身份合法的用戶所能擁有的網絡訪問權限,即用戶能夠訪問哪些資源。授權最基礎也是最常使用的授權參數是VLAN、ACL和UCL組,此處以RADIUS授權進行說明,其他授權方式的授權方法以及更多可授權的參數請參見AAA授權方案。
VLAN
為了將受限的網絡資源與未認證用戶隔離,通常將受限的網絡資源和未認證的用戶劃分到不同的VLAN。用戶認證成功後,認證服務器將指定VLAN授權給用戶。此時,設備會將用戶所屬的VLAN修改為授權的VLAN,授權的VLAN並不改變接口的配置。但是,授權的VLAN優先級高於用戶配置的VLAN,即用戶認證成功後生效的VLAN是授權的VLAN,用戶配置的VLAN在用戶下線後生效。RADIUS服務器授權VLAN時,必須同時使用以下RADIUS標準屬性:
Tunnel-Type:必須配置為“VLAN”或“13”
Tunnel-Medium-Type:必須配置為“802”或“6”
Tunnel-Private-Group-ID:可以是VLAN ID、VLAN描述、VLAN名稱和VLAN pool
ACL
用戶認證成功後,認證服務器將指定ACL授權給用戶,則設備會根據該ACL對用戶報文進行控制。
如果用戶報文匹配到該ACL中動作為permit的規則,則允許其通過。
如果用戶報文匹配到該ACL中動作為deny的規則,則將其丟棄。
RADIUS服務器授權ACL有兩種方法:
授權靜態ACL:RADIUS服務器通過RADIUS標準屬性Filter-Id將ACL ID授權給用戶。為使授權的ACL生效,需要提前在設備上配置相應的ACL及規則。
授權動態ACL:RADIUS服務器通過華為RADIUS擴展屬性HW-Data-Filter將ACL ID及其ACL規則授權給用戶。ACL ID及其ACL規則需要在RADIUS服務器上配置,設備上不需要配置。
UCL
用戶控制列表UCL組(User Control List)是網絡成員的集合。UCL組裡面的成員,可以是PC、手機等網絡終端設備。借助UCL組,管理員可以將具有相同網絡訪問策略的一類用戶劃分為同一個組,然後為其部署一組網絡訪問策略,滿足該類別所有用戶的網絡訪問需求。相對於為每個用戶部署網絡訪問策略,基於UCL組的網絡控制方案能夠極大的減少管理員的工作量。RADIUS服務器授權UCL組有兩種方式:
授權UCL組名稱:RADIUS服務器通過RADIUS標準屬性Filter-Id將UCL組名稱授權給指定用戶。
授權UCL組ID:RADIUS服務器通過華為RADIUS擴展屬性HW-UCL-Group將UCL組ID授權給指定用戶。
無論是哪一種授權UCL組方式,都必須提前在設備上配置相應的UCL組及UCL組的網絡訪問策略。
free-rule
用戶認證成功之前,為滿足用戶基本的網絡訪問需求,需要用戶認證成功前就能獲取部分網絡訪問權限。可在free-rule模板中配置free-rule規則,滿足用戶的認證成功前的網絡訪問需求。
用戶的free-rule可以通過普通的free-rule定義,也可以通過ACL定義。普通的free-rule由IP地址、MAC地址、接口、VLAN等參數確定;通過ACL定義的free-rule由ACL規則確定。兩種方式定義的free-rule都能夠指定用戶無需認證就可以訪問的目的IP地址。除此之外,ACL定義的free-rule還能夠指定用戶認證成功前就可以訪問的目的域名。
基於域名定義用戶的free-rule有時要比基於IP地址簡單方便。例如,某些認證用戶由於沒有認證賬號,必須首先在運營商提供的官方網站上註冊申請會員賬號;或者通過微博、微信等第三方賬號進行登錄。這就要求用戶認證通過前,能夠訪問特定的網站。由於用戶記憶網站的域名要比記憶其IP地址容易的多,所以,此時可以通過ACL定義的free-rule,指定用戶認證成功前即可訪問以上網站域名。