Operação e diagnóstico
Fluxo operacional de provisionamento
O fluxo consolidado a partir das fontes é:
- coletar nome de usuário, nome completo, e-mail e chave pública;
- validar se o usuário já existe;
- validar minimamente a chave pública;
- criar o usuário local;
- instalar
authorized_keys; - associar o usuário ao grupo do jail;
- criar a árvore de chroot;
- copiar binários, bibliotecas e arquivos mínimos;
- criar dispositivos mínimos;
- gerar o segredo TOTP;
- gerar QR Code;
- entregar o MFA ao usuário;
- testar login com sessão administrativa paralela aberta;
- registrar a liberação.
Rotinas de manutenção
- Remover usuário e respectivo jail.
- Trocar chave SSH.
- Recriar segredo MFA.
- Revogar acesso em caso de desligamento ou incidente.
- Incluir novo binário no jail.
- Atualizar bibliotecas após atualização do sistema.
- Reconstruir o jail quando houver mudança significativa na base do sistema.
- Validar
sshd_configapós qualquer alteração. - Manter procedimento de recuperação administrativa.
Registro operacional mínimo
Cada provisionamento ou revogação deve registrar:
- solicitante;
- usuário afetado;
- chave pública cadastrada ou revogada, preferencialmente por fingerprint;
- data da geração ou recriação do MFA;
- responsável pela execução;
- resultado do teste de login;
- pendências e exceções aceitas.
Não registrar segredo TOTP, QR Code ou códigos de emergência.
Rollback
As fontes históricas não apresentam rollback transacional completo. Em caso de falha parcial, verificar e limpar manualmente:
- conta local;
- grupo suplementar;
- home original;
- diretório dentro do jail;
- arquivo
.google_authenticator; - chave em
authorized_keys; - arquivos temporários de QR Code;
- alterações feitas em conta administrativa de contingência.
Diagnóstico
Chave SSH rejeitada
Verificar:
- presença da chave pública correta em
authorized_keys; - permissões do diretório home,
.ssheauthorized_keys; - formato da chave;
- usuário informado na conexão;
- logs do OpenSSH.
MFA não solicitado
Verificar:
UsePAM yes;- método interativo habilitado na versão do OpenSSH;
- presença do módulo
pam_google_authenticator.so; - ordem da pilha PAM;
- efeito do parâmetro
nullok; - existência do arquivo
.google_authenticator.
MFA sempre rejeitado
Verificar:
- horário do servidor;
- horário do dispositivo do usuário;
- segredo TOTP cadastrado;
- recriação recente do arquivo
.google_authenticator; - permissões do arquivo de MFA.
Login autentica, mas o chroot falha
Verificar:
- propriedade do diretório usado por
ChrootDirectory; - permissões dos diretórios acima do jail;
- existência da árvore do usuário;
- expansão correta de
%u; - logs do OpenSSH.
Comando não encontrado dentro do jail
Verificar:
- presença do binário;
- variável
PATH; - symlinks
bin,sbin,libelib64; - shell configurado para o usuário.
Biblioteca ou loader ausente
Verificar:
- saída de
ldddo binário fora do jail; - presença do loader dinâmico;
- bibliotecas em caminhos multiarquitetura;
- cópia com
--parents; - bibliotecas carregadas indiretamente em tempo de execução.
DNS sem funcionar dentro do jail
Verificar:
/etc/resolv.conf;/etc/nsswitch.conf;- bibliotecas NSS;
- permissões dos arquivos copiados.
Terminal quebrado
Verificar:
TERM;- terminfo em
/lib/terminfoou/usr/share/terminfo; - arquivos de perfil carregados no shell.
Envio do QR Code falhando
Verificar:
- conectividade com o relay;
- porta SMTP;
- formato dos endereços;
- resposta SMTP real;
- geração do arquivo PNG;
- remoção prematura de temporários.
Usuário criado parcialmente
Verificar:
- usuário local;
- home original;
- home copiado para o jail;
- grupo;
- arquivo
.google_authenticator; - arquivo temporário de QR Code;
- diretório do jail;
- necessidade de rollback manual.
Relação com implantação
- Requisitos prévios estão em Pré-requisitos.
- Falhas ligadas ao OpenSSH devem ser cruzadas com Configuração OpenSSH.
- Falhas de segundo fator devem ser cruzadas com Configuração PAM/MFA.
- Falhas de ambiente restrito devem ser cruzadas com Construção do chroot.