Як встановити FreeRADIUS і Daloradius на Ubuntu 24.04 | Ubutu 22.04

Як встановити 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 буде виглядати так.

Як встановити FreeRADIUS і Daloradius на Ubuntu 24.04

Деталі входу за замовчуванням:

Username: administrator
Password: radius

Змініть пароль після першого входу, щоб забезпечити налаштування.

Як встановити FreeRADIUS і Daloradius на Ubuntu 24.04

Детальніше про конфігурації daloRADIUS

Прокрутка до верху