【问题标题】:i installed FreeRADIUS , Mysql inside docker Container我在 docker Container 中安装了 FreeRADIUS 和 Mysql
【发布时间】:2018-12-06 16:33:38
【问题描述】:

我在 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 thispassword 127.0.0.1 0 mysecret

输出:服务器接受请求

但是当前面的命令在另一台机器上时

服务器看不到请求,在对方机器上输出是“No response”

IN etc IN freeradius IN radiusd.conf 文件中的注释:

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

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

我该如何解决?

【问题讨论】:

    标签: docker freeradius


    【解决方案1】:

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

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

    您的本地连接工作的原因是因为在服务器附带的clients.conf 文件中包含一个用于 localhost 的客户端条目。

    【讨论】:

    • 感谢您,先生,我通过在 UDP 协议 -p 1813:1813/udp -p 1812:1812/udp 中公开端口解决了这个问题
    • 你的答案是正确的,先生:D
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2019-02-02
      • 2019-03-19
      • 1970-01-01
      相关资源
      最近更新 更多