1. 程式人生 > 實用技巧 >實戰802.1x埠認證

實戰802.1x埠認證

一.802.1x埠認證的原理:
IEEE 802.1x標準定義了WLAN使用者接入的認證過程;現在802.1x標準已經用於LAN,來實現基於交換機埠的認證過程.802.1x標準是一種基於基於客戶到伺服器的訪問控制和認證協議,防止使用者在未經認證的情況下接入到LAN.認證伺服器對交換機每個埠所連的客戶機進行認證.當客戶機被認證時,IEEE 801.1x標準只允許EAPOL,CDP和STP流量穿越該埠到達客戶機;認證通過後才允許常規流量穿越該埠.

IEEE 802.1x標準裡的裝置角色如下圖:
1.客戶機:向LAN發起訪問請求的普通工作站,必須裝有和802.1x相容的軟體(比如Windows XP).
2.認證伺服器:實行認證功能,並響應給交換機.交換機充當認證代理,因此認證伺服器對客戶機來說是透明的.認證伺服器目前只支援RADIUS和EAP擴充套件.
3.交換機:可以是普通的接入層交換機或無線AP.根據對使用者的認證狀態來決定使用者的物理訪問.交換機充當客戶機與認證伺服器的認證代理.客戶機和交換機負責對EAP幀進行封裝和解封裝.
當交換機收到EAPOL幀後,把它中繼給認證伺服器,將原先的乙太網幀頭部資訊給去掉,將EAP幀重新封裝成RADIUS支援的格式,在封裝過程中,EAP幀不會被修改;當認證伺服器返回EAP幀給交換機時,交換機去掉頭部資訊,將EAP幀重新封裝乙太網頭部資訊並轉發給客戶機.

802.1x認證流程圖:
交換機啟用802.1x埠認證後,埠狀態首先處於未授權(unauthorized)狀態.在這種狀態下,只要該埠未配置成語音VLAN埠,那麼只允許EAPOL,CDP和STP流量;當客戶機認證成功後,埠將轉變成授權(authorized)狀態,允許所有的常規流量.如果埠被配置成了語音VLAN埠,在認證成功前還允許VoIP流量.交換機下可以手動定義的3種埠狀態:
1.強制授權(force-authorized):禁用802.1x認證,在未經認證強制將埠轉換成授權狀態.這也是交換機的預設配置.
2.強制未授權(force-unauthorized):將埠處於未授權狀態,忽略客戶機發起的一切認證嘗試請求,並且交換機的該埠將不能向客戶機提供認證服務.
3.自動(auto):啟用802.1x認證,初始化埠處於未授權狀態,按照之前提到的認證流程進行認證;認證成功後,埠狀態轉換為授權狀態.
還可以將啟用了802.1x的埠指定為單一主機(single-host)模式和多主機(multiple-hosts)模式.區別在於前者只能對其中一個客戶機進行認證;而後者只需要認證其中一臺客戶機,允許其他客戶機在認證成功後訪問網路資源.下圖的AP仍然是做為客戶機:
RADIUS伺服器維繫著一個使用者名稱到VLAN對映資訊的資料庫,基於客戶機使用者名稱的分配VLAN:
1.如果RADIUS伺服器上沒有提供VLAN資訊,或者802.1x認證並未啟用,那麼埠所屬的VLAN是由你在劃分VLAN時手動指定的.
2.如果啟用了802.1x認證,但是RADIUS伺服器上的VLAN資訊無效(VLAN資訊制定錯誤),埠將返回到未授權狀態,並且仍將處於你在劃分VLAN時手動指定的那個VLAN.
3.如果啟用了802.1x認證,RADIUS伺服器上的VLAN資訊也有效,認證成功後,埠將處於特定VLAN(根據使用者名稱到VLAN的對映資訊決定).
4.如果埠啟用了多主機模式,當第一個主機認證成功後,所有主機將處於相同VLAN(根據使用者名稱到VLAN的對映資訊決定).
5.如果埠同時啟用了802.1x認證和埠安全(port security)特性,埠將處於特定VLAN(根據使用者名稱到VLAN的對映資訊決定).
使用者名稱到VLAN對映這一特性不支援trunk埠和動態VLAN埠.

可以為啟用了802.1x認證的埠定義客戶(guest)VLAN,在客戶VLAN裡只能做些有限的事情,比如這些客戶機通常是些不支援802.1x(如Windows 98)的客戶機.客戶VLAN支援單一主機和多主機模式.可以把除了語音VLAN,RSPAN VLAN以及私有VLAN以外的任意VLAN指定為客戶VLAN.客戶VLAN只支援接入埠,不支援trunk埠和可路由埠.

