Linux и Google Authenticator

На самом деле, как оказалось, это уже совсем не новая штука. Я просто задался вопросом как можно сделать двухфакторную аутентификацию. Про ключ и пароль я знаю давно, но тут есть минус, ключ нужно как-то хранить и при компрометации ключа его нужно делать еще раз. Вот я нашел такой способ. Ставим вот такой пакет на Linux машину, в моем случае это Ubuntu:

sudo apt-get install libpam-google-authenticator

На телефон или планшет ставим приложение из Google Play.

Дальше нужно выбрать, что именно мы будем таким образом защищать. Если это su, редактируем файл /etc/pam.d/su и добавляем туда строчку:

auth required pam_google_authenticator.so

Для ssh, чуть сложнее, нужно в конфиг sshd добавить строчку:

ChallengeResponseAuthentication yes

и перезапустить сервис sshd.

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

Думаю все должны понимать, что это стоит попробовать на новом пользователе, чтобы не потерять доступ к серверу целиком. И только потом распространять на ssh, su и т.п. нужных пользователей.