Debian freeradius SQL inštalácia
Inštalácia radius serveru:
apt install freeradius freeradius-mysql
systemctl enable freeradius
Import MYSQL štruktúry:
cd /etc/freeradius/3.0/mods-config/sql/main/mysql/
mysql -u root radius < schema.sql
Vytvorenie tabuľky pre zápis používateľov s časovým obmedzením:
--
-- Databáza: `radius`
--
-- --------------------------------------------------------
--
-- Štruktúra tabuľky pre tabuľku `real_radcheck`
--
CREATE TABLE `real_radcheck` (
`id` int(11) NOT NULL,
`username` varchar(64) NOT NULL DEFAULT '',
`attribute` varchar(32) NOT NULL DEFAULT 'Cleartext-Password',
`op` char(2) NOT NULL DEFAULT ':=',
`value` varchar(253) NOT NULL DEFAULT '',
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`starts` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`expire` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`tukeid` varchar(9) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Kľúče pre exportované tabuľky
--
--
-- Indexy pre tabuľku `real_radcheck`
--
ALTER TABLE `real_radcheck`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT pre exportované tabuľky
--
--
-- AUTO_INCREMENT pre tabuľku `real_radcheck`
--
ALTER TABLE `real_radcheck`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
Vytvorenie pohľadu pre tabuľku radcheck. Tento pohľad zabezpečí načítanie iba užívateľov s platnými údajmi podľa dátumu starts a expire.
CREATE or replace VIEW `radcheck` AS select `real_radcheck`.`id` AS `id`,CONCAT(`real_radcheck`.`id`,'@iguest') AS `username`,`real_radcheck`.`attribute` AS `attribute`,`real_radcheck`.`op` AS `op`,`real_radcheck`.`value` AS `value` from `real_radcheck` where current_timestamp() between `real_radcheck`.`starts` and `real_radcheck`.`expire`
Zabezpečenie automatického mazania starých záznamov z databázy starších ako 5 dní po dátume exspirácie:
0 * * * * echo "DELETE FROM radius.real_radcheck WHERE datediff(now(), radius.real_radcheck.expire) > 5;" | mysql -u root
Uprava freeradius SQL config
nano /etc/freeradius/3.0/mods-available/sql
driver = "rlm_sql_mysql"
dialect = "sqlite"
server = "localhost"
port = 3306
login = "radius"
password = "radpass"
radius_db = "radius"
povolenie SQL
cd /etc/freeradius/3.0/mods-enabled
ln -s ../mods-available/sql .