====== 2FA на предприятии ======
* [[https://ru.wikipedia.org/wiki/Одноразовый_пароль]]
* [[https://datatracker.ietf.org/doc/html/rfc6238]]
* [[https://play.google.com/store/apps/details?id=ru.yandex.key&hl=en|Yandex Key – Google Play]]
* [[https://2fa.zone/]]
* [[https://2fa.fb.rip/]]
* [[https://2fa.live/]]
* [[https://winitpro.ru/index.php/2021/12/21/2fa-dlya-ssh-v-linux/|Включаем двухфакторную аутентификацию (2FA) для SSH входа в Linux]]
* [[https://networkjutsu.com/ssh-google-authenticator/|Securing SSH with Google Authenticator]]
* [[https://perfecto25.medium.com/openvpn-community-2fa-with-google-authenticator-4f2a7cb08128|OpenVPN Community + 2FA with Google Authenticator]]
* [[https://askubuntu.com/questions/1444599/does-ubuntu-openvpn-client-supports-static-challenge]]
* [[https://networkjutsu.com/freeradius-google-authenticator/|Adding Two-Factor Authentication to FreeRADIUS]]
===== Реклама =====
* Всем привет! Сегодня, в рамках "Дня открытых дверей Инженер линукс систем", раскроем завесу над очень важной темой - многофакторной аутентификацией. Обнаружим, что это совсем не сложное в настройке и использовании, но невероятно мощное решение для защиты предприятия от доступа посторонних. Тем не менее нам понадобятся не совсем очевидные знания о подсистемах SystemD и PAM. Как обычно, сделали материл максимально воспроизводимым в домашних условиях, "делай с нами, делай, как мы, делай лучше нас"!
===== Техническое задание =====
* Разобраться в вариантах 2FA и как работает TOTP
* Настроить 2FA для сервисов SSH, OpenVPN и GitLab
===== Запись вебинара =====
* https://youtu.be/VMIi5-XY7Gk
* https://rutube.ru/video/private/7fb7b99656ae3819fcabccc090412065/
* https://ok.ru/specialistru/topic/158109049773425
* https://vk.com/video-2190892_456239493
* Тэги: 2FA, OTP, TOTP, SSH, PAM, OpenVPN
===== История вопроса =====
* [[https://youtu.be/-fcJ8MkoLts|Использование одноразовых паролей OPIE]] (youtube)
* [[https://habr.com/ru/articles/713582/|Безопасное подключение с чужого компьютера]] (habr)
===== Шаг 1. Настраиваем SSH доступ с 2FA =====
* Шаг 1 из статьи [[https://habr.com/ru/articles/716454/|Самый простой пример CI/CD]] используя образ [[https://val.bmstu.ru/unix/img/My%20Documents/debian_13.0_64_01.ova|Debian 13]]
$ timedatectl status #!!!
$ sudo apt-get install libpam-google-authenticator
* Сделать окно терминала на 82x41 символ
student@debian:~$ man google-authenticator
student@debian:~$ google-authenticator
student@debian:~$ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30
Your new secret key is: NNNNNNNNNNNNNNNNNNNNNNNN
Enter code from app (-1 to skip): NNNNNN
Code confirmed
Your emergency scratch codes are:
...
NNNNNNNN
student@debian:~$ more .google_authenticator
...
debian:~# cat /etc/pam.d/sshd
...
# Enable MFA using Google Authenticator PAM
auth required pam_google_authenticator.so #nullok
debian:~# cat /etc/ssh/sshd_config
...
KbdInteractiveAuthentication yes
...
debian:~# systemctl reload sshd
===== Шаг 2. Разворачиваем "сеть" предприятия =====
* Шаг 2 из статьи [[https://habr.com/ru/articles/813799/|DPI из подручных материалов]]
debian:~# nft flush ruleset
debian:~# ip r
===== Шаг 3. Настраиваем OpenVPN доступ с 2FA =====
* [[Пакет OpenSSL#Создание самоподписанного сертификата]]
* [[Пакет OpenVPN]]
* [[Пакет OpenVPN#Использование PAM аутентификации]]
===== Шаг 4. Настраиваем 2FA доступ к GitLab =====
* [[https://docs.gitlab.com/user/profile/account/two_factor_authentication/|GitLab Two-factor authentication]]
===== Проблемы =====
* [[https://docs.user.com/imap-for-account-with-2-step-verification/|How to configure IMAP/SMTP for account with a 2-step verification]]
===== Итоги/Вопросы =====