padrões do setor para usar o google-authenticator com usuários do Linux?

5

Gostaria de perguntar, particularmente àqueles que executam grandes ambientes com muitos usuários, se há alguma maneira padronizada ou recomendada pela indústria de distribuir com segurança os códigos de verificação para usuários remotos e / ou forçar o usuário a reexecutar o google-authenticator a primeira vez que eles efetuam login via ssh em um host Linux configurado com o módulo libpam que requer que um usuário insira a senha unix mais o código de verificação toda vez que efetuarem login no ssh? Assumindo que o administrador do sistema configura a conta, existe uma maneira de fazer isso?

(a) não precisam do google-authenticator na primeira vez que efetuam login e forçam-nos a executá-lo para que possam recuperar com segurança seu código de verificação -ou- (b) o administrador do sistema o executa para eles como parte da criação da conta, e com segurança (e facilmente, dado que pode haver muitos usuários) distribui o código mais a senha unix para o usuário?

Observe que um administrador do sistema pode usar o comando "chage" para forçar um usuário a alterar sua senha unix na primeira vez que fizerem login.

Estou interessado em todas as soluções práticas para isso, particularmente aquelas que são implementadas com sucesso em grandes ambientes. Como você obtém os códigos de dois fatores para novos usuários? Enviar via mensagem txt para seus celulares? Escreva em pedaços de papel e entregue a eles? ....?

    
por Michael Martinez 13.12.2015 / 02:47

2 respostas

0

Tanto quanto sei, não existe um padrão da indústria em relação ao google 2fa.

Se você tiver uma solução de gerenciamento de configuração, poderá usá-la para implantar o google 2fa em todos os seus usuários.

Eu tive a mesma necessidade que a sua, no meu caso eu escrevi um módulo Ansible que instala, configura e exibe as chaves de emergência para o usuário, esperando que o usuário seja responsável o suficiente para anotá-las por si mesmo.

O módulo também cria um usuário chamado "rescue", que sempre pode acessar a máquina.

Com um pequeno acréscimo ao módulo, você pode fazer com que o módulo exporte as chaves de emergência de cada usuário para uma unidade de rede compartilhada que você irá gerenciar / fazer backup.

Não tenho certeza de que esta é a resposta completa para você, mas dê uma olhada no meu módulo .

    
por 20.04.2017 / 16:45
0

Não tenho conhecimento de nenhuma solução disponível publicamente (opensource ou de outra forma) para distribuir chaves para sistemas locais. Eu fiz isso de duas maneiras.

1) FreeIPA (Redhat IDm)

Se você tiver a opção de usar o FreeIPA para o seu sistema de gerenciamento de usuários, poderá adicionar a Autenticação TOTP / Google a todas as contas, gerenciar os sistemas que exigem 2FA com o HBAC.

2) Aplicativo interno escrito por desenvolvedores

Em um caso, armazenamos centralmente os segredos do BASE32 em um banco de dados SQL (com criptografia 2016) e distribuímos essas chaves para servidores de autenticação de gateway (radius). Cada um desses servidores tem um agente que extrai chaves de um ponto de extremidade da API e as grava em uma pasta específica. Nosso aplicativo interno também é usado para outras informações do funcionário, de modo que é onde expomos seus códigos QR. Nós não usamos o google-auth para a geração de código, apenas o próprio módulo pam.

Também não escrevemos as chaves de uso únicas, pois essas chaves não seriam usadas uma vez e a redistribuição desses arquivos impediria a rotação dessas chaves.

Considere também as permissões de arquivos locais, os usuários de serviços e o selinux, não execute o pam como root.

    
por 20.04.2017 / 16:56