| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 在Openwrt上配置freeradius进行EAP-TLS认证 -> 正文阅读 |
|
[网络协议]在Openwrt上配置freeradius进行EAP-TLS认证 |
??? WPA2/WPA3协议支持基于EAP(可扩展身份验证协议)的认证。相较于使用PSK(预共享密钥)的认证而言,其安全性高出许多。EAP认证需要使用一个RADIUS服务端,而在Openwrt端较为理想的RADIUS服务端是freeradius。对于大多数内存达到128MB的路由器来说,直接在路由器本地运行freeradius是可行的(笔者使用的是Xiaomi AC2100路由器,21.02版本)。本文大致讲述在Openwrt上配置freeradius及其EAP-TLS认证协议的方法。 1.安装必要软件包??? Openwrt有两种安装软件的方式。其一是在编译Openwrt固件时包含该软件包(推荐)。由于Openwrt官方固件中默认包含的是不支持EAP认证的wpad-mini或者wpad-basic-wolfssl,此处需要将其更换为支持EAP认证的wpad(支持WPA2)或者wpad-openssl(支持WPA2和WPA3)。 ??? 构建编译环境的具体过程请参阅Openwrt Wiki: [OpenWrt Wiki] Build system usage 此处略过,在构建好编译环境之后最后运行make defconfig,再make以检查是否存在缺陷。 一般情况下在使用全新的编译设定时,不要忘了加上luci。
??? 在Network目录内,选择FreeRADIUS (version 3)子目录,并包含freeradius3, freeradius3-common, freeradius3-default, freeradius3-utils即可。假如需要节省空间(真的吗?)可以不选择freeradius3-default而手动选择需要的模块。此时就需要选择always, attr-filter, detail, digest, eap及需要的eap方法, exec, expiration, logintime, preprocess, radutmp, realm。 ??? 返回上一级,在WirelessAPD子目录内,包含eapol-test-openssl, 移除wpad-mini和wpad-basic-wolfssl, 包含wpad或者wpad-openssl。 ??? 返回主界面进入Utilities目录,向下找到openssl-util并包含。 ??? 随后make download和make即可。 ??? 其二是使用Openwrt的软件包管理器opkg。不推荐使用本方法的原因是,由于Openwrt使用的是只读文件系统squashfs,从已编译好的固件中删除文件是理论不可行的,利用opkg卸载软件包并不能释放空间。
??? 或者只安装需要的模块
??? 再安装其他工具
2.配置EAP-TLS的PKI证书结构??? 选择一个目录存放相关证书。由于Openwrt一般情况下不作为多用户系统使用,PKI所在的目录的位置和权限并无严格要求,此处以存放在/etc/certs为例:
??? 在openssl.cnf里写入如下内容
??? 其中default_ca处可根据自己需要修改。 ??? default_days和default_crl_days指定证书和证书吊销列表的有效期,该时间最好不要超过365天。部分系统会默认不信任有效期过长的证书。 ??? 创建CA证书。
??? 此处的-subj后是自定义字段。O选项为组织名,所有证书应保持一致。CN选项为证书的通用名,对于CA证书可以自行指定,而对于用户证书则需要与实际用户名保持一致,CN不可重复。 ??? 导出x509格式的CA证书,对于Windows客户端而言,连接到受EAP-TLS保护的网络需要将对应的CA证书放入“受信任的根证书列表”存储区。
??? 签发服务器证书。
? ? 签发客户端证书,并指定导出密码。用户名处换成实际用户名。
??? 创建证书吊销列表。
??? 生成DH文件
??? 到此,EAP-TLS所需的证书PKI就已经配置完毕了。 3.配置freeradius??? 打开/etc/freeradius3/clients.conf,由于我们的RADIUS服务端和客户端位于同一设备上,所以只需修改secret即可。
??? 编辑/etc/freeradius3/mods-enabled/eap.conf
? ? 其余内容则保持默认即可。 编辑/etc/freeradius3/sites-enabled/deault
? ? 其余内容则保持默认即可。 ??? 然后进行测试。准备一个测试文件test_tls.conf,写入以下内容
??? 新开一个shell窗口,执行
??? 观察输出结果显示Ready to process requests即为正常运行,否则freeradius会指出具体问题。 ??? freeradius正常运行后,在原来的窗口中执行
??? 观看两个窗口的输出结果,如果eapol_test返回success,即为配置完成。 ??? 用Ctrl+C停止freeradius,然后执行
4.配置wpad??? 打开luci-Network-Wireless,选择需要配置的网络,在Wireless Security中选择WPA2-EAP或者WPA3-EAP/WPA2-EAP,填入RADIUS服务器地址127.0.0.1,端口1812,保存应用即可。 配置客户端1.Windows客户端(以Windows10 1809为例)使用SCP工具下载ca证书/etc/certs/ca/CA.crt,以及客户端证书/etc/certs/clients/<你的用户名>.p12。 双击CA.crt打开证书,选择安装证书,安装到本地计算机 ?选择将所有的类型证书放入下列存储,然后选择受信任的根证书颁发机构 完成即可。 然后打开用户证书,使用同样的步骤,但是放入受信任的发布者。 在设置——网络和Internet中打开网络和共享中心,点击设置新的连接和网络,选择手动连接到无线网络。 ?输入网络的SSID,在安全类型中选择WPA2-企业,下一步更改连接设置。 在安全选项卡里选择网络身份验证方法为Microsoft:智能卡或其他证书,点击设置。 当连接时选择在此计算机上使用证书和简单证书选择,点击高级,勾选证书颁发者,从中勾选CA证书签发时的CN名,然后勾选扩展密钥用法,确定。 勾选通过验证证书来验证服务器的身份,从中勾选CA证书签发时的CN名,确定。 然后即可在任务栏中连接到对应的WLAN网络。 2.Android客户端(以Vivo手机Android 11为例)将客户端证书发送到手机,打开设置——安全——更多安全设置——从存储卡中安装证书。选择Wifi证书,依照提示安装。 连接对应WLAN网络,选择EAP-TLS,然后在CA证书和用户证书处选择安装好的证书,再输入用户名,即可连接。 3.iOS客户端通过邮件将客户端证书发送到手机,打开后在设置中安装。 连接对应网络,模式选择EAP-TLS,输入用户名,身份选择对应证书,即可连接。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/30 3:27:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |