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.local | 192.168.205.138 |
worker01.local | 192.168.205.139 |
teleport.local | 192.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!
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.