此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何将具有802.1x安全和受保护的可扩展身份验证协议(PEAP)作为可扩展身份验证协议(EAP)的无线局域网(WLAN)设置。 FreeRADIUS用作外部远程身份验证拨入用户服务(RADIUS)服务器。
Cisco 建议您具有以下主题的基础知识:
注意:本文档旨在向读者举例说明在freeRADIUS服务器上进行PEAP-MS-CHAPv2身份验证所需的配置。本文档中介绍的freeRADIUS服务器配置已在实验中测试,并发现其可以按预期工作。思科技术支持中心(TAC)不支持免费RADIUS服务器配置。
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
步骤1.运行这些命令以安装httpd服务器和MariaDB。
[root@tac-mxwireless ~]# yum -y update
[root@tac-mxwireless ~]# yum -y groupinstall "Development Tools"
[root@tac-mxwireless ~]# yum -y install httpd httpd-devel mariadb-server mariadb
步骤2.启动并启用httpd(Apache)和MariaDB服务器。
[root@tac-mxwireless ~]# systemctl enable httpd
[root@tac-mxwireless ~]# systemctl start httpd
[root@tac-mxwireless ~]# systemctl start mariadb
[root@tac-mxwireless ~]# systemctl enable mariadb
步骤3.配置初始MariaDB设置以保护它。
[root@tac-mxwireless ~]#mysql_secure_installation
注意:运行此脚本的所有部分。建议将其用于生产使用中的所有MariaDB服务器。仔细阅读每一步。
In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
步骤4.为freeRADIUS配置数据库(使用步骤3中配置的相同密码)。
[root@tac-mxwireless ~]# mysql -u root -p -e "CREATE DATABASE radius"
[root@tac-mxwireless ~]# mysql -u root -p -e "show databases"
[root@tac-mxwireless ~]# mysql -u root -p
MariaDB [(none)]> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radiuspassword"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Bye
步骤1.运行这些命令以在CentOS7上安装PHP 7。
[root@tac-mxwireless ~]# cd ~
[root@tac-mxwireless ~]# curl 'https://setup.ius.io/' -o setup-ius.sh
[root@tac-mxwireless ~]# sudo bash setup-ius.sh
[root@tac-mxwireless ~]# sudo yum remove php-cli mod_php php-common
[root@tac-mxwireless ~]# sudo yum -y install mod_php70u php70u-cli php70u-mysqlnd php70u-devel php70u-gd php70u-mcrypt php70u-mbstring php70u-xml php70u-pear
[root@tac-mxwireless ~]# sudo apachectl restart
步骤1.运行此命令以安装FreeRADIUS。
[root@tac-mxwireless ~]# yum -y install freeradius freeradius-utils freeradius-mysql freeradius-sqlite
步骤2.在mariadb.service之后启动radius.service。
运行此指令:
[root@tac-mxwireless ~]# vim /etc/systemd/system/multi-user.target.wants/radiusd.service
在[Unit]部分添加
一行:
After=mariadb.service
[单元]部分必须如下所示:
[Unit]
Description=FreeRADIUS high performance RADIUS server.
After=syslog.target network.target
After=mariadb.service
步骤3.启动并启用freeradius以启动。
[root@tac-mxwireless ~]# systemctl start radiusd.service
[root@tac-mxwireless ~]# systemctl enable radiusd.service
步骤4.启用防火墙以确保安全。
[root@tac-mxwireless ~]# systemctl enable firewalld
[root@tac-mxwireless ~]# systemctl start firewalld
[root@tac-mxwireless ~]# systemctl status firewalld
步骤5.向默认区域添加永久规则以允许http、https和radius服务。
[root@tac-mxwireless ~]# firewall-cmd --get-services | egrep 'http|https|radius'
[root@tac-mxwireless ~]# firewall-cmd --add-service={http,https,radius} --permanent success
步骤6.重新加载防火墙以使更改生效。
[root@tac-mxwireless ~]# firewall-cmd --reload
要配置FreeRADIUS以使用MariaDB,请执行以下步骤。
步骤1.导入RADIUS数据库方案以填充RADIUS数据库。
[root@tac-mxwireless ~]# mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
步骤2.在/etc/raddb/mods-enabled下为结构化查询语言(SQL)创建软链接。
[root@tac-mxwireless ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
步骤3.配置SQL模块/raddb/mods-available/sql,并更改数据库连接参数以套用您的环境。
[root@tac-mxwireless ~]# vim /etc/raddb/mods-available/sql
SQL部分必须类似于此。
sql { driver = "rlm_sql_mysql" dialect = "mysql" # Connection info: server = "localhost" port = 3306
login = "radius"
password = "radpass" # Database table configuration for everything except Oracle radius_db = "radius" } # Set to ‘yes’ to read radius clients from the database (‘nas’ table) # Clients will ONLY be read on server startup. read_clients = yes # Table to keep radius client info client_table = “nas”
步骤4.将/etc/raddb/mods-enabled/sql的组权限更改为radiusd。
[root@tac-mxwireless ~]# chgrp -h radiusd /etc/raddb/mods-enabled/sql
步骤1.编辑/etc/raddb/clients.conf以设置WLC的共享密钥。
[root@tac-mxwireless ~]# vim /etc/raddb/clients.conf
步骤2.在底部添加控制器IP地址和共享密钥。
client{ secret = shortname = }
GUI:
步骤1.打开WLC的GUI并导航至SECURITY > RADIUS > Authentication > New,如图所示。
步骤2.填写RADIUS服务器信息,如图所示。
CLI:
> config radius auth add <index> <radius-ip-address> 1812 ascii <shared-key> > config radius auth disable <index> > config radius auth retransmit-timeout <index> <timeout-seconds> > config radius auth enable <index>
GUI:
步骤1.打开WLC的GUI并导航至WLANs > Create New > Goas(如图所示)。
步骤2.为服务集标识符(SSID)和配置文件选择名称,然后单击应用,如图所示。
CLI:
> config wlan create <id> <profile-name> <ssid-name>
步骤3.将RADIUS服务器分配给WLAN。
CLI:
> config wlan radius_server auth add <wlan-id> <radius-index>
GUI:
导航至Security > AAA Servers并选择所需的RADIUS服务器,然后单击Apply,如图所示。
步骤4.或者增加会话时间。
CLI:
> config wlan session-timeout <wlan-id> <session-timeout-seconds>
GUI:
导航至“高级”>“启用会话超时”>单击“应用”,如图所示。
步骤5.启用WLAN。
CLI:
> config wlan enable <wlan-id>
GUI:
导航至“常规”>“状态”>“启用刻度”>单击“应用”,如图所示。
默认情况下,客户端使用PEAP协议,但freeRadius支持其他方法(本指南未介绍)。
步骤1.编辑文件/etc/raddb/users。
[root@tac-mxwireless ~]# nano /etc/raddb/users
步骤2.在文件底部附加用户信息。在本示例中,user1是用户名和Cisco123的密码。
user1 Cleartext-Password := <Cisco123>
步骤3.重新启动FreeRadius。
[root@tac-mxwireless ~]# systemctl restart radiusd.service
FreeRADIUS附带默认证书颁发机构(CA)证书和存储在路径/etc/raddb/certs中的设备证书。这些证书的名称是ca.pem和server.pem。server.pem是客户端在完成身份验证过程时收到的证书。如果需要为EAP身份验证分配不同的证书,只需删除它们,并将新证书保存到同一路径中,其名称与此完全相同。
配置笔记本电脑Windows计算机,以使用802.1x身份验证和PEAP/MS-CHAP(质询握手身份验证协议的Microsoft版本)版本2连接到SSID。
要在Windows计算机上创建WLAN配置文件,有两个选项:
如果使用在freeRADIUS上安装的默认证书,请按照以下步骤将EAP证书从freeRADIUS服务器导入终端设备。
步骤1.从FreeRadius获取证书:
[root@tac-mxwireless ~]# cat /etc/raddb/certs/ca.pem -----BEGIN CERTIFICATE----- MIIE4TCCA8mgAwIBAgIJAKLmHn4eZLjBMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYD VQQGEwJGUjEPMA0GA1UECBMGUmFkaXVzMRIwEAYDVQQHEwlTb21ld2hlcmUxFTAT BgNVBAoTDEV4YW1wbGUgSW5jLjEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBs ZS5jb20xJjAkBgNVBAMTHUV4YW1wbGUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4X DTE3MDMzMTExMTIxNloXDTE3MDUzMDExMTIxNlowgZMxCzAJBgNVBAYTAkZSMQ8w DQYDVQQIEwZSYWRpdXMxEjAQBgNVBAcTCVNvbWV3aGVyZTEVMBMGA1UEChMMRXhh bXBsZSBJbmMuMSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLmNvbTEmMCQG A1UEAxMdRXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQC0vJ53NN7J9vhpKhcB3B0OXLpeQFWjqolQOB9F /8Lh2Hax2rzb9wxOi1MOyXR+kN22H7RNwUHET8VdyGUsA4OdZWuyzI8sKi5H42GU Eu6GDw1YJvhHn4rVC36OZU/Nbaxj0eR8ZG0JGse4ftQKLfckkvCOS5QGn4X1elRS oFe27HRF+pTDHd+nzbaDvhYWvFoe6iA27Od7AY/sDuo/tiIJWGdm9ocPz3+0IiFC ay6dtG55YQOHxKaswH7/HJkLsKWhS4YmXLgJXCeeJqooqr+TEwyCDEaFaiX835Jp gwNNZ7X5US0FcjuuOtpJJ3hfQ8K6uXjEWPOkDE0DAnqp4/n9AgMBAAGjggE0MIIB MDAdBgNVHQ4EFgQUysFNRZKpAlcFCEgwdOPVGV0waLEwgcgGA1UdIwSBwDCBvYAU ysFNRZKpAlcFCEgwdOPVGV0waLGhgZmkgZYwgZMxCzAJBgNVBAYTAkZSMQ8wDQYD VQQIEwZSYWRpdXMxEjAQBgNVBAcTCVNvbWV3aGVyZTEVMBMGA1UEChMMRXhhbXBs ZSBJbmMuMSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLmNvbTEmMCQGA1UE AxMdRXhhbXBsZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCCQCi5h5+HmS4wTAMBgNV HRMEBTADAQH/MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly93d3cuZXhhbXBsZS5j b20vZXhhbXBsZV9jYS5jcmwwDQYJKoZIhvcNAQEFBQADggEBACsPR2jiOFXnTsK4 1wnrrMylZZb12gDuqK+zKELox2mzlDMMK83tBsL8yjkv70KeZn821IzfTrTfvhzV mjX6HgaWfYyMjYYYSw/iEu2JsAtQdpvC3di10nGwVPHlzbozPdov8cZtCb21ynfY Z6cNjx8+aYQIcsRIyqA1IXMOBwIXo141TOmoODdgfX95lpoLwgktRLkvl7Y7owsz ChYDO++H7Iewsxx5pQfm56dA2cNrlTwWtMvViKyX7GlpwlbBOxgkLiFJ5+GFbfLh a0HBHZWhTKvffbr62mkbfjCUfJU4T3xgY9zFwiwT+BetCJgAGy8CT/qmnO+NJERO RUvDhfE= -----END CERTIFICATE-----
步骤2.将上一步的输出复制并粘贴到文本文件中,并将扩展名更改为.crt
步骤3.双击该文件并选择“安装证书……” 如图所示.
步骤4.将证书安装到受信任根证书颁发机构存储中,如图所示。
步骤1.右键单击“开始”图标,然后选择“控制面板”,如图所示。
步骤2.导航至Network and Internet > Network and Sharing Center>单击Set a new connection or network,如图所示。
步骤3.选择“手动连接到无线网络”,然后单击图中所示的“下一步”。
步骤4.输入名称为SSID的信息和安全类型WPA2-Enterprise,然后单击Next,如图所示。
步骤5.选择更改连接设置以自定义WLAN配置文件的配置,如图所示。
步骤6.导航至“安全”选项卡,然后单击“设置”,如图所示。
步骤7.选择是否验证RADIUS服务器。
如果是,请启用“通过验证证书和来自受信任根证书颁发机构验证服务器的身份:列表选择freeRADIUS的自签名证书。
然后,选择配置并禁用自动使用Windows登录名和密码……,然后单击确定,如图所示。
步骤8.配置用户凭证。
返回“安全”选项卡后,选择高级设置,将身份验证模式指定为用户身份验证,并保存在freeRADIUS上配置的凭据以对用户进行身份验证,如图所示。
使用本部分可确认配置能否正常运行。
运行下一个命令以监控特定用户的身份验证过程:
> debug client <mac-add-client> > debug dot1x event enable > debug dot1x aaa enable
要方便地读取调试客户端输出,请使用无线调试分析器工具:
目前没有针对此配置的故障排除信息。