GrabDuck

Безопасный SSH с Google Authenticator в Unix/Linux

:

Google Authenticator обеспечивает новый уровень безопасности от хакеров для SSH сервера. В этой статье «Безопасный SSH с Google Authenticator в Unix/Linux» я расскажу как установить и настройить Google Authenticator чтобы защитить свой SSH сервер с двухфакторной аутентификацией с использованием модуля Google Authenticator PAM. С этим модулем вы должны будите сгенерировать код, используя ваш телефон или другие устройства чтобы войти на сервер через SSH.

Хотите защитить SSH сервер с двухфакторной аутентификацией? Google предоставляет необходимое программное обеспечение для интеграции Google Authenticator на основе одноразового пароля (TOTP) с SSH сервером. Вы должны ввести код с вашего телефона при подключении.

Безопасный SSH с Google Authenticator в Debian/Ubuntu

Для deb-‘s операционных систем, имеется готовый пакет, его нужно просто установить.

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

Для установки пакета Google Authenticator в Debian или Ubuntu, выполните следующую команду:

После этого, переходим к настройке и активации данного модуля.

Безопасный SSH с Google Authenticator в RedHat/Fedora/CentOS

Вот следующие шаги по установки и настройки Google Authenticator в RedHat/Fedora/CentOS

Шаг 1: Добавления репозитория. 

Во-первых, необходимо добавить репозиторий RPMForge или EPEL, если не знаете как, то можно прочитать статью тут:

Установка RPMForge репозитория в RHEL / CentOS

Как включить EPEL репозиторий

Шаг 2: Установка Google Authenticator.

Чтобы установить Google authenticator используйте следующую команду:

Безопасный SSH с Google Authenticator с исходного кода.

На самом деле, Google Authenticator является системой с полностью открытым исходным кодом. Вы можете скачать его тут:

Для этого нужно иметь git.

Выполняем сборку:

Скопируем библиотеки в нужное место:

Настройка безопасного входа через SSH с Google Authenticator в Unix/Linux

Я использую тестовый аккаунт (пользователь captain) для тестирования:

Запускаем google-authenticator:

Google Authenticator покажет вам секретный ключ и много «аварийных скретч-кодов». Аварийные коды могут быть использованы только один раз в случае, если вы потеряли секретный ключ, поэтому держите их в безопасном месте.

Используйте Google Authenticator приложения для вашего девайса (Android, iPhone или Blackberry) для того чтобы сгенерировать проверочной код, нужно ввести секретный ключ:

 Вы также можете сканировать штрих-код, предоставляемый по URL, у меня это:

https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/captain@localhost.localdomain%3Fsecret%3DJ4CZKJKMHQYRVPJJ

Вы также можете использовать приложения, основанные на Java для генерация кодов проверки:

Компилируем утилиту:

Выполните (в папке auth, домашней папки локального пользователя):

Пример:

Выбор за вами, но с мобильными девайсами проблем меньше.

Активация Google authenticator

Для того чтобы активировать google authenticator, нужно добавить в конфигурационный файл:

Строку что ниже:

Должно выглядеть вот так:

required pam_google_authenticatorЭто позволит активировать Google authentication для входа в ssh. После чего, открываем конфигурационный файл SSH b добавим изменения:

И приводим к виду:

И последнее, перезапустим службу SSH в CentOS/Fedora/RedHat:

И последнее, перезапустим службу SSH в Debian/Ubuntu:

Чтобы убедиться что все работает, можно проверить лог-файл:

PS: Примите во внимание что SELinux должен быть выключен, и как это сделать, можно прочитать статью тут:

Как отключить SELinux на CentOS

Вот пример лога:

Пропустить  Google Authenticator авторизацию если подключение с локальной сети.

Вы можете добавить IP вашей локальной сети чтобы опустить SSH соединения с использованием Google Authenticator. Если это так, изменим:

Прописываем:

Затем, открываем:

Добавляем следующие строки:

Замените 192.168.0.0/24 на вашу локальную сеть.

Тема «Безопасный SSH с Google Authenticator в Unix/Linux» завершена.