预期的访问接受在 FreeRadius 教程中得到了访问拒绝
Expected Access-Accept got Access-Reject in FreeRadius tutorial
我想安装一个 FreeRADIUS 服务器来创建企业 WiFi,但我遇到了 official tutorial. I tried WPA 2 Enterprise from scratch using a Raspberry Pi and 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 容器中,Docker文件是:
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
有人可以帮帮我吗?
此致
您应该仔细阅读 FreeRADIUS 用户文件的工作原理 (/etc/raddb/users
)。因为这就是您的教程似乎用来存储测试凭据的内容。用户文件也是大多数人开始使用 FreeRADIUS 的方式,因为它以相对简单的格式封装了很多功能。
我对另一个关于用户文件格式的问题写了相当详细的回答here。我会通读它以大致了解用户文件的工作原理并创建您自己的条目。
至少一个用于验证用户身份的条目将包含他们的用户名和某种参考凭据。
bob Cleartext-Password == 'password'
将允许用户 'bob' 使用密码 'password' 进行身份验证。
注意:您将需要重新启动或 kill -HUP
RADIUS 守护程序以使其重新读取对用户文件的更改。
最后,我使用基于 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
中插入架构
架构来自:schema.sql
与谁有关!!!
用户“应该”列在 /usr/local/etc/raddb/users 中,而不是某些教程中指出的 /usr/local/etc/raddb/mods-conf/authorized 中的用户。
我想安装一个 FreeRADIUS 服务器来创建企业 WiFi,但我遇到了 official tutorial. I tried WPA 2 Enterprise from scratch using a Raspberry Pi and 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 容器中,Docker文件是:
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
有人可以帮帮我吗? 此致
您应该仔细阅读 FreeRADIUS 用户文件的工作原理 (/etc/raddb/users
)。因为这就是您的教程似乎用来存储测试凭据的内容。用户文件也是大多数人开始使用 FreeRADIUS 的方式,因为它以相对简单的格式封装了很多功能。
我对另一个关于用户文件格式的问题写了相当详细的回答here。我会通读它以大致了解用户文件的工作原理并创建您自己的条目。
至少一个用于验证用户身份的条目将包含他们的用户名和某种参考凭据。
bob Cleartext-Password == 'password'
将允许用户 'bob' 使用密码 'password' 进行身份验证。
注意:您将需要重新启动或 kill -HUP
RADIUS 守护程序以使其重新读取对用户文件的更改。
最后,我使用基于 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
架构来自:schema.sql
与谁有关!!!
用户“应该”列在 /usr/local/etc/raddb/users 中,而不是某些教程中指出的 /usr/local/etc/raddb/mods-conf/authorized 中的用户。