ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Защитить SSH с помощью двухфакторной аутентификации на Ubuntu 16.04

Защитить SSH с помощью двухфакторной аутентификации на Ubuntu 16.04

На этом уроке мы опишем необходимые шаги для настройки двухфакторной аутентификации (2fa) с помощью Google Authenticator на Ubuntu 16.04 VPS. Это приложение включает в себя реализацию единовременных генераторов кода доступа для нескольких мобильных платформ. Этот метод добавляет еще один уровень защиты для вашего сервера, добавив дополнительный шаг к основной процедуре регистрации.

Войдите на сервер с помощью SSH с правами суперпользователя

ssh root@IP_Address

 

Обновление всех установленных пакетов :

apt-get update && apt-get upgrade

 

Установите пакет Google Authenticator.

apt-get install libpam-google-authenticator

 

После того, как пакет установлен, запустите программу Google-authenticator, создайте ключ для пользователя с помощью которого вы будете входить. Программа может генерировать два типа маркеров аутентификации – time-based и one-time tokens. Time-based пароли будут изменяться случайным образом в определенное время, и one-time пароли действительны для одной проверки подлинности.

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

google-authenticator

 

Вам будет предложено time-based аутентификация.

Do you want authentication tokens to be time-based (y/n) y

 

Большой QR-код будет сгенерирован в вашем терминале. Вы можете сканировать код с приложением аутентификатора на телефоне Android/IOS/Windows, или планшета или ввести секретный ключ, созданный на экране.

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

Your emergency scratch codes are:
35636725
07846932
87496712
94764389
78545233

 

Сохраните параметры аутентификации для корневого пользователя, ответив YES на следующий вопрос

Do you want me to update your "/root/.google_authenticator" file (y/n) y

 

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

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

 

Вы можете использовать следующий параметр, если у вас есть проблемы при синхронизации времени между устройствами, поэтому мы не будем использовать эту опцию

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) n

 

Следующий параметр предотвращает атаки грубой силы. У вас будет только три шанса за 30 секунд, чтобы ввести правильный пароль.

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

 

Теперь у нас есть настроенное приложение Google Authenticator и следующим шагом является настройка параметров проверки подлинности в OpenSSH. Для этого откройте файл «/etc/pam.d/sshd» и добавьте следующую строку в конец файла:

# vim /etc/pam.d/sshd

auth required pam_google_authenticator.so

 

Сохраните изменения и откройте файл “/etc/ssh/sshd_config” и включите вызов аутентификации Response.

# vim /etc/ssh/sshd_config

ChallengeResponseAuthentication yes

 

Сохраните файл и перезапустите SSH на сервере для того, чтобы изменения вступили в силу.

systemctl restart ssh

 

Если вы внимательно следили за этим учебником, двухфакторная аутентификация включена на сервере и каждый раз, когда вы пытаетесь войти в свой Ubuntu VPS через SSH вы должны ввести пароль вашего пользователя и проверочный код, генерируемое приложением аутентификации Google на мобильном устройстве.

Exit mobile version