Autenticação SSH de dois fatores apenas no endereço externo

11

Eu tenho um servidor Ubuntu com um IP privado, interno, IP e um IP público. Quero configurar a autenticação de dois fatores para o SSH apenas do lado público. Isso é possível? Eu estava pensando em usar o Google Authenticator, mas também estou aberto a idéias alternativas.

Brett F.
fonte
Para obter informações, consulte também unix.stackexchange.com/questions/388384/…
FarO 08/04/19

Respostas:

15

Sim, você pode fazer isso com pam_access.so. Esta receita foi retirada do wiki do Google Authenticator :

Uma receita útil do PAM é permitir ignorar a autenticação de dois fatores quando a conexão se origina de certas fontes. Isso já é suportado pelo PAM. Por exemplo, o módulo pam_access pode ser usado para verificar a fonte em relação às sub-redes locais:

# 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

Nesse caso, access-local.conf se parece com:

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

Portanto, as tentativas de login de 10.0.0.0/24 não exigirão autenticação de dois fatores.

Michael Hampton
fonte
1
Era exatamente o que eu estava procurando. Não sei por que não o vi antes. Obrigado!
Brett F.
4
Michael Hampton Obrigado pelo exemplo, mas isso não funcionou para mim porque eu continuava recebendo o erro Permissão negada (teclado interativo). Eu descobri isso porque eu usei AuthenticationMethods publickey,keyboard-interactiveno meu /etc/ssh/sshd_config. Então mudei o seguinte para corrigi-lo:auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird
@JeremyLaird essas linhas são munged .. onde estão as novas linhas?
shadowbq