Мы рассмотрим, как защитить SSH с помощью двухфакторной аутентификации с использованием Google Authenticator на CentOS / RHEL 8/7.
Двухфакторная аутентификация – это процесс, который состоит из двух этапов для проверки личности объекта, обращающегося к услугам в сети.
Это добавляет второй уровень безопасности к стандартной аутентификации по имени пользователя и паролю.
SSH – это широко используемый протокол для доступа к удаленным серверам Linux / Unix и передачи файлов между серверами.
?????? Как разрешить / запретить определенным пользователям вход через SSH в Ubuntu 18.04
Если нет правильной политики безопасности, регулирующей доступ через ssh, успешная атака методом перебора может привести к убыткам для компании.
В этом руководстве будет обсуждаться, как можно настроить двухфакторную (2FA) аутентификацию для SSH на CentOS / RHEL 8/7.
Второй уровень безопасности, который мы будем использовать в этом упражнении, – Google Authenticator.
Мы будем использовать приложение Google Authenticator для Android (в магазине Play) и iOS (в iTunes) для генерации кодов аутентификации.
Что потребуется?
- Сервер под управлением RHEL / CentOS 8/7
- Телефон под управлением Android или iOS
- Приложение Google Authenticator
- Настроенное соединение SSH
Шаг 1: Установите Репозиторий EPEL
Вам необходимо установить и работать с EPEL-репозиторием, чтобы можно было установить зависимости.
Используйте наше руководство ниже, чтобы добавить репозиторий EPEL в вашу систему RHEL / CentOS 8.
? Как установить репозиторий EPEL на RHEL 8 / CentOS 8
Шаг 2: Установите и настройте необходимые пакеты
Нам нужно установить модуль PAM Google Authenticator из репозитория EPEL.
Прежде всего, подтвердите, что пакет доступен.
$ sudo yum search google-authenticator
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 0:01:53 ago on Sat 29 Dec 2018 10:09:22 AM EAT.
========================================================== Name Matched: oogle-authenticator ==========================================================
google-authenticator.x86_64 : One-time pass-code support using open standards
После подтверждения продолжите установку с qrencode, используя менеджер пакетов dnf или yum.
sudo dnf -y install google-authenticator qrencode
Пакет Google Authenticator содержит подключаемый модуль аутентификации (PAM), который позволяет входить в систему с использованием одноразовых паролей, соответствующих открытым стандартам, разработанным Инициативой для открытой аутентификации (OATH) (которая не связана с OAuth).
Более подробную информацию об установленном пакете можно проверить с помощью:
$ rpm -qi google-authenticator Name : google-authenticator Version : 1.04 Release : 1.el7 Architecture: x86_64 Install Date: Sat 29 Dec 2018 10:12:50 AM EAT Group : Unspecified Size : 98922 License : ASL 2.0 Signature : RSA/SHA256, Thu 17 Aug 2017 03:27:00 AM EAT, Key ID 6a2faea2352c64e5 Source RPM : google-authenticator-1.04-1.el7.src.rpm Build Date : Thu 17 Aug 2017 03:13:19 AM EAT Build Host : buildhw-06.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : https://github.com/google/google-authenticator-libpam/ Summary : One-time pass-code support using open standards ......
Шаг 3: Настройка SSH-сервера
После установки вам нужно заставить SSH использовать модуль PAM Google Authenticator.
Для этого откройте файл /etc/pam.d/sshd и добавьте следующую строку в конце.
$ sudo vi /etc/pam.d/sshd # Add to end auth required pam_google_authenticator.so
Затем измените /etc/ssh/sshd_config
$ sudo vi /etc/ssh/sshd_config ChallengeResponseAuthentication yes
Измените значение ChallengeResponseAuthentication с «no» на «yes», чтобы включить пароли запроса-ответа.
Шаг 4: Настройка аутентификации
С Google Authenticator настройка двухфакторной аутентификации – это прогулка в парке.
Настройку необходимо сделать для каждой учетной записи пользователя, чтобы иметь возможность войти в систему.
В терминале выполните команду google-authenticator.
$ google-authenticator
Система задаст вам ряд вопросов, вот рекомендуемая конфигурация:
- Use “time-based” time-based tokens: yes
- Update the
.google_authenticator
file: yes - Disallow multiple uses of the same authentication token: yes
- Increase the original generation time limit: no
- Enable rate-limiting: yes
Вам будет предоставлен секретный ключ, проверочный код и аварийные скретч-коды, которые будут использоваться, если у вас нет доступа к вашему телефону.
Запишите их на бумаге или блокноте и сохраните их в безопасности.
Your new secret key is: DKM6MJWQVGZHLTWJ4G45XXXXXX Your verification code is 869XXX Your emergency scratch codes are: 2746XXXX 2665XXXX 3671XXXX 2271XXXX 8000XXXX
Установите и настройте Google Authenticator
Приложение Google Authenticator доступно для Android (в магазине Play) и iOS (в iTunes) для генерации кодов аутентификации.
Скачайте и установите его.
Следуйте инструкциям, чтобы завершить настройку, затем выберите Сканировать штрих-код или введите Закрытый ключ.
Сканируйте штрих-код, напечатанный на экране во время установки, или добавьте свой секретный ключ, чтобы добавить учетную запись SSH.
Вы должны увидеть аккаунт, добавленный в Google Authenticator
Проверка двухфакторной аутентификации SSH
Попробуйте инициировать новый сеанс SSH к серверу.
$ ssh rhel8 Password: <Enter SSH Password> Verification code: <Enter Verificarion code on Google Authenticator> Activate the web console with: systemctl enable --now cockpit.socket Last failed login: Sat Dec 29 11:51:46 EAT 2018 from 192.168.122.1 on ssh:notty Last login: Sat Dec 29 11:48:31 2018 [jmutai@rhel8 ~]$
Ваша двухфакторная аутентификация SSH была успешно настроена на RHEL / CentOS 8.
Другие статьи из этой серии:
- ? Как настроить двухфакторную аутентификацию для SSH в Fedora
- ? 8 советов по предотвращению DNS-атак
- Как настроить SSH двухфакторную аутентификацию на Ubuntu 18.04, 18.10 Server
- Двухфакторная аутентификация межсетевого экрана OpnSense
- Как повысить безопасность сайта электронной коммерции Magento
auth required убьет авторизацию в ispmanager, поэтому нужно auth optional, если пользуетесь им
Вот тут ошибка
“Измените значение ChallengeResponseAuthentication с «yes» на «no», чтобы включить пароли запроса-ответа.”
Должно быть с «no» на «yes»
Спасибо, поправили