RADIUS 服务器之 hostapd 配置说明

article/2025/10/10 16:50:28

RADIUS 服务器之 hostapd 配置说明

本文提供了企业级加密的 RADIUS 服务器配置环境搭建,供读者参考。

一. 安装 hostapd

$ sudo apt-get install libnl1 libnl-dev libnl-doc
$ sudo apt-get install libssl-dev
$ sudo apt-get install bridge-utils
$ sudo apt-get install hostapd

如果安装成功, 下面命令会显示 hostapd 版本:

hostapd -v

如:

hostapd v2.4
User space daemon for IEEE 802.11 AP management,
IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Copyright (c) 2002-2015, Jouni Malinen <j@w1.fi> and contributors

二. 配置 hostapd

hostapd 可提供多种服务,我们只需要其中的某几个服务,用户可通过下面的方式配置 hostapd.
配置前,看下 /etc/hostapd 目录下是否有其他文件,如果有,请清空。

2.1 配置 hostapd.conf

hostapd.conf 配置 hostapd 的工作方式,详细配置可参考 hostapd.conf 官方文档.
我们这里提供了一个 EAP-TLS 方式的 hostapd.conf, 将其保存到 /etc/hostapd/ 目录下

driver=none
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
eap_server=1
eap_user_file=/etc/hostapd/hostapd.eap_user
ca_cert=/etc/hostapd/certs/ca.crt
server_cert=/etc/hostapd/certs/server.pem
private_key=/etc/hostapd/certs/server.key
radius_server_clients=/etc/hostapd/hostapd.radius_clients
radius_server_auth_port=1812

说明:

  • driver=none 表示不控制具体的网卡
  • eap_server=1 表示启用 EAP server 服务
  • eap_user_file 配置用户 eap 参数
  • ca_cert, server_cert, private_key 用于 EAP-TLS 方式中的双向认证
  • radius_server_clients 和 radius_server_auth_port 指出授权 radius client 和端口
  • 如果使用 EAP-PEAPEAP-TTLS 方式,请注释 ca_cert 行

2.2 配置 hostapd.eap_user

hostapd.eap_user 配置 EAP 方式以及交互过程的一些参数,详细配置可参考 hostapd.eap_user 官方文档。
我们这里提供了一个 EAP-TLS 方式的 hostapd.eap_user,将其保存到 /etc/hostapd/ 目录下

# hostapd user database for integrated EAP server
# This file enables all EAP methods used in WFA testing:
#EAP-TLS,EAP-TTLS/MSCHAPv2,PEAPv0/EAP-MSCHAPv2,PEAPv1/EAP-GTC, EAP-SIM,EAP-AKA, EAP-FAST
# Each line must contain identity, EAP method, and optional password separated with whitespace (space or tab). Identity and password must be double quoted ("user").
# Phase 1 users:q
#*                      PEAP
#*                      TTLS
*                       TLS
# Phase 2 (tunnelled within EAP-PEAP/TTLS/FAST) users
#"user"         TTLS-MSCHAPV2                   "password"                      [2]
#"espressif"    TTLS-MSCHAPV2                   "test11"                        [2]
"user"          MSCHAPV2                        "password"                      [2]
"espressif"     MSCHAPV2                        "test11"                        [2]
#"*"    MSCHAPV2                        "*"                     [2]

说明:

  • * TLS: * 表示第一阶段 identity 可以任意配置,TLS 表示第一阶段用 TLS 方式(需要双向认证)
  • 后面有 [2] 表示第二阶段需要用的配置,三列分别对应 用户名, EAP 方式, 密码
  • 如果使用 EAP-PEAP 方式,请增加 * PEAP
  • 如果使用 EAP-TTLS 方式,请增加 * TTLS 行和 #"espressif" TTLS-MSCHAPV2 "test11" [2]

2.3 配置 hostapd.radius_clients

hostapd.radius_clients 用于配置 RADIUS client,详细配置可参考 hostapd.radius_clients 官方文档。
我们这里提供了一个任意 RADIUS client 通过密码 12345678 访问 RADIUS 服务的配置 hostapd.radius_clients,将其保存到 /etc/hostapd/ 目录下

# IP of AS      pre-shared key
#192.168.0.139/24        radiusserverpasswd
0.0.0.0/0           12345678

2.4 配置证书相关

hostapd.conf 中指定了 ca_cert, server_cert, private_key 路径,因此我们新建目录 /etc/hostapd/certs, 将我们的 ca 证书 ca.crt,服务器证书 server.pem 和私钥 server.key 放在该目录下。

