Если вы считаете, что двухфакторная аутентификация на основе пароля небезопасна, рассмотрите возможность настройки аппаратной аутентификации в Linux с помощью YubiKey.
Вы не одиноки, если беспокоитесь о постоянно растущей угрозе взлома. Хотя аутентификации и запросов 2FA достаточно, чтобы отпугнуть большинство потенциальных хакеров, тысячи взломов по-прежнему совершаются каждый день.
Одним из самых разрекламированных решений проблемы аутентификации является YubiKey. Но что такое YubiKey и как работает аппаратная аутентификация? Можете ли вы защитить свой ПК с Linux с помощью YubiKey?
Зачем использовать YubiKey для аппаратной аутентификации?
Существует множество различных типов аутентификации, включая пароли, аутентификацию по SMS и даже приложения для аутентификации, которые вы можете использовать на своем телефоне. Одним из менее распространенных типов является аппаратная аутентификация, которая предполагает использование небольшого сменного устройства для отправки токена аутентификации при появлении запроса.
YubiKeys и другие аппаратные устройства аутентификации имеют ряд преимуществ по сравнению с другими устройствами аутентификации. Они проще в использовании, намного надежнее и их практически невозможно скомпрометировать без доступа к самому физическому ключу YubiKey.
Начало работы с Yubikey
Вы можете начать работу с YubiKey всего за несколько простых шагов. В качестве первого шага вы должны использовать тест, подготовленный Yubico, чтобы выбрать лучший YubiKey, который соответствует спецификациям вашего устройства. Получив YubiKey под рукой, вы можете использовать его в качестве устройства аутентификации для веб-сайтов и приложений.
Вы даже можете использовать его для аутентификации sudo и SSH на вашем компьютере с Linux. Мы объясним все, что вам нужно знать о выборе YubiKey, совместимого с sudo/SSH, и его настройке для аутентификации.
Изображение предоставлено: Тони Вебстер/Flickr
Правильный выбор YubiKey для Вашей системы
Если вы хотите использовать YubiKey для аутентификации на вашем компьютере с Linux, есть несколько ключей YubiKey, которые выделяются как отличные варианты. YubiKey 5 и YubiKey 5 NFC — это классические устройства, которые хорошо работают с системами USB-A и USB-C соответственно.
Если вы хотите использовать YubiKey с компьютером Linux и телефоном Android, рассмотрите возможность использования YubiKey 5c NFC. Если у вас есть компьютер с Linux и iPhone, обратите внимание на YubiKey 5ci, поскольку он поддерживает USB-C и Lightning.
Важно отметить, что серия YubiHSM несовместима с аутентификацией sudo. Устаревшие ключи YubiKey могут быть совместимы с аутентификацией sudo/SSH, в зависимости от их особенностей.
Прежде чем продолжить аутентификацию sudo или SSH, вы должны установить YubiKey PPA. Откройте терминал и введите следующие команды, чтобы обновить пакеты и установить YubiKey Authenticator и YubiKey Manager:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt install yubikey-manager libpam-yubico libpam-u2f
Затем убедитесь, что ваша система готова к работе с YubiKey. Запустите следующую команду в терминале, чтобы проверить версию udev:
sudo udevadm —version
Терминал вернет номер. Если число 244 или выше, ваша система совместима с YubiKey. В этом случае вы можете пропустить следующий шаг.
В противном случае вам необходимо настроить систему. Вы должны использовать следующие команды, чтобы проверить, установлен ли udev на вашем компьютере, и установить его, если это не так:
dpkg -s libu2f-udev
sudo apt install libu2f-udev
Затем проверьте, разблокирован ли интерфейс U2F YubiKey. Если у вас есть YubiKey NEO или YubiKey NEO-n, вставьте YubiKey, откройте YubiKey Manager и перейдите в Интерфейсы. Включите интерфейс U2F и нажмите Сохранить.
Настройте YubiKey для аутентификации sudo в Linux
sudo — одна из самых опасных команд в среде Linux. В умелых руках он обеспечивает впечатляющий уровень доступа, достаточный для выполнения работы. В чужих руках доступ на уровне root, предоставляемый sudo, может позволить злоумышленникам использовать или уничтожить систему.
YubiKeys отлично подходят для аутентификации sudo, поскольку их аутентификацию практически невозможно воспроизвести без доступа к самому YubiKey. Большинство ключей YubiKey совместимы с аутентификацией sudo, включая FIP серии 5, серию ключей, FIP серии 4, серию Bio, серию 5 и серию 4.
По словам Юбико, первый шаг, который вам нужно сделать для настройки аутентификации sudo, — это создать файл правил. Если у вас версия udev 188 или выше, установите новые правила U2F с GitHub и скопируйте файл 70-u2f.rules в /etc/udev/rules.d.
Если ваша версия udev ниже 188, установите старые правила U2F с GitHub и скопируйте файл 70-old-u2f.rules в /etc/udev/rules.d.
Если ваша версия udev 244 или выше или вы создали необходимые файлы правил, вы готовы подключить YubiKey к своей учетной записи.
Вставьте YubiKey в свой компьютер, откройте терминал и введите следующие команды, чтобы подключить YubiKey к вашей учетной записи:
mkdir -p ~/.config/Yubicopamu2fcfg > ~/.config/Yubico/u2f_keys
Подождите несколько секунд, пока индикатор на YubiKey не начнет мигать. Нажмите кнопку на YubiKey, чтобы подтвердить сопряжение устройства.
Если у вас есть еще один ключ YubiKey, вы должны добавить его в качестве устройства резервного копирования, введя следующую команду и выполнив тот же процесс:
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
Наконец, вам нужно настроить команду sudo, чтобы она требовала аутентификации YubiKey. Вы должны начать с ввода следующей команды, чтобы открыть файл конфигурации sudo:
sudo vi /etc/pam.d/sudo
Открыв файл конфигурации, вставьте следующую строку непосредственно под строкой @include common-auth, чтобы настроить sudo на требование аутентификации YubiKey:
auth required pam_u2f.so
Сохраните файл и выйдите, нажав Escape, набрав :wq и нажав Enter, но оставьте терминал открытым. Вы не сможете отменить изменения, внесенные в аутентификацию sudo, если терминал закрыт.
откройте другой терминал и выполните следующую команду с отключенным YubiKey, затем введите свой пароль:
sudo echo testing
Процесс аутентификации завершится ошибкой. Вставьте YubiKey и повторно введите команду и пароль. Когда индикатор YubiKey начнет мигать, нажмите кнопку на YubiKey. Это должно аутентифицировать команду. Если это произойдет, YubiKey полностью настроен для аутентификации sudo.
Как настроить YubiKey для аутентификации по SSH
Вы также можете использовать YubiKey для аутентификации SSH! Несколько серий YubiKeys совместимы с SSH, в том числе 5-я серия FIPS, 5-я серия, 4-я серия FIPS и 4-я серия. Использование YubiKey для аутентификации ваших подключений сделает каждый вход по SSH намного более безопасным.
Лучший способ настройки YubiKey описан опытным пользователем на GitHub. Вам потребуется SSH версии 8.2 или новее и YubiKey с прошивкой 5.2.3 или новее. Вы можете проверить свою версию OpenSSH и при необходимости обновить ее с помощью следующих команд:
ssh -V sudo apt update && sudo apt upgrade
Затем вам нужно настроить SSH для приема вашего YubiKey. Введите следующую команду, чтобы открыть редактор vi и отредактировать файл конфигурации:
sudo vi /etc/ssh/sshd_config
Добавьте следующую строку в файл конфигурации, чтобы ваш YubiKey был принят:
PubkeyAcceptedKeyTypes sk-ecdsa-sha2-nistp256@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com
Сохраните файл и выйдите из него, нажав Escape, набрав :wq и нажав Enter. Наконец, перезапустите службу SSH с помощью следующей команды, чтобы ваша новая конфигурация стала активной:
sudo service ssh restart
Наконец, вы готовы создать пару ключей, которую будете использовать для аутентификации SSH. Перейдите в каталог SSH и создайте новый ключ SSH с помощью следующих команд:
cd home/username/.ssh
ssh-keygen -t ed25519-sk
В каталоге ~/.ssh/ будут созданы два файла. Обратите внимание, что вам может понадобиться использовать ecdsa-sk вместо ed25519-sk, если ваша система несовместима и терминал выдает сообщение об ошибке регистрации ключа.
Затем вам нужно добавить открытый ключ на ваш сервер с помощью следующей команды:
ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub username@server
Вы также должны добавить себя в файл sudoers, чтобы сохранить разрешения после отключения входа в систему root. Получите доступ к файлу и откройте его с помощью visudo.
Не открывайте файл sudoers в обычном текстовом редакторе.
Под строкой root ALL=(ALL:ALL) ALL добавьте следующую строку:
username ALL=(ALL:ALL) ALL
откройте файл /etc/ssh/ssd_config и добавьте следующие строки, чтобы отключить вход в систему root и вход на основе пароля:
ChallengeResponseAuthentication noPermitRootLogin no
Наконец, введите следующую команду, чтобы загрузить свой ключ в агент SSH на время сеанса:
ssh-add ~/.ssh/id_ed25519_sk
Теперь вы можете использовать YubiKey для аутентификации SSH. Вы должны вставить YubiKey в компьютер при появлении запроса и нажать кнопку, когда загорится индикатор. С этим новым методом аутентификации доступ SSH к вашему удаленному серверу будет намного более безопасным.
Другие потенциальные области применения YubiKey
Нет никаких реальных ограничений на то, как вы можете использовать YubiKey в вашей системе Linux. Если вы хотите сделать свой компьютер более безопасным, рассмотрите возможность использования YubiKey для шифрования диска или без пароля. Вы даже можете использовать его для подписи электронных писем и файлов, если хотите.
Защитите свою систему Linux с помощью YubiKey
Вам не нужно ограничиваться только использованием YubiKey для аутентификации SSH и sudo. Вы также можете использовать YubiKey для аутентификации доступа ко многим вашим онлайн-аккаунтам. Самое приятное то, что начать работу с YubiKey 2FA очень просто.