"Secure Shell" SSH é un protocolo de rede para establecer unha conexión segura entre hosts, normalmente a través do porto 22 (que é mellor cambiar). Os clientes SSH e os servidores SSH están dispoñibles para a maioría dos sistemas operativos. Case calquera outro protocolo de rede funciona dentro de SSH, é dicir, pode traballar de forma remota noutro ordenador, transmitir un fluxo de audio ou vídeo a través dunha canle cifrada, etc. Ademais,
A autenticación prodúcese mediante un contrasinal, pero os desenvolvedores e os administradores do sistema usan tradicionalmente claves SSH. O problema é que a chave privada pode ser roubada. Engadir unha frase de paso protexe teoricamente contra o roubo da clave privada, pero na práctica, ao reenviar e almacenar as claves en caché, estas
Como implementar a autenticación de dous factores
Os desenvolvedores de Honeycomb publicaron recentemente
As instrucións supoñen que tes un determinado servidor básico aberto a Internet (bastión). Quere conectarse a este host desde ordenadores portátiles ou ordenadores a través de Internet e acceder a todos os demais dispositivos que se atopan detrás del. 2FA garante que un atacante non pode facer o mesmo aínda que teña acceso ao teu portátil, por exemplo instalando malware.
A primeira opción é OTP
OTP: contrasinais dixitais únicos, que neste caso se usarán para a autenticación SSH xunto coa chave. Os desenvolvedores escriben que esta non é unha opción ideal, porque un atacante podería levantar un bastión falso, interceptar o seu OTP e usalo. Pero é mellor que nada.
Neste caso, no lado do servidor, escríbense as seguintes liñas na configuración de Chef:
metadata.rb
attributes/default.rb
(desdeattributes.rb
)files/sshd
recipes/default.rb
(copia derecipe.rb
)templates/default/users.oath.erb
Calquera aplicación OTP está instalada no lado do cliente: Google Authenticator, Authy, Duo, Lastpass, instalado brew install oath-toolkit
ou apt install oathtool openssl
, entón xérase unha cadea aleatoria base16 (chave). Convértese ao formato Base32 que usan os autenticadores móbiles e impórtanse directamente na aplicación.
Como resultado, pode conectarse a Bastion e ver que agora require non só unha frase de acceso, senón tamén un código OTP para a autenticación:
➜ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
A segunda opción é a autenticación de hardware
Neste caso, o usuario non está obrigado a introducir o código OTP cada vez, xa que o segundo factor pasa a ser o dispositivo de hardware ou a biometría.
Aquí a configuración de Chef é un pouco máis complicada e a configuración do cliente depende do SO. Pero despois de completar todos os pasos, os clientes en MacOS poden confirmar a autenticación en SSH usando unha frase de paso e colocando un dedo no sensor (segundo factor).
Os propietarios de iOS e Android confirman o inicio de sesión
En Linux/ChromeOS hai unha opción para traballar con tokens USB YubiKey. Por suposto, un atacante pode roubar a túa ficha, pero aínda non coñece a frase de paso.
Fonte: www.habr.com