docker-compose安装freeradius

freeradius docker 安装记录

docker安装freeradius

#拉取镜像
docker pull freeradius/freeradius-server:latest
#启动Freeradius容器
docker run -d --name freeradius-server -p 1812-1813:1812-1813/udp freeradius/freeradius-server
#查看容器是否正常启动
docker ps -f name=freeradius-server#进入容器
#docker exec -it freeradius sh#复制一份完整配置文件
docker cp freeradius-server:/etc/freeradius ~/freeradius/config-bak#停止运行
docker stop freeradius-server#保留需要的修改的配置文件,其余删除
cd ~/freeradius/
mkdir config
cp ~/freeradius/config-bak/clients.conf config/clients.conf
cp ~/freeradius/config-bak/radiusd.conf config/radiusd.conf
cp ~/freeradius/config-bak/mods-available/eap config/eap
cp ~/freeradius/config-bak/mods-config/files/authorize config/authorize 
#如果有自定义证书可以拷贝到config目录
config/certs

进行配置修改

对config中的authorize、clients.conf、radiusd.conf、eap进行修改

  • authorize 对应 /etc/freeradius/mods-config/files/authorize

    #添加下面一行用户配置,两个字符串分别是验证时输入的身份和密码
    "hzlarm" Cleartext-Password := "hzlarm123"
    
  • clients.conf 对应 /etc/freeradius/clients.conf

    #配置客户端的密码以下是默认的,本机测试,配置这个点即可:client localhost 
    secret      = testing123
    #路由器添加radius服务器时需要 服务器ip与端口以及该secret,ipaddr是路由器的ip范围
    #设置为0.0.0.0/0任何ip都可以
    client private-network-1 {ipaddr          = 0.0.0.0/0secret          = hzlarm123
    }
    
  • radiusd.conf 对应 /etc/freeradius/radiusd.conf

    #将所有(接受和拒绝)身份验证结果记录到日志文件中
    log {
    ....
    auth = yes
    }
    
  • eap 对应 /etc/freeradius/mods-available/eap

    #eap的配置文件,默认tls,ttls,peap都包含,不需要的可以把相应的字段注释掉即可。
    eap {#eap未指定时,默认的类型。default_eap_type = tls#default_eap_type = ttls#default_eap_type = peap#关联EAP请求数据包的列表,超时会被删除。timer_expire     = 60#是否忽略不支持的eap请求。ignore_unknown_eap_types = no# Cisco 用户名bugcisco_accounting_username_bug = no#限制服务器正在跟踪的会话数,有助于防止DoS攻击。此命令取自radiusdus.conf中的“max_requests”指令。max_sessions = ${max_requests}tls-config tls-common {#private_key_password = whateverprivate_key_file = ${certdir}/srv.keycertificate_file = ${certdir}/srv.crtca_file = ${cadir}/ca.crtca_path = ${cadir}tls_min_version = "1.0"tls_max_version = "1.2"# 如果网关客户端是TLS1.0要加这个否则失败cipher_list = "DEFAULT@SECLEVEL=0"verify {#跳过额外检查skip_if_ocsp_ok = yes#client = "/path/to/openssl verify -capath ${..ca_path} %{TLS-Client-Cert-Filename}"}}# Supported EAP-types## EAP-TLStls {tls = tls-commondh_file = ${certdir}/dhrandom_file = /dev/urandom#fragment_size = 1024#include_length = yes#check_crl = yes#check_all_crl = yes#check_cert_issuer = "/C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd"#check_cert_cn = %{User-Name}#virtual_server = check-eap-tls#使用freeradius -X调试时,默认使用该命令生成证书。make_cert_command = "${certdir}/bootstrap"ecdh_curve = "prime256v1"cache {enable = nolifetime = 24 # hoursmax_entries = 255}ocsp {enable = nooverride_cert_url = yesurl = "http://127.0.0.1/ocsp/"}}peap {tls = tls-commondefault_eap_type = mschapv2copy_request_to_tunnel = nouse_tunneled_reply = no#proxy_tunneled_request_as_eap = yesvirtual_server = "inner-tunnel"#soh = yes#soh_virtual_server = "soh-server"#require_client_cert = yes}ttls {tls = tls-commondefault_eap_type = md5copy_request_to_tunnel = nouse_tunneled_reply = novirtual_server = "inner-tunnel"#include_length = yes#require_client_cert = yes}mschapv2 {# send_error = no}md5 {}gtc{}
    }
    

编辑 docker-compose 文件

# iv ~/freeradius/docker-compose.yml
version: '3'
services:freeradius:image: freeradius/freeradius-servercontainer_name: freeradiusports:- 1812-1813:1812-1813/udpvolumes:- ./logs:/var/log/freeradius- ./config/certs:/etc/freeradius/certs- ./config/clients.conf:/etc/freeradius/clients.conf- ./config/radiusd.conf:/etc/freeradius/radiusd.conf- ./config/eap:/etc/freeradius/mods-available/eap- ./config/authorize:/etc/freeradius/mods-config/files/authorizerestart: always

启动

docker-compose up -d

docker-compose 命令

# 启动
docker-compose up -d# 停止
docker-compose stop#重启
docker-compose restart

测试方法

安装测试工具eapol_test

Command line testing for EAP with FreeRADIUS

# Download and decompress wpa_supplicant
wget https://w1.fi/releases/wpa_supplicant-2.9.tar.gz
tar -xzvf wpa_supplicant-2.9.tar.gz
# Building eapol_test
cd wpa_supplicant-2.9/wpa_supplicant/
cp defconfig .config
vi .config
# Find the line containing #CONFIG_EAPOL_TEST=y and change it to CONFIG_EAPOL_TEST=y
make eapol_test
#If an error occurs, execute this command
#sudo apt-get install libdbus-1-dev libnl-3-dev libnl-genl-3-200 libnl-genl-3-dev libnl-idiag-3-dev
cp eapol_test /usr/local/bin/
eap-tls:
# 	sudo eapol_test -c eap-tls.conf -a 127.0.0.1 -p 1812 -s testing123 -r 1
# 	以下内容写在eap-tls.conf文件network={eap=TLSeapol_flags=0key_mgmt=IEEE8021Xidentity="hzlarm"password="hzlarm123"# self cert client ca_cert="~/freeradius/config/certs/ca.crt"client_cert="~/freeradius/config/certs/client.crt"private_key="~/freeradius/config/certs/client.key"private_key_passwd="whatever"anonymous_identity="anonymous"
}
ttls-chap:
#    sudo eapol_test -c ttls-chap.conf -a 127.0.0.1 -p 1812 -s testing123 -r 1
#    以下内容写在ttls-chap.conf文件network={ssid="example"key_mgmt=WPA-EAPeap=TTLSidentity="hzlarm"anonymous_identity="anonymous"password="hzlarm123"phase2="auth=CHAP"#Uncomment the following to perform server certificate validation.
#    ca_cert="~/freeradius/config/certs/ca.crt"
}
ttls-eapmd5:
#    sudo eapol_test -c ttls-eapmd5.conf -a 127.0.0.1 -p 1812 -s testing123 -r 1
#    以下内容写在ttls-eapmd5.conf文件network={ssid="example"key_mgmt=WPA-EAPeap=TTLSidentity="hzlarm"anonymous_identity="anonymous"password="hzlarm123"phase2="autheap=MD5"#Uncomment the following to perform server certificate validation.
#    ca_cert="~/freeradius/config/certs/ca.crt"
}
ttls-mschapv2:
#    sudo eapol_test -c ttls-mschapv2.conf -a 127.0.0.1 -p 1812 -s testing123 -r 1
#    以下内容写在ttls-mschapv2.conf文件network={ssid="example"key_mgmt=WPA-EAPeap=TTLSidentity="hzlarm"anonymous_identity="anonymous"password="hzlarm123"phase2="autheap=MSCHAPV2"#Uncomment the following to perform server certificate validation.
#    ca_cert="~/freeradius/config/certs/ca.crt"
}
ttls-pap:
#    sudo eapol_test -c ttls-pap.conf -a 127.0.0.1 -p 1812 -s testing123 -r 1
#    以下内容写在ttls-pap.conf文件network={ssid="example"key_mgmt=WPA-EAPeap=TTLSidentity="hzlarm"anonymous_identity="anonymous"password="hzlarm123"phase2="auth=PAP"#Uncomment the following to perform server certificate validation.
#    ca_cert="~/freeradius/config/certs/ca.crt"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自学Java到找工作,最强学习路线,2024年最新版

