我想挂载FreeRADIUS服务器来创建企业WiFi,并且official tutorial遇到问题。我尝试了WPA 2 Enterprise from scratch using a Raspberry Pi和FreeRadius Server installation and configuration on Linux system,但没有成功。
尝试执行测试radtest -x testing password localhost 0 testing123
时遇到麻烦。服务器响应为:
Sent Access-Request Id 86 from 0.0.0.0:35959 to 127.0.0.1:1812 length 77
User-Name = "testing"
User-Password = "password"
NAS-IP-Address = 172.18.0.2
NAS-Port = 0
Message-Authenticator = 0x00
Cleartext-Password = "password"
Received Access-Reject Id 86 from 127.0.0.1:1812 to 127.0.0.1:35959 length 20
(0) -: Expected Access-Accept got Access-Reject
我正在将服务器安装在Docker容器中,该Dockerfile是:
FROM base/archlinux
RUN pacman -Syyu; pacman -S freeradius make inetutils --noconfirm
EXPOSE 1812
EXPOSE 1813
# Archlinux is not installig freeradius on /etc/raddb but when I launch
# the server, the main proccess looks at that directorie
RUN cp -r /etc/raddb.default /etc/raddb
RUN sed -i '1 i\testing Cleartext-Password := password' /etc/raddb/users
ENTRYPOINT [ "radiusd", "-X" ]
要运行docker容器,请执行以下操作:
docker build -t freeradius .
docker run freeradius
并启动测试:
docker exec container_id radtest -x testing password localhost 0 testing123
有人可以帮我吗? 问候
答案 0 :(得分:0)
您应该阅读FreeRADIUS用户文件的工作原理(/etc/raddb/users
)。这就是您的教程似乎用来存储测试凭据的内容。用户文件也是大多数人开始使用FreeRADIUS的方式,因为它以相对简单的格式封装了许多功能。
我对有关用户文件格式here的另一个问题写了相当详细的答案。我将通读该文章,以概述用户文件的工作原理并创建您自己的条目。
至少要对用户进行身份验证的条目将包含其用户名和某种参考凭证。
bob Cleartext-Password == 'password'
将允许用户'bob'使用密码'password'进行身份验证。
注意:您将需要重新启动或kill -HUP
RADIUS守护程序才能使其重新读取对用户文件的更改。
答案 1 :(得分:0)
最后,我实现了使用基于Ubuntu(https://github.com/tpdock/freeradius)的Freeradius docker映像而不是ArchLinux。并使用MySQL代替用户文件(/etc/raddb/users
)进行用户身份验证
有docker-compose文件:
version: '3'
services:
db:
restart: always
image: mysql:5.7
volumes:
- ./db/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ./db/volume:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: freeradius
MYSQL_PASSWORD: freeradius
MYSQL_DATABASE: freeradius
ports:
- "3306:3306"
freeradius-server-docker:
restart: always
image: tpdock/freeradius
ports:
- 1812:1812/udp
- 1813:1813/udp
environment:
RADIUS_LISTEN_IP: '*'
RADIUS_CLIENTS: secret@127.0.0.1
RADIUS_SQL: 'true'
RADIUS_DB_HOST: db
RADIUS_DB_NAME: freeradius
RADIUS_DB_USERNAME: freeradius
RADIUS_DB_PASSWORD: freeradius
links:
- db
然后在./db/docker-entrypoint-initdb.d/script.sql
上插入MySQL脚本以插入用户
insert into radcheck (username, attribute, op, value) values ('test', 'Cleartext-Password', ':=', 'test');
我还必须将模式插入./db/docker-entrypoint-initdb.d/schema.sql
答案 2 :(得分:0)
可能与谁有关!
/ usr / local / etc / raddb / users中列出的用户是“ shold be”,而不是某些教程所指示的/ usr / local / etc / raddb / mods-conf / authorized中的一个。