802.1X協(xié)議是基于Client/Server的訪問控制和認(rèn)證協(xié)議。它可以限制未經(jīng)授權(quán)的設(shè)備通過接入端口訪問網(wǎng)絡(luò)。在獲得網(wǎng)絡(luò)提供的各種業(yè)務(wù)之前,802.1X首先對連接到交換機(jī)或AP上的設(shè)備進(jìn)行認(rèn)證。在認(rèn)證通過之前,802.1X只允許EAPoL(基于局域網(wǎng)的擴(kuò)展認(rèn)證協(xié)議)數(shù)據(jù)通過設(shè)備連接的交換機(jī)端口;認(rèn)證通過以后,正常的數(shù)據(jù)可以順利地通過以太網(wǎng)端口。
基于以太網(wǎng)端口認(rèn)證的802.1X協(xié)議有如下特點(diǎn):
1.IEEE 802.1X協(xié)議為數(shù)據(jù)鏈路層協(xié)議,不需要到達(dá)網(wǎng)絡(luò)層,對設(shè)備的整體性能要求不高,可以有效降低建網(wǎng)成本。
2.借用了在RAS系統(tǒng)中常用的EAP(擴(kuò)展認(rèn)證協(xié)議),可以提供良好的擴(kuò)展性和適應(yīng)性,實(shí)現(xiàn)對傳統(tǒng)PPP認(rèn)證架構(gòu)的兼容。
3.802.1X的認(rèn)證體系結(jié)構(gòu)中采用了“可控端口”和“不可控端口”的邏輯功能,從而可以實(shí)現(xiàn)業(yè)務(wù)與認(rèn)證的分離,由Radius服務(wù)器和交換機(jī)利用不可控的邏輯端口共同完成對用戶的認(rèn)證與控制,業(yè)務(wù)報(bào)文直接承載在正常的數(shù)據(jù)鏈路層報(bào)文上通過可控端口進(jìn)行交換,通過認(rèn)證之后的數(shù)據(jù)包是無需封裝的純數(shù)據(jù)包。
4.可以使用現(xiàn)有的后臺認(rèn)證系統(tǒng)降低部署的成本,并有豐富的業(yè)務(wù)支持。
5.可以映射不同的用戶認(rèn)證等級到不同的VLAN。
6.可以使交換端口和無線LAN具有安全的認(rèn)證接入功能。
包括客戶端、接入網(wǎng)絡(luò)、認(rèn)證與帳戶系統(tǒng)。
客戶端:可以是Windows、OSX或移動終端。Windows與OSX均支持802.1X協(xié)議,并且移動端也支持企業(yè)級WPA(支持用戶名與密碼)并與Radius服務(wù)集成。
接入網(wǎng)絡(luò):支持802.1X與Radius的交換機(jī)或無線AP均可,由于802.1X是一個(gè)已經(jīng)普遍支持的行業(yè)標(biāo)準(zhǔn),所以目前幾乎所有主流的交換機(jī)與AP都可以支持。
認(rèn)證與帳戶系統(tǒng):Radius服務(wù)器(本文使用FreeRadius),提供帳戶管理的數(shù)據(jù)庫(本文使用MySQL數(shù)據(jù)庫)。
1.拷 貝freeradiusserver-3.0.11.tar壓縮包到CentOS中。
2.root下使用命令tar -xzvf freeradiusserver-3.0.11.tar.gz 解壓縮包。
3.執(zhí) 行 命 令yum install libtalloc-devel-y安裝libtalloc
4.進(jìn)入解壓后的文件夾下tar -xzvf freeradiusserver-3.0.11,執(zhí)行命令./configure
5.先后執(zhí)行命令make和make install
6.進(jìn)入cd /usr/local/etc/raddb,用vim打開文件users,將以下注釋去掉。
7.進(jìn)入cd /etc/hosts修改并添加如下內(nèi)容。
8.進(jìn)入cd usr/local/etc/raddb/,打 開 radius.conf
將allow_vulnerable_openssl = no修改成allow_vulnerable_openssl = yes
9.修改防火墻配置,允許FreeRadius所使用的端口1812和1813通過。iptables -A INPUT -p udp--dport 1812 -j ACCEPT
10.Radius部署完成后需要進(jìn)行相關(guān)測試,在終端輸 入“radiusd -X”,新 打開一個(gè)終端輸入“radtest steve testing localhost 0 testing123”。
其中steve是用戶名,testing是密碼。
11.與交換機(jī)的對接
(1)進(jìn)入目錄/usr/local/etc/raddb/siteenabled,打開defoult文件。
把a(bǔ)uthorize{}、accounting{}中sql前面的#去掉,并把a(bǔ)uthorize{}中files前加#;
(2)進(jìn)入目錄/usr/local/etc/raddb,打開文件clients.conf添加如下內(nèi)容:
其 中 MySQL、MySQLServer、MySQL-Devel都必須安裝,缺一不可。
1.運(yùn)行命令 “yum list| grep mysql”查看網(wǎng)絡(luò)上可以提供下載的資源列表。
2.輸 入“yum install-y mysql-server mysql mysql-devel”命 令 可 以將 MySQL、MySQL-Server 和MySQL-Devel都安裝好。
3.輸 入命令“service mysqld restart”啟動MySQL服務(wù)。
4.創(chuàng)建數(shù)據(jù)庫,輸入命令“mysql-uroot-p”,要求輸入密碼時(shí),直接回車即可。
5.導(dǎo)入表結(jié)構(gòu),執(zhí)行命令如下:
6.建立組信息和用戶信息。輸 入“mysql -u root radius”命令,打開數(shù)據(jù)庫,在 mysql> 提示符下,執(zhí)行如下命令:
(1)建立組信息:(本文新建組名稱為user)
(2)建立用戶信息:(本文新建用戶名為test,密碼為testpwd)
備注:802.1x認(rèn)證客戶端登錄的用戶名test,密碼testpwd。
(3)將用戶加入組中:
7.修改 FreeRadius中的MySQL認(rèn)證配置
(1)進(jìn)入以下路徑cd
(2)執(zhí)行命令 :ln -s ../mods-available/sql
8.修改 FreeRadius中的MySQL配置文件
(1)vim usr/local/etc/raddb/mods-available/sql
(2)找到driver=“rlm_sql_null”這一行,修改為driver=“rlm_sql_mysql”,保存并退出。
9.執(zhí)行下列命令:vim usr/local/etc/raddb/sites-available/default,將 authorize{}和accounting{}里面的SQL前面的#號去掉。
10.對sql.conf進(jìn)行如下更改:
(1)server="localhost"
(2)login="root"
(3)password="123456"
(4)radius_db="radius"
11.MySQL Radius下執(zhí)行命令:select *from radgroupreply;顯示數(shù)據(jù)庫配置。
12.重新以調(diào)試方式運(yùn)行 freeradius :radiusd -X
13.再打開一個(gè)新的終端,運(yùn)行如下的測試工具命令:radtest test testpwd localhost 1812 testing123(如果認(rèn)證通過的話,服務(wù)器的搭建順利完成)。
1.H3C進(jìn)入特權(quán)模式后,開啟802.1X認(rèn)證協(xié)議和認(rèn)證方式,命令如下:
2.與認(rèn)證服務(wù)器Radius的配置,命令如下:
備注:此處交換機(jī)共享密鑰為testing123,必須與服務(wù)器保持一致。
3.配置3A認(rèn)證,最好是每個(gè)認(rèn)證都開啟,在配置過程中可能會因?yàn)闆]有配置計(jì)費(fèi)認(rèn)證,從而導(dǎo)致認(rèn)證失敗,具體命令如下:
4.開啟端口的802.1X的認(rèn)證,命令如下: