- Вопрос или проблема
- Ответ или решение
- Как настроить SSH с использованием Google Authenticator MFA и специфическими IP-политиками
- Шаг 1: Установка необходимых пакетов
- Шаг 2: Настройка Google Authenticator для пользователя
- Шаг 3: Настройка PAM для использования Google Authenticator
- Шаг 4: Изменение конфигурации SSH
- Шаг 5: Перезапуск SSH
- Заключение
Вопрос или проблема
Как настроить SSH с Google Authenticator MFA с определенными IP-политиками:
- Мне нужен доступ внутри моей локальной сети (10.0.0.0/22) только через логин по паролю
> ssh [email protected]
[email protected]'s password:
Последний вход: Ср Ноя 6 02:18:27 2024 с 10.0.0.1
user1@server1:~$
- но когда я попытаюсь войти на свой SSH сервер из Интернета – я должен войти с помощью пароля + MFA ключа.
> ssh -p 30022 [email protected]
([email protected]) Пароль:
([email protected]) Код подтверждения:
Последний вход: Ср Ноя 6 02:18:27 2024 с 123.111.222.123
user1@server1:~$
Ответ или решение
Как настроить SSH с использованием Google Authenticator MFA и специфическими IP-политиками
В данной статье мы рассмотрим, как настроить SSH для использования Google Authenticator в качестве второго фактора аутентификации (MFA), при этом разрешая доступ из вашей локальной сети (10.0.0.0/22) только с использованием пароля, а для внешнего доступа — с использованием пароля и MFA.
Шаг 1: Установка необходимых пакетов
Первым делом необходимо установить Google Authenticator и соответствующий пакет для SSH. На Debian/Ubuntu это можно сделать с помощью следующей команды:
sudo apt update
sudo apt install libpam-google-authenticator
Шаг 2: Настройка Google Authenticator для пользователя
Каждому пользователю, который будет использовать MFA, необходимо сгенерировать секретный ключ для Google Authenticator. Для этого выполните следующие шаги:
- Выполните команду:
google-authenticator
- Следуйте инструкциям на экране, принимая предложенные настройки, включая возможность генерации QR-кода, который можно просканировать с помощью мобильного приложения Google Authenticator.
Шаг 3: Настройка PAM для использования Google Authenticator
После установки Google Authenticator необходимо отредактировать конфигурацию PAM для SSH. Откройте файл /etc/pam.d/sshd
и добавьте следующую строку:
auth required pam_google_authenticator.so
Это позволит использовать Google Authenticator для аутентификации через SSH.
Шаг 4: Изменение конфигурации SSH
Откройте файл /etc/ssh/sshd_config
и убедитесь, что следующие настройки присутствуют:
ChallengeResponseAuthentication yes
При этом, чтобы настроить политику IP, мы добавим условное выполнение MFA через файл конфигурации. Первым делом разрешим доступ по паролю для локальной сети и настроим MFA для удаленного доступа. Добавьте следующую строку:
Match Address 10.0.0.0/22
AuthenticationMethods password
Это разрешит доступ только с использованием пароля для пользователей, подключающихся с адресов в локальной сети.
Теперь добавьте следующий блок для удаленного доступа, который потребует MFA:
Match all
AuthenticationMethods password,keyboard-interactive
Это будет означать, что для входа с любых внешних адресов пользователю потребуется ввести пароль и код MFA.
Шаг 5: Перезапуск SSH
После изменения конфигурационных файлов необходимо перезапустить SSH-сервер, чтобы изменения вступили в силу:
sudo systemctl restart sshd
Заключение
Теперь ваша система настроена на использование Google Authenticator для двухфакторной аутентификации. Пользователи, подключающиеся из локальной сети 10.0.0.0/22, смогут войти, используя только пароль. В то время как пользователи, подключающиеся из других мест, должны будут вводить как пароль, так и код проверки из Google Authenticator.
Эта настройка повысит уровень безопасности вашего сервера, минимизировав риски, связанные с несанкционированным доступом.