Як встановити FreeRADIUS і Daloradius на Ubuntu 24.04 | Ubutu 22.04
Цей посібник допоможе вам встановити FreeRADIUS та Daloradius на серверах Ubuntu LTS. FreeRADIUS – це відкритий код, високоефективний, модульний, масштабований та багатий на функції сервер RADIUS. Він постачається як з клієнтом сервера, так і з радіусом, бібліотеками розробки та численними додатковими утилітами, пов’язаними з RADIUS.
FreeRADIUS підтримує проксі-сервіс із збоєм та балансуванням навантаження, а також можливість доступу до багатьох типів резервних баз даних.
RADIUS, що означає “Послуга користувачів віддаленої аутентифікації“ – це мережевий протокол, який використовується для аутентифікації та обліку віддалених користувачів. Він надає послуги AAБ; а саме Авторизація, Аутентифікація, і Бухгалтерський облік.
Особливості FreeRADIUS
- Гнучка конфігурація за допомогою широкого спектру методів вибору конфігурацій користувача.
- Повна підтримка атрибутів RFC 2865 та RFC 2866.
- EAP з підтипами EAP-MD5, EAP-SIM, EAP-TLS, EAP-TTLS, EAP-PEAP та Cisco LEAP EAP
- Конкретні атрибути постачальника для майже ста постачальників, включаючи BinTec, Foundry, Cisco, Juniper, Lucent / Ascend, HP ProCurve, Microsoft, USR / 3Com, Acc / Newbridge та багато іншого.
Що таке daloRADIUS?
З іншого боку, daloRADIUS – це вдосконалена платформа веб-менеджменту RADIUS, написана на PHP та JavaScript. В основному він спрямований на управління гарячими точками та розгортанням ISP загального призначення, що працює на сервері FreeRADIUS. Деякі хороші особливості daloRADIUS включають:
- Має рівень абстрагування бази даних з підтримкою багатьох систем баз даних – MySQL, SQLite, PostgreSQL, MsSQL та Oracle
- Розширене управління користувачами
- Потужна графічна звітність та облік
- Інтегрується з GoogleMaps для геолокації
- Має двигун виставлення рахунків
Крок 1. Система оновлення
Почніть з оновлення системних пакетів до останньої версії:
sudo apt update && sudo apt -y upgrade
Перезавантажте систему після оновлення
[ -f /var/run/reboot-required ] && sudo reboot -f
Після того як система буде запущена, починайте встановлення FreeRADIUS та Daloradius у вашій системі Ubuntu.
Крок 2. Встановіть Apache та PHP
Daloradius вимагатиме встановлення веб-сервера php та Apache в хост-системі.
Встановіть веб-сервер Apache за допомогою:
sudo apt -y install apache2
Для встановлення PHP на циклі Ubuntu:
sudo apt -y install vim php libapache2-mod-php php-{gd,common,mail,mail-mime,mysql,pear,db,mbstring,xml,curl,zip}
Перевірте встановлену версію php:
$ php -v
PHP 8.3.6 (cli) (built: Jun 13 2024 15:23:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
Крок 3. Встановіть MariaDB та створіть базу даних
Далі – встановити сервер MariaDB та створити базу даних для daloRADIUS:
sudo apt update && sudo apt install mariadb-server
Після встановлення та запуску створіть базу даних для FreeRADIUS, вона буде використана на більш пізньому етапі.
database name: radius
database user: radius
database user password: Str0ngR@diusPass
Якщо у вас є спеціалізований сервер бази даних, замініть місцевий привид з IP-адресою джерела FreeRADIUS Server.
$ sudo mysql -u root -p
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "Str0ngR@diusPass";
FLUSH PRIVILEGES;
QUIT
Крок 4. Встановіть та налаштуйте FreeRADIUS
Ви можете переглянути версії freeradius, доступні у вашому Ubuntu:
$ sudo apt policy freeradius
freeradius:
Installed: (none)
Candidate: 3.2.3+dfsg-2build7
Version table:
3.2.3+dfsg-2build7 500
500 https://mirror.hetzner.com/ubuntu/packages noble/main amd64 Packages
Встановіть пакети FreeRadius з офіційного сховища APT Ubuntu з командами нижче:
sudo apt -y install freeradius freeradius-mysql freeradius-utils
Серед встановлених пакетів є mysql модуль і утиліти пакет.
Імпортуйте схему бази даних freeradius MySQL:
sudo su -
mysql -u root -p radius < /etc/freeradius/*/mods-config/sql/main/mysql/schema.sql
Перевірте створені таблиці:
$ sudo mysql -u root -p -e "use radius;show tables;"
Enter password:
+------------------+
| Tables_in_radius |
+------------------+
| nas |
| radacct |
| radcheck |
| radgroupcheck |
| radgroupreply |
| radpostauth |
| radreply |
| radusergroup |
+------------------+
Створіть м’яке посилання для модуля sql під /etc/freeradius/version/mods-enabled/
sudo ln -s /etc/freeradius/*/mods-available/sql /etc/freeradius/*/mods-enabled/
Налаштуйте модуль SQL та змініть параметри підключення до бази даних відповідно до вашого середовища.
sudo nano /etc/freeradius/*/mods-enabled/sql
Ваш розділ sql повинен виглядати нижче.
sql {
driver = "rlm_sql_mysql"
dialect = "mysql"
# Connection info:
server = "localhost"
port = 3306
login = "radius"
password = "Str0ngR@diusPass"
# Database table configuration for everything except Oracle
radius_db = "radius"
}
# Set to ‘yes’ to read radius clients from the database (‘nas’ table)
# Clients will ONLY be read on server startup.
read_clients = yes
# Table to keep radius client info
client_table = "nas"
Прокоментуйте розділи SSL в mysql
mysql {
# If any of the files below are set, TLS encryption is enabled
# tls {
# ca_file = "/etc/ssl/certs/my_ca.crt"
# ca_path = "/etc/ssl/certs/"
# certificate_file = "/etc/ssl/certs/private/client.crt"
# private_key_file = "/etc/ssl/certs/private/client.key"
# cipher = "DHE-RSA-AES256-SHA:AES128-SHA"
#
# tls_required = yes
# tls_check_cert = no
# tls_check_cert_cn = no
# }
# If yes, (or auto and libmysqlclient reports warnings are
# available), will retrieve and log additional warnings from
# the server if an error has occured. Defaults to 'auto'
warnings = auto
}
Потім змініть право групи на /etc/freeradius/3.0/mods-enabled/sql
sudo chgrp -h freerad /etc/freeradius/*/mods-available/sql
sudo chown -R freerad:freerad /etc/freeradius/*/mods-enabled/sql
Перезапуск сервіса freeradius:
sudo systemctl restart freeradius.service
Крок 5. Встановити та налаштувати Далорадіус
Нам потрібно встановити Daloradius, щоб отримати інтерфейс веб-адміністрування FreeRADIUS.
sudo apt -y install git
git clone https://github.com/lirantal/daloradius.git
Налаштування daloradius
- Тепер імпортуйте таблиці Daloradius mysql
sudo su -
mysql -u root -p radius < daloradius/contrib/db/fr3-mariadb-freeradius.sql
mysql -u root -p radius < daloradius/contrib/db/mariadb-daloradius.sql
- Налаштуйте деталі підключення бази даних daloRADIUS:
sudo mv daloradius /var/www/
Потім змініть дозволи на папку http і встановіть правильні дозволи на файл конфігурації daloradius.
cd /var/www/daloradius/app/common/includes/
sudo cp daloradius.conf.php.sample daloradius.conf.php
sudo chown www-data:www-data daloradius.conf.php
Тепер слід змінити файлdaloradius.conf.php
для налаштування інформації бази даних MySQL. Відкрийте daloradius.conf.php та додайте ім’я користувача бази даних, пароль та ім’я db.
sudo nano daloradius.conf.php
Особливо актуальними змінними для налаштування є:
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'Str0ngR@diusPass';
$configValues['CONFIG_DB_NAME'] = 'radius';
Створіть каталог var та його підкаталоги, а потім змініть свою власність:
cd /var/www/daloradius/
sudo mkdir -p var/{log,backup}
sudo chown -R www-data:www-data var
Налаштування веб-сервера Apache
Налаштування портів Apache:
sudo tee /etc/apache2/ports.conf<<EOF
Listen 80
Listen 8000
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
EOF
Налаштуйте віртуальний хост для операторів:
sudo tee /etc/apache2/sites-available/operators.conf<<EOF
<VirtualHost *:8000>
ServerAdmin operators@localhost
DocumentRoot /var/www/daloradius/app/operators
<Directory /var/www/daloradius/app/operators>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/daloradius>
Require all denied
</Directory>
ErrorLog \${APACHE_LOG_DIR}/daloradius/operators/error.log
CustomLog \${APACHE_LOG_DIR}/daloradius/operators/access.log combined
</VirtualHost>
EOF
Налаштуйте віртуальний хост для користувачів:
sudo tee /etc/apache2/sites-available/users.conf<<EOF
<VirtualHost *:80>
ServerAdmin users@localhost
DocumentRoot /var/www/daloradius/app/users
<Directory /var/www/daloradius/app/users>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/daloradius>
Require all denied
</Directory>
ErrorLog \${APACHE_LOG_DIR}/daloradius/users/error.log
CustomLog \${APACHE_LOG_DIR}/daloradius/users/access.log combined
</VirtualHost>
EOF
Увімкніть створені віртуальні хости:
sudo a2ensite users.conf operators.conf
Створюйте інші каталоги.
sudo mkdir -p /var/log/apache2/daloradius/{operators,users}
Вимкніть віртуальний хост за замовчуванням:
sudo a2dissite 000-default.conf
Щоб переконатися, що все працює, перезавантажте сервіси.
sudo systemctl restart apache2 freeradius
Перевірте сервіси.
$ systemctl status apache2 freeradius
● apache2.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-08-03 12:19:15 UTC; 9s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 21519 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 21522 (apache2)
Tasks: 6 (limit: 2263)
Memory: 13.7M (peak: 13.9M)
CPU: 161ms
CGroup: /system.slice/apache2.service
├─21522 /usr/sbin/apache2 -k start
├─21524 /usr/sbin/apache2 -k start
├─21525 /usr/sbin/apache2 -k start
├─21526 /usr/sbin/apache2 -k start
├─21527 /usr/sbin/apache2 -k start
└─21528 /usr/sbin/apache2 -k start
Aug 03 12:19:15 noble systemd[1]: Starting apache2.service - The Apache HTTP Server...
Aug 03 12:19:15 noble apachectl[21521]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Aug 03 12:19:15 noble systemd[1]: Started apache2.service - The Apache HTTP Server.
● freeradius.service - FreeRADIUS multi-protocol policy server
Loaded: loaded (/usr/lib/systemd/system/freeradius.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-08-03 12:19:16 UTC; 8s ago
Docs: man:radiusd(8)
man:radiusd.conf(5)
http://wiki.freeradius.org/
http://networkradius.com/doc/
Process: 21515 ExecStartPre=/usr/sbin/freeradius $FREERADIUS_OPTIONS -Cx -lstdout (code=exited, status=0/SUCCESS)
Main PID: 21530 (freeradius)
Status: "Processing requests"
Tasks: 6 (limit: 2263)
Memory: 42.4M (limit: 2.0G peak: 42.6M)
CPU: 648ms
CGroup: /system.slice/freeradius.service
└─21530 /usr/sbin/freeradius -f
Aug 03 12:19:15 noble freeradius[21515]: Compiling Auth-Type PAP for attr Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Auth-Type CHAP for attr Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Auth-Type MS-CHAP for attr Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Autz-Type New-TLS-Connection for attr Autz-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Post-Auth-Type REJECT for attr Post-Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Post-Auth-Type Challenge for attr Post-Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: Compiling Post-Auth-Type Client-Lost for attr Post-Auth-Type
Aug 03 12:19:15 noble freeradius[21515]: radiusd: #### Skipping IP addresses and Ports ####
Aug 03 12:19:15 noble freeradius[21515]: Configuration appears to be OK
Aug 03 12:19:16 noble systemd[1]: Started freeradius.service - FreeRADIUS multi-protocol policy server.
Отримайте доступ до послуги за такими URL-адресами:
- Додаток для управління RADIUS: http://<ip>:8000/
- Додаток для порталу користувачів RADIUS: http://<ip >
Портал програм управління RADIUS буде виглядати так.
Деталі входу за замовчуванням:
Username: administrator
Password: radius
Змініть пароль після першого входу, щоб забезпечити налаштування.
Детальніше про конфігурації daloRADIUS