FreeRADIUS — это мощный и гибкий сервер RADIUS (Remote Authentication Dial-In User Service), который используется для аутентификации, авторизации и учета (AAA) пользователей в сетевых приложениях, таких как VPN, Wi-Fi, Ethernet и другие типы сетевых подключений. С помощью FreeRADIUS можно централизованно управлять доступом к сети, предоставлять различные уровни доступа, а также собирать данные об использовании сети.
В этой статье мы подробно рассмотрим процесс установки FreeRADIUS на сервер под управлением Linux, а также настройку для работы с различными типами аутентификации и авторизации пользователей.
Ознакомиться с тарифами VPS хостинга можно тут
Что такое FreeRADIUS?
FreeRADIUS — это один из самых популярных серверов RADIUS с открытым исходным кодом, который широко используется для предоставления аутентификационных и авторизационных услуг. Он поддерживает различные методы аутентификации, такие как PAP, CHAP, MS-CHAP, а также может работать с базами данных пользователей, такими как MySQL, PostgreSQL, LDAP, и другими.
FreeRADIUS — это высокопроизводительный сервер, который используется в крупных организациях и телекоммуникационных компаниях для управления доступом в сети. Он также поддерживает дополнительные функции, такие как биллинг, ограничение пропускной способности, управление подключениями и многое другое.
Зачем использовать FreeRADIUS?
- Управление доступом: Позволяет централизованно управлять доступом пользователей в сеть.
- Гибкость настройки: Поддерживает различные методы аутентификации и авторизации.
- Поддержка множества баз данных: Может работать с SQL, LDAP, файлы конфигураций.
- Высокая производительность: Бесплатная альтернатива коммерческим решениям для масштабируемых систем.
- Совместимость: Работает с большинством популярных протоколов аутентификации.
Установка FreeRADIUS на Linux
Прежде чем начать настройку, убедитесь, что ваш сервер с Linux обновлен до последней версии и имеет доступ к интернету для загрузки пакетов. Рассмотрим установку FreeRADIUS на популярных дистрибутивах Linux.
1. Установка FreeRADIUS на Ubuntu/Debian
Для установки FreeRADIUS на Ubuntu или Debian, используйте следующую команду:sudo apt update
sudo apt install freeradius freeradius-mysql freeradius-utils
Эта команда установит FreeRADIUS, а также необходимые утилиты для работы с базами данных MySQL, которые могут понадобиться для настройки аутентификации и учета.
2. Установка FreeRADIUS на CentOS/RHEL
Для CentOS или RHEL сначала убедитесь, что у вас есть доступ к репозиториям EPEL (Extra Packages for Enterprise Linux). Затем выполните установку:sudo yum install epel-release
sudo yum install freeradius freeradius-mysql freeradius-utils
Для CentOS 8 или более новых версий RHEL используйте:sudo dnf install freeradius freeradius-mysql freeradius-utils
3. Установка FreeRADIUS на Fedora
На Fedora установка FreeRADIUS производится с помощью стандартного менеджера пакетов:sudo dnf install freeradius freeradius-mysql freeradius-utils
После успешной установки можно перейти к следующему шагу — настройке FreeRADIUS.
Настройка FreeRADIUS
Теперь, когда FreeRADIUS установлен, необходимо настроить его для работы с вашим сервером и клиентами. Настройка может быть разнообразной в зависимости от того, как вы хотите использовать FreeRADIUS, например, для аутентификации через SQL базу данных, LDAP, или простой аутентификации через текстовые файлы.
1. Настройка аутентификации через локальные файлы
Для простоты начнем с настройки локальной аутентификации пользователей через текстовый файл. Все настройки для аутентификации находятся в конфигурационном файле /etc/freeradius/3.0/users.
-
Откройте файл users для редактирования:
sudo nano /etc/freeradius/3.0/users
-
Добавьте несколько пользователей для тестирования, например:
testuser Cleartext-Password := "password"
-
Сохраните файл и закройте редактор.
Теперь FreeRADIUS будет аутентифицировать пользователей, указанных в файле users. Чтобы применить изменения, перезапустите FreeRADIUS:sudo systemctl restart freeradius
2. Настройка аутентификации через базу данных MySQL
Для использования базы данных для аутентификации, авторизации и учета пользователей, необходимо настроить подключение к MySQL.
-
Установите MySQL (если не установлен) и создайте базу данных:
sudo apt install mysql-server # Для Ubuntu/Debian
sudo yum install mysql-server # Для CentOS/RHEL
sudo dnf install mysql-server # Для Fedora -
Включите и запустите MySQL:
sudo systemctl enable mysql
sudo systemctl start mysql -
Войдите в MySQL и создайте базу данных для FreeRADIUS:
sudo mysql -u root -p
Создайте базу данных и пользователя:
CREATE DATABASE radius;
CREATE USER 'radius'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost';
FLUSH PRIVILEGES;
EXIT; -
Подключите FreeRADIUS к базе данных, изменив файл конфигурации:
Откройте файл /etc/freeradius/3.0/sites-available/default:
sudo nano /etc/freeradius/3.0/sites-available/default
Найдите строку, которая отвечает за использование базы данных (обычно это блок с названием sql), и раскомментируйте строки, чтобы включить использование базы данных:
authorize {
...
sql
...
}
accounting {
...
sql
...
} -
Подключите FreeRADIUS к MySQL. Для этого отредактируйте файл /etc/freeradius/3.0/mods-available/sql и укажите параметры подключения к базе данных:
sudo nano /etc/freeradius/3.0/mods-available/sql
Измените строки для указания данных базы данных:
driver = "mysql"
server = "localhost"
login = "radius"
password = "password"
radius_db = "radius" -
После настройки подключения к базе данных, создайте необходимые таблицы для FreeRADIUS, используя скрипты, предоставляемые пакетом:
cd /etc/freeradius/3.0/mods-config/sql/main/mysql/schema
sudo mysql -u radius -p radius < sql.sql -
После завершения настройки перезапустите FreeRADIUS:
sudo systemctl restart freeradius
3. Проверка работы FreeRADIUS
Для проверки работы сервера можно использовать утилиту radtest, которая позволяет протестировать аутентификацию пользователей. На сервере выполните команду:radtest testuser password 127.0.0.1 0 testing123
Эта команда проверит аутентификацию пользователя testuser с паролем password на сервере 127.0.0.1 (локальный сервер). Если все настроено правильно, вы получите сообщение о успешной аутентификации.
4. Настройка клиентских устройств
Для подключения клиентов (например, роутеров, точек доступа или устройств VPN) к серверу FreeRADIUS необходимо добавить их в файл конфигурации clients.conf:
-
Откройте файл /etc/freeradius/3.0/clients.conf:
sudo nano /etc/freeradius/3.0/clients.conf
-
Добавьте новый клиент:
client router {
ipaddr = 192.168.1.100
secret = testing123
require_message_authenticator = no
} -
Сохраните файл и перезапустите FreeRADIUS:
sudo systemctl restart freeradius
Теперь ваш сервер FreeRADIUS готов принимать запросы от клиентов, а также использовать аутентификацию через MySQL или локальные файлы.
Заключение
FreeRADIUS — это мощный и гибкий сервер для аутентификации и учета пользователей в сети. В этой статье мы рассмотрели процесс установки и настройки FreeRADIUS на Linux, включая настройку аутентификации через локальные файлы и базы данных MySQL. В зависимости от