Это практическое руководство описывает способ установить двухфакторную аутентификацию с одноразовыми паролями для Apache2.
LinOTP представляет собой приложение для обеспечения двухфакторной аутентификации.
Я подразумеваю, что сервер LinOTP уже установлен. Вы можете загрузить Debian / Ubuntu пакеты и установить его самостоятельно.
Установка
Скачаем пакет:
# wget https://github.com/lsexperts/mod_authn_linotp/zipball/master -O mod_authn_linotp.zip
Вам будут необходимы, по крайней мере, следующие пакеты для Ubuntu или Debian, чтобы скомпилировать модуль Apache:
# dpkg -i libtool automake autoconf build-essential libcurl4-gnutls-dev
Теперь распакуем модуль и сменим директорию:
# unzip mod_authn_linotp.zip # cd lsexperts-mod_authn_linotp-3583b90
Процесс установки также описан в файле [ INSTALL ]:
# libtoolize # aclocal # automake --add-missing # autoconf # ./configure # make # make install
Вы можете также использовать checkinstall, чтобы создать debian пакет для более легкой обработки.
# checkinstall make install
Теперь модуль расположен в /usr/lib/apache2/modules/mod_authn_linotp.so
Настройка
Теперь вы можете использовать двухфакторную аутентификацию для своих каталогов и локаций вэб сервера Apache.
Вы можете также можете более внимательно ознакомиться с файлом README, где описаны все возможные параметры конфигурации.
Модуль использует cookie, чтобы кэшировать успешную аутентификацию пользователя.
Cookie зашифрован, и поэтому вы должны создать закрытую часть ключа:
# pwgen 24 1
Теперь вы можете защитить Directory или Location вашего сервера, например как показано тут:
<Directory /> AuthType basic AuthName "LinOTP protected" AuthBasicProvider LinOTP Require valid-user LinOTPValidateURL https://172.16.200.148/validate/simplecheck LinOTPCookieSecret eenohJaen6CeexaH9yieTiel LinOTPSSLCertVerify Off LinOTPSSLHostVerify Off </Directory>
Используя параметр LinOTPTimeout вы можете определить значение, равное секундам хранения cookie. Таким образом, определить промежуток времени, после которого пользователя нужно попросить использовать новый одноразовый пароль.
Обратите внимание на то, что используя localhost в параметре LinOTPValidateURL могут появиться ошибки, так что рекомендуется использовать корректный IP или FQDN.