Двухфакторная аутентификация (2FA) — это процесс входа в систему, состоящий из механизма двойной аутентификации. Наиболее известные реализации включают в себя классическое подтверждение кода SMS или электронной почты для новых / неизвестных браузеров и устройств.
В этом сценарии, даже если хакер получит пароль PayPal или хостинга, он не сможет войти в систему без кода подтверждения, отправленного на телефон или электронную почту жертвы.
Внедрение двухфакторной аутентификации — один из лучших способов защиты нашей электронной почты, учетных записей социальных сетей, хостинга и многого другого. К сожалению, наша система не исключение.
В этом руководстве показано, как реализовать двухфакторную аутентификацию для защиты доступа по SSH с помощью Google Authenticator или Authy-ssh. Google Authenticator позволяет проверять логин с помощью мобильного приложения, а Authy-ssh можно реализовать без приложения с помощью проверки по SMS.
Двухфакторная аутентификация в Linux с использованием Google Authenticator
Примечание. Прежде чем продолжить, убедитесь, что на вашем мобильном устройстве установлен Google Authenticator.
Для начала выполните следующую команду, чтобы установить Google Authenticator (дистрибутивы Linux на основе Debian):
sudo apt install libpam-google-authenticator -y
Чтобы установить Google Authenticator в дистрибутивах Linux на базе Red Hat (CentOS, Fedora), выполните следующую команду:
sudo dnf install google-authenticator -y
После установки запустите Google Authenticator, как показано на скриншоте ниже.
google-authenticator
Как видите, появляется QR-код. Вам необходимо добавить новую учетную запись, щелкнув значок + в мобильном приложении Google Authenticator и выбрав Сканировать QR-код.
Google Authenticator также предоставит резервные коды, которые необходимо распечатать и сохранить на случай, если вы потеряете доступ к своему мобильному устройству.
Вам будут заданы некоторые вопросы, которые подробно описаны ниже, и вы можете принять все параметры по умолчанию, выбрав Y для всех вопросов:
- После сканирования QR-кода в процессе установки потребуется разрешение на редактирование вашего дома. Нажмите Y,чтобы перейти к следующему вопросу.
- Второй вопрос рекомендует отключить несколько логинов с использованием одного и того же проверочного кода. Нажмите Y,чтобы продолжить.
- Третий вопрос касается срока действия каждого сгенерированного кода. Опять же, вы можете позволить временной сдвиг, нажмите Y,чтобы продолжить.
- Включите ограничение скорости, до 3 попыток входа каждые 30 секунд. Нажмите Y,чтобы продолжить.
После установки Google Authenticator вам необходимо отредактировать файл /etc/pam.d/sshd, чтобы добавить новый модуль аутентификации. Используйте nano или любой другой редактор, как показано на скриншоте ниже, чтобы отредактировать файл /etc/pam.d/sshd:
nano /etc/pam.d/sshd
Добавьте следующую строку в /etc/pam.d/sshd, как показано на изображении ниже:
auth required pam_google_authenticator.so nullok
Примечание. В инструкциях Red Hat упоминается строка, содержащая #auth substack password-auth. Если вы найдете эту строку в своем /etc/pam.d./sshd, прокомментируйте ее.
Сохраните /etc/pam.d./sshd и отредактируйте файл / etc / ssh / sshd_config, как показано в примере ниже:
nano /etc/ssh/sshd_config
Найдите строку:
#ChallengeResponseAuthentication no
Раскоментируйте на него и заменить не с да:
ChallengeResponseAuthentication yes
Выйдите из сохранения изменений и перезапустите службу SSH:
sudo systemctl restart sshd.service
Вы можете протестировать двухфакторную аутентификацию, подключившись к своему локальному хосту, как показано ниже:
ssh localhost
Вы можете найти код в своем мобильном приложении Google Authentication. Без этого кода никто не сможет получить доступ к вашему устройству через SSH. Примечание: этот код меняется через 30 секунд. Следовательно, вам нужно быстро это проверить.
Как видите, процесс 2FA сработал успешно. Ниже вы можете найти инструкции по другой реализации двухфакторной аутентификации с использованием SMS вместо мобильного приложения.
Двухфакторная аутентификация в Linux с использованием Authy-ssh (SMS)
Вы также можете реализовать двухфакторную аутентификацию с помощью Authy (Twilio). В этом примере мобильное приложение не потребуется, и процесс будет выполняться с помощью проверки по SMS.
Для того, чтобы начать работу, перейдите на https: // www.twilio.com/try-twilio и заполнить регистрационную форму.
Напишите и подтвердите свой номер телефона:
Подтвердите номер телефона с помощью кода, отправленного по SMS:
После регистрации перейдите на https://www.twilio.com/console/authy и нажмите кнопку Get Started :
Нажмите кнопку «Подтвердить номер телефона» и выполните следующие действия, чтобы подтвердить свой номер:
Подтвердите свой номер:
После проверки вернитесь в консоль, нажав » Вернуться в консоль»:
Выберите имя для API и нажмите Create Application:
Заполните запрашиваемую информацию и нажмите Сделать запрос:
Выберите SMS-токен и нажмите Сделать запрос:
Перейдите на https://www.twilio.com/console/authy/applications и щелкните приложение, созданное на предыдущих шагах:
После выбора вы увидите в левом меню параметр » Настройки». Нажмите » Настройки» и скопируйте КЛЮЧ PRODUCTION API. Мы будем использовать его на следующих этапах:
С консоли загрузите authy-ssh, выполнив следующую команду:
git clone https://github.com/authy/authy-ssh
Затем войдите в каталог authy-ssh:
cd authy-ssh
Внутри каталога authy-ssh запустите:
sudo bash authy-ssh install /usr/local/bin
Вам будет предложено вставить КЛЮЧ PRODUCTION API KEY, который я просил скопировать, вставить и нажать ENTER, чтобы продолжить.
На вопрос о действии по умолчанию, когда невозможно связаться с api.authy.com, выберите 1. И нажмите ENTER.
Примечание. Если вы вставили неверный ключ API, вы можете отредактировать его в файле /usr/local/bin/authy-ssh.conf, как показано на изображении ниже. Замените содержимое после «api_key =» своим ключом API:
Включите authy-ssh, запустив:
sudo /usr/local/bin/authy-ssh enable `whoami`
Заполните необходимую информацию и нажмите Y:
Вы можете протестировать выполнение authy-ssh:
authy-ssh test
Как видите, 2FA работает исправно. Перезапустите службу SSH, запустите:
sudo service ssh restart
Вы также можете проверить это, подключившись через SSH к localhost:
Как показано, 2FA сработала успешно.
Authy предлагает дополнительные варианты двухфакторной аутентификации, включая проверку мобильного приложения.
Заключение
Как видите, 2FA может быть легко реализована на любом уровне пользователя Linux. Оба варианта, упомянутые в этом руководстве, можно применить в течение нескольких минут.
Ssh-authy — отличный вариант для пользователей без смартфонов, которые не могут установить мобильное приложение.
Реализация двухэтапной проверки может предотвратить любой тип атак на основе входа в систему, включая атаки социальной инженерии, многие из которых устарели с этой технологией, поскольку пароля жертвы недостаточно для доступа к информации о жертве.