Двофакторна автентифікація SSH тільки на зовнішній адресі


11

У мене є сервер Ubuntu як з приватним, внутрішнім, IP, так і з відкритим IP-адресою. Я хочу встановити двофакторну аутентифікацію для SSH лише на загальнодоступній стороні. Чи можливо це? Я планував використовувати Google Authenticator, але також відкритий до альтернативних ідей.


Докладніше див. Також unix.stackexchange.com/questions/388384/…
FarO

Відповіді:


15

Так, ви можете це зробити за допомогою pam_access.so. Цей рецепт взято з вікі для Google Authenticator :

Корисний рецепт PAM полягає в тому, щоб дозволити пропуск двофакторної аутентифікації, коли з'єднання походить з певних джерел. Це вже підтримується PAM. Наприклад, модуль pam_access можна використовувати для перевірки джерела на локальні підмережі:

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

У цьому випадку access-local.conf виглядає так:

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

Таким чином, спроби входу з 10.0.0.0/24 не вимагатимуть двофакторної аутентифікації.


1
Саме це я і шукав. Не впевнений, чому я цього не бачив раніше. Спасибі!
Бретт Ф.

4
Майкл Хемптон Дякую за приклад, але це не спрацювало для мене, тому що я продовжував отримувати помилку. Дозвіл відхилено (інтерактивна клавіатура). Я зрозумів це, бо використовував AuthenticationMethods publickey,keyboard-interactiveу своєму /etc/ssh/sshd_config. Тому я змінив наступне, щоб виправити це:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Джеремі Лаїрд

@JeremyLaird ці рядки розміщуються .. де нові рядки?
shadowbq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.