• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Использование двухфакторной
аутентификации для SSH

 

Двухфакторная аутентификация - один из лучших способов повысить безопасность вашего SSH-соединения. Добавив две двухфакторной аутентификации к вашему SSH-соединению, пользователю потребуется ввести сгенерированный одноразовый пароль для продолжения. Это означает, что если кто-то смог бы определить ваш пароль или украсть ваши  SSH-ключи , ему потребуется код двухфакторной аутентификации. Чтобы добавить поддержку 2FA, мы будем использовать пакет, который реализует протокол Google Authenticator таким образом, чтобы его можно было использовать как часть стека аутентификации SSH. Пакет, который мы используем, доступен во многих операционных системах, от систем на основе Debian, таких как Ubuntu, до CentOS или Fedora.

 

 

Использование 2FA - отличный способ защитить ваши устройства IoT, такие как Raspberry Pi.

Установка SSH-модуля двухфакторной аутентификации Google

В этом разделе мы будем показывать вам , как установить р переносные в uthentication м МОДУЛЬ (АИМ) , который реализует протокол Google двухфакторной. Используя этот модуль, мы сможем заставить пользователей вводить токен 2FA для входа в систему. Эта дополнительная защита может помочь повысить безопасность там, где у пользователей украли пароль или ключ SSH. Этот модуль будет работать в любой операционной системе Linux, использующей SSH. Хотя мы тестировали это руководство на Raspberry Pi под управлением операционной системы Raspbian, оно будет работать в любой операционной системе. Мы включили шаги для операционных систем , которые делают использование apt, dnfи yumменеджеров пакетов.

apt Системы на основе (Debian, Ubuntu, Raspbian)

Этот раздел проведет вас через процесс установки модуля 2FA в операционной системе, которая использует aptдиспетчер пакетов. Операционные системы на основе Debian, такие как Ubuntu или Raspbian, используют этот менеджер пакетов.

1. Чтобы установить необходимый модуль двухфакторной аутентификации для SSH, нам нужно обновить список пакетов. Обновление списка пакетов гарантирует, что мы не попытаемся загрузить пакет с несуществующего зеркала.

sudo apt update

2. После завершения обновления списка пакетов установите необходимый модуль 2FA, используя команду ниже. К счастью для нас, PAM-аутентификатор Google доступен как в официальных репозиториях Debian, так и в Ubuntu.

sudo apt install libpam-google-authenticator

После завершения установки модуля вы можете перейти к следующему разделу.

yum Системы на базе (CentOS, RHEL)

В этом разделе мы покажем вам, как вы можете установить модуль двухфакторной аутентификации SSH в системах, которые используют yumдиспетчер пакетов.

1.Перед установкой модуля аутентификации 2fa Pluggable (PAM), нам нужно добавить E Xtra P ackages для E Nterprise L хранилищу inux (EPEL). Этот репозиторий содержит ряд различных пакетов, в том числе тот, google-authenticatorкоторый нам нужен. Убедитесь, что вы используете правильную команду для используемой версии CentOS или RHEL.

CentOS / RHEL 6

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

CentOS / RHEL 7

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

CentOS / RHEL 8

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

2. Теперь, когда мы добавили репозиторий, мы можем перейти к установке необходимого модуля SSH 2FA. Установите модуль PAM Google Authenticator, выполнив следующую команду на своем устройстве.

sudo yum install google-authenticator

После установки пакета вы можете переходить к следующему разделу.

dnf Системы на базе (Fedora)

В этом разделе вы узнаете, как использовать dnfдиспетчер пакетов для установки необходимого модуля SSH двухфакторной аутентификации. Fedora - основная операционная система, использующая этот менеджер пакетов.

1. Чтобы установить пакет Google Authenticator, все, что нам нужно сделать, это выполнить следующую команду. Пакет Google Authenticator уже доступен через репозиторий пакетов Fedora.

sudo dnf install -y google-authenticator

После dnfзавершения установки пакета мы можем перейти к настройке двухфакторной аутентификации.

Настройка SSH-модуля двухфакторной аутентификации

Теперь, когда мы установили модуль 2FA, необходимый для SSH, мы можем настроить его. Во время этих шагов мы сгенерируем код, который вы введете в свое приложение 2FA.

1. Чтобы начать процесс установки, вам необходимо выполнить следующую команду в вашей системе. Эта команда начнет процесс создания токена аутентификации для текущего пользователя.

google-authenticator

2. Первый вопрос спросит, хотите ли вы использовать токены аутентификации на основе времени. Поскольку большинство приложений 2FA ожидают, что ваши токены будут рассчитаны по времени, убедитесь, что вы ответили yна этот вопрос.

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

3. Теперь вам будет показан QR-код вместе с другой информацией. Вы можете отсканировать этот QR-код с помощью приложения 2-Factor на своем телефоне. Если вы в настоящее время не используете приложение, Authy , Duo Security или Google Authenticator .

 

 

Вы также должны сделать безопасную резервную копию аварийных скретч-кодов. Эти скретч-коды - единственный способ снова получить доступ к вашей учетной записи, если вы каким-то образом потеряете доступ к своему двухфакторному аутентификатору. Обратите внимание, что эти коды можно использовать только один раз.

4. В следующем вопросе вас спросят, хотите ли вы обновить файл конфигурации аутентификатора текущего пользователя. Этот файл будет сохранен в домашнем каталоге вашего пользователя под именем « .google_authenticator». Введите yи нажмите кнопку, ENTERчтобы продолжить.

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

5. Затем вас спросят, хотите ли вы запретить многократное использование одного и того же токена. Это означает, что два человека не могут войти в одну и ту же учетную запись, используя один и тот же токен. Вам нужно будет подождать еще 30 секунд, чтобы получить новый двухфакторный токен для входа в систему. Мы рекомендуем вам включить этот параметр, так как он значительно улучшит защиту вашей учетной записи при атаке типа «злоумышленник в середине». Введите yи нажмите кнопку, ENTERчтобы продолжить.

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

6. Следующий вариант - хотите ли вы увеличить время, в течение которого сгенерированный код считается действительным. По умолчанию он настроен таким образом, что разрешены дополнительные 30 секунд по обе стороны от текущего времени. Это означает, что предыдущий код продолжит работать в течение следующих 30 секунд. Можно увеличить это значение до 4-минутного сдвига по времени, что значительно увеличивает количество кодов, которые будут считаться действительными в любой момент времени. Если у вас нет проблем с синхронизацией времени на вашем компьютере, мы рекомендуем вам не отвечать «да» на этот вариант. Чтобы не изменять сдвиг времени по умолчанию, введите и nнажмите кнопку, ENTERчтобы продолжить.

By default, a new token is generated every 30 seconds by the mobile app.

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. This allows for a

time skew of up to 30 seconds between authentication server and client. If you

experience problems with poor time synchronization, you can increase the window

from its default size of 3 permitted codes (one previous code, the current

code, the next code) to 17 permitted codes (the 8 previous codes, the current

code, and the 8 next codes). This will permit for a time skew of up to 4 minutes

between client and server.

Do you want to do so? (y/n) n

7. Наконец, последний вопрос спросит, хотите ли вы включить функцию ограничения скорости, встроенную в модуль двухфакторной аутентификации SSH. При включенном ограничении скорости пользователь не сможет выполнять более 3 попыток входа в систему каждые 30 секунд . Чтобы повысить безопасность вашего устройства, включите эту функцию, набрав и yнажав ENTERклавишу.

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

Теперь мы можем перейти к использованию SSH модуля двухфакторной аутентификации, которую мы только что закончили настраивать.

Использование SSH модуля двухфакторной аутентификации

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

1.Наша первая задача - изменить sshdфайл конфигурации. Мы можем начать изменять этот файл, выполнив следующую команду.

sudo nano /etc/pam.d/sshd

