Freeradius centos 7 настройка

Обновлено: 02.07.2024

Настройка Freeradius для работы с Microsoft Active Directory

Иногда для удобства организации доступа к сети, удобно использовать централизованную схему аутентификации на основе протокола Radius. В этой статье мы рассмотрим настройку сервера Freeradius для работы с доменом Active Directory, для организации доступа к сети на основании учетных записей доменных пользователей.

FreeRADIUS — RADIUS сервер с открытым исходным кодом.

Radius - сетевой протокол, предназначенный для обеспечения централизованной аутентификации, авторизации и учёта (Authentication, Authorization, and Accounting, AAA) пользователей, подключающихся к различным сетевым службам. Используется, например, при аутентификации пользователей WiFi, VPN

Настройка сервера Freeradius будем производить на сервере CentOs7, в качестве контроллера домена выступает машина Windows Server 2012R2 с именем test-dc, домен test.un.

Настройка сервера Centos

sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/" \

Указываем DNS сервер отвечающий за домен

На файерволе разрешаем порт udp 1812

Устанавливаем необходимые зависимости:

sudo yum install authconfig samba samba-winbind samba-client \

Запускаем интерфейс для настройки источников системной аутентификации

Запускается псевдо-графическая оболочка для настройки

На странице "Конфигурация аутентификации" выбираем "Информация пользователя->Использовать Winbind", "Аутентификация->Использовать Kerberos"

Настройка аутентификации

Далее в меню "Настройка Kerberos указываем область и сервер KDC"

Настройка Kerberos

"Настройка Winbind" выбираем "Модель защиты"->ads, указываем домен (Netbios имя),контроллер домена, область и оболочку по-умолчанию в зависимости от необходимости

Настройка Winbind

Запускаем демоны и добавляем их в автозагрузку

sudo systemctl start smb

sudo systemctl start nmb

sudo systemctl enable smb

sudo systemctl enable nmb

Присоединяем сервер к домену

sudo net ads join -U Administrator

Запускаем демон winbind

sudo systemctl start winbind

sudo systemctl enable winbind

Проверяем доступ к AD

Проверяем аутентификацию ntlm

ntlm_auth --request-nt-key --domain=TEST.UN \

Установка и настройка Freeradius сервера

sudo yum install freeradius freeradius-krb5

Идем в файл /etc/raddb/mods-enabled/ntlm_auth прописываем правильные значения

Правим конфигурацию виртуальных сервров Freeradius

в файл /etc/raddb/users добавляем следующую секцию

Создаем клиента для Freeradius

Запускае Freeradius сервер в режиме Debug

И проверяем аутентификацию на Freeradius сервере с другой машины для которой был создан клиент

radtest radius "пароль" 172.20.1.210 1812 testing123

Аутентификация прошла удачно.

Если вы хотети ограничить аутентификацию для пользователей на основании принадлежности их к доменной группе, то в файле /etc/raddb/mods-enabled/ntlm_auth в строке с указанием ключей для команды ntlm_auth обавляем следующую конструкцию

How To Install FreeRADIUS on Ubuntu 20.04 LTS

Как установить FreeRADIUS и Daloradius на CentOS 7 / RHEL 7

FreeRADIUS является наиболее развернутым сервером RADIUS, поскольку он поддерживает все распространенные протоколы аутентификации, будучи открытым исходным кодом и упрощенным администрированием пользователей, что стало возможным благодаря веб-интерфейсу dialupadmin. Сервер также поставляется с модулями для интеграции LDAP и систем баз данных, таких как MySQL, PostgreSQL, Oracle и т. Д.

Настройка инициализации

Обновите вашу систему CentOS / RHEL

Установите SELinux в разрешающий режим, если вы хотите бесшовную установку, не касаясь инструментов управления SELinux.

Установите FreeRADIUS и Daloradius на CentOS 7 и RHEL 7

Давайте начнем установку FreeRADIUS и Daloradius на CentOS 7 и RHEL 7.

Шаг 2: Установка и настройка MariaDB

Мы установим и настроим MariaDB 10, выполнив следующие шаги:

  • Добавить официальный репозиторий MariaDB в систему CentOS 7
  • Установите MariaDB для настройки сервера базы данных

Вам будет предложено установить ключ подписи MariaDB GPG. Просто нажмите y, чтобы разрешить установку.

  • Запустите и включите MariaDB для запуска при загрузке

Проверьте, работает ли и включен ли

