Как настроить двухфакторную аутентификацию для 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).
Заключение
Внедрив эту простую двустороннюю аутентификацию, вы добавили дополнительный уровень безопасности в свою систему, а также усложнили доступ неизвестного пользователя к вашему серверу.