Лучшим решением на некотором расстоянии является использование сценария, такого как создатель винзавода, который позаботится о создании пусковой установки для настольных компьютеров, а также сделает приятные вещи, такие как извлечение необходимых значков и т. д. Не нужно возиться с этим вручную:)
Установите PAM-модуль Google Authenticator следующим образом:
sudo apt-get install libpam-google-authenticator
Теперь запустите google-authenticator (внутри терминала) для каждого пользователя, которого хотите использовать Google Authenticator с инструкциями и следовать инструкциям.
Чтобы активировать Google Authenticator, загляните в каталог / etc / pam. д /. Существует файл для всех способов аутентификации с вашим компьютером. Вам необходимо отредактировать файлы конфигурации для каждой службы, которую вы хотите использовать с Google Authenticator. Если вы хотите использовать его с SSH, отредактируйте sshd, если вы хотите использовать его в LightDM, отредактируйте lightdm. В этих файлах добавьте одну из следующих строк:
auth required pam_google_authenticator.so nullok
auth required pam_google_authenticator.so
Используйте первую строку, пока вы все еще переносите своих пользователей в Google Authenticator. Пользователи, которые не настроены, могут войти в систему. Вторая строка заставит использовать Google Authenticator. Пользователи, у которых его нет, не могут войти в систему. Для sshd очень важно поставить строку на один файла, чтобы предотвратить атаки грубой силы на ваш пароль.
Чтобы добавить его в LightDM, вы можете запустить это:
echo "auth required pam_google_authenticator.so nullok" | sudo tee -a /etc/pam.d/lightdm
Теперь, когда вы входите в систему, вы получите индивидуальный запрос на свой пароль и двухэтапный код аутентификации.
Если вы используйте home-encryption (ecryptfs), файл /etc/pam.d / не будет доступен для чтения PAM-модуля (поскольку он все еще зашифрован). В этом случае вам нужно переместить его в другое место и сообщить PAM, где его найти. Возможная строка может выглядеть так:
auth required pam_google_authenticator.so secret=/home/.ga/${USER}/.google_authenticator
Вам нужно создать каталог для каждого пользователя в /home/.ga с именем пользователя и изменить права собственности на этот каталог для пользователя. Затем пользователь может запустить google-authenticator и переместить созданный файл .google-authenticator в этот каталог. Пользователь может выполнить следующие строки:
sudo install -g $(id -rgn) -o $USER -m 700 -d /home/.ga/$USER
google-authenticator
mv $HOME/.google_authenticator /home/.ga/$USER
Это позволит модулю получить доступ к файлу.
Для других параметров, проверьте README.
Использование двухфакторной аутентификации в ssh, сконфигурированной, как описано выше, здесь до сих пор оставляет вашу систему открытой для возможных грубых атак на ваш пароль. Это может поставить под угрозу уже первый фактор: ваш пароль. Поэтому лично я решил добавить следующую строку не в нижней части, а в верхней части файла /etc/pam.d/sshd, как ранее не было отмечено четким:
auth required pam_google_authenticator.so
Это приводит к первой подсказке для вашей проверки кода, а затем для вашего пароля (независимо от того, правильно ли вы ввели код проверки). При такой конфигурации, если вы ввели либо код подтверждения, либо пароль неправильно, вы должны ввести их оба снова. Я согласен, что это немного неприятнее, но эй: вы хотели безопасности или просто чувство безопасности?