User Tools

Site Tools


2fa_на_предприятии

This is an old revision of the document!


2FA на предприятии

Реклама

  • Всем привет! Сегодня, в рамках “Дня открытых дверей Инженер линукс систем”, раскроем завесу над очень важной темой - многофакторной аутентификацией. Обнаружим, что это совсем не сложное в настройке и использовании, но невероятно мощное решение для защиты предприятия от доступа посторонних. Тем не менее нам понадобятся не совсем очевидные знания о подсистемах SystemD и PAM. Как обычно, сделали материл максимально воспроизводимым в домашних условиях, “делай с нами, делай, как мы, делай лучше нас”!

Техническое задание

  • Разобраться в вариантах 2FA и как работает TOTP
  • Настроить 2FA для сервисов SSH, OpenVPN и GitLab

Запись вебинара

  • Тэги:

История вопроса

Шаг 1. Настраиваем SSH доступ с 2FA

$ sudo apt-get install libpam-google-authenticator
  • Сделать окно терминала на 82×41 символ
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
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. Разворачиваем "сеть" предприятия

debian:~# nft flush ruleset

debian:~# ip r

Шаг 3. Настраиваем OpenVPN доступ с 2FA

debian:~# cp /etc/pam.d/login /etc/pam.d/openvpn

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}
...
# apt install pamtester

# pamtester openvpn student authenticate
pin
Password:
pamtester: successfully authenticated
# 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"
...
debian:~# systemctl enable openvpn@openvpn1 --now

debian:~# journalctl -f
...
Aug 29 09:45:09 debian openvpn(pam_google_authenticator)[2483]: Failed to read "/home/student/.google_authenticator" for "student"
...
# systemctl edit openvpn@openvpn1
[Service]
ProtectHome=no

Шаг 4. Настраиваем 2FA доступ к GitLab

2fa_на_предприятии.1757913018.txt.gz · Last modified: 2025/09/15 08:10 by val