1
Openconnect server (ocserv) + TOTP (Google Authenticator)
Артемий Красильников edited this page 2023-06-30 13:11:17 +03:00

Пошаговая настройка 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