Устанавливаем 2х факторную аутентификацию на Linux сервер

Spread the love

Включение двухфакторной аутентификации (2FA) для повышения безопасности ваших важных учетных записей в наши дни становится все более распространенным явлением. Однако вы можете быть удивлены, узнав, что вы можете сделать то же самое с Raspberry Pi. Вы можете включить 2FA на Raspberry Pi, и после этого вам будет предложено ввести проверочный код при удаленном доступе через Secure Shell (SSH).источник статьи

Доступ к вашему Raspberry Pi через SSH

Многие люди используют Raspberry Pi дома в качестве файлового или медиа-сервера . Это стало довольно распространенным явлением с запуском Raspberry Pi 4 , который имеет как USB 3, так и Gigabit Ethernet. Однако, когда вы настраиваете сервер такого типа, вы часто хотите запустить его «без головы» ; без монитора, клавиатуры или мыши. Это особенно верно, если вы собираетесь убрать Raspberry Pi подальше от телевизора или в другое место. В любом случае это означает, что вам нужно будет включить Secure Shell (SSH) для удаленного доступа.

Тем не менее, также довольно часто настраивают свой сервер так, чтобы вы могли получать доступ к своим файлам, когда вы находитесь вдали от дома, делая ваш Raspberry Pi доступным из Интернета.

Большинство из нас пока не собираются часто выходить из дома, но если вы нашли время прямо сейчас, чтобы построить файловый сервер, вы можете подумать о добавлении дополнительной безопасности. Если вы собираетесь сделать сервер доступным из Интернета, вы, вероятно, захотите включить двухфакторную аутентификацию (2FA) с использованием одноразового пароля на основе времени (TOTP).

Что такое двухфакторная аутентификация?

Двухфакторная аутентификация – это дополнительный уровень защиты. Помимо пароля, «что-то, что вы знаете», вам понадобится еще одна информация для входа в систему. Этот второй фактор будет основываться либо на том, «что у вас есть», например, смартфон, либо на том, «что вы есть, »Как биометрическая информация.

Мы собираемся настроить «то, что у вас есть», и использовать ваш смартфон в качестве второго фактора для защиты вашего Raspberry Pi.

Обновление операционной системы

Первое, что вам нужно сделать, это убедиться, что на вашем Raspberry Pi установлена последняя версия Raspbian . Если вы используете относительно недавнюю версию операционной системы, вы можете сделать это из командной строки:

$ sudo apt-get update
 $ sudo apt-get full-upgrade

Однако, если вы впервые вытаскиваете свой Raspberry Pi из ящика, возможно, вы захотите установить новую копию Raspbian с помощью нового Raspberry Pi Imager , чтобы вы знали, что вы работа с хорошим изображением.

Включение Secure Shell

В операционной системе Raspbian сервер SSH отключен при загрузке . Однако, поскольку мы собираемся запускать плату без монитора или клавиатуры, нам нужно включить ее, если мы хотим иметь возможность подключаться к нашему Raspberry Pi по SSH.

Самый простой способ включить SSH – с рабочего стола. Перейдите в меню Raspbian и выберите «Настройки> Конфигурация Raspberry Pi». Затем выберите вкладку «Интерфейсы» и щелкните переключатель, чтобы включить SSH, затем нажмите «ОК».

Вы также можете включить его из командной строки, используя systemctl :

$ sudo systemctl on ssh
 $ sudo systemctl start ssh

Кроме того, вы можете включить SSH с помощью raspi-config или, если вы устанавливаете операционную систему впервые, вы можете включить SSH при записи SD-карты .

Включение вызова-ответа

Затем нам нужно указать демону SSH включить пароли типа «запрос-ответ». Идите вперед и откройте файл конфигурации SSH:

$ sudo nano / etc / ssh / sshd_config

Включите ответ на запрос, изменив ChallengeResponseAuthentication с « нет» по умолчанию на « да» .

Редактирование / etc / ssh / ssd_config .

Затем перезапустите демон SSH :

$ sudo systemctl reload ssh