Сконфигурируйте начальные настройки MariaDB для его защиты. Здесь вы установите пароль root. В целях безопасности рассмотрите возможность удаления анонимных пользователей и запрета удаленного входа в систему. Смотрите пример конфигурации, показанный ниже. Ключевые варианты отмечены красным.

Настройка базы данных для freeradius

Шаг 3: Установите PHP и необходимые модули

Добавьте репозитории EPEL и Remi, затем установите PHP и другие расширения, необходимые для запуска Daloradius в CentOS 7.

Проверьте версию PHP, чтобы подтвердить

Шаг 4: Установка FreeRADIUS на CentOS 7 / RHEL 7

Теперь выполните следующие команды в своем терминале, чтобы установить FreeRADIUS на CentOS 7 / RHEL 7

Вы должны запустить и разрешить запуск Freeradius при загрузке.

Теперь вы можете проверить статус:

Перезагрузите firewalld, чтобы изменения вступили в силу

Проверьте радиус-сервер, запустив его в режиме отладки с опцией -X

Шаг 5: Настройте FreeRADIUS на CentOS 7 / RHEL 7

Чтобы настроить FreeRADIUS на использование MariaDB, выполните следующие действия.

2 – Настроить радиус в этой точке

Сначала вы должны создать мягкую ссылку для SQL в/etc/raddb/mods-enabled

Сконфигурируйте модуль SQL / raddb / mods-available / sql и измените параметры подключения к базе данных в соответствии с вашей средой:

Затем измените право группы на /etc/raddb/mods-enabled/sql to radiusd:

sudo chgrp -h radiusd /etc/raddb/mods-enabled/sql

Шаг 6: Установите и настройте Daloradius (необязательно)

Вы можете использовать Daloradius для управления сервером радиуса. Это необязательно и не должно выполняться перед установкой FreeRADIUS.

Загрузите архив релиза daloradius с Github.

Изменить каталог для конфигурации

Импорт таблиц Daloradius MySQL

Переместить папку daloradius в путь в /var/www/html

Теперь вы должны изменить файл daloradius.conf.php, чтобы настроить информацию базы данных MySQL.

Установите имя базы данных, пользователя и пароль для подключения.

Не должно быть никакой ошибки, если вывод статуса сервиса:

Финал запускаем команды:

До этого момента мы рассмотрели полную установку и настройку daloradius и freeradius, чтобы получить доступ к daloradius, откройте ссылку, используя свой IP-адрес::

Данные для входа по умолчанию:

Так выглядит интерфейс daloRADIUS.

Вывод

Вы узнали, как установить FreeRADIUS, выполнить простые необходимые настройки и установить Daloradius, веб-инструмент, используемый для администрирования FreeRADIUS. Возможно, вам придется подумать о дальнейшем чтении, чтобы стать гуру в администрации FreeRADIUS.


Уже были описаны некоторые примеры организации корпоративного WiFi. Здесь я распишу как реализовал подобное решение и проблемы с которыми пришлось столкнуться при подключении на разных устройствах. Будем использовать уже имеющийся LDAP с заведенными пользователями, поднимем FreeRadius и настроим WPA2-Enterprise на контроллере Ubnt. Вроде все просто. Посмотрим…

Немного о методах EAP

Прежде чем приступить к выполнению задачи, надо определиться какой метод аутентификации будем использовать в нашем решении.

Из википедии:

Сами методы:

  • LEAP — проприетарный протокол, разработан CISCO. Найдены уязвимости. В настоящее время не рекомендуется использовать
  • EAP-TLS — хорошо поддерживаемый среди вендоров беспроводных соединений. Является безопасным протоколом, поскольку является преемником SSL стандартов. Настройка клиентской достаточно сложна. Нужен клиентский сертификат помимо пароля. Поддерживается во многих системах
  • EAP-TTLS — широко поддерживается во многих системах, предлагает хорошую безопасность, используя PKI сертификаты только на сервере аутентификации
  • EAP-MD5 — другой открытый стандарт. Предлагает минимальную безопасность. Уязвим, не поддерживает взаимную аутентификацию и генерацию ключей
  • EAP-IKEv2 — основан на Internet Key Exchange Protocol version 2. Обеспечивает взаимную аутентификацию и установление сеансового ключа между клиентом и сервером
  • PEAP — совместное решение CISCO, Microsoft и RSA Security как открытый стандарт. Широко доступен в продуктах, обеспечивает очень хорошую безопасность. Схож с EAP-TTLS, требуя только сертификат на серверной стороне
  • PEAPv0/EAP-MSCHAPv2 — после EAP-TLS, это второй широко используемый стандарт в мире. Используется клиент-серверная взаимосвязь в Microsoft, Cisco, Apple, Linux
  • PEAPv1/EAP-GTC — создан Cisco как альтернатива PEAPv0/EAP-MSCHAPv2. Не защищает аутентификационные данные в любом случае. Не поддерживаются в Windows OS
  • EAP-FAST — метод, разработанный Cisco для исправления недостатков LEAP. Использует Protected Access Credential (PAC). Полностью не доработан

Да, все верно. Общение между FreeRadius и FreeIPA будет проходить именно в так. В режиме дебага можно отследить как отправляются username и password. Да и пусть отправляются, только у вас есть доступ к серверу FreeRadius.

Подробнее о работе EAP-TTLS можно почитать тут

FreeRADIUS

FreeRadius будем поднимать на CentOS 7.6. Здесь ничего сложного, ставим обычным способом.

После этого FreeRadius уже работает. Можно в /etc/raddb/users расскоментировать строчку


Запустить в сервер в режиме дебага


И делаем тестовое подключение с localhost


Получили ответ Received Access-Accept Id 115 from 127.0.0.1:1812 to 127.0.0.1:56081 length 20, значит все хорошо. Идем дальше.

Подключаем модуль ldap.


И сразу его изменим. Нам нужно, чтобы FreeRadius мог обращаться к FreeIPA

Перезапускаем radius-сервер и проверяем синхронизацию пользователей LDAP:


Редактируем eap в mods-enabled/eap
Здесь добавим два экземпляра eap. Они будут отличаться только сертификатами и ключами. Чуть ниже объясню, почему именно так

Далее редактируем site-enabled/default. Интересуют разделы authorize и authenticate.

В секции authorize убираем все модули, которые нам не нужны. Оставляем только ldap. Добавляем проверку клиента по username. Именно для этого мы добавляли выше два экземпляра eap.

Дело в том, что подключая некоторые устройства мы будем использовать системные сертификаты и указывать домен. У нас есть сертификат и ключ от доверенного центра сертификации. Лично по моему мнению такая процедура подключения проще, чем кидать на каждое устройство самоподписанный сертификат. Но и без самоподписанных сертификатов все же не получилось уйти. Samsung девайсы и Android =< 6 версии не умеют использовать системные сертификаты. Поэтому для них создаем отдельный экземпляр eap-guest с самоподписанными сертификатами. Для всех других устройств будем использовать eap-client c доверенным сертификатом. User-Name определяется по полю Anonymous при подключении устройства. Разрешено использовать только 3 значения: Guest, Client и пустое поле. Остальное все отбрасывается. Это настраиватся в политиках. Пример приведу чуть позже

Отредактируем секции authorize и authenticate в site-enabled/inner-tunnel

Далее нужно прописать в политиках, какие имена можно использовать для анонимного входа. Редактируем policy.d/filter.

Нужно найти строчки похожие на это:


И ниже в elsif добавить нужные значения:


Теперь нам нужно переместиться в директорию certs. Сюда нужно положить ключ и сертификат от доверенного центра сертификации, который у нас уже есть и нужно сгенерировать самоподписанные сертификаты для eap-guest.

Изменяем параметры в файле ca.cnf.

Такие же значения прописываем в файле server.cnf. Меняем только
commonName:


Готово. Полученные server.crt и server.key у нас уже прописаны выше в eap-guest.

И последнее, добавим наши точки доступа в файл client.conf. У меня их 7. Чтобы не добавлять каждую точку отдельно, пропишем только сеть в которой они находятся (у меня точки доступа находятся в отдельном VLAN).

Контроллер Ubiquiti

На контроллере поднимаем отдельную сеть. Пусть будет 192.168.2.0/24
Идем в настройки -> профиль. Cоздаем новый:


Прописываем адрес и порт radius-сервера и пароль, который прописывали в файле clients.conf:

Создаем новое имя беспроводной сети. В качестве метода аутентификации выбираем WPA-EAP (Enterprise) и указываем созданный radius-профиль:


Все сохраняем, применяем и идем дальше.

Настройка клиентов

Начнем с самого сложного!

Windows 10

Сложность сводится к тому, что Windows пока еще не умеет подключаться к корпоративному WiFi по домену. Поэтому приходится вручную закидывать наш сертификат в хранилище доверенных сертификатов. Здесь можно использовать как самоподписанный так и от центра сертификации. Я буду использовать второй.

Далее нужно создать новое подключение. Для этого идем в параметры сети и Интернет -> Центр управления сетями и общим доступом -> Создание и настройка нового подключения или сети:




Вручную прописываем имя сети и меняем тип безопасности. После нажимаем на изменить параметры подключения и во владке Безопасность выбираем проверку подлинности сети — EAP-TTLS.




Заходим в параметры, прописываем конфиденциальность аутентификации — client. В качестве доверенного центра сертификации выбираем добавленный нами сертификат, ставим галочку «Не выдавать пользователю приглашение, если не удается авторизовать сервер» и метод проверки подлинности выбираем — незашифрованный пароль (PAP).


Далее заходим в дополнительные параметры, ставим галочку на «Укажите режим проверки подлинности». Выбираем пункт «Проверка подлинности пользователя» и нажимаем на сохранить учетные данные. Здесь надо будет ввести username_ldap и password_ldap




Все сохраняем, применяем, закрываем. Можно подключаться к новой сети.

Linux

Я проверял на Ubuntu 18.04, 18.10, Fedora 29, 30.

Для начала, скачиваем себе сертификат. Я не нашел в Linux, есть ли возможность использовать системные сертификаты и есть ли там вообще такое хранилище.

Будем подключаться по домену. Поэтому нужен сертификат удостоверяющего центра, у которого был приобретен наш сертификат.

Все подключение делается в одном окне. Выбираем нашу сеть:


anonymous — client
domain — домен, на который выпущен сертификат

Android

non-Samsung

C 7 версии при подключении WiFi можно использовать системные сертификаты, указав только домен:


domain — домен, на который выпущен сертификат
anonymous — client

Samsung

Как уже писал выше, Samsung-устройства не умеют использовать системные сертификаты при подключении WiFi, и у них нет возможности подключаться по домену. Поэтому надо вручную добавить корневой сертификат центра сертификации (ca.pem, берем на Radius сервере). Вот здесь будет использовать самоподписанный.

Скачиваем сертификат себе на устройство и устанавливаем его.





При этом, надо будет установить рисунок разблокировки экрана, пин-код или пароль, если он еще не установлен:



Я показал сложный вариант установки сертификата. На большинстве устройств достаточно просто нажать на скаченный сертификат.

Когда сертификат установлен, можно переходить к подключению:


сертификат — указываем тот, который устанавливали
анонимный пользователь — guest

macOS

Яблочные устройства из коробки могут подключаться только к EAP-TLS, но все равно нужно закидывать им сертификат. Чтобы указать другой метод подключения, нужно воспользоваться Apple Configurator 2. Соответственно нужно предварительно скачать его на мак, создать новый профиль и добавить все необходимые настройки WiFi.



Здесь указываем имя своей сети
Security Type — WPA2 Enterprise
Accepted EAP Types — TTLS
User Name и Password — оставляем пустыми
Inner Authentication — PAP
Outer Identity — client

Вкладка Trust. Здесь указываем наш домен

Все. Профиль можно сохранять, подписывать и распространять на устройства

После того, как профиль готов, его нужно скачать на мак и установить. В процессе установки нужно будет указать usernmae_ldap и password_ldap пользователя:




Процесс аналогичен macOS. Нужно использовать профиль (можно прям такой же как для macOS. Как создавать профиль в Apple Configurator, смотреть выше).

Скачиваем профиль, устанавливаем, вводим учетные данные, подключаемся:







На этом все. Мы настроили Radius сервер, синхронизировали его с FreeIPA и указали точкам доступа Ubiquiti использовать WPA2-EAP.

Возможные вопросы

В: как передавать профиль/сертификат сотруднику?

О: Все сертификаты/профили я храню на фтп с доступом через веб. Поднял гостевую сеть с ограничением по скорости и доступом только в интернет, за исключением фтп.
Аутентификация держится 2 дня, после чего сбрасывается и клиент остается без интернета. Т.о. когда сотрудник хочет подключиться к WiFi, сначало он подключается к гостевой сети, заходит на фтп, скачивает нужный ему сертификат или профиль, устанавливает их, и после может подключаться к корпоративной сети.

В: почему не использовать схему с MSCHAPv2? она же более безопасная!

О: во-первых, такая схема хорошо работает на NPS (Windows Network Policy System), в нашей реализации необходимо дополнительно настраивать LDAP (FreeIpa) и хранить хэши паролей на сервере. Доп. настройки делать не желательно, т.к. это может привести к различным проблемам сихронизации УЗ. Во-вторых, хеш представляет собой MD4, так что это не особо повышает безопасность

В: можно ли авторизовывать устройтсва по mac-адресам?

О: НЕТ, это не безопасно, злоумышленник может подменить мак-адреса, и тем более авторизация по мак-адресам не поддерживается на многих устройствах

В: зачем вообще все эти сертификаты использовать? можно же и без них подключаться

О: сертификаты используются, чтобы авторизовать сервер. Т.е. устройство при подключении проверяет тот ли это сервер, которому можно доверять или нет. Если тот, то аутентификация проходит дальше, если нет, соединение закрывается. Можно подключаться без сертификатов, но если злоумышленик или сосед поднимет у себя дома radius-сервер и точку доступа с таким же именем как у нас, он сможет легко перехватить учетные данные пользователя (не забываем, что они передаются в открытом виде). А когда используется сертификат, враг увидит у себя в логах только наши вымышленные User-Name — guest или client и ошибку типа — Unknown CA Certificate

Установка сервера FreeRADIUS и веб-интерфейса Daloradius на операционной системе CentOS 7 и RHEL 7 02 Июн 2017г. [Пт] 00:00

Предварительные действия:

Устанавливаем сервер Apache

Разрешаем запуск сервера Apache

Проверяем, запущен-ли сервер Apache

Устанавливаем и настраиваем MySQL сервер баз данных

Мы установим и настроим MariaDB 10, используя следующие шаги:


  1. Добавить официальный репозиторий MariaDB в CentOS 7

Добавим следующее содержание в файл:


  1. Обновим систему с использованием нового репозитория и установим MariaDB


Вам будет задан вопрос об установке GPG ключей для репозитория MariaDB. Просто нажмите y для подтверждения.


  1. Запускаем и разрешаем автозапуск сервера MariaDB при загрузке

Проверяем статус сервера


  1. Запускаем скрипт настройки безопасности сервера MariaDB. Вами будет установлен пароль пользователя root. В целях повышения безопасности рекомендуется удалить всех анонимных пользователей и запретить удаленный вход на сервер. Пример рекомендуемых изменений Вы можете увидеть на примере далее.

  1. Разрешаем только локальные подключения к серверу.


Настраиваем базу данных для сервера freeradius

Устанавливаем php 7 на ОС CentOS 7

Проверяем версию установленного php

Если у Вас возникнут трудности с использованием PHP версии 7, удалите эту версию и установите PHP 5

Устанавливаем сервер FreeRADIUS

Теперь нам надо запустить и разрешить автозапуск сервера freeradius при загрузке системы.

Проверим статус службы:


Так-же необходимо разрешить в Вашем файерволе доступ к портам, на которых запущен сервер freeradius

– по умолчанию используются порты udp 1812 и 1813.

Проверим, запущен-ли наш сервер freeradius.

И запустим его для отладки с параметром -X


Если сервер запущен, то запуск в режиме отладки не получится, сначала нам необходимо завершить все запущенные процессы freeradius, используя команду:

Затем запустим его в режиме отладки:


Настройка FreeRADIUS

Для настройки FreeRADIUS на использование базы данных MariaDB, пройдите по следующим шагам.


  1. Импортируем файл sql со стандартным содержимым базы данных freeradius

– Создадим ссылку /etc/raddb/mods-enabled

Настроим модуль SQL /raddb/mods-available/sql и поменяем параметры доступа к базе данных в соответствии с нашими настройками:


  • секция SQL должна выглядеть следующим образом.

Поменяем группу пользователей для доступа к файлу /etc/raddb/mods-enabled/sql на radiusd:

Устанавливаем и настраиваем Daloradius

Устанавливаем Daloradius

Веб-интерфейс Daloradius используется для управлением базой данных сервера freeradius.

Загрузка с Github:

Загрузка с Sourceforge:

Перейдем в папку Daloradius для дальнейшей настройки

Настраиваем daloradius


  • Импортируем дамп таблиц Daloradius в базу данных

  • Настраиваем параметры подключения к базе данных daloRADIUS:

Даем разрешение на веб папку и устанавливаем привилегии на конфигурационный файл daloradius.

Для настройки подключения к базе данных Daloradius, внесем изменения в файл daloradius.conf.php.

Изменять следует переменные:

Если всё перезапустилось без ошибок, пробуем перейти на веб-интерфейс по адресу Вашего сервера, например:

Для входа в интерфейс первый раз, необходимо использовать следующие учётные данные:

Имя пользователя: administrator

Пароль: radius


Поздравляем! Теперь у Вас есть сервер FreeRadius работающий с базой данных MySQL и веб-интерфейсом Daloradius. Удачного администрирования!

Читайте также: