/etc/freeradius/radiusd.conf или /etc/raddb/radiusd.conf - Основной конфигурационный файл
Web интерфейс:
Таблица nas для read_clients читается только при запуске freeradius!
Создание БД и пользователя:
CREATE DATABASE radius; CREATE USER 'radius'@'localhost'; SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('radpass'); GRANT SELECT ON radius.* TO 'radius'@'localhost'; GRANT ALL ON radius.radacct TO 'radius'@'localhost'; GRANT ALL ON radius.radpostauth TO 'radius'@'localhost'; FLUSH PRIVILEGES;
Заполняем БД:
FR=/etc/raddb/sql/mysql #для CentOS/RHEL FR=/etc/freeradius/sql/mysql #для Debian/Ubuntu mysql -u root -p radius < $FR/schema.sql mysql -u root -p radius < $FR/nas.sql
для Alpine Linux:
mysql -u root -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
В таблицу radpostauth и логи sqllog все запросы пишутся с паролями в открытом виде, для скрытия паролей необходимо в:
изменить запрос Post-Auth:
INSERT INTO ${postauth_table} (username, pass, reply, authdate) VALUES ( '%{SQL-User-Name}','%{%{User-Password}:-%{Chap-Password}}','%{reply:Packet-Type}','%S' )
на:
INSERT INTO ${postauth_table} (username, pass, reply, authdate) VALUES ( '%{SQL-User-Name}','','%{reply:Packet-Type}','%S' )
Для использования вместо Cleartext-Password
Crypt-Password на разных языках:
perl -e 'print(crypt("password","SA")."\n");' php -r "print(crypt('password','SA') . \"\n\");" python -c 'import crypt; print crypt.crypt("password","SA")' mysql -Ns -e "select encrypt('user','SA');"
https://hub.packtpub.com/storing-passwords-using-freeradius-authentication/ - Crypt,MD5,SMD5
http://freeradius.org/radiusd/man/rlm_pap.txt - Методы хранения пароля
Пример запуска FreeRADIUS из своего образа (Dockerfile):
docker run -d -p1812-1813:1812-1813/udp --name freeradius freeradius
http://freeradius.org/
https://launchpad.net/~freeradius - PPA
http://coova.github.io/CoovaChilli/ - Captive Portal
http://iplink.mogilev.by/doku.php?id=freeradius - Пример настройки FreeRadius в связке с MySQL