Как я могу дополнительно обезопасить свою систему с помощью двухфакторной аутентификации?

16

Название в значительной степени говорит об этом. Я слышал больше о двухфакторной аутентификации, одноразовых паролях, хард-токенах и других улучшенных функциях безопасности. С уменьшением безопасности использования только пароля я хочу знать, как я могу улучшить свою безопасность в Ubuntu. Я использую 14.04 LTS с Unity.


источник

Ответы:

30

Вы можете использовать Сменный модуль аутентификации с открытым исходным кодом (PAM), созданный Google, известный как Google Authenticator . Этот модуль доступен в стандартных репозиториях, а также в GitHub, так что вы можете строить из исходного кода. В сочетании с одноименным приложением для Android, iOS или Blackberry оно создает основанные на времени и чувствительные ко времени коды для аутентификации вместе с вашим паролем. Так как это модуль PAM, его можно поместить куда угодно . Давайте начнем!

Установка

Для начала вы можете установить PAM со следующим:

sudo apt-get install libpam-google-authenticator

Просто!

Настройка:

После его установки вы также захотите установить соответствующее мобильное приложение для Android, iOS или Blackberry (в зависимости от вашей мобильной платформы). Каждый бесполезен без другого. После того, как у вас есть приложение, необходимое для вашего мобильного устройства, запустите в терминале следующее:

google-authenticator

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

После завершения начальной настройки вы увидите очень большой QR-код в вашем терминале, а также некоторую другую информацию. Строка с надписью «Ваш новый секретный ключ:» является очень необходимой строкой, если вы не хотите использовать QR-код для сопряжения устройства, поэтому не закрывайте это окно, пока не начнете настройку! «Скретч-коды», которые это дает вам, также важны, так как именно они будут использоваться для входа в систему, если вы потеряете свое мобильное устройство. Запишите их и храните в безопасном месте.

Теперь на мобильном устройстве откройте приложение Google Authenticator и выберите «Настроить учетную запись». Вы можете отсканировать созданный QR-код или выбрать «Использовать предоставленный ключ». Если вы отсканируете QR-код, все будет автоматически сохранено в учетной записи с именем «your_user @ your_host». Однако, если вы выберете «Использовать предоставленный ключ», вам придется ввести имя, ключ и тип токена вручную. Имя может быть чем угодно. Ключ будет секретным ключом, сгенерированным ранее. Тип будет по умолчанию на основе времени. После настройки вы увидите учетную запись на главной панели приложения Google Authenticator, а также круговой таймер рядом с ним. Этот таймер сбрасывается каждые 30 секунд, и генерируется новый код.

Включение этого!

Здесь приходит волшебство. Поскольку это модуль PAM, его можно использовать в разных местах. Я расскажу, как добавить аутентификацию в sudoзапросы, войти в систему по SSH и войти в систему lightdm. Однако, прочитав этот учебник, вы сможете включить его в другом месте на основе тех же приемов.

SSH

Я делаю это в первую очередь, потому что есть дополнительный шаг. Первое, что вам нужно сделать, это отредактировать ваш конфигурационный файл SSH:

gksudo gedit /etc/ssh/sshd_config

Найдите строку, которая говорит:

ChallengeResponseAuthentication no

и измените «нет» на «да».

Теперь вам нужно отредактировать модуль PAM для ssh:

gksudo gedit /etc/pam.d/sshd

В самом конце этого файла добавьте следующую строку:

auth required pam_google_authenticator.so nullok

Аргумент "nullok" указывает системе не запрашивать код подтверждения, если пользователь не настроил двухфакторную аутентификацию. После этого отредактируйте и перезапустите ваш ssh-сервис:

sudo service ssh restart

sudo Запросы

Отредактируйте файл PAM для sudo:

gksudo gedit /etc/pam.d/sudo

Добавьте следующую строку в самом конце:

auth required pam_google_authenticator.so nullok

Теперь каждый sudoзапрос будет запрашивать код подтверждения и пароль.

LightDM (GUI Log-In)

Отредактируйте файл PAM для LightDM:

gksudo gedit /etc/pam.d/lightdm

Добавьте следующую строку в самом конце:

auth required pam_google_authenticator.so nullok

Это оно! Каждый раз, когда вы входите в систему через графический интерфейс, он запрашивает код подтверждения после вашего пароля.

Общесистемный и TTY-вход

Даже если вы включите вышеуказанные методы, он все равно не будет запрашивать код подтверждения, если вы переключитесь на TTY с CTRL+ ALT+ F#. Чтобы это исправить, отредактируйте common-authфайл PAM:

gksudo gedit /etc/pam.d/common-auth

и добавьте следующую строку в самый конец:

auth required pam_google_authenticator.so nullok

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

Заворачивать

Как вы могли заметить, добавить эту аутентификацию было довольно легко. Если вы используете менеджер дисплеев, отличный от LightDM, вы могли бы легко просто изменить строку выше lightdm соответственно. Поскольку ваше мобильное устройство и ваша система уже поделились этим секретным ключом, они всегда должны быть синхронизированы. Для этой настройки нет взаимодействия с серверами Google или любым другим интернет-ресурсом. Даже если оба устройства были полностью автономны, коды подтверждения, отображаемые в вашем приложении, будут правильными. Всякий раз, когда вам необходимо войти в систему с помощью одного из методов, которые вы включили, просто откройте мобильное приложение и получите текущий код подтверждения.

Веселиться!!

Джастин
источник
Комментируем для последующих заметок. Хорошо написан! +1 =)
Терренс
+1 - это действительно круто и хорошо написано.
Натан Осман
1
И тогда ваш телефон решает, что у него больше нет питания, и хочет выключиться. :) +1
Rinzwind
Вот для чего нужны скретч-коды, @Rinzwind: D
Добавлено в инструкции по включению двухфакторной на TTY.
1

FreeOTP является альтернативой с открытым исходным кодом для приложения Google Authenticator для Android в Google Play (текущий код которого не является открытым исходным кодом). FreeOTP доступен на F-DroidGoogle Play ).

Михай Капотэ
источник