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