radius服务器创建方法

/***********************************/

依赖:ubuntu18.04 + freeradius-3.0

/**********************************/

1、安装freeradius

sudo apt-get install freeradius

#安装的时候会提示有依赖关系的及建议安装的其它工具,一起全部安装

sudo apt-get install freeradius-ldap freeradius-postgresql freeradius-mysql freeradius-krb5 snmp libmldbm-perl libnet-daemon-perl libsql-statement-perl make-doc

2、停止服务

sudo service freeradius stop

3、建立freeradius的软链接

cd /usr/sbin

sudo ln -s freeradius radiusd

4、修改防火墙允许freeradius端口

sudo ufw allow 1812/udp

sudo ufw allow 1813/udp

5、开启radius服务

radiusd -X

6、测试服务是否正常开启

gedit或vim /etc/freeradius/3.0/mods-config/files/authorize

插入以下内容:

testing Cleartext-Password := "password"

保存退出

停止服务再重新开启服务(执行2、5)

输入测试命令:

radtest testing password 127.0.0.1 0 testing123

如果接收到"Access-Accept"则说明正常

7、增加EAP相关的用户

gedit或vim /etc/freeradius/3.0/mods-config/files/authorize

插入以下内容:

test Cleartext-Password := "testpwd"

Auth-Type := Local,

Service-Type = Framed-User,

Framed-IP-Address = 255.255.255.255,

Framed-IP-Netmask = 255.255.255.0

8、增加路由器的相关配置

gedit或vim /etc/freeradius/3.0/clients.conf

插入以下内容:

client wifi_ap {

ipaddr = 192.168.1.0/24

secret = testing123

require_message_authenticator = no

}

这里的ip对路由器的lan口ip有要求,必须为同一网段

9、生成EAP相关的证书

注意:

CA的common name和server、client的common name不能一样,否则验证配套性的时候会提示自签名

以下命令中需要输入用于解密的密码,千万要记住,我一般都固定为123456

openssl req -newkey rsa:2048 -nodes -keyout ca.key -x509 -days 3650 -out ca.crt

openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.p12

openssl genrsa -out server.key 2048

openssl req -new -key server.key -out server.csr

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12

openssl genrsa -out client.key 2048

openssl req -new -key client.key -out client.csr

openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt

openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12

生成文件说明

ca.crt:ca根证书,用于验证server/client子证书

ca.key:ca私钥,用于签名server/client子证书,wifi连接过程中不需要

ca.p12:ca根证书+加密私钥,wifi连接过程中不需要

client.crt:客户端证书

client.csr:客户端未签名的证书摘要,wifi连接过程中不需要

client.key:客户端私钥,因未签名,出于安全考虑,客户端可能不能使用,可使用client.p12

client.p12:客户端证书+加密私钥

server.crt:服务器端证书

server.csr:服务器端未签名的证书摘要,wifi连接过程中不需要

server.key:服务器端私钥,因未签名,出于安全考虑,服务器端可能不能使用,可使用client.p12

server.p12:服务器端证书+加密私钥

windows下tls连接默认使用client.p12内的用户连接,可勾选"为此连接使用一个不同的用户名"

openssl pkcs12 -in client.p12 -out client.pem

openssl pkcs12 -in server.p12 -out server.pem

openssl x509 -in ca.crt -out ca.pem

验证证书是否配套:

openssl verify -CAfile ca.pem client.pem server.pem

10、将生成的证书拷贝到freeradius路径下

/etc/freeradius/3.0/certs/

11、修改EAP相关配置

gedit或vim /etc/freeradius/3.0/mods-enabled/eap

涉及到的修改如下:tls-config tls-common

private_key_password = 123456 #这里是前面生成证书时输入的密码

private_key_file = /etc/freeradius/3.0/certs/server.pem

certificate_file = /etc/freeradius/3.0/certs/server.pem

ca_file = /etc/freeradius/3.0/certs/ca.pem

12、路由器页面上的相关设置

radius服务器ip:跟client.conf中网段一样的ip,也就是ubuntu服务器ip,我这里手动设置静态ip为192.168.1.5

radius端口:1812(默认)

radius密码:testing123

13、客户端连接wifi时的配置

method:TLS

身份:test

CA证书:ca.pem

用户证书:client.pem

用户私钥:client.pem

私钥密码:123456

相关推荐
醉风塘25 分钟前
Linux进程管理:深度解析ps -ef命令及其高级应用
linux·运维·服务器
WJ.Polar34 分钟前
FTP、Telnet、PPP、SNMP协议
服务器·网络
REDcker1 小时前
gRPC完整文档
服务器·网络·c++·网络协议·grpc
Highcharts.js1 小时前
如何设置自定义Highcharts导出服务器?
服务器·highcharts·自定义导出·导出服务器·导出模块·渲染功能
江湖有缘1 小时前
基于华为openEuler系统部署Gitblit服务器
运维·服务器·华为
yuanmenghao1 小时前
Linux 性能实战 | 第 10 篇 CPU 缓存与内存访问延迟
linux·服务器·缓存·性能优化·自动驾驶·unix
QT.qtqtqtqtqt1 小时前
SQL注入漏洞
java·服务器·sql·安全
qq_5470261791 小时前
LangChain 1.0 核心概念
运维·服务器·langchain
晚霞的不甘2 小时前
Flutter for OpenHarmony 打造沉浸式呼吸引导应用:用动画疗愈身心
服务器·网络·flutter·架构·区块链
Fcy6482 小时前
Linux下 进程(二)(进程状态、僵尸进程和孤儿进程)
linux·运维·服务器·僵尸进程·孤儿进程·进程状态