Хорошая идея – открыть терминал на своем ноутбуке и убедиться, что вы все еще можете подключиться к Raspberry Pi по SSH на этом этапе, хотя вам еще не будет предложено ввести код 2FA. Разумно проверить, что на этом этапе все еще работает.

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

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

Google Authenticator в App Store.

Так что вперед и установите Google Authenticator или другое приложение 2FA , такое как Authy , на свой телефон. После этого установите модуль PAM Google Authenticator на свой Raspberry Pi:

$ sudo apt install libpam-google-authentication

Теперь у нас установлена ​​двухфакторная аутентификация как на нашем телефоне, так и на Raspberry Pi, и мы готовы приступить к настройке.

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

Теперь вы должны запустить Google Authenticator из командной строки – без использования sudo – на своем Raspberry Pi, чтобы сгенерировать QR-код:

$ google-authenticator

После этого вам, вероятно, придется изменить размер окна Терминала, чтобы QR-код отображался правильно. К сожалению, он немного шире стандартных 80 символов.

QR-код, сгенерированный Google-Authenticator . Не волнуйтесь, это не QR-код моего ключа; Я создал один только для этого поста, который не использовал.

Не двигайтесь еще вперед! Прежде чем делать что-либо еще , скопируйте коды экстренных служб и положите их в безопасное место.

Эти коды позволят вам получить доступ к Raspberry Pi – и выключить 2FA – если вы потеряете свой телефон. Без них вы не сможете подключиться к Raspberry Pi по SSH, если потеряете или сломаете устройство, которое используете для аутентификации.

Затем, прежде чем мы продолжим работу с Google Authenticator на Raspberry Pi, откройте приложение Google Authenticator на своем телефоне и нажмите знак плюса (+) в правом верхнем углу, затем нажмите «Сканировать штрих-код».

Ваш телефон спросит вас, хотите ли вы разрешить приложению доступ к вашей камере; вы должны сказать «Да». Откроется вид камеры. Расположите штрих-код прямо в зеленом поле на экране.

Сканирование QR-кода с помощью приложения Google Authenticator.

Как только приложение вашего телефона распознает QR-код, оно добавит вашу новую учетную запись и автоматически начнет генерировать коды TOTP.

TOTP в приложении Google Authenticator.

Ваш телефон будет генерировать новый одноразовый пароль каждые тридцать секунд. Однако этот код не будет таким полезным, пока мы не закончим то, что делали на вашем Raspberry Pi. Вернитесь в окно терминала и ответьте «Y» на вопрос, следует ли Google Authenticator обновлять ваш файл .google_authenticator .

Затем ответьте «Y», чтобы запретить многократное использование одного и того же токена аутентификации, «N» для увеличения окна временного сдвига и «Y» для ограничения скорости для защиты от атак грубой силы.

Вы здесь закончили. Теперь все, что нам нужно сделать, это включить 2FA.

Включение двухфакторной аутентификации

Мы собираемся использовать подключаемые модули аутентификации Linux (PAM), которые обеспечивают поддержку динамической аутентификации для приложений и служб, чтобы добавить 2FA к SSH на Raspberry Pi.

Теперь нам нужно настроить PAM для добавления 2FA:

$ sudo nano /etc/pam.d/sshd

Добавьте требуемый для аутентификации pam_google_authenticator.so в начало файла. Вы можете сделать это над или под строкой @include common-auth .

Редактирование /etc/pam.d/sshd .

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

Теперь перезапустите демон SSH :

$ sudo systemctl перезапустить ssh

Затем откройте окно терминала на своем ноутбуке и попробуйте подключиться к Raspberry Pi по SSH.

Подведение итогов

Если все пошло по плану, когда вы подключитесь к Raspberry Pi по SSH, вам будет предложено ввести TOTP после запроса пароля.

SSH в Raspberry Pi.

Вам следует открыть Google Authenticator на своем телефоне и ввести шестизначный код при появлении запроса. Затем вы должны войти в свой Raspberry Pi как обычно.

WP2Social Auto Publish Powered By : XYZScripts.com