Поиск по сайту:

Как настроить двухфакторную аутентификацию для SSH в Fedora


Кажется, каждый день сообщается о множестве нарушений безопасности, из-за которых наши данные находятся под угрозой. Несмотря на то, что SSH — это безопасный способ удаленного подключения к системе Linux, неизвестный пользователь может получить доступ к вашей машине с Linux, если он украдет ваши ключи SSH, даже если вы отключите пароли или разрешите только SSH-соединения через открытый и закрытый ключи.

В этой статье мы объясним, как настроить двухфакторную аутентификацию (2FA) для SSH в дистрибутиве Linux Fedora, используя Google Authenticator для доступа. удаленную систему Linux более безопасным способом, предоставив номер TOTP (Одноразовый пароль на основе времени), сгенерированный случайным образом приложением аутентификации на мобильном устройстве.

Читайте также: как настроить двухфакторную аутентификацию для входа по SSH в CentOS и Debian

Обратите внимание: вы можете использовать любое приложение двусторонней аутентификации для своего мобильного устройства, совместимое с алгоритмом TOTP. Для Android и iOS доступно множество бесплатных приложений, поддерживающих TOTP и Google Authenticator, но в этой статье в качестве примера используется Google Authenticator.

Установка Google Authenticator в Fedora

Сначала установите приложение Google Authenticator на свой сервер Fedora, используя следующую команду dnf.

sudo dnf install -y google-authenticator

После установки Google Authenticator вы можете запустить приложение.

google-authenticator

Приложение задаст вам ряд вопросов. В следующих фрагментах показано, как обеспечить достаточно безопасную настройку.

Do you want authentication tokens to be time-based (y/n) y Do you want me to update your "/home/user/.google_authenticator" file (y/n)? y

Приложение предоставляет вам секретный ключ, код проверки и коды восстановления. Храните эти ключи в безопасном месте, так как эти ключи — единственный способ получить доступ к вашему серверу, если вы потеряете свое мобильное устройство.

Настройка аутентификации мобильного телефона

На своем мобильном телефоне перейдите в магазин приложений Google Play или iTunes, найдите Google Authenticator и установите приложение.

Теперь откройте приложение Google Authenticator на своем мобильном телефоне и отсканируйте QR-код, отображаемый на экране терминала Fedora. После завершения сканирования QR-кода вы получите случайный номер, сгенерированный приложением-аутентификатором, и будете использовать этот номер каждый раз при удаленном подключении к серверу Fedora.

Завершите настройку Google Authenticator.

Приложение Google Authenticator задает дополнительные вопросы, и в следующем примере показано, как на них ответить, чтобы настроить безопасную конфигурацию.

Теперь вам нужно настроить SSH для использования новой двусторонней аутентификации, как описано ниже.

Настройте SSH для использования Google Authenticator

Чтобы настроить SSH для использования приложения аутентификатор, сначала вам необходимо иметь рабочее соединение SSH с использованием общедоступных ключей SSH, поскольку мы будем отключать соединения с паролем.

Откройте файл /etc/pam.d/sshd на своем сервере.

sudo vi /etc/pam.d/sshd

Закомментируйте строку auth substackpassword-auth в файле.

#auth       substack     password-auth

Затем поместите следующую строку в конец файла.

auth sufficient pam_google_authenticator.so

Сохраните и закройте файл.

Затем откройте и отредактируйте файл /etc/ssh/sshd_config.

sudo vi /etc/ssh/sshd_config

Найдите строку ChallengeResponseAuthentication и измените ее на yes.

ChallengeResponseAuthentication yes

Найдите строку PasswordAuthentication и измените ее на no.

PasswordAuthentication no

Затем поместите следующую строку в конец файла.

AuthenticationMethods publickey,password publickey,keyboard-interactive

Сохраните и закройте файл, а затем перезапустите SSH.

sudo systemctl restart sshd

Тестирование двухфакторной аутентификации в Fedora

Теперь попробуйте удаленно подключиться к вашему серверу, он попросит вас ввести код подтверждения.

ssh [email 

Verification code:

Код подтверждения генерируется случайным образом на вашем мобильном телефоне приложением аутентификации. Поскольку сгенерированный код меняется каждые несколько секунд, вам необходимо быстро ввести его, прежде чем он создаст новый.

Если вы введете неправильный код подтверждения, вы не сможете подключиться к системе и получите следующую ошибку: «Отказано в доступе».

ssh [email 

Verification code:
Verification code:
Verification code:
Permission denied (keyboard-interactive).
Заключение

Внедрив эту простую двустороннюю аутентификацию, вы добавили дополнительный уровень безопасности в свою систему, а также усложнили доступ неизвестного пользователя к вашему серверу.