Então, eu tenho esse pequeno yubikey e quero adicionar uma camada adicional de segurança ao autenticar sessões ssh. No lado do servidor, já desabilitei a autenticação por senha e só permiti o uso de chaves ssh ao efetuar login.
O problema é que, depois de configurar o sshd e o PAM para a autenticação do yubikey, o sshd ainda exige apenas uma chave ssh, nunca me pedem para fornecer uma resposta do yubikey.
Como eu exijo as teclas ssh e yubikey?
(ubuntu 14.04 - trusty)
/etc/pam.d/common-auth
:
auth required pam_yubico.so mode=client try_first_pass id=<id> key=<secret>
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config
/etc/ssh/sshd_config
:
...
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
ssh
two-factor
ben lemasurier
fonte
fonte
Respostas:
Ok, continuei e acho que encontrei uma solução razoável. A principal coisa que eu estava perdendo anteriormente era do sshd
AuthenticationMethods publickey,password
. Isso reforça o requisito de uma chave pública e uma senha - a "senha" está sendo manipulada agoraPAM->auth-yubi
. Alterações adicionais também foram necessárias, veja abaixo:(ubuntu 14.04 - confiável):
/etc/pam.d/yubi-auth
Nota: você pode obter seu ID de acesso e chave secreta aqui
/etc/pam.d/sshd
/ etc / ssh / sshd_config
service ssh restart
Verificação
SSH de um host remoto sem uma chave pública
SSH de um host remoto com uma chave pública
Melhoria
Seria bom ver "Yubikey Auth:" em vez de "password:" no servidor ssh remoto ao autenticar.
O que acontece quando o servidor ssh não consegue entrar em contato com o sistema de verificação de autenticação do yubico? Uma solução ideal seria totalmente independente.
Comentários e sugestões apreciados.
fonte
Configurar o 2FA com o Yubikey pode ser complicado ( apesar de existir um patch openssh para o U2F ), mas a maneira mais fácil é provavelmente a descrita no site oficial do Yubico .
É basicamente a maneira de armazenar sua chave privada no Yubikey e protegê-la com PIN. Não é exatamente o 2FA que você descreve (mas é algo que você tem e o que você sabe ), mas aumenta ainda mais a segurança (o Yubikey bloqueia após algumas tentativas malsucedidas).
TL: DR;
fonte