mariadb 重新启动FreeRADIUS服务时出错/找不到“${方言}”

umuewwlo  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(130)

大家
我试图在Debian 12上配置Radius来控制对一些Extreme Networks交换机的访问。我是操作系统和Radius的新手。首先,我创建了如下数据库。
CREATE DATABASE radius; GRANT ALL ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT;
之后,我修改了以下文件“/etc/freeradius/3.0/mods-available/sql”,以添加以下参数:
driver = "rlm_sql_mariadb" database = "mysql" server = "localhost" port = 3306 login = "radius" password = "password" radius_db = "radius"
接下来,我继续修改文件“/etc/freeradius/3.0/clients.conf”以添加开关。
client switch1 { ipaddr = 192.168.1.10 secret = mysecret require_message_authenticator = no nas_type = other shortname = switch1 }
最后,我编辑了文件“/etc/freeradius/3.0/users”,以便能够添加用户。
alan { Cleartext-Password := "password123" Reply-Message = "Welcome, alan!" }
尝试重新启动Radius服务时,遇到以下错误:
error al reiniciar
sudo freeradius -cx
systemctl status
journalctl -xeu
我希望问题是什么。我希望你能在这方面帮助我,我为我在这方面的知识有限而道歉。有什么问题尽管问。
最好的问候。

lsmd5eda

lsmd5eda1#

raddb/mods-available/sql有:

dialect = "sqlite"
...
        driver = "rlm_sql_null"
#       driver = "rlm_sql_${dialect}"

您应该将dialect行从sqlite更改为mysql,而不是删除它。然后注解掉rlm_sql_null驱动程序行,并取消注解其中包含${dialect}的驱动程序行。配置的其他部分使用${dialect}选项,因此如果您删除了它,那么您将看到您得到的错误。就像这样:

dialect = "mysql"
...
#       driver = "rlm_sql_null"
        driver = "rlm_sql_${dialect}"

请注意,FreeRADIUS驱动程序是mysql,而不是mariadb,因此rlm_sql_mariadb将无法工作。司机为两者工作。
您还应该修复在users文件中使用的格式-它没有任何{大括号}。请参阅示例文件以了解要使用的格式。
最后,不要为新客户端设置require_message_authenticator = no。它不太安全,而且仅在localhost示例中。现代设备都应该使用yes,而那些不需要更换。

相关问题