Radius server linux web

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.
  • Веб-интерфейс для управления записями.
Читайте также:  Metasploit framework инструкция kali linux

В ходе работ мы выполним:

Подготовка сервера

Для корректной работы 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. Копируем ссылку на архив с порталом:

С помощью скопированной ссылки загружаем архив на сервере:

Создаем каталог в рутовой папке веб-сервера:

Читайте также:  Какие файлы удалить чтобы windows не загрузилась

Распаковываем скачанный архив в созданную директорию :

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 с Web-интерфейсом

Повторение чужих шагов чтобы понять принцип работы и после уже на основе приобретенного опыта иметь свой собственный. Только так я могу учиться чему-то новому. Зачем с головой уходить в то что уже другими помногу раз используется, проще взять что-то за основу и использовать согласно своим задачам. Вот и сейчас выдалось свободное время и я решил, а почему бы не попробовать посмотреть что такое Radius — сервис, на сколько я понял это сервис на который можно завязать авторизацию на различных устройствах посредством предопределенных учетных записей и прав. Вот и попробую. Только сперва разберу как FreeRadius установить в системе вокруг которой я строю все сервисы: Ubuntu Trusty 14.04.5 Server amd64

Характеристики данной виртуальной машины: CPU = 1, RAM = 1Gb, HDD = 20Gb

$ uname -a && lsb_release -a

Linux srv-server 4.4.0-57-generic #78

14.04.1-Ubuntu SMP Sat Dec 10 00:14:47 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.5 LTS

Не забываю указать настройки Локали:

$ sudo nano /etc/profile

Для работы сервиса FreeRadius необходимы следующие пакеты, это Apache2 & MySQL & PHP.

$ sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db -y

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

$ sudo nano /etc/apache2/apache2.conf

Сам пакет (FreeRadius) вокруг которого строится заметка я буду устанавливать из дефолтных репозитариев:

$ apt-cache show freeradius | grep Version

$ sudo apt-get install freeradius -y

Читайте также:  Что такое steamos linux

После того, как пакет установлен, в автоматическом режиме запускается демон слушающий дефолтный порт (udp/1812):

$ sudo netstat -tulpn | grep :1812

udp 0 0 127.0.0.1:18120 0.0.0.0:* 15348/freeradius

udp 0 0 0.0.0.0:1812 0.0.0.0:* 15348/freeradius

Т.к. все настройки FreeRadius удобнее хранить в базе, то вот под это дело и создаю базу данных и специализированного пользователя:

$ mysql -u root -p712mbddr@

mysql> create database dbradius character set utf8 collate utf8_general_ci;

mysql> grant all on dbradius.* to radius@localhost identified by «612mbddr@»;

mysql> flush privileges;

mysql> exit;

Для связки FreeRadius и MySQL нужен пакет ориентированный на сопряжение, ставлю его (freeradius-mysql) также из дефолтных репозитариев релиза Ubuntu Trusty:

$ sudo apt-get install freeradius-mysql -y

$ sudo bash -c «mysql -u root -p712mbddr@ dbradius

$ sudo bash -c «mysql -u root -p712mbddr@ dbradius

Чтобы оценить, что FreeRadius работает, делаю как делаю в примерах интернета, а именно добавляю в таблицу radcheck такие атрибуты, как: UserName,Attribute,Value

$ mysql -u root -p712mbddr@

mysql> use dbradius;

mysql> insert into radcheck (UserName,Attribute,Value) VALUES (‘sqltest’,’Password’,’testpwd’);

mysql> exit

  • insert → для добавления данных в таблицу
  • values → добавление значений

Теперь нужно объяснить сервису FreeRadius все настройки брать из базы данных:
ekzorchik@srv-server:

$ sudo nano /etc/freeradius/sql.conf

Теперь приводим настройки файла сайта FreeRadius к виду:

$ sudo nano /etc/freeradius/sites-enabled/default

# See «Authorization Queries» in sql.conf

# See «Accounting queries» in sql.conf

# See «Simultaneous Use Checking Queries» in sql.conf

# See «Authentication Logging Queries» in sql.conf

Далее правим конфигурационный файл freeradius и включаем поддержку mysql:

$ sudo nano +700 /etc/freeradius/radiusd.conf

Теперь протестируем настройки сервера, для этого понадобится два консольных соединения с сервером или два окна окна терминала: В первом следует остановить демон FreeRadius и после запустить в режим отладки, а уже во втором будем посылать данные на обработку сервису дабы в первом консоли пронаблюдать как изменяется поведение сервиса.

$ sudo service freeradius stop

$ sudo freeradius -X mode

Вывод должен быть таким, как ниже.

$ radtest sqltest testpwd localhost 18128 testing123

Sending Access-Request of id 22 to 127.0.0.1 port 1812

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, length=20

Вывод без ошибок и статус Access-Accept.

Чтобы подключать клиентов/устройства следует изменять файл: /etc/freeradius/clients.conf

$ sudo service freeradius start

$ sudo nano /etc/freeradius/clients.conf

Теперь обернем FreeRadius Web— интерфейсом DaloRadius, не обязательно для тех кто любит управлять через консоль:

$ tar xfz daloradius-0.9-9.tar.gz

$ sudo mv daloradius-0.9-9 /var/www/html/daloradius

$ mysql -u root -p712mbddr@ dbradius

Создаю свой файл конфигурации описывающий доступ к панели Администрирования:

$ sudo unlink /etc/apache2/sites-available/000-default.conf

$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

$ sudo nano /etc/apache2/sites-available/daloradius.conf

Alias /daloradius /var/www/html/daloradius/

$ sudo a2ensite daloradius.conf

Enabling site daloradius.

To activate the new configuration, you need to run:

service apache2 reload

$ sudo service apache2 reload

Затем правлю конфигурационный файл веб-интерфейса: — /var/www/html/daloradius/library/daloradius.conf.php

$ sudo nano /var/www/html/daloradius/library/daloradius.conf.php

В заключение не забываю поправить права доступа к каталогу Daloraius чтобы он имел такие же права с какими работает сервис apache2:

$ sudo chown -R www-data:www-data /var/www/html/daloradius/

Стандартные логин и пароль к Web-интерфейсу Daloradius → http://IP&DNS/daloradius:

  • Логин — administrator
  • Пароль — radius

И нажимаю на Login и вот я внутри Web-панели администрирования собственным FreeRadius сервером:

Задача выполнена, я просто повторил инструкцию из интернета, но для повторения то же нужны определенные знания.

Но если хотим изменить на привычный интерфейс, правда советую лучше разбираться с англоязычным интерфейсом чем с кривым русским, то

Изменяем язык:
Config — Global Settings — Language Settings

Primary Language — изменяем English на Russian и нажимаем Apply

В дальнейших заметках я расскажу, как настроить аутентификацию через данный Radius сервис на различных устройствах, а пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Источник

Оцените статью