- Radius server для Linux
- Установка сервера Freeradius на Linux CentOS 8
- Подготовка сервера
- 1. Firewalld
- 2. SELinux
- Установка и настройка Freeradius
- Запрос с другого узла
- Хранение записей в MariaDB
- Установка и настройка СУБД
- PHP и PHP-FPM
- Установка daloRADIUS
- Лог ошибок и запросов
- Установка и настройка Radius сервера на Ubuntu с веб интерфейсом Daloradius
- Установка пакетов
- Настройки MySQL
- Настройка конфигов
- Тест RADIUS-сервера
- Установка веб интерфейс DaloRadius
- Сборка и настройка FreeRADIUS 3 с поддержкой SQLITE
- ЗАДАЧА:
- РЕШЕНИЕ:
- 1 Сборка Freeradius 3.0.3 с поддержкой SQLite
- 2 Настройка связки Freeradius и SQLite
- 2.1 Создать и настроить БД пользователей sqlite
- 2.2 Настроить freeradius:
- 3 Настройка клиента RADIUS
Radius server для Linux
MultiFactor Radius Adapter — программный компонент, RADIUS сервер для Linux.
Компонент доступен вместе с исходным кодом, распространяется бесплатно. Актуальная версия находится на GitHub: код и сборка.
Обратите внимание на лицензию. Она не дает вам право вносить изменения в исходный код Компонента и создавать производные продукты на его основе. Исходный код предоставляется в ознакомительных целях.
Требования для установки компонента
- Компонент устанавливается на Linux сервер, протестирован на CentOS, Ubuntu, Debian, Astra Linux;
- Минимальные требования для сервера: 1 CPU, 2 GB RAM, 8 GB HDD (обеспечивают работу ОС и адаптера для 100 одновременных подключений — примерно 1500 пользователей);
- На сервере должен быть открыт порт 1812 (UDP) для приема запросов от Radius клиентов;
- Серверу с установленным компонентом необходим доступ к хосту api.multifactor.ru по TCP порту 443 (TLS) напрямую или через HTTP proxy;
- Для взаимодействия с Active Directory, компоненту нужен доступ к серверу домена по TCP порту 389 (схема LDAP) или 636 (схема LDAPS);
- Для взаимодействия с Network Policy Server, компоненту нужен доступ к NPS по UDP порту 1812.
Компонент использует среду выполнения ASP.NET Core runtime версии 3.1, которая является бесплатной, открытой, разрабатывается компанией Microsoft и Open-Source сообществом. Среда выполнения не накладывает никаких ограничений на использование.
Для установки выполните команды:
Инструкция применима к Astra Linux Common Edition (релиз Орёл) и Special Edition (релиз Смоленск) с выключенным режимом замкнутой программной среды (ЗПС). https://wiki.astralinux.ru/pages/viewpage.action?pageId=41192241#id-Смоленск1.6:УстановкаMS.NetCoreиMSVisualStudioCode-Загрузкаиустановкапакетов.NetCore
Инструкция применима к Astra Linux Special Edition (релиз Смоленск) в режиме замкнутой программной среды (ЗПС).
Создайте папку, скачайте и распакуйте актуальную версию компонента из GitHub:
Создайте системного пользователя mfa и дайте ему права на приложение:
Параметры работы компонента хранятся в файле /opt/multifactor/radius/multifactor-radius-adapter.dll.config в формате XML.
Параметры подключения к Active Directory
Для проверки первого фактора в домене применимы следующие параметры:
При включении параметра use-active-directory-user-phone компонент будет использовать телефон, записанный на вкладке General. Формат телефона может быть любым.
При включении параметра use-active-directory-mobile-user-phone компонент будет использовать телефон, записанный на вкладке Telephones в поле Mobile. Формат телефона также может быть любым.
Параметры подключения к внешнему RADIUS серверу
Для проверки первого фактора в RADIUS, например, в Network Policy Server применимы следующие параметры:
Дополнительные RADIUS атрибуты
Можно указать, какие атрибуты будет передавать компонент при успешной аутентификации, в том числе с проверкой вхождения пользователя в группу безопасности
После настройки конфигурации запустите компонент:
Статус можно проверить командой:
Журналы работы компонента находятся в папке /opt/multifactor/radius/logs , а также в системном журнале.
При размещении компонета в кластерной конфигурации придерживайтесь схемы Active/Passive или выбирайте вариант, при котором повторный запрос с клиента будет обрабатываться тем же сервером.
Для наилучшей работы с nginx или HAProxy также укажите в настройках прокси-сервера заголовок proxy_protocol.
Дополнительная информация про Active Directory
- Linux версия адаптера пока не умеет работать с несколькими доменами, между которыми установлено доверие.
- Для работы с Active Directory используется простая проверка подлинности пароля пользователя. Настоятельно рекомендуем использовать схему LDAPS для шифрования трафика между адаптером и доменом (на сервере AD должен быть установлен сертификат, в т.ч. самоподписанный).
Удаление .NET Core
Для просмотра списка установленных на вашей машине версий SDK и сред выполнения .NET Core используйте команду:
Источник
Установка сервера Freeradius на Linux CentOS 8
Цель данной инструкции — показать пример развертывания и использования сервера аутентификации на базе протокола RADIUS с помощью Freeradius. Мы выполним его установку на CentOS 8 — в итоге мы получим:
- RADIUS-сервер на базе Freeradius 3.
- Хранение пользователей как в обычном файле, так и СУБД MariaDB/MySQL.
- Веб-интерфейс для управления записями.
В ходе работ мы выполним:
Подготовка сервера
Для корректной работы Freeradius необходимо настроить брандмауэр и отключить SELinux.
1. Firewalld
Создаем правило для разрешения сервиса radius (порты 1812 и 1813):
firewall-cmd —permanent —add-service=radius
2. SELinux
В нашей инструкции мы просто отключим SELinux
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* при желании настроить SELinux может оказаться полезной инструкция Настройка SELinux в CentOS.
Установка и настройка Freeradius
Установка в CentOS выполняется командой:
dnf install freeradius freeradius-utils
* мы установим не только сам freeradius, но и утилиты для работы с ним.
Разрешим автозапуск сервиса и запустим его:
systemctl enable radiusd
systemctl start radiusd
. и в самый низ добавляем:
test Cleartext-Password := «test123»
* мы создали пользователя test с паролем test123.
Перечитываем конфиг radius:
systemctl reload radiusd
Делаем тестовый запрос:
radtest test test123 localhost 1218 testing123
- test — учетная запись, которую мы проверяем.
- test123 — пароль от учетной записи test.
- localhost — сервер, к которому мы обращаемся (в нашем случае, локальный).
- 1218 — порт, на котором слушает запросы freeradius.
- testing123 — пароль для подключения клиентом к серверу radius. Данный пароль создается по умолчанию для локальных запросов.
Мы должны увидеть ответ на подобие:
.
Received Access-Accept Id 87 from 127.0.0.1:1812 to 127.0.0.1:56554 length 20
Access-Accept говорит нам о том, что пароль для пользователя test правильный. Сервер работает.
Запрос с другого узла
Следующим этапом добавим возможность делать запросы к серверу RADIUS с другого узла сети. Предположим, что мы хотим отправить запрос на проверку с другого сервера Linux (Windows, Ubuntu или CentOS — не важно). Если мы попытаемся проверить данные для аутентификации командой:
radtest test test123 192.168.1.15 1218 testing123
* где 192.168.1.15 — IP-адрес сервера RADIUS.
. то мы не получим ответ. Для этого нужно добавить узел, с которого отправляются запросы к клиенты freeradius. Открываем на сервере файл:
client client1 <
ipaddr = 192.168.1.17
secret = password
>
* где client1 — произвольное название для клиента; ipaddr — его IP-адрес; secret — пароль для авторизации на freeradius.
Перезапускаем службу radiusd:
systemctl restart radiusd
Теперь можно выполнить запрос на удаленном узле командой:
radtest test test123 192.168.1.15 1218 password
Хранение записей в MariaDB
Использование базы данных в качестве хранилища логинов и паролей позволит управлять ими без необходимости перезапускать сервис. Но самое главное — дает возможность использовать различные графические панели управления.
Установка и настройка СУБД
Устанавливаем MariaDB и модуль mysql для Freeradius:
dnf install mariadb-server freeradius-mysql
Разрешаем автозапуск и запускаем MariaDB:
systemctl enable mariadb —now
Создаем пароль для учетной записи mysql-root:
mysqladmin -u root password
Заходим в оболочку mysql:
Создаем базу данных для freeradius:
> CREATE DATABASE radius DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* данной командой мы создадим базу radius.
Создаем пользователя и даем ему права на созданную базу:
> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY ‘radius123’;
* в данном примере мы создали пользователя radius, которому можно подключаться к СУБД с локального сервера; выдали права на любые действия с базой radius; в качестве пароля задали radius123.
Отключаемся от mysql:
Импортируем схему для базы данных:
mysql -u root -p radius — должна запуститься стартовая страница NGINX:
PHP и PHP-FPM
Устанавливаем php с компонентами:
dnf install php php-fpm php-mysqlnd php-gd php-xml php-mbstring
На момент написания инструкции, в репозитории CentOS 8 не было пакета php-pear-DB, который необходим для работы daloRADIUS. Для его установки загружаем пакет установки репозитория REMI:
rpm -Uvh remi-release*rpm
Теперь можно установить php-pear-DB:
dnf —enablerepo=remi install php-pear-DB
Создаем индексный файл в корневой директории nginx:
Снова запускаем браузер и переходим по адресу http:// — должна запуститься страница с информацией о PHP:
Установка daloRADIUS
Переходим на страницу последнего релиза daloRADIUS. Копируем ссылку на архив с порталом:
С помощью скопированной ссылки загружаем архив на сервере:
Создаем каталог в рутовой папке веб-сервера:
Распаковываем скачанный архив в созданную директорию :
tar zxvf 1.1-2.tar.gz -C /usr/share/nginx/html/daloradius —strip-components 1
Открываем конфигурационный файл daloradius:
Правим настройки для подключения к базе radius:
.
$configValues[‘CONFIG_DB_ENGINE’] = ‘mysqli’;
$configValues[‘CONFIG_DB_HOST’] = ‘localhost’;
$configValues[‘CONFIG_DB_PORT’] = ‘3306’;
$configValues[‘CONFIG_DB_USER’] = ‘radius’;
$configValues[‘CONFIG_DB_PASS’] = ‘radius123’;
$configValues[‘CONFIG_DB_NAME’] = ‘radius’;
.
* мне пришлось поменять значения для CONFIG_DB_USER и CONFIG_DB_PASS.
Вносим изменения в базу radius:
mysql -u root -p radius /daloradius — мы увидим страницу для входа в систему. Вводим пользователя administrator и пароль radius:
Лог ошибок и запросов
По умолчанию, Freeradius отправляет лог в файл radius.log — запустить непрерывный просмотр лога можно командой:
tail -f /var/log/radius/radius.log
Если нужен более детализированный отчет о ходе работы RADIUS, можно запустить сервис в режиме отладки. Для этого останавливаем работу службы:
Источник
Установка и настройка Radius сервера на Ubuntu с веб интерфейсом Daloradius
Здесь будет рассмотрено как установить Radius-сервер FreeRadius с веб интерфейсом Daloradius
Установка пакетов
1. Перед установкой обновляем все пакеты в системе
2. Установим Apache2 и PHP
Модули php5-gd php-pear php-db необходимы для работы веб интерфейса Daloradius
3. Устанавливаем Mysql сервер
4. Устанавливаем FreeRadius
5. Устанавливаем пакет freeradius-mysql
Настройки MySQL
1. Подключаемся к серверу Mysql
2. Далее создаем базу данных radius
3. Назначим полные права пользователю radius
4. Отключаемся от Mysql
5. Импортируем таблицы в базу данных radius
6. Для проверки добавим тестовые значения в таблицу radcheck
7. Теперь нужно добавить Radius клиентов в файл /etc/freeradius/clients.conf
Пример добавления:
Настройка конфигов
1.Открываем файл настроек Freeradius для MySQL
Расположение файла — /etc/freeradius/sql.conf
Редактируем строки до такого вида:
2.Далее открываем файл сайта Freeradius
Расположение файла — /etc/freeradius/sites-enabled/default
Приводим следующие строки к виду:
3.Далее правим основной конфигурационный файл Freeradius и включаем поддержку Mysql
Расположение файла — /etc/freeradius/radiusd.conf
Тест RADIUS-сервера
1. Откройте 2 ssh окна терминала.
В первом окне остановим сервис Freeradius
2. И запустим сервис в режиме debug
3. Теперь открываем второе окно терминала и вводим запрос
Если вывод команды такой:
То все в порядке.
Установка веб интерфейс DaloRadius
1. Скачиваем последнюю версию ПО
2. Распаковываем в текущий каталог
3. Переносим в папку /var/www/
4. Импортируем таблицы в базу данных radius
5. Далее правим конфиг веб интерфейса
Расположение файла — /var/www/daloradius/library/daloradius.conf.php
Редактируем строку $configValues[‘CONFIG_DB_PASS’] = »;
В нее вводим наш пароль к БД
Должно получится так :
Если хотите использовать пользователя отличного от root измените строку
Источник
Сборка и настройка FreeRADIUS 3 с поддержкой SQLITE
Доброго дня, уважаемые.
Хочу поделиться с Вами решением одной творческой задачи. Надеюсь кому-то будет полезно.
Итак,
маломощная железка с arm процессором и собранный под нее и установленный Debian 7 wheezy.
ЗАДАЧА:
поставить FreeRADIUS 3.0.X, настроить его на работу с БД SQLITE. Т.е., учетные записи пользователей (которых нужно аутентифицировать) RADIUS должен брать из БД SQLITE.
На рисунке представлена верхнеуровневая схема взаимодействия компонентов.
Почему я решил описать данное решение?
Столкнувшись с данной задачей и начав гуглить, я был удивлен тому, что подробных описаний по сборке freeradius, а тем более с поддержкой SQLITE просто нет. Поэтому решил законспектировать себе и другим на память.
РЕШЕНИЕ:
Состоит из 3 частей:
1) Сборка Freeradius 3.0.3 (я выбрал эту версию, на более поздних все будет выглядеть примерно также) с поддержкой SQLite;
2) Настройка связки Freeradius и SQLite;
3) Настройка сервера, на котором аутентифицируются пользователи (на рисунке выше — «сервер»).
1 Сборка Freeradius 3.0.3 с поддержкой SQLite
Для успешной сборки radius 3.0.3 нужно выполнить следующие шаги:
1.1 Скачать исходный код: ftp.freeradius.org/pub/freeradius/old/freeradius-server-3.0.3.tar.gz, распаковать в отдельную папку;
1.2 Установить через apt-get следующие пакеты: libtalloc2, libtalloc-dev, libssl-dev, libperl-dev, libpam0g-dev, libsqlite3-dev, libgdbm-dev (если нужна поддержка других БД, то необходимо доставить соответствующий dev пакет, например mysql-dev);
1.3 Перейти в папку с распакованным архивом с исходниками и, тривиально,
Если с первого раза ./configure не отработает – возможно в системе не хватает еще каких-то пакетов, читаем внимательно вывод и устанавливаем их.
2 Настройка связки Freeradius и SQLite
Для настройки связки freeradius + sqlite необходимо выполнить следующие действия:
2.1 Создать и настроить БД пользователей sqlite
2.1.1 Создать базу sqlite и схему в БД, с которой будет работать radius:
/etc/raddb/sqlite_rad.db – это путь к файлу БД, Вы можете разместить его в любом удобном месте.
2.1.2 Создать УЗ пользователя в БД:
Приведенным выше запросом в БД мы наполняем таблицу radcheck, в которой хранится информация об УЗ пользователей следующей информацией:
Уникальный ID пользователя = 1; имя пользователя = user; атрибут УЗ = Cleartext-Password; оператор = “:=”; значение атрибута = “secret”. Если по-русски, то мы задали пароль для УЗ user, который будет хранится в виде открытого текста и его значение – “secret”. Подробнее про пары атрибут-значение (av pair) и операторы сравнения можно прочитать в официальной документации по radius и unlang. freeradius.org/radiusd/man/unlang.html
2.2 Настроить freeradius:
2.2.1 Конфигурационные файлы всех доступных модулей radius находятся в /etc/raddb/mods-available. Чтобы включить их, нужно создать ссылку на модуль в папке /etc/raddb/mods-enabled:
2.2.2 Редактируем /etc/raddb/mods-enabled/sql, следующим образом:
Переменная filename должна указывать на файл БД, созданный в пункте 2.1.1.
2.2.3 Прописываем клиента radius, т.е. тот сервер (или сетевое оборудование), пользователи которого будут аутентифицироваться через данный radius. Для этого добавляем строки в файл /etc/raddb/clients.conf:
secret в данном случае – это секретное слово radius по которому он аутентифицирует клиента.
shortname – произвольное «короткое имя», это значение можно даже опустить.
2.2.4 Проверяем, что в секции «authorize» в файле /etc/raddb/sites-enabled/default присутствует «-sql»:
3 Настройка клиента RADIUS
3.1 На клиенте установить пакет pam_radius:
3.2 В файле /etc/pam_radius_auth.conf на клиенте добавить строку:
где other-server – IP адрес сервера radius, other-secret – секретное слово из пункта 2.2.3 настройки:
3.3 В файле /etc/pam.d/sshd над строчками
Вот и все. Запускаем RADIUS и наслаждаемся PROFIT’ом.
Источник