Организация доступа к беспроводной сети в офисе или корпоративном секторе требует не просто надежного пароля, а полноценной системы идентификации пользователей. Использование протокола RADIUS (Remote Authentication Dial-In User Service) позволяет централизованно управлять доступом, вести учет трафика и обеспечивать высокий уровень безопасности. Вместо того чтобы менять общий пароль на роутере при увольнении сотрудника, вы просто блокируете его учетную запись на сервере.
Внедрение такой системы может показаться сложной задачей, требующей глубоких знаний в Linux и сетевых протоколах. Однако, следуя проверенным алгоритмам, можно развернуть полноценный FreeRADIUS даже на базовом оборудовании. Это решение станет фундаментом для построения масштабируемой сети, где каждый пользователь проходит индивидуальную авторизацию через WPA2-Enterprise или WPA3-Enterprise.
В данной статье мы разберем процесс создания сервера с нуля, начиная от установки операционной системы и заканчивая тонкой настройкой клиентских устройств. Вы узнаете, как связать сервер авторизации с точками доступа и какие параметры критически важны для стабильной работы всей инфраструктуры.
Принципы работы и архитектура безопасности
Протокол RADIUS работает по схеме «клиент-сервер», где точками входа выступают сетевые устройства (NAS — Network Access Server), такие как Wi-Fi роутеры или коммутаторы, а центральным элементом является сервер авторизации. Когда устройство пытается подключиться к сети, оно отправляет запрос на сервер, который проверяет учетные данные в базе данных. Только после получения положительного ответа доступ к ресурсам разрешается.
Ключевым преимуществом такой архитектуры является разделение функций. Точка доступа не хранит пароли пользователей и не принимает решений о допуске, она лишь выступает посредником. Это значительно повышает безопасность, так как даже при компрометации точки доступа злоумышленник не получит базу учетных записей. Все логи и статистика подключений также централизовано собираются на сервере.
⚠️ Внимание: Протокол RADIUS по умолчанию использует UDP порты 1812 (авторизация) и 1813 (учет). Убедитесь, что на межсетевом экране открыты именно эти порты, а не устаревшие 1645 и 1646, которые использовались в ранних версиях спецификации.
Для шифрования трафика между клиентом и сервером используется общий секретный ключ (Shared Secret). Этот ключ должен быть сложным и уникальным для каждого подключаемого сетевого устройства. FreeRADIUS поддерживает различные методы хранения данных пользователей, от простых текстовых файлов до сложных SQL-баз данных, таких как MySQL или PostgreSQL.
Подготовка серверной среды и установка FreeRADIUS
Наиболее стабильной платформой для развертывания сервера авторизации является операционная система Linux. Мы будем использовать дистрибутив Ubuntu Server, так как он обладает отличной поддержкой пакетов и широким сообществом. Перед началом установки необходимо обновить репозитории и установить базовые утилиты для работы с сетью.
Установка самого сервера FreeRADIUS в Debian-подобных системах производится через стандартный менеджер пакетов. Это позволяет автоматически настроить необходимые зависимости и создать начальные конфигурационные файлы. Процесс занимает всего несколько минут и не требует компиляции исходного кода вручную.
sudo apt update
sudo apt install freeradius freeradius-utils -y
После установки служба запускается автоматически. Важно проверить статус сервиса, чтобы убедиться в отсутствии ошибок при старте. Для первичной проверки работоспособности можно запустить сервер в отладочном режиме, что позволит видеть запросы в реальном времени в консоли.
☑️ Проверка установки FreeRADIUS
В процессе настройки вам придется часто редактировать файлы конфигурации, расположенные в директории /etc/freeradius/. Основное внимание следует уделить файлам clients.conf и настройкам модуля sql, если планируется использование базы данных. Синтаксис конфигурационных файлов чувствителен к регистру и отступам.
Настройка клиентов и секретных ключей
Сервер должен знать, какие устройства имеют право отправлять запросы на авторизацию. Эти устройства называются клиентами (clients) и описываются в файле clients.conf. Для каждого клиента необходимо указать IP-адрес (или подсеть), название и, самое главное, Secret (секретный ключ).
Секретный ключ используется для шифрования паролей внутри пакетов RADIUS и взаимной аутентификации сервера и клиента. Если ключи на сервере и на роутере не совпадают хотя бы на один символ, авторизация будет невозможна. Рекомендуется использовать сложные случайные строки длиной не менее 16 символов.
client wifi-office {
ipaddr = 192.168.1.254
secret = sUp3rS3cr3tK3y2026!
shortname = OfficeAP
nastype = other
}
В конфигурации можно задавать клиентов не только по конкретному IP, но и по целым подсетям, что удобно для крупных сетей с выделенным VLAN для оборудования доступа. Однако в целях безопасности лучше прописывать каждое устройство индивидуально, чтобы иметь полный контроль над списком доверенного оборудования.
Что делать если IP адрес точки доступа динамический?
Если точка доступа получает адрес по DHCP, лучше зарезервировать для нее статический IP на DHCP-сервере или использовать диапазон адресов в clients.conf, хотя последний метод менее безопасен.
После добавления записи о клиенте необходимо перезагрузить службу RADIUS или отправить сигнал перечитывания конфигурации. Изменения в файле clients.conf применяются только после рестарта сервиса freeradius. Не забывайте проверять логи после каждого изменения.
Создание пользователей и управление доступом
Для начала работы достаточно создать пользователей в локальном файле users. Это простой текстовый файл, где каждой строке соответствует пользователь или группа. Такой подход подходит для небольших сетей, где количество пользователей не превышает нескольких десятков.
В файле users можно задавать не только пароль, но и атрибуты доступа, такие как VLAN ID, время сессии или ограничение по трафику. Это позволяет гибко управлять правами разных категорий сотрудников прямо из конфигурации сервера без вмешательства в настройки коммутаторов.
| Пользователь | Пароль | Атрибуты | Описание |
|---|---|---|---|
| ivanov | password123 | Tunnel-Private-Group-ID = "10" | Сотрудник офиса |
| guest | guest2026 | Session-Timeout = 3600 | Гостевой доступ |
| admin | strongpass | Tunnel-Private-Group-ID = "99" | Администратор |
При хранении паролей в файле users настоятельно рекомендуется использовать хеширование (например, MD5 или SHA1), а не хранить их в открытом виде. FreeRADIUS поддерживает различные схемы шифрования, что повышает общую безопасность системы даже при утечке файлов конфигурации.
⚠️ Внимание: Интерфейсы и точные названия полей в веб-конфигураторах роутеров (Mikrotik, Ubiquiti, Cisco) могут отличаться в зависимости от версии прошивки. Всегда сверяйтесь с официальной документацией производителя вашего оборудования перед вводом параметров.
Для более сложных сценариев, таких как интеграция с Active Directory или LDAP, используется подключение через SQL или специальные модули. Это позволяет использовать существующие учетные записи сотрудников, не создавая дубликатов пользователей на сервере RADIUS.
Конфигурация точки доступа и WPA2-Enterprise
На стороне точки доступа (или контроллера беспроводных сетей) необходимо создать новый SSID с типом безопасности WPA2-Enterprise (или WPA3-Enterprise). В отличие от режима Personal (PSK), здесь не указывается единый пароль, а задаются параметры сервера RADIUS.
Вам потребуется указать IP-адрес сервера авторизации, порт (станартно 1812) и тот самый Secret, который вы прописали в файле clients.conf. Точка доступа станет посредником, пересылая запросы от клиентов на сервер и получая verdict «Accept» или «Reject».
radius-server {
servers {
server radius-local {
address = 192.168.1.100
port = 1812
secret = "sUp3rS3cr3tK3y2026!"
type = auth
}
}
}
Важным моментом является настройка времени таймаута. Если сервер не ответит за определенное время, точка доступа может попытаться отправить запрос повторно или переключиться на резервный сервер. Правильная настройка этих параметров предотвратит долгие задержки при подключении пользователей в случае временных сбоев сети.
Подключение клиентов и диагностика проблем
При подключении смартфона или ноутбука к сети WPA2-Enterprise устройство запросит логин и пароль. В отличие от обычного WiFi, здесь нужно ввести именно учетные данные пользователя, определенные на сервере. Операционные системы могут также запрашивать подтверждение сертификата сервера.
Частой проблемой является ошибка «Не удалось подключиться» или бесконечный цикл авторизации. В 90% случаев это связано с неверным секретным ключом на точке доступа или неправильным форматом имени пользователя. Для диагностики используйте утилиту radtest, которая имитирует запрос от клиента.
radtest ivanov password123 localhost 0 testing123
Если тестовый запрос проходит успешно, но клиенты не могут подключиться, проблема кроется в настройках шифрования EAP или сертификатах. Для корпоративных сетей часто требуется установка корневого сертификата на клиентские устройства, что обеспечивает защиту от атак типа «человек посередине».
Почему телефон пишет «Сертификат не действителен»?
Это нормальная реакция ОС на самоподписанный сертификат, который часто используется во внутренних сетях. Для корпоративного развертывания рекомендуется использовать сертификаты от доверенного центра (CA) или принудительно установить корневой сертификат организации на все устройства пользователей.
Можно ли использовать RADIUS с обычным домашним роутером?
Большинство потребительских роутеров (TP-Link, D-Link начального уровня) не поддерживают режим RADIUS Client для WiFi. Эту функцию обычно имеют модели бизнес-класса (Mikrotik, Keenetic, Asus с прошивкой Merlin, Ubiquiti).
Как сбросить счетчик времени для пользователя?
Если вы используете ограничение по времени сессии, сброс происходит автоматически после завершения сеанса или по истечении времени, заданного в атрибутах пользователя. Для принудительного разрыва сессии можно использовать команду radclient с пакетом Disconnect.
Настройка RADIUS сервера — это инвестиция в безопасность и управляемость вашей сети. Несмотря на первоначальные затраты времени на конфигурацию, в дальнейшем это сэкономит сотни часов на администрировании паролей и мониторинге подключений.