* [sisyphus] двухфакторная аутентификация с google authenticator
@ 2019-09-19 14:55 Alexei Mezin
2019-09-20 4:12 ` Anton Farygin
0 siblings, 1 reply; 11+ messages in thread
From: Alexei Mezin @ 2019-09-19 14:55 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
Сизиф, только что обновил систему, поставил google authenticator.
Настройки такие:
# cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_google_authenticator.so
auth required pam_userpass.so
auth include common-login-use_first_pass
account include common-login
password include common-login
session include common-login
В sshd_config изменил одну строку
# Change to yes to enable s/key passwords
ChallengeResponseAuthentication yes
Перезаупстил sshd.
Кратко резюмирую ситуацию:
если логиниться по сети, то ни один код не подходит, хоть в логах не
пишется про ошибку с кодом, пишется только про "PAM: Application needs
to call libpam again".
если логиниться на локалхост из уже открытой сессии, и ввести ДВА раза
подряд один и тот же валидный код, то доходит до запроса пароля, но
пароль оказывается неправильным. Если вводить один раз код, то ничего не
происходит, снова запрашивает код.
Это у всех так, или я что-то неправильно готовлю?
Хронология: пытаюсь по сети попасть на сервер:
sshd[31113]: error: PAM: Application needs to call libpam again for
alexei from 192.168.1.4
sshd(pam_google_authenticator)[31118]: Trying to reuse a previously used
time-based code. Retry again in 30 seconds. Warning! This might mean,
you are currently subject to a man-in-the-middle attack.
sshd(pam_google_authenticator)[31118]: Invalid verification code
sshd[31113]: error: PAM: Application needs to call libpam again for
alexei from 192.168.1.4
хм... просроченный код. Ок, жду следующего, ввожу:
sshd[31113]: error: PAM: Application needs to call libpam again for
alexei from 192.168.1.4
sshd[31113]: Postponed keyboard-interactive for alexei from 192.168.1.4
port 42962 ssh2 [preauth]
А нифига не работает.
Ок, попытка номер два, в этот раз логин из уже залогиненной сессии
sshd(pam_google_authenticator)[31352]: Failed to compute location of
secret file
sshd[31348]: error: PAM: Application needs to call libpam again for
alexei from 127.0.0.1
sshd[31348]: error: PAM: Application needs to call libpam again for
alexei from 127.0.0.1
и так далее. В итоге если ДВА раза подряд ввести правильный (не
протухший во времени) код, то система запрашивает обычным запросом
пароль пользователя, но даже правильный пароль не принимает!
sshd[31348]: pam_tcb(sshd:auth): Authentication passed for alexei from
(uid=0)
sshd[31348]: Failed password for alexei from 127.0.0.1 port 54922 ssh2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-19 14:55 [sisyphus] двухфакторная аутентификация с google authenticator Alexei Mezin
@ 2019-09-20 4:12 ` Anton Farygin
2019-09-20 6:04 ` Alexei V. Mezin
0 siblings, 1 reply; 11+ messages in thread
From: Anton Farygin @ 2019-09-20 4:12 UTC (permalink / raw)
To: sisyphus
On 19.09.2019 17:55, Alexei Mezin wrote:
> Сизиф, только что обновил систему, поставил google authenticator.
>
> Настройки такие:
> # cat /etc/pam.d/sshd
> #%PAM-1.0
> auth required pam_google_authenticator.so
> auth required pam_userpass.so
> auth include common-login-use_first_pass
> account include common-login
> password include common-login
> session include common-login
>
>
> В sshd_config изменил одну строку
> # Change to yes to enable s/key passwords
> ChallengeResponseAuthentication yes
>
> Перезаупстил sshd.
>
>
> Кратко резюмирую ситуацию:
> если логиниться по сети, то ни один код не подходит, хоть в логах не
> пишется про ошибку с кодом, пишется только про "PAM: Application needs
> to call libpam again".
>
> если логиниться на локалхост из уже открытой сессии, и ввести ДВА раза
> подряд один и тот же валидный код, то доходит до запроса пароля, но
> пароль оказывается неправильным. Если вводить один раз код, то ничего
> не происходит, снова запрашивает код.
>
> Это у всех так, или я что-то неправильно готовлю?
>
Предполагаю что ты единственный пользователь Альта, кто пытается сделать
такую схему аутентификации.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 4:12 ` Anton Farygin
@ 2019-09-20 6:04 ` Alexei V. Mezin
2019-09-20 7:35 ` Denis Medvedev
0 siblings, 1 reply; 11+ messages in thread
From: Alexei V. Mezin @ 2019-09-20 6:04 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
20.09.2019 7:12, Anton Farygin пишет:
> Предполагаю что ты единственный пользователь Альта, кто пытается сделать
> такую схему аутентификации.
Хм... ну Ок. Но инструмент-то имеется! Кто-то же его в Сизиф положил :)
Да и задача не сказать чтоб редкая и экзотическая.
Потыкал в этот снаряд еще. Гугл говорит, что у всех работает, а у нас
наверное слишком особенный sshd/pam.
Ситуация примерно такая:
№1 если ставить вызов google_auth первым в списке
#%PAM-1.0
auth requisite pam_google_authenticator.so
echo_verification_code nullok
auth required pam_userpass.so
...
То при попытке логина ожидаемо сначала запрашивается одноразовый код. В
логах видно, что он принимается корректно, но сразу же выскакивает надпись
sshd[31113]: error: PAM: Application needs to call libpam again for
alexei from 192.168.1.4
И второго запроса уже обычного пароля не происходит. Снова запрашивается
код. После трех попыток видимо google-часть сдается, и тогда уже виден
запрос пароля, но к успеху он не приводит.
№2 если поставить вызов google_auth после прочих auth, то сначала
ожидаемо запрашивается пароль на вход в систему. Но входа не происходит.
В логах видно, что google_auth не получила корректного кода. Но как бы
она его смогла получить, если запрос кода не выдается?
№3 если гугло-часть поставить вперед, снабдив ключом forward_pass, то
нормально происходит запрос вида "введите пароль и код". Если в одну
строку ввести пароль и код в формате passwd111122222, то гугло-часть
исправно получает свой код, видимо передает пароль дальше (где его
должны перехватить ключем use_first_pass), но все снова возвращается на
запрос пароля-кода с вот таким диагнозом
sshd[3566]: pam_tcb(sshd:auth): Authentication passed for alexei from
(uid=0)
sshd[3564]: error: PAM: Conversation error for alexei from 127.0.0.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 6:04 ` Alexei V. Mezin
@ 2019-09-20 7:35 ` Denis Medvedev
2019-09-20 7:41 ` Paul Wolneykien
0 siblings, 1 reply; 11+ messages in thread
From: Denis Medvedev @ 2019-09-20 7:35 UTC (permalink / raw)
To: alexei.mezin, ALT Linux Sisyphus discussions, Alexei V. Mezin
20.09.2019 9:04, Alexei V. Mezin пишет:
> 20.09.2019 7:12, Anton Farygin пишет:
>
>> Предполагаю что ты единственный пользователь Альта, кто пытается
>> сделать такую схему аутентификации.
>
> Хм... ну Ок. Но инструмент-то имеется! Кто-то же его в Сизиф положил
> :) Да и задача не сказать чтоб редкая и экзотическая.
>
>
>
> Потыкал в этот снаряд еще. Гугл говорит, что у всех работает, а у нас
> наверное слишком особенный sshd/pam.
>
> Ситуация примерно такая:
>
> №1 если ставить вызов google_auth первым в списке
>
> #%PAM-1.0
> auth requisite pam_google_authenticator.so
> echo_verification_code nullok
> auth required pam_userpass.so
> ...
>
> То при попытке логина ожидаемо сначала запрашивается одноразовый код.
> В логах видно, что он принимается корректно, но сразу же выскакивает
> надпись
>
> sshd[31113]: error: PAM: Application needs to call libpam again for
> alexei from 192.168.1.4
>
> И второго запроса уже обычного пароля не происходит. Снова
> запрашивается код. После трех попыток видимо google-часть сдается, и
> тогда уже виден запрос пароля, но к успеху он не приводит.
>
> №2 если поставить вызов google_auth после прочих auth, то сначала
> ожидаемо запрашивается пароль на вход в систему. Но входа не
> происходит. В логах видно, что google_auth не получила корректного
> кода. Но как бы она его смогла получить, если запрос кода не выдается?
>
> №3 если гугло-часть поставить вперед, снабдив ключом forward_pass, то
> нормально происходит запрос вида "введите пароль и код". Если в одну
> строку ввести пароль и код в формате passwd111122222, то гугло-часть
> исправно получает свой код, видимо передает пароль дальше (где его
> должны перехватить ключем use_first_pass), но все снова возвращается
> на запрос пароля-кода с вот таким диагнозом
>
> sshd[3566]: pam_tcb(sshd:auth): Authentication passed for alexei from
> (uid=0)
> sshd[3564]: error: PAM: Conversation error for alexei from 127.0.0.1
могу посоветовать вставить аутентификатор в login и поотлаживаться
сначала на консоли.
>
>
> _______________________________________________
> Sisyphus mailing list
> Sisyphus@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/sisyphus
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 7:35 ` Denis Medvedev
@ 2019-09-20 7:41 ` Paul Wolneykien
2019-09-20 8:01 ` Alexei V. Mezin
0 siblings, 1 reply; 11+ messages in thread
From: Paul Wolneykien @ 2019-09-20 7:41 UTC (permalink / raw)
To: sisyphus
20.09.2019 10:35, Denis Medvedev пишет:
>> sshd[3566]: pam_tcb(sshd:auth): Authentication passed for alexei from
>> (uid=0)
>> sshd[3564]: error: PAM: Conversation error for alexei from 127.0.0.1
> могу посоветовать вставить аутентификатор в login и поотлаживаться
> сначала на консоли.
Есть pamtester — им ещё удобнее.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 7:41 ` Paul Wolneykien
@ 2019-09-20 8:01 ` Alexei V. Mezin
2019-09-20 11:41 ` Alexei Mezin
0 siblings, 1 reply; 11+ messages in thread
From: Alexei V. Mezin @ 2019-09-20 8:01 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
20.09.2019 10:41, Paul Wolneykien пишет:
>> могу посоветовать вставить аутентификатор в login и поотлаживаться
>> сначала на консоли.
>
> Есть pamtester — им ещё удобнее.
Тогда подскажите, что и как отлаживать. Гугловская часть работает судя
по всему:
# cat /etc/pam.d/google-auth
#%PAM-1.0
auth required pam_google_authenticator.so
echo_verification_code nullok
# pamtester google-auth alexei authenticate
Verification code: 312473
pamtester: successfully authenticated
А вот как заставить sshd спрашивать пароль два раза, один раз
традиционный, второй раз гугловский код?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 8:01 ` Alexei V. Mezin
@ 2019-09-20 11:41 ` Alexei Mezin
2019-09-20 15:36 ` Dmitry V. Levin
0 siblings, 1 reply; 11+ messages in thread
From: Alexei Mezin @ 2019-09-20 11:41 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
20.09.2019 11:01, Alexei V. Mezin пишет:
> Тогда подскажите, что и как отлаживать. Гугловская часть работает судя
> по всему:
Так, вот в чем дело (вероятно):
у нас sshd сначала использует
auth required pam_userpass.so
который принимает пароль и передает его дальше на
auth include common-login-use_first_pass
Именно поэтому используется use_first_pass. И такая схема не
срабатывает, если надо запросить пароль два раза. Зачем pam_userpass.so
не очень понятно
pam_userpass is a PAM authentication module for use specifically by
services implementing non-interactive protocols and wishing
to verify a username/password pair.
Наверное это что-то очень нужное для хождения какого-нить git по ключу и
т.п. Расскажите, что отвалится у "обычного пользователя", если sshd
будет работать напрямую с
auth include system-auth-local
Как минимум удаленный вход на сервер по паролю и sftp не отвалились :)
Кратко резюмируя: вот с таким конфигом как минимум удаленно пускает на
сервер с применением двухфакторной аутентификации.
# cat /etc/pam.d/sshd
#%PAM-1.0
auth include system-auth-local
auth required pam_google_authenticator.so
echo_verification_code nullok
account include common-login
password include common-login
session include common-login
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 11:41 ` Alexei Mezin
@ 2019-09-20 15:36 ` Dmitry V. Levin
2019-09-20 20:03 ` Alexei V. Mezin
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2019-09-20 15:36 UTC (permalink / raw)
To: sisyphus
On Fri, Sep 20, 2019 at 02:41:59PM +0300, Alexei Mezin wrote:
[...]
> Кратко резюмируя: вот с таким конфигом как минимум удаленно пускает на
> сервер с применением двухфакторной аутентификации.
>
> # cat /etc/pam.d/sshd
> #%PAM-1.0
> auth include system-auth-local
> auth required pam_google_authenticator.so
> echo_verification_code nullok
Неужели у pam_google_authenticator нет use_first_pass?
--
ldv
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 15:36 ` Dmitry V. Levin
@ 2019-09-20 20:03 ` Alexei V. Mezin
2019-09-20 21:53 ` Dmitry V. Levin
0 siblings, 1 reply; 11+ messages in thread
From: Alexei V. Mezin @ 2019-09-20 20:03 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
20.09.2019 18:36, Dmitry V. Levin пишет:
> Неужели у pam_google_authenticator нет use_first_pass?
>
Есть. Но я не понимаю, что с ним делать.
Если вызывать google_auth с use_first_pass после pam_userpass и
common-login-use_first_path, то запрос кода не происходит. Если вызывать
сразу после pam_userpass, то запрос тоже не происходит, в логах
sshd(pam_google_authenticator)[6561]: Invalid verification code
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 20:03 ` Alexei V. Mezin
@ 2019-09-20 21:53 ` Dmitry V. Levin
2019-09-21 6:42 ` Alexei V. Mezin
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2019-09-20 21:53 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
[-- Attachment #1: Type: text/plain, Size: 780 bytes --]
On Fri, Sep 20, 2019 at 11:03:23PM +0300, Alexei V. Mezin wrote:
> 20.09.2019 18:36, Dmitry V. Levin пишет:
>
> > Неужели у pam_google_authenticator нет use_first_pass?
>
> Есть. Но я не понимаю, что с ним делать.
>
> Если вызывать google_auth с use_first_pass после pam_userpass и
> common-login-use_first_path, то запрос кода не происходит. Если вызывать
> сразу после pam_userpass, то запрос тоже не происходит, в логах
>
> sshd(pam_google_authenticator)[6561]: Invalid verification code
А что вообще должен делать этот pam_google_authenticator?
Если двум разным модулям нужно передать разные пароли, то второму модулю
точно нельзя указывать параметр use_first_pass, иначе он будет брать
пароль, запрошенный ранее для первого модуля.
--
ldv
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [sisyphus] двухфакторная аутентификация с google authenticator
2019-09-20 21:53 ` Dmitry V. Levin
@ 2019-09-21 6:42 ` Alexei V. Mezin
0 siblings, 0 replies; 11+ messages in thread
From: Alexei V. Mezin @ 2019-09-21 6:42 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
21.09.2019 0:53, Dmitry V. Levin пишет:
> А что вообще должен делать этот pam_google_authenticator?
>
Работает оно так:
* на компьютере генерируется ключ, который передается пользователю
* пользователь на своем телефоне ставит программку, и заносит в нее ключ
* при попытке входа в систему компьютер запрашивает код. Пользователь на
телефоне (интернет не нужен) генерирует код. Код генерируется на основе
выданного ключа и текущего времени. По умолчанию код валиден 30 секунд,
а потом генерируется следующий. Компьютер, у которого есть такой же ключ
и на часах такое же время, проверяет код.
Во всех интернетах пишут, что СМСки для авторизации ненадежны, а вот
этот подход гораздо лучше. Не знаю почему ненадежны СМСки, но они явно
многократно сложнее/дороже, чем этот метод. Главное, чтоб часы на компе
и телефоне не расходились более чем на десяток секунд.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-09-21 6:42 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-19 14:55 [sisyphus] двухфакторная аутентификация с google authenticator Alexei Mezin
2019-09-20 4:12 ` Anton Farygin
2019-09-20 6:04 ` Alexei V. Mezin
2019-09-20 7:35 ` Denis Medvedev
2019-09-20 7:41 ` Paul Wolneykien
2019-09-20 8:01 ` Alexei V. Mezin
2019-09-20 11:41 ` Alexei Mezin
2019-09-20 15:36 ` Dmitry V. Levin
2019-09-20 20:03 ` Alexei V. Mezin
2019-09-20 21:53 ` Dmitry V. Levin
2019-09-21 6:42 ` Alexei V. Mezin
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git