我在Docker容器

时间:2018-06-27 17:37:12

标签: docker freeradius

我在Docker Container中安装了FreeRADIUS和Mysql 我将端口1812、1813、3306暴露在外面。 我将数据库导入mysql。 我将此行插入到数据库中

INSERT INTO nas VALUES (NULL , '0.0.0.0/0', 'myNAS', 'other', NULL , 'mysecret', NULL , NULL , 'RADIUS Client');

INSERT INTO radcheck (username, attribute, op, value) VALUES ('thisuser', 'User-Password', ':=', 'thispassword');

INSERT INTO radusergroup (username, groupname, priority) VALUES ('thisuser', 'thisgroup', '1');

INSERT INTO radgroupreply (groupname, attribute, op, value) VALUES ('thisgroup', 'Service-Type', ':=', 'Framed-User'), ('thisgroup', 'Framed-Protocol', ':=', 'PPP'), ('thisgroup', 'Framed-Compression', ':=', 'Van-Jacobsen-TCP-IP');

我停止了freeradius ==> service freeradius stop 和IAM使用调试模式==> freeradius -X 并且在同一容器的另一个终端中使用此命令==> radtest thisuser这个密码127.0.0.1 0 mysecret

输出:服务器接受了请求

但是当上一个命令在另一台机器上时

服务器看不到请求,并且另一台机器上的输出为“ No response”

IN etc IN半径inradius.conf文件中的注释:

listen {
type = auth
ipaddr = *
port = 0 }

listen {
ipaddr = *
port = 0
type = acct }

我该如何解决?

2 个答案:

答案 0 :(得分:1)

将行添加到sql数据库不足。您需要在mods-available/sql中配置sql实例以匹配本地数据库,在read_clients中取消注释mods-available/sql,并在radiusd.conf的实例化部分中列出sql模块以确保它是如果未在其中一台虚拟服务器中的其他地方引用该文件,则会加载该文件。

进行这些更改后,重新启动服务器。然后,SQL模块应在启动时读取客户端列表。检查调试输出freeradius -X,以确保SQL模块可以连接到您的数据库,并成功读取NAS条目。

您的本地连接正常运行的原因是,服务器随附的clients.conf文件中包含本地主机的客户端条目。

答案 1 :(得分:0)

我通过在UDP协议-p 1813:1813 / udp -p 1812:1812 / udp中公开端口来解决此问题