本人是2024届的毕业生,自学Java的路上,也踩了不少的坑,希望在这里给小伙伴一些帮助,避免无效学习,一起进大厂! ✔学习顺序: Java基础 ➡ Java进阶 ➡ Java并发 ➡ 数据结构 ➡ MySQL ➡ JavaW…

Shell中( ),(( ))的区别

在Shell编程中,() 和 (( )) 是两种常见的操作符,它们在不同的上下文中起到不同的作用。理解这两者的区别及其应用场景,有助于编写更加高效和灵活的Shell脚本。本文将详细介绍 () 和 (( )) 的功能及其使用方法。 1. 子Shell (()) 括号 () 用于…

接口幂等性问题

接口幂等性问题 描述 接口幂等性是软件开发时常见的问题,其目的是要求确保当同一个接口被重复调用时其状态不会发生变化 示例 当前一个支付页面,不管用户在同一时间内点击多少次支付按钮,最终接口也只会生成一个支付订单,这就…

AWS 网络

Here is a more detailed explanation of AWS networking in Chinese: VPC(虚拟私有云) VPC 是一个专门为您的 AWS 账户分配的虚拟网络。您可以将 VPC 视为云端的一个虚拟数据中心。在创建 VPC 时,您可以指定以下内容: IP 地址…

长连接的钟表程序

实验要求 实现1个钟表程序(服务),多个用户可以从该程序获得时间并在本地显示,用户也可以修改时间。 (1)用户程序可以在计算机上运行,也可以在手机上运行; (2&#xff…

Java 18 的一些主要新特性

以下是 Java 18 的一些主要新特性: 简单 Web 服务器(JEP 408): Java 18 引入了一个简单的 Web 服务器,旨在帮助开发者更方便地测试和原型化。在命令行中使用 jwebserver 命令即可启动这个 Web 服务器。主要用于快速测试…

程序员如何挖掘项目开发出工具?(4)

如何利用最小的MVP(最小可行产品)模型找到第一个用户? 对许多人来说,找到第一个用户可能是整个过程中最具挑战性的部分,但在我看来,这其实是最简单的。 下面分享几个小技巧,如果你还是找不到第…

使用Kube-Bench对Kubernetes进行安全检测

使用Kube-Bench对Kubernetes进行安全检测 1. 工具介绍 Kube-Bench是一个开源的Go语言工具,用于自动化检查Kubernetes集群是否符合CIS Kubernetes基准。这些基准包括一系列关于Kubernetes配置和部署安全性的建议和最佳实践。 Kube-Bench执行了一系列针对Kubernete…

【Android】Android系统性学习——Android系统架构

前言 部分内容参考《Android进阶解密》 – 刘望舒 1. Android版本 官方链接:https://developer.android.com/studio/releases/platforms 里面有各个版本的官方文档,有些新功能的用法在这里面。 现在做安卓11,有时候需要向下兼容 2. AOSP …

【Python】在运行中使用warnings.filterwarnings,可以忽略测试中遇到的问题

在 Python 中,warnings 是一个内置模块,用于发出有关程序执行的警告信息,这些警告信息通常是关于程序行为的潜在问题。 不过,这些问题通常不是致命的错误,只不过是展示我们代码中潜在的问题,或不推荐的做法…

软件架构搞好了,还用担心代码可读性差?

目录 一、架构的概念及由来 二、小系统也需要架构思想 三、实现架构的思路 一、架构的概念及由来 嵌入式软件架构是指在嵌入式系统中用于组织和管理软件组件的结构和设计。嵌入式软件架构的出现是为了解决嵌入式系统中软件复杂度和系统要求不断增加的挑战。以下是嵌入式软件架…

【STM32进阶笔记】GPIO端口

前段时间由于其他原因,专栏暂停更新了较长一段时间,现在恢复更新,争取继续为大家创造有价值的内容,期待大家的订阅关注,欢迎互相学习交流。 在STM32速成笔记系列专栏中其实已经对GPIO的一些必要知识进行了介绍&#xf…

GPT4O给Qwen2生成的高考作文打分56分,从“小白”进阶技术大神的开发者基于国产GPU推理模型效果可还行?

OpenI启智社区上线的【芯动开源】首场活动-天数智芯挑战专场即将迎来最后一周的冲刺阶段,自2024年5月27日上线以来,这期间,我们见证了天数智芯通用GPU加速卡在适配AI模型方面的无限可能与开发者们开源精神的璀璨光辉。 在短短的两周时间里&a…

代码随想录算法训练营第二十三天|669. 修剪二叉搜索树、 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 文档讲解:代码随想录 状态:还可以 思路: 如果节点的值在[low, high]之间,则递归修剪它的左子树和右子树。 节点值小于low:如果节点的值小于low&#xff…

智慧工厂自动装车解决方案:H13三维轮廓扫描激光雷达

激光雷达在智慧工厂自动装车的应用场景在智慧工厂的自动装车场景中,激光雷达的应用显得尤为关键。这种技术以其精确的测量和定位能力,助力自动化装车的每一个环节,大大提高了装车的效率和准确性。 首先,激光雷达在车辆定位方面发挥…

[next.js] svgr/webpack

nextjs如何配置svg文件,使其像react组件一样导入? 当前next.js 开发环境我使用了--turbo 来开启turbopack加速文件构建,所以之前的一些webpack loader之类的无法正常工作。通过搜索发现一般都是使用svgr/webpack来处理svg,打开svgr官网发现…

vscode 连接 GitHub

文章目录 连接 GitHub一、通过 SSH 连接 github二、通过 HTTPS 连接 github 连接 GitHub 在 vscode 中首次使用 git push 命令时会要求输入 github 账户的 username 和 password,这种基本身份验证在 2021.8.13 以前还是可以的,之后的话,就会…

Luma AI 推出梦幻机:据说吊打Sora和快手可灵(KLING)|TodayAI

近日,美国初创公司 Luma AI 宣布推出其最新的文本生成视频工具——梦幻机(Dream Machine)。这一消息发布的时间正好在中国科技公司快手推出其文本生成视频模型可灵(KLING)几天之后,标志着视频生成领域的又一…

Android Compose 十一:常用组件列表 compose自己个的 下拉刷新

列表下拉刷新 material3 还没有下拉刷新功能material:1.3.0 之后 swiperefresh 被弃用 被PullRefresh替代使用PullRefresh 需要添加依赖 implementation ‘androidx.compose.material:material:1.6.8’ 先上代码 var refreshing by remember {mutableStateOf(false)} val…

线性代数|机器学习-P12Ax=b条件下x最小值问题

文章目录 1. Axb下的最值问题-图形转换2. Gram-Schmidt 标准形3. 迭代法-Krylov子空间法 1. Axb下的最值问题-图形转换 假设我们有一个直线方程如下: 3 x 1 4 x 2 1 \begin{equation} 3x_14x_21 \end{equation} 3x1​4x2​1​​ 在二维平面上,各个范…