====== 2FA на предприятии ======
* [[https://ru.wikipedia.org/wiki/Одноразовый_пароль]]
* [[https://datatracker.ietf.org/doc/html/rfc6238]]
* [[https://2fa.zone/|Get 2FA Verification Code]]
* [[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/-fcJ8MkoLts|Использование одноразовых паролей OPIE]]
* [[https://habr.com/ru/articles/713582/|Безопасное подключение с чужого компьютера]]
===== Шаг 1. Разворачиваем сеть предприятия =====
* Шаг 1 и 2 из статьи [[https://habr.com/ru/articles/813799/|DPI из подручных материалов]]
debian:~# nft flush ruleset
===== Шаг 2. Настраиваем SSH доступ с 2FA =====
===== Шаг 3. Настраиваем OpenVPN доступ с 2FA =====
debian:~# cat /etc/pam.d/openvpn
auth required pam_google_authenticator.so authtok_prompt=pin
#auth required pam_google_authenticator.so authtok_prompt=pin user=root secret=/etc/openvpn/google-auth/${USER}
...
# systemctl edit openvpn@openvpn1
[Service]
ProtectHome=no
# cat /etc/openvpn/openvpn1.conf
...
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so "openvpn login USERNAME password PASSWORD pin OTP"
...
===== Шаг 4. Настраиваем 2FA доступ к GitLab =====
* [[https://docs.gitlab.com/user/profile/account/two_factor_authentication/|GitLab Two-factor authentication]]
===== Черновик =====
# apt-get install libpam-google-authenticator
student@debian:~$ google-authenticator
Your new secret key is: Q7LD2KDIYCU6DEL37JFLLFIQUY
Enter code from app (-1 to skip): 626315
Code confirmed
Your emergency scratch codes are:
99306402
91750171
46620301
47719792
57203818
# cp /etc/pam.d/other /etc/pam.d/openvpn
# pamtester openvpn student authenticate
Verification code:
Password:
pamtester: successfully authenticated