2. Добавьте следующую строку в конец файла. Эта строка сообщает демону, что ему требуется PAM Google Authenticator.

auth required pam_google_authenticator.so

После внесения этого изменения сохраните файл, нажав CTRL+ X, затем Y, а затем ENTERклавишу.

3. Теперь нам нужно включить систему запрос-ответ протокола SSH. Включение этой системы позволит SSH запрашивать ваш код двухфакторной аутентификации. Начните изменять файл конфигурации, в котором хранится этот параметр, с помощью следующей команды.

sudo nano /etc/ssh/sshd_config

4. В этом файле найдите и замените следующую строку.

Находим

ChallengeResponseAuthentication no

Заменим

ChallengeResponseAuthentication yes

После этого, сохраните файл, нажав кнопку CTRL+ X, а затем Y, то ENTERключ.

5. Чтобы наши изменения вступили в силу, нам нужно перезапустить службу SSH.

Вы можете сделать это, выполнив следующую команду.

sudo systemctl restart sshd

Теперь вас должны попросить ввести код двухфакторной аутентификации при каждой попытке входа в систему.

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

Теперь, когда мы настроили SSH для использования двухфакторной аутентификации PAM, мы можем перейти к тестированию, чтобы убедиться, что все работает. Чтобы протестировать функциональность SSH 2FA, нам нужно создать новое SSH-соединение с нашим устройством. При попытке установить соединение вам будет предложено ввести код двухфакторной аутентификации для входа в систему.

 

 

Вы сможете найти этот токен в любом приложении, которое вы настроили. Например, вот скриншот нашего кода 2FA, созданного в приложении Authy.

 

 

Действительный код должен состоять из шести цифр.

Добавление поддержки 2FA для ключей SSH

По умолчанию SSH настроен так, что SSH-ключ заменяет любую другую форму аутентификации, включая наши токены 2FA. Если вы не используете ключи SSH, вы можете пропустить этот раздел.

1. Чтобы решить эту проблему, нам нужно будет снова изменить конфигурацию нашего демона SSH, выполнив следующую команду.

sudo nano /etc/pam.d/sshd

2. В этом файле нам нужно найти и заменить следующую строку.

Закомментировав строку, мы отключим конфигурацию UNIX по умолчанию. Мы должны остановить запрос нашего пароля вместо токена 2FA.

Находим

@include common-auth

Заменим

#@include common-auth

Сохраните файл, нажав CTRL+ X, затем Y, а затем ENTERклавишу.

3. Затем нам также нужно изменить другой файл конфигурации SSH.

В этом файле мы сообщим SSH, что для продолжения необходимо запросить код подтверждения 2FA.

sudo nano /etc/ssh/sshd_config

4. В конец этого файла добавьте следующую строку конфигурации. Эта строка определяет методы аутентификации, которые нам нужно использовать. Указание открытого ключа сначала сообщает SSH, что мы ожидаем SSH-ключ. Во второй части говорится, что нам нужно дождаться интерактивного события клавиатуры. В нашем случае этим событием будет наш токен 2FA.

AuthenticationMethods publickey,keyboard-interactive

После внесения этого изменения сохраните файл, нажав CTRL+ X, затем Y, а затем ENTERклавишу.

5.Наконец, нам нужно перезапустить демон SSH с помощью следующей команды. Перезапуск SSH гарантирует, что он использует все наши изменения. Убедитесь, что вы не отключились от текущего SSH-соединения, прежде чем убедиться, что все работает.

sudo systemctl restart sshd

6. Теперь нас также попросят ввести код двухфакторной аутентификации, когда мы попытаемся установить соединение с помощью ключа SSH.

 

 

На этом этапе у вас должна быть настроена двухфакторная аутентификация для вашего SSH-соединения. Добавив 2FA, кому-то будет намного сложнее получить доступ к вашему устройству через SSH. Пользователь должен будет получить доступ как к вашему паролю, так и к секрету 2FA, чтобы взломать его.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024