1
Openconnect server (ocserv) + TOTP (Google Authenticator)
Артемий Красильников edited this page 2023-06-30 13:11:17 +03:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Пошаговая настройка Openconnect server (OCserv) в Альт Linux 8 СП с использованием двухфакторной аутентификация на основе пары имя+пароль + TOTP на основе (Google Authenticator). Не используется TOTP от служб FreeIPA, т.к. при активации функции TOTP на пользователя, она будет запрашиваться всегда, при подключении по SSH и т.д. Требование, чтобы TOTP был на конкретную службу — Ocserv.

Уточнения: ВМ — виртуальная машина.

ПК — персональный компьютер.

vim — текстовый редактор, в командах используется именно он, можно использовать любой удобный вам.

Подготовка к установке:

Перед установкой необходимого ПО требуется выполнить на ВМ/ПК обновление данных о пакетах:

sudo apt-get update

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

Устанавливаем Google Authenticator на саму ВМ/ПК:

sudo apt-get install libpam-google-authenticator

далее на ВМ/ПК авторизуемся под необходимого нам пользователя и выполняем из под него команду:

google-authenticator

Ответив на все вопросы получаем индентификатор/QR-код для приложения Google Authenticator/Я.Ключ/FreeOTP и пр. На основе этого идентификатора будет формироваться временный пароль двухфакторной аутентификация TOTP.

Дальше нам требуется включить двухфакторную аутентификацию в модулях авторизации PAM VPN сервера ocserv, для этого выполняем:

sudo sed '/^#%PAM-1.0$/a auth       required     pam_google_authenticator\.so' /etc/pam.d/ocserv

или же:

sudo vim /etc/pam.d/ocserv

и приводим конфигурационный файл к такому виду:

#%PAM-1.0
auth	required	pam_google_authenticator.so
auth		include		system-auth
account		required	pam_nologin.so
account		include		system-auth
session		include		system-auth

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

sudo systemctl restart ocserv