Acceso Seguro a nuestro servidores SSH via Teleport

Teleport es un Gateway para asegurar acceso remotos a servidores Linux o la API de Kubernetes. Esta destinado a ser usado en lugar de OpenSSH para organizaciones que necesiten proteger su infraestructura, cumplir con las mejores practicas de seguridad y los requerimientos de compliance. Nos ayuda a tener visibilidad completa de la actividad que ocurre en la arquitectura, reduciendo el tiempo operativo de la administración de acceso privilegiado sea en la nube o en On Premises.

Teleport tiene como objetivo ser un proxy ssh y nos trae el concepto de entorno en lugar de servidores.

Características

  • Un solo Gateway para acceso SSH o Kubernetes, para toda la organización.

  • Autenticación basada en certificados, en lugar de claves estáticas.

  • Nos evita la distribución de claves. Las llaves entregadas tienen caducidad automatica por la autoridad certificadora ( CA ).

  • Conectarse a clusters ubicados por detrás de firewalls sin acceso directo a internet través de bastiones SSH.

  • Capacidad de gestionar la confianza entre equipos, organizaciones y centros de datos.

  • Acceso SSH / Kubernetes a enternos sin necesidad de puertos abiertos.

  • Control de Acceso basado en Roles ( RBAC ).

  • Unica herramienta para administrar los accesos.

  • Registros de Auditoria y Grabación de sesiones.

¿Como funciona?

Vamos a configurar nuestro acceso SSH al master del cluster Kubernetes. En otra entrada haremos la configuración a la API de Kubernetes para interactuar con kubectl. Para esto necesitaremos un servidor con el servicio SSH y un servidor, con Teleport, que hara de Proxy | PAM al servicio.

Mi escenario es el siguiente. Tengo 3 servidores, con Ubuntu 20.04:

master.local192.168.205.138
worker01.local192.168.205.139
teleport.local192.168.205.135

Si no sabes como instalar un cluster de Kubernetes, te dejo este articulo.

Para instalar teleport en Ubuntu, podes hacerlo de esta manera.

Generación de Usuario

Lo primero que tenemos que hacer es crear el usuario en nuestro servidor para comenzar las configuraciones. Vamos a usar el siguente comando, dentro del servidor de teleport.

sudo tctl users add teleport-ssh --roles=editor,access --logins=root,santiago

Creamos el usuario teleport-ssh con roles de editor y acceso, donde solo podrá loggearse con root y santiago.

Con la URL que nos entrega terminamos de generar el usuario, para ello tenemos una hora. Sera necesario contar con un dispositivo móvil para configurar el MFA. En mi caso usare Authy.

Una vez realizado el log on, revisamos la consola y vemos nuestro usuario. Teleport siempre impondrá el uso de autenticación de dos factores de forma predeterminada. Admite contraseñas de un solo uso (OTP) y tokens de hardware (U2F). Este inicio rápido utilizará OTP; necesitará una aplicación compatible con OTP que pueda escanear un código QR.

Logging con Cliente tsh

Tenemos que instalar la maquina cliente para poder interactuar con nuestro Jump Server. Para ello debemos seguir este tutorial.

Vamos a probar nuestro login a teleport. Luego agregaremos un nodo, en este caso el master de Kubernetes.

Agregando un Nodo

Nos autenticamos en nuestro master de Teleport para generar el token de Join.

sudo tctl tokens add -type=node --ttl=1h

Ahora nuestro master node de Kubernetes es parte de la granja de teleport.

Revisamos en la GUI

Hacemos el logging SSH via tsh.

Revisamos la auditoria...

Esto es todo por ahora. Es una herramienta interesante para auditar a terceros o los mismos administradores de nuestro entorno. Les recomiendo leer la documentación para grabar sesiones y otras características. En la proxima entrada agregaremos la API de Kubernetes. ¡Espero les sirva!

0
Subscribe to my newsletter

Read articles from Santiago Fernandez directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Santiago Fernandez
Santiago Fernandez

I have a bachelor's degree in Technology from the University of Palermo, a Master in Information Security from the University of Murcia and different certifications such as CISSP | CISM | CDPSE | CCSK | CSX | MCSA | SMAC™️ | DSOE | DEPC | CSFPC | CSFPC | 5x AWS Certified. He is currently CISO at Klar, a Mexican Fintech. He was fortunate to be awarded as CISO of the Year in Argentina in 2021 and was among the Top 100 CISO's in the World in 2022. A lover of new technologies, he has developed a career in DevSecOps and Cloud Security at Eko Party, the largest security conference in Latin America.