除了客戶VLAN,還可以定義受限(restricted)VLAN,該VLAN是分配給無法訪問客戶VLAN的服務受限的客戶機,通常是些支援802.1x,但是認證失敗的客戶機.如果沒有這一特性,當客戶機在多次認證失敗後,STP將把該埠堵塞;而啟用這一特性後,交換機在3次認證失敗(預設情況)之後,將埠定義到受限VLAN裡.可以把除了語音VLAN,RSPAN VLAN以及私有VLAN以外的任意VLAN指定為客戶VLAN.受限VLAN只支援單一主機模式和層2埠.

在某些CISCO IOS版本,比如CATALYST 3560系列CISCO IOS Release 12.2(25)SED及其後續版本,如果交換機無法到達RADIUS伺服器,那麼客戶機也將無法被認證.這種情況下可以採用一種叫做臨界認證(critical authentication)的方法(即inaccessible authentication bypass),將客戶機連線到臨界(critical)埠來訪問網路資源.當啟用該特性後,交換機將檢查認證伺服器的狀態,如果伺服器可用,那麼交換機將能夠對客戶機認證;如果伺服器不可用,交換機將授權客戶機訪問網路的許可權,並將埠設定為臨界認證(critical-authentication)狀態.該特性依賴於:
1.如果在認證過程中,RADIUS伺服器突然不可用,那麼交換機把埠設定為臨界認證狀態直到下一次的認證嘗試的開始.
2.如果埠處於未授權狀態,當客戶機連線到臨界埠時RADIUS伺服器不可用,那麼埠將進入臨界認證狀態,並處於使用者手動劃分VLAN時所指定的那個VLAN.
3.如果埠處於授權狀態,當客戶機連線到臨界埠,進行重認證的時候RADIUS伺服器不可用,埠將進入臨界認證狀態,埠被定義到之前RADIUS伺服器所指定的那個VLAN裡.

可以基於MAC地址對客戶機進行認證(MAC authentication bypass特性),比如在連線到印表機的埠上啟用802.1x認證.甚至還可以將埠安全特性和802.1x認證結合使用.

二.配置802.1x埠認證:
配置例項:
!
aaa new-model /---啟用AAA---/
aaa authentication dot1x default group radius /---建立802.1x埠認證方式列表---/
dot1x system-auth-control /---為交換機全域性啟用802.1x埠認證---/
aaa authorization network default group radius /---配置授權,比如VLAN的分配---/
radius-server host 1.1.1.1 /---定義和RADIUS伺服器地址---/
radius-server key 91lab /---定義和RADIUS伺服器通訊的密碼---/
!
interface range fa0/1 – 24
switchport mode access /---如果指定了RADIUS伺服器,指定埠為接入埠---/
dot1x port-control auto /---在埠啟用802.1x埠認證---/
dot1x host-mode multi-host /---定義客戶機機模式---/
dot1x guest-vlan 2 /---定義客戶VLAN---/
dot1x auth-fail vlan 2 /---定義受限VLAN---/
!

三.實戰802.1x埠認證:
玩轉802.1x埠認證,以下是裝置需求:
1.裝有英文版WIN2K Server(必須打SP4,IE6.0,還要裝JAVA虛擬機器)的PC一臺做為認證伺服器,其實ACS 4.0的用中文版的WIN2K Server也是可以的,我用的是VMWare.然後安裝CISCO Secure ACS軟體,我用的是ACS 4.0.PC配置越高越好.
2.CATALYST 3560交換機一臺,做為認證代理.別的型號也行,只要支援802.1x即可.
3.客戶機系統為Windows XP,再安裝ACS的客戶軟體(CISCO_SSC-XP2K-4.msi).

拓撲如下: 伺服器端:
1.先新建個使用者: 2.配置AAA服務端(感謝大王同學友情提供他的小黑):
3.配置AAA客戶端(其實就是802.1x的認證代理,即CATALYST 3560):
802.1x認證代理(CATALYST 3560)的配置如下:
!
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
!
dot1x system-auth-control
!
interface FastEthernet0/1
switchport mode access
dot1x port-control auto
!
interface Vlan1
ip address 192.168.0.3 255.255.255.0
!
radius-server host 192.168.0.167
radius-server key 123456
!

驗證如下(認證通過後埠狀態會轉換為AUTHORIZED):
客戶機: 採用EAP MD5認證: 開始自動連線: 提示使用者名稱以及密碼: 認證成功:
接下來就可以訪問網路資源了,All is done!

轉載請保留作者資訊:
作者:紅頭髮(aka CCIE#15101/JNCIP Candidate)
出處:[url]http://www.91lab.com[/url]