Русский
Русский
English
Статистика
Реклама

LinOTP инсталляция и использование

Привет, хочу поделиться своим опытом работы с LinOTP и привести пример надежной аутентификации с помощью связки LinOTP + FreeRADIUS и Wallix Bastion.

LinOTP это гибкая опенсорс платформа корпоративного уровня для надежной аутентификации.

Wallix Bastion - решение по управлению привилегированым доступом (PAM).

На Хабре уже есть некоторые статьи про LinOTP - 1, 2. Здесь мы используем новые версии ОС и продуктов, а также проходим от начала до конца настройки, поехали..

Что используем:

  1. Добавьте репозиторий linotp.org :

1. Инсталляция LinOTP

Добавьте репозиторий linotp.org:

echo 'deb http://www.linotp.org/apt/debian buster linotp linotp-deps' > /etc/apt/sources.list.d/linotp.list

Для проверки пакета импортируйте ключ подписи пакета:

apt-get install dirmngr

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 913DFF12F86258E5

Устанавливаем БД (поддерживаемые БД):

apt-get update

apt-get install mariadb-server

mysql_secure_installation

Наконец, устанавливаем LinOTP:

apt-get install linotp

2. Интеграция с Active Directory

Достучаться до веб-админа LinOTP можно по ссылке: https://<linotp_ip>/manage

Идем в LinotpConfig -> UserIdResolvers и создаем новый UserIdResolver, выбирая тип LDAP:

Конфигурация Resolver-aКонфигурация Resolver-a

Теперь вы должны добавить Realm - задайте ему имя, и укажите LDAP Resolver, который только что создали.

UserIdResolver-ы организованы в области, чтобы использовать их в LinOTP. В одном Realm-e может находиться много UserIdResolver-ов (multitenancy, так сказать).

На этом этапе мы можем проверить синхронизированных пользователей в User View.

Cинхронизированные пользователиCинхронизированные пользователи

3. Интеграция LinOTP и FreeRADIUS

Устанавливаем FreeRADIUS и дополнительные пакеты:

apt-get install linotp-adminclient-cli python-ldap freeradius python-passlib python-bcrypt git libio-all-lwp-perl libconfig-file-perl libtry-tiny-perl

Создаем символические ссылки и конфиги для freeradius:

ln -s /etc/freeradius/3.0/sites-available /etc/freeradius/sites-available

ln -s /etc/freeradius/3.0/sites-enabled /etc/freeradius/sites-enabled

ln -s /etc/freeradius/3.0/clients.conf /etc/freeradius/clients.conf

ln -s /etc/freeradius/3.0/users /etc/freeradius/users

Устанавливаем модуль аутентификации linotp-auth-freeradius-perl:

git clone https://github.com/LinOTP/linotp-auth-freeradius-perl.git

cd linotp-auth-freeradius-perl/

cp radius_linotp.pm /usr/share/linotp/radius_linotp.pm

Редактируем конигурацию следующим образом:

nano /etc/freeradius/sites-enabled/linotp

server linotp {listen {  ipaddr = *  port = 1812  type = auth}listen {  ipaddr = *  port = 1813  type = acct}authorize {  preprocess  update {    &control:Auth-Type := Perl  }}authenticate {  Auth-Type Perl {    perl  }}accounting {  unix  }}

В sites-enabled удаляем все кроме linotp:

ls /etc/freeradius/sites-enabled

linotp

Далее добавляем RADIUS-клиентов. Я сразу добавляю Wallix Bastion:

nano /etc/freeradius/clients.conf

client Wallix {  ipaddr = 192.168.10.10  secret = your_secret}

Используем коннектор perl в качестве базы пользователей:

nano /etc/freeradius/users

DEFAULT Auth-type := perl

nano /etc/freeradius/3.0/mods-available/perl

perl { filename = /usr/share/linotp/radius_linotp.pm func_authenticate = authenticate func_authorize = authorize }

Создаем симлинк для mods-enabled и удаляем eap:

ln -s /etc/freeradius/3.0/mods-available/perl /etc/freeradius/3.0/mods-enabled/perl

rm /etc/freeradius/3.0/mods-enabled/eap

Создайте конфигурацию коннекторов для проверки учетных данных, которые пришли в Radius:

nano /etc/linotp2/rlm_perl.ini

URL=https://<Linotp_ip>/validate/simplecheckREALM=realm1RESCONF=resolver1Debug=TrueSSL_CHECK=False

4. Регистрация токенов пользователей

На этом этапе мы хотим позволить нашим пользователям регистрировать токены самостоятельно. Для этого у LinOTP есть selfservice портал, что не может не радовать.

Переходим в LinOTPConfig > policies и добавляем новую политику. В моем случае пользователи будут использовать TOTP, который они регистрируют в Google Authenticator, соответственно параметры политики следующие:

Настройка политикиНастройка политики

Подробное описание параметров - тут.

URL для пользователей: https://<LINOTP_ip> или https://<LINOTP_ip> /selfservice/login

5. Wallix Bastion Интеграция

Чтобы Wallix Bastion запрашивал у пользователей второй фактор нам нужно, во-первых, добавить внешнюю аутентификацию.

Переходим в Configuration> External authentication и добавляем новую аутентификацию - RADIUS. Secret указываем тот, что использовали ранее в конфигурации freeRADIUS.

Внешняя аутентификация на Wallix BastionВнешняя аутентификация на Wallix Bastion

Переходим в LDAP/AD domains и выбираем (или добавляем, если вы еще этого не сделали) домен, который мы ранее синхронизировали с LinOTP. В Secondary authentication выберите linotp и примените конфигурацию. После этого домен будет выглядеть так:

С этого момента вы можете аутентифицироваться в Wallix Bastion с помощью двухфакторной аутентификации, где второй фактор проверяет LinOTP.

6. Troubleshoot.

Если что-то не работает, можно поискать ошибки:

Логи RADIUS:

/var/log/freeradius/radius.log

Логи LinOTP:

/var/log/linotp/linotp.log

Проверить токен можно следующим образом:

https://<yourlinotpserver>/validate/check?user=<login>&pass=<OTPvalue>


Вместо вывода

В данной статье мы настроили локальную платформу второго фактора аутентификации - LinOTP и прикрутили ее к решению Wallix Bastion с FreeRADIUS в роли коннектора.

Моя статья на англ. - medium

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

Источник: habr.com
К списку статей
Опубликовано: 11.05.2021 18:04:27
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Информационная безопасность

Open source

It-инфраструктура

Мультифакторная аутентификация

Опенсорс

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru