net/freeradius: add remote mysql support (#1201)

This commit is contained in:
Michael
2019-03-05 13:11:32 +01:00
committed by Franco Fichtner
parent 9b938ea01d
commit e46584041b
4 changed files with 122 additions and 1 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ Plugin Changelog
1.9.0
* Add DHCP support, serving only for DHCP relays
* Allow usage of remote MySQL server
WWW: https://www.freeradius.org
@@ -83,4 +83,46 @@
<type>text</type>
<help>Set the IP address to listen on.</help>
</field>
<field>
<id>general.mysql</id>
<label>Enable Remote MySQL</label>
<type>checkbox</type>
<advanced>true</advanced>
<help>This enables remote MySQL support.</help>
</field>
<field>
<id>general.mysqlserver</id>
<label>MySQL Server</label>
<type>text</type>
<advanced>true</advanced>
<help>Set the IP address of remote MySQL server.</help>
</field>
<field>
<id>general.mysqlport</id>
<label>MySQL Port</label>
<type>text</type>
<advanced>true</advanced>
<help>Set the port of remote MySQL server.</help>
</field>
<field>
<id>general.mysqluser</id>
<label>MySQL User</label>
<type>text</type>
<advanced>true</advanced>
<help>Set the user of remote MySQL server.</help>
</field>
<field>
<id>general.mysqlpassword</id>
<label>MySQL Password</label>
<type>password</type>
<advanced>true</advanced>
<help>Set the password of remote MySQL server.</help>
</field>
<field>
<id>general.mysqldb</id>
<label>MySQL Database</label>
<type>text</type>
<advanced>true</advanced>
<help>Set database name of remote MySQL server.</help>
</field>
</form>
@@ -30,6 +30,15 @@
<sqlite type="BooleanField">
<default>0</default>
<Required>N</Required>
<Constraints>
<check001>
<ValidationMessage>MySQL and SQLite can not be combined.</ValidationMessage>
<type>SingleSelectConstraint</type>
<addFields>
<mysql>mysql</mysql>
</addFields>
</check001>
</Constraints>
</sqlite>
<sessionlimit type="BooleanField">
<default>0</default>
@@ -80,5 +89,38 @@
</check001>
</Constraints>
</dhcplistenip>
<mysql type="BooleanField">
<default>0</default>
<Required>N</Required>
<Constraints>
<check001>
<ValidationMessage>MySQL and SQLite can not be combined.</ValidationMessage>
<type>SingleSelectConstraint</type>
<addFields>
<sqlite>sqlite</sqlite>
</addFields>
</check001>
</Constraints>
</mysql>
<mysqlserver type="HostnameField">
<default>127.0.0.1</default>
<Required>Y</Required>
</mysqlserver>
<mysqlport type="PortField">
<default>3306</default>
<Required>Y</Required>
</mysqlport>
<mysqluser type="TextField">
<default>radius</default>
<Required>Y</Required>
</mysqluser>
<mysqlpassword type="TextField">
<default>radpass</default>
<Required>Y</Required>
</mysqlpassword>
<mysqldb type="TextField">
<default>radius</default>
<Required>Y</Required>
</mysqldb>
</items>
</model>
@@ -42,5 +42,42 @@ sql {
$INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}
{% endif %}
{% if helpers.exists('OPNsense.freeradius.general.mysql') and OPNsense.freeradius.general.mysql == '1' %}
sql sql1 {
database = "mysql"
driver = "rlm_sql_${database}"
dialect = "${database}"
server = "{{ OPNsense.freeradius.general.mysqlserver }}"
port = {{ OPNsense.freeradius.general.mysqlport }}
login = "{{ OPNsense.freeradius.general.mysqluser }}"
password = "{{ OPNsense.freeradius.general.mysqlpassword }}"
radius_db = "{{ OPNsense.freeradius.general.mysqldb }}"
acct_table1 = "radacct"
acct_table2 = "radacct"
postauth_table = "radpostauth"
authcheck_table = "radcheck"
authreply_table = "radreply"
groupcheck_table = "radgroupcheck"
groupreply_table = "radgroupreply"
usergroup_table = "radusergroup"
read_groups = yes
delete_stale_sessions = yes
logfile = ${logdir}/sqltrace.sql
read_clients = yes
client_table = "nas"
pool {
start = ${thread[pool].start_servers}
min = ${thread[pool].min_spare_servers}
max = 5
spare = ${thread[pool].max_spare_servers}
uses = 0
retry_delay = 60
lifetime = 0
idle_timeout = 60
}
group_attribute = "${.:instance}-SQL-Group"
$INCLUDE ${modconfdir}/${.:name}/main/${dialect}/queries.conf
}
{% endif %}
{% endif %}