三. 启动 hostapd

sudo hostapd -dddt /etc/hostapd/hostapd.conf
  • -ddd 表示显示更多的调试信息
  • -t 表示显示时间戳

四. 配置 AP

上述环境搭建好后,即可在 AP 上配置企业级加密了。
如 D-LINK: DIR-619L 配置如下:

p2

  • RADIUS 服务器 IP 地址对应启动 hostapd 主机的 IP
  • 端口 1812 对应 hostapd.conf 中配置
  • 共享秘钥 12345678 对应 hostapd.radius_clients 中配置

重启路由器提供服务

重启后,任何想加入 DLINK 的设备都需要提供对应的连接配置,如 identity, 用户名, 密码等, 当然我们也可以在 hostapd 更改配置已提供更多的服务和权限。


http://chatgpt.dhexx.cn/article/DLMhVtWq.shtml

相关文章

EAP-TLS/EAP-TTLS/EAP-PEAP

原文&#xff1a;http://blog.chinaunix.net/uid-26422163-id-3457357.html IEEE的802.1X使用了EAP认证框架&#xff0c;因为EAP提供了可扩展的认证方法&#xff0c;但是这些认证方法的安全性完全取决于具体的认证方法&#xff0c;比如EAP-MD5、EAP-LEAP、EAP-GTC等&#xff0c…

peaks

文章目录 语法说明示例 peaks:包含两个变量的示例函数 语法 Z peaks; Z peaks(n); Z peaks(V); Z peaks(X,Y); peaks(...) [X,Y,Z] peaks(...);说明 peaks 是从高斯分布转换和缩放得来的包含两个变量的函数&#xff0c;在演示 mesh、surf、pcolor、contour 等函数中很有…

Radius协议、EAP协议、EAP-MSCHAPv2、EAP-TLS、EAP-TTLS和EAP-PEAP

1. Radius协议 Radius协议是目前AAA服务中所使用的最广泛的协议&#xff0c;它对认证&#xff0c;授权以及计费的功能都提供支持。Radius服务器通过建立一个唯一的用户数据库&#xff0c;存储用户名&#xff0c;用户密码等一系列信息&#xff0c;接入用户通过发送自己的用户名…

使用 freeradius 搭建 EAP PEAP MS-CHAPv2 验证环境

企业级 Wi-Fi 搭建起来有点小复杂&#xff0c;我们知道自己家使用的 Wi-Fi 非常简单&#xff0c;几乎只需要配置一下热点的 SSID 和密码就可以了&#xff0c;实际上这是两种 Wi-Fi 认证类型。想要快速部署企业级 Wi-Fi 验证环境&#xff0c;首先要理解企业级 Wi-Fi 部署的一些核…

IEEE 802.1X-PEAP认证过程分析(抓包)

IEEE 802.1X-PEAP认证过程分析&#xff08;抓包&#xff09; 本文介绍IEEE802.1X认证的PEAP认证方式&#xff0c;是带有radius服务器的EAP中继认证。 IEEE802.1X认证是使用EAP报文格式在申请者和认证者之间交换信息。带有radius服务器&#xff0c;即认证者不对申请者发送的数据…

PEP是什么

转载 &#xff1a;https://www.cnblogs.com/abella/p/10056875.html PEP是什么&#xff1f; PEP的全称是Python Enhancement Proposals&#xff0c;其中Enhancement是增强改进的意思&#xff0c;Proposals则可译为提案或建议书&#xff0c;所以合起来&#xff0c;比较常见的翻…

企业级无线渗透之PEAP

0x00 前言 上月&#xff0c;受邀在C-SEC上海快递行业安全会议上做了关于无线安全威胁的议题分享。介绍了家庭级的无线网络薄弱环节及攻击方法&#xff0c;同时列举了乌云上因无线边界被突破&#xff0c;造成内网沦陷的诸多例子。后半部分&#xff0c;简要的介绍了企业级无线网络…

深度讲解linux中fputc()函数

字符写入fputc函数 int fputc(int char, FILE *stream) 返回值 如果没有发生错误&#xff0c;则返回被写入的字符。如果发生错误&#xff0c;则返回 EOF&#xff0c;并设置错误标识符。 ch 为要写入的字符&#xff0c;fp 为文件指针。fputc() 写入成功时返回写入的字符&…

文件操作之函数fputc(),fgetc()

目录 引言 一、fputc()与putchar()的联系 二、fgetc()与getchar()的联系 总结 引言 引用自《C程序设计-清华大学出版社 (2017)》 一、fputc()与putchar()的联系 fputc(ch,fp)是将ch输出到fp所指的文件里面putchar(ch)是将ch输出到屏幕 FILE*fpfopen("text.txt",…

文件操作:fgetc与fputc函数的使用

在成功打开文件后&#xff0c;我们便可以对文件进行操作&#xff0c;以下是字符输入函数fgetc和字符输出函数fputc的简单使用说明。 如果还不知道如何打开文件的可以看看我的另一篇文章。 点我 fputc函数的使用 当我们以读的形式打开文件的时候&#xff0c;便可以使用fputc函数…

c语言中fputc函数的作用是,C语言中fputc函数的用法_后端开发

Python画ROC曲线和AUC值计算(附代码)_后端开发 ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器的优劣。这篇文章将先简单的介绍ROC和AUC&#xff0c;而后用实例演示如何python作出ROC曲线图以及计算AUC。 C语言中fputc函数的用法 C语言中fputc函数…

C语言文件操作入门:fopen、fclose、fputc、fgetc、fputs、fgets、fprintf、fscanf、fwrite、fread详解

本篇文章主要讲解4组函数&#xff1a; 字符读写&#xff1a;fputc和fgetc。文本行读写&#xff1a;fputs和fgets。格式化读写&#xff1a;fprintf和fscanf。二进制读写&#xff1a;fwrite和fread。 预备知识&#xff1a;fopen和fclose 如果我们要读写一个文件&#xff0c;就必…

linux fputc fgetc fseek rewind 函数

目录 前言fputc 函数fgetc 函数fseek函数rewind函数 前言 <sprintf fprintf 函数 > 前一节讲了 sprintf fprintf 函数 的缓存问题 在他们的基础上加了一个while&#xff08;1&#xff09;&#xff1b; 来验证 结果都是输出的 不管怎么样 都会写入到内核态 内核态在输出…

c语言中fputc函数的作用是,C语言中fputc函数的用法

C语言中fputc函数的用法 C语言中fputc函数的用法为“int fgetc (FILE *fp)”&#xff0c;该函数的作用是从指定的文件中读取一个字符&#xff0c; 读取成功时会返回读取到的字符&#xff0c;读取到文件末尾或读取失败时返回EOF。推荐教程&#xff1a;《C语言》 示例代码#includ…

STM32重写fputc

操作步骤 01、在项目中&#xff0c;加上以下函数即可&#xff08;作用&#xff1a;重写fputc&#xff09; 库函数版 int fputc( int ch, FILE *f ){ USART_SendData(USART1,(u8) ch ); while(USART_GetFlagStatus(USART1,USART_F…

STM32重写fputc汇总

1. 在工程项目中加上函数fputc 例如&#xff1a; 库函数版 int fputc( int ch, FILE *f ) {USART_SendData(USART2,(u8) ch );while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)RESET);return ch; }寄存器版 int fputc(int ch, FILE *f){ while((USART2->SR&0X40)0)…

Keil 重定向 fputc 函数 以及 printf 函数的代码尺寸测试

本文的开发环境为 Keil Cortex-M3 内核处理器。 重定向 fputc 函数方法 如果想使用库函数 printf &#xff0c;必须要将 fputc 重定向到自己的串口上。 术语 重定向 可以理解为用户重写 fputc 函数&#xff0c;在重写的函数体内调用自己硬件的串口发送函数。 在 Keil 环境中…

fputc函数

/****************************************功能&#xff1a;写一个字节到文件流中*参数&#xff1a;* c 写入的字符* stream 流指针*返回值&#xff1a;* 成功返回字符* 失败返回EOF或errno*************************************/ int fputc(int c, FILE *stre…

标准c库:fputc,fgetc,feof

1、了解标准c库fopen等用法&#xff08;点击跳转&#xff09; 2、fputc写一个字符到文件 #include <stdio.h>int main() {FILE *fp;fp fopen("./test.txt","w");//int fputc(int c, FILE *stream);fputc(a,fp);fclose(fp);return 0; }3、fputc写一…

文件的输入输出函数

文章目录 前言字符输入输出函数 - fgetc和fputc文本输入输出函数 - fgets和fputs格式化输入输出函数 - fscanf和fprintf二进制输入输出函数 - fread和fwrite 前言 在文件操作函数&#xff08;一&#xff09;中&#xff0c;我们已经学会了怎样正确地打开和关闭一个文件&#xf…