powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / РЕД СОФТ [игнор отключен] [закрыт для гостей] / Настройка двухфакторной аутентификации (2FA) SSH в Ред ОС
1 сообщений из 1, страница 1 из 1
Настройка двухфакторной аутентификации (2FA) SSH в Ред ОС
    #40140210
Фотография basename
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SSH + Google Authenticator + Ред ОС

Почитать в Интернете немного подробнее:
https://www.redhat.com/en/blog/mfa-linux
https://itshaman.ru/articles/3503/dostup-k-serveru-po-ssh-s-dvukhfaktornoi-autentifikatsii-2fa

Краткий пример настройки конфигурации для самого простого случая: аутентификация на сервере по паролю + верификация в Google Authenticator

Алгоритм:
- установить программу google-authenticator
- внести изменения в файл /etc/pam.d/sshd, добавив туда модуль pam_google_authenticator.so
- внести изменения в файл /etc/ssh/sshd_config
- настроить google-authenticator непосредственно для пользователя, запустив программу в пользовательском окружении (если используется SELINUX надо будет донастроить политики)

В штатном репозитории Ред ОС программа google-authenticator присутствует, так что
Код: BASH
1.
 dnf install google-authenticator
В конфигурационный файл /etc/pam.d/sshd необходимо добавить строку
Код: BASH
1.
auth       required     pam_google_authenticator.so nullok
Параметр nullok позволит залогиниться в системе с паролем, если 2FA аутентификация ещё не была настроена.
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[root@ap1 ssh]# diff -u /etc/pam.d/bak/sshd.default /etc/pam.d/sshd
--- /etc/pam.d/bak/sshd.default 2024-07-02 08:48:47.000000000 +0300
+++ /etc/pam.d/sshd     2025-01-28 16:47:51.856699286 +0300
@@ -1,4 +1,7 @@
 #%PAM-1.0
+# This line of configuration enables PAM to use the Google Authenticator PAM module
+auth       required     pam_google_authenticator.so nullok
+#
 auth       substack     password-auth
 auth       include      postlogin
 account    required     pam_sepermit.so
[root@ap1 ssh]#
В конфигурационном файле /etc/ssh/sshd_config необходимо выставить параметр
Код: BASH
1.
ChallengeResponseAuthentication yes
Однако, непосредственно в данный файл я изменений не вносил, а добавил подгружаемый /etc/ssh/sshd_config.d/10-custom.conf
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[root@ap1 ssh]# cat /etc/ssh/sshd_config.d/10-custom.conf
#
ClientAliveInterval 300
ClientAliveCountMax 3

#
#KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes

[root@ap1 ssh]#
Обратите внимание на вендорускую настройку из дистрибутивного файла /etc/ssh/sshd_config.d/50-redsoft.conf, там данный параметр выставлен как ChallengeResponseAuthentication no, но если исправть там, то при обновлении пакета файл скорее всего перезапишется (не знаю точно) поэтому я добавил в файл 10-custom.conf, который имеет более высокий приоритет для применяемых концигурационных параметров.

Далее нужно перезапустить сервис sshd и приступить непосредственно к настройке самой программы Google Authenticator в окружении пользователя системы, для которого предоставляется доступ.

Для этого нужно:
- предварительно установить программу Google Authenticator на смартфон
- выполнить google-authenticator в пользовательском окружении, на смартфоне отсканировать QR-код, ответить на вопросы (можно на все воопросы ответить утвердительно)
- пользоваться

Если SELINUX в режиме Enforcing - с первого раза, аутентификация не будет работать, не может создать необходимые файлы в домашней директории пользователя на этапе аутентификации (сомневаюсь, что добавят политику). Так что необходимо временно перевести в режим permissive, выполнить настройку и на основе журнальных записей в audit.log создать модуль SELINUX.
Код: BASH
1.
2.
ausearch -i -m AVC -c sshd -ts today | audit2allow -M z_google_authenticator
semodule -i z_google_authenticator.pp
Код: BASH
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[root@ap1 ssh]# cat ~/selinux/z_google_authenticator.te

module z_google_authenticator 1.0;

require {
        type user_home_dir_t;
        type sshd_t;
        class file { create getattr open read rename setattr unlink write };
}

#============= sshd_t ==============

#!!!! This avc is allowed in the current policy
allow sshd_t user_home_dir_t:file { create open read rename setattr unlink write };
allow sshd_t user_home_dir_t:file getattr;
[root@ap1 ssh]#
Использование:
- подключиться по SSH
- спросит Verification code, посмотреть в смартфоне в приложении Google Authenticator
- спросит пароль

Всё.

Опционально можно настройить вход по ключу в совокупности с 2FA.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / РЕД СОФТ [игнор отключен] [закрыт для гостей] / Настройка двухфакторной аутентификации (2FA) SSH в Ред ОС
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]