[EAP]将hostapd作为radius服务器搭建EAP认证环境
文章主要由以下几部分组成:
0、概念理解: WPA/WPA2,EAP,IEEE, 802.11i, WiFi联盟, 802.1x
1、编译hostapd
2、配置hostapd的conf文件
3、外接路由器设置
4、配置hostapd的user文件
5、运行命令
0、概念理解
(1)802.11i 是一个标准,这种安全标准为增强WLAN的数据加密和认证性能,定义了RSN(Robust Security Network)的概念,标准范畴分为媒介层(MAC)与物理层(PHY)。该标准为整个802.11协议族共用。
(2)EAP一种可扩展的认证框架,各种认证方法可以得到很好的支持。
认证者(A),申请认证者(S),后端认证服务器(B, 本文是Radius服务器)
有以上三种角色组成的模式叫做BAS模式,
还有一种AAA模式:Authentication、Authorization and Accounting,认证、授权和计费。
(3)802.1X是802.1规范家族中的一员。简单来说,802.1X详细讨论了EAP在Wired LAN上的实现,即EAPOL。
(4)IEEE 是一个组织,负责制定(1)(2)(3)中所说的802.11i。
(5)WiFi联盟也是一个团体,组织。他们拥有 Wi-Fi 这个名词的商标,并且会检验要使用Wi-Fi这个名词的设备以核发证书。什么样的无线传输可以称之为WiFi,由他们认证。
(6) WPA 实现了 IEEE 802.11i 标准的大部分,是在 802.11i 完备之前替代 WEP 的过渡方案。WPA由WiFi联盟建立,并提供该项接入方式的认证。2003年开始强制性实施。
英文缩写: WPA (Wi-Fi Protected Access)
中文译名: Wi-Fi网络安全接入
认识了WPA, WPA2也就是WPA的第二代,是经由 Wi-Fi 联盟验证过的 IEEE 802.11i标准的认证形式。
WPA/WPA2有两种认证模式,一种是个人版(预先秘钥共享机制,即PSK)和企业版(使用802.1x框架)
最后,总结成如下图,各个实体之间的关系。
1、编译hostapd
(1) 配置.conf文件
该文档使用的是hostapd-2.5源码。
在执行make之前需要安装openssl等开发包。这里编译环境使用的是Ubuntu,因为开发环境比较容易配置。
到hostapd文件夹下,
一般有类似于“defconfig”的文件,将其重命名为“.config”。
首先,因为我们是将hostapd当做radius服务器,所以这一项的配置很重要。
然后后面根据需要配置各种EAP方法
(2) 执行make命令
make //生成hostapd运行文件
make hlr_auc_gw //编译生成hlr_auc_gw 运行文件
2、配置hostapd.conf文件
dirver=none
ieee8021x=1
eap_server=1
eap_user_file=hostapd.eap_user
# TLS parameters (shared by EAP-PEAP, EAP-TTLS, EAP-FAST)
ca_cert=cas.pem
# Server certificate and private key from separate files
server_cert=server.pem
private_key=server.key
radius_server_clients=hostapd.radius_clients
radius_server_auth_port=1812 【randius服务器的端口】
注: server.pem, server.key, cas.pem可以复用hostapd文件夹下的同名文件,即拷贝过去配置好相对路径就好。
其他参照里面的说明配置,EAP-FAST的项需要比较多的配置。(现在很少设备支持EAP-FAST这种认证方式)
3、配置路由器
使用路由器作为AP,所以需要让AP知道如何把信息转发给Radius服务器
配置一个SSID
配置路由器认证方式
关于上图中的radiuis服务器IP地址,Radiuis端口和Radius密码,参照以下步骤执行。
【如何获取本机的radius IP地址】
先修改hostapd.conf配置文件:
RADIUS authentication server
auth_server_addr=192.168.1.102
auth_server_port=1812
auth_server_shared_secret=secret
然后在终端中运行 ./hostapd -ddK hostapd.conf 命令
可以看到local address就是本机的Radius服务器的IP地址是192.168.1.100,这个就是【radius服务器的IP地址】
这种投机取巧的办法就是利用外部radius服务器打印本机的radius服务器地址。现在依旧将上面刚刚添加的几行注释掉,使用#
#RADIUS authentication server
#auth_server_addr=192.168.1.102
#auth_server_port=1812
#auth_server_shared_secret=secret
修改下面一行的密码为12345678,这个就是radius【服务器的密码】。
参考将路由器的组秘钥更新周期改为0.
4、配置user文件,用于用户登陆
刚刚在hostapd.conf文件中配置的
eap_user_file=hostapd.eap_user
注:就是用户的登录名和密码,配置用户名和密码时候,每一种EAP method的用户名不能相同,不然会出现找不到该method的情况。
其他的用户配置就请阅读上面的说明。添加新的EAP-Method 用户可以参照PEAP的方法配置,但是用户名不能相同。
5、运行命令,在hostapd文件夹下
./hlr_auc_gw -g hostapd.sim_db -m hlr_auc_gw.milenage_db
./hostapd -ddK hostapd.conf
(版权所有,转载请告知)
[EAP]将hostapd作为radius服务器搭建EAP认证环境的更多相关文章
- CentOS7用hostapd做radius服务器为WiFi提供802.1X企业认证
CentOS7用hostapd做radius服务器为WiFi提供802.1X企业认证 来源: https://www.cnblogs.com/osnosn/p/10593297.html 来自osno ...
- [原创]CentOS下Radius服务器搭建
一. 实现环境: 1.系统:CentOS release 6.6 (Final) 2.需要软件包: 1) freeradius-2.1.12-6.e16.x86_64 freeradius-m ...
- hostapd作为radius服务器
使用hostapd作为radius服务器,用于企业wifi加密认证. 参考链接: http://www.cnblogs.com/claruarius/p/5902141.html 去网上下载hosta ...
- radius服务器搭建
yum install -y unzip gcc-c++ cd /opt unzip release-stable.zip mv ToughRADIUS-release-stable toughrad ...
- ubuntu 16.04服务器 搭建php LAMP环境
1.安装Apache 下载目录: sudo apt update 安装程序: sudo apt install apache2 检查是否安装成功: sudo systemctl status apac ...
- Centos7服务器搭建VNC Server环境
在企业级项目的开发中,尤其是分布式项目,经常直接在服务器上进行开发工作,操作系统环境一般是Centos 7.普遍状况是,在服务器上安装IDE 开发工具,通过 Xshell等工具远程启动,本地通过虚拟桌 ...
- centos7服务器搭建javaweb运行环境及代码部署
之前在一直在学习java web终于写完了第一个小demo,于是在阿里云上买了一个服务器,开始了配置服务器环境的踩坑之旅.... ps:本文不讨论服务器配置的具体步骤,网上都很多,按部就班就是,本文主 ...
- 腾讯云服务器搭建Apache/PHP/MySQL环境
软件环境 Windows Server 2008 R2 企业版 SP1 64位 刚刚进入 Windows Server ,你会看到以下界面: 列出了服务器的基础信息和常用配置 下载 XAMPP htt ...
- 腾讯云服务器搭建WampServer环境
软件环境Windows Server 2008 R2 企业版 SP1 64位 刚刚进入 Windows Server ,你会看到以下界面: 列出了服务器的基础信息和常用配置下载 XAMPP https ...
随机推荐
- 行规——::GetDC()和::ReleaseDC()配对
1.今天向客户演示程序,不巧崩溃了.最后发现是使用了GetDC()后没有使用ReleaseDC()引起的. 2.最早听说GetDC()和ReleaseDC()是从前任带头码哥那里听说的,那时候仅仅用& ...
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...
- iOS开发——网络编程Swift篇&(六)异步Post方式
异步Post方式 // MARK: - 异步Post方式 func asynchronousPost() { //创建NSURL对象 var url:NSURL! = NSURL(string: &q ...
- 【v2.x OGE教程 19】 引擎状态控制
1.手机button监听 OGE中提供了在BaseGameLauncher(GameLauncher的父类)和IScene(Scene实现的接口)中定义了onKeyUp和onKeyDown的方法.使得 ...
- online ddl 跟踪
| >mysql_prepare_alter_table T@4 : | | | | | | <mysql_prepare_alter_table 7368 T@4 : | | | | | ...
- 配置phpmyadmin使登录时可填写IP管理多台MySQL 连接多个数据库 自动登录
一.如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件, ...
- jQuery事件之on()方法绑定多个选择器,多个事件
这样一个需求,如果用live()方法实现的话 非常简单,容易理解. $('nav li, #sb-nav li, #help li').live('click', function () { // c ...
- laraval框架model注意事项
今天创建了一个model,名字叫做Role_Users.php,结果运行的时候死活不识别,后来发现去掉名字中的下划线就可以识别了,虽然解决了,但还是不明白原理,若有大神看到但求解答
- c语言中的unsigned 和 signed
我们来一起看下,C语言中,对于Integer Type(整数形式)的unsigned与signed两种形式的区别,以及在内存中的存储方式是如何的 Integer type(整数形式)是C语言中的基本数 ...
- 修改范围PHP_INI_SYSTEM与PHP_INI_ALL的区别
PHP_INI_USER 可在用户脚本(例如 ini_set() )或 Windows 注册表(自 PHP 5.3 起)以及 .user.ini 中设定 PHP_INI_PERDIR 可在 php.i ...