mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
net/freeradius: add remote mysql support (#1201)
This commit is contained in:
@@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user