Meu objetivo é obter login SSH 2FA (senha + OTP) quando conectado de fora da minha rede local, enquanto uso login SSH "somente senha" da rede local (192.168.1.0/24).
Atualmente tenho o primeiro bit (senha + OTP) funcionando com a seguinte configuração:
Meu /etc/ssh/sshd_config
:
KbdInteractiveAuthentication yes
UsePAM yes
Meu /etc/pam.d/sshd
:
#@include common-auth
auth required pam_unix.so nullok_secure
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6
Como obter o segundo bit (somente senha, sem OTP) da rede local?
Desde já, obrigado!
O segundo campo da configuração do PAM suporta uma sintaxe estendida:
[result=action…]
. Se você especificar um número como a ação, isso significa "pular esse número de módulos para baixo", por exemplo,[success=1]
pulará o próximo módulo se este tiver retornado PAM_SUCCESS.Então você pode pegar um módulo existente que verifica endereços IP – pam_access – e integrá-lo dessa forma para que ele não influencie o resultado final por si só, mas faça com que o pam_oath seja ignorado: