====== 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