Cómo instalar un clúster de Teleport en Debian 11

Teleport es un código abierto que puede utilizarse como plano de acceso para tu infraestructura global. Proporciona acceso de confianza cero a varios servicios como servidores, clústeres Kubernetes, servidores de bases de datos, aplicaciones DevOps como la consola de administración de AWS, CI/CD, control de versiones y escritorios. Teleport es la única fuente de verdad para el acceso, sincronizada en toda tu infraestructura.

Teleport puede eliminar la necesidad de servicios como las VPN, proporcionando una única puerta de enlace para acceder a tu infraestructura informática global. Es un proxy de acceso nativo de identidad que te permite acceder a tu infraestructura de forma segura.

Teleport ha sido auditado públicamente por empresas de seguridad como Cure53 y Doyensec. Teleport está actualmente desplegado y es utilizado en producción por empresas como Samsung, NASDAQ, IBM, Epic Games y muchas más.

En esta guía, instalarás y configurarás Teleport, el plano de acceso de tu infraestructura, en un servidor Debian 11. Aprenderás a inicializar el clúster seguro de Teleport, a configurar el usuario de Teleport y a añadir nodos al clúster de Teleport con dos métodos diferentes.

Requisitos previos

Para empezar, necesitarás los siguientes requisitos:

  • Un servidor Debian 11 – Este ejemplo utiliza un servidor Debian con nombre de host«teleport-server» y dirección IP«192.168.5.100«.
  • Un usuario no root con privilegios de administrador sudo/root.
  • Un nombre de dominio apuntando a la dirección IP del servidor.
  • Letsencrypt SSL generado para tu nombre de dominio.
  • Aplicaciones de autenticación de dos factores como KeepassXC para usuarios de ordenador, Aegis para usuarios de Android o Google Authenticator para iOS.

También necesitarás otros nodos/servidores que añadirás al servidor Teleport. Puedes utilizar diferentes distribuciones de Linux, este ejemplo utiliza dos servidores‘cliente1‘ y‘cliente2‘ con ambos también el sistema Debian.

Cuando estés listo para continuar, inicia sesión con tu usuario y comienza a ejecutar los siguientes comandos para empezar.

Instalar Teleport en un servidor Debian

En primer lugar, instalarás los paquetes de Teleport en el ‘teleport-server’. Teleport proporciona paquetes DEB para las distribuciones basadas en Debian y paquetes RPM para las distribuciones basadas en RHEL.

En este paso, añadirás el repositorio de Teleport a tu servidor Debian. A continuación, instala los paquetes de Teleport mediante APT.

Ejecuta el siguiente comando apt para instalar las dependencias básicas para gestionar los repositorios.

sudo apt install curl wget apt-transport-https gnupg2

Introduce y cuando se te pida y pulsa ENTER para continuar.

instalar paquetes básicos

A continuación, ejecuta el siguiente comando para cargar las variables de entorno disponibles en el archivo ‘/etc/os-release’.

source /etc/os-release

Ejecuta el siguiente comando curl para descargar la clave GPG del repositorio Teleport. A continuación, añade el repositorio Teleport para las distribuciones basadas en Debian mediante los comandos echo y tee que aparecen a continuación.

sudo curl https://apt.releases.teleport.dev/gpg \
-o /usr/share/keyrings/teleport-archive-keyring.asc
echo "deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11" | \
sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

Después de añadir el repositorio de Teleport, ejecuta el comando apt de abajo para actualizar la caché de tu gestor de paquetes.

sudo apt update

Verás que el repositorio de Teleport se ha añadido a tu servidor Debian.

configurar repositorio

Ahora instala Teleport mediante el siguiente comando apt. La instalación de Teleport debería comenzar automáticamente.

sudo apt install teleport

instalar telepuerto

Después de instalar Teleport, puedes pasar a configurar tu despliegue de Teleport.

Configurar el servidor de Teleport

Para utilizar Teleport, primero debes configurar el propio Teleport. Debes tener el nombre de dominio que se utilizará para Teleport y los certificados SSL generados para proteger tu despliegue de Teleport.

En este paso, inicializarás la instalación de Teleport en un servidor Debian, habilitarás el panel de control de la aplicación web Teleport y, a continuación, iniciarás y habilitarás el servicio Teleport.

Este ejemplo utiliza el nombre de dominio«tele.hwdomain.io» para la implantación de Teleport y certificados SSL generados en el directorio«/etc/letsencrypt/live/tele.hwdomain.io/».

Para empezar, ejecuta el siguiente comando teleport para inicializar la configuración del servidor Teleport. Asegúrate también de cambiar el nombre del dominio, el nombre del clúster y la ruta de ambos certificados SSL, claves públicas y privadas.

sudo teleport configure -o file \
--cluster-name=tele.hwdomain.io \
--public-addr=tele.hwdomain.io:443 \
--cert-file=/etc/letsencrypt/live/tele.hwdomain.io/fullchain.pem \
--key-file=/etc/letsencrypt/live/tele.hwdomain.io/privkey.pem

En la salida de tu terminal, deberías ver la configuración de Teleport generada en el archivo‘/etc/teleport.yml’.

inicializar teletransporte

A continuación, abre el archivo de configuración de Teleport‘/etc/teleport.yaml’ utilizando el siguiente comando del editor nano.

sudo nano /etc/teleport.yaml

Añade las siguientes líneas al final del mismo. Con estas líneas, habilitarás el servicio web Teleport que proporciona un panel de administración. Además, asegúrate de cambiar el nombre de dominio ‘tele.hwdomain.io’.

app_service:
  enabled: yes
  apps:
  - name: "teleport-webapp"
    uri: "http://localhost:9000"
    public_addr: "tele.hwdomain.io"

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio Teleport.

sudo systemctl start teleport
sudo systemctl enable teleport

iniciar activar teletransporte

El servicio Teleport debe estar ejecutándose y habilitado, para que se inicie automáticamente al arrancar. Verifica el servicio Teleport utilizando el siguiente comando.

sudo systemctl status teleport

En la salida, deberías ver que el estado del servicio Teleport es en ejecución y está habilitado.

teletransporte de estado

En este punto, tu Cluster Teleport se está ejecutando con el servicio web habilitado sobre él. Para verificar que el servicio web de Teleport está habilitado, abre tu navegador web y visita el nombre de dominio de tu instalación de Teleport (es decir: https://tele.hwdomain.io/).

Ahora deberías obtener la página de inicio de sesión del servicio web Teleport.

teleport página de inicio de sesión

En los siguientes pasos, empezarás a configurar el usuario administrador de Teleport mediante la línea de comandos y el panel de administración web.

Configurar el usuario de Teleport

El servicio Teleport y el servicio web están funcionando, pero aún no puedes iniciar sesión en ellos porque todavía tienes que añadir un nuevo usuario Teleport. Con un usuario de Teleport, puedes gestionar el Cluster Teleport a través de las líneas de comando (tctl y tsh) o utilizando el panel de administración web que proporciona el servicio web Teleport.

Antes de crear un usuario Teleport, asegúrate de que la app Autenticación de Dos Factores está instalada en tus dispositivos. Puedes utilizar aplicaciones móviles a través de Aegis o Google Authentication, o puedes utilizar KeepassXC con un plugin 2FA para usuarios de ordenador.

En la máquina ‘teleport-server’, ejecuta el siguiente comando para crear un nuevo usuario Teleport.

sudo tctl users add teleport-admin --roles=editor,access --logins=root,debian,ec2-user

Este comando creará un nuevo usuario ‘teleport-admin’ con roles editor y acceso. Además, la bandera ‘–logins‘ permite a ‘teleport-admin‘ iniciar sesión en cualquier nodo a través del usuario root, debian o ec2-user. Los usuarios tras la bandera ‘ –login‘ deben crearse en los nodos de destino.

A continuación se muestra la salida similar que deberías recibir en tu terminal – Puedes ver el enlace generado que se utilizará para configurar el usuario de Teleport‘teleport-admin‘.

configurar usuario de teletransporte

Copia el enlace generado y pégalo en tu navegador web. Y deberías recibir el mensaje de bienvenida para configurar el nuevo usuario de Teleport. Pulsa el botón COMENZAR para empezar a configurar el nuevo usuario.

configurar usuario

Ahora introduce el nombre de usuario para tu usuario de Teleport e introduce la nueva contraseña segura y repite. Después haz clic en SIGUIENTE para continuar.

configurar contraseña de usuario

A continuación, debes configurar la Autenticación de Dos Factores para tu usuario de Teleport. Escanea el código QR que aparece en tu pantalla para añadir la nueva aplicación a tu aplicación 2FA.

Introduce el código de autenticación generado desde tu aplicación 2FA y haz clic en ENVIAR.

configurar usuario 2fa

Si el código 2FA es correcto, deberías recibir el mensaje ‘Registro correcto’ en tu pantalla. Esto significa que el nuevo usuario‘teleport-admin‘ está añadido y configurado.

Haz clic en IR AL DASHBOARD.

usuario finalizado

Ahora deberías obtener el panel de administración web de tu despliegue de Teleport, que se está ejecutando de forma segura con HTTPS activado y el usuario se ha creado con 2FA activado.

panel de administración del telepuerto

Gestionar el clúster Teleport a través de la línea de comandos

Teleports proporciona las líneas de comandos tsh y tctl que se pueden utilizar para gestionar Teleport Cluster. Ambas líneas de comando se incluyen por defecto con el paquete Teleport.

El comando tsh permite a los usuarios autenticarse y gestionar Teleport Cluster desde el terminal. Puedes añadir, editar o eliminar recursos de Teleport en el clúster. Por seguridad, debes ejecutar el comando tsh como usuario no root.
El comando tctl para instalar y configurar el Teleport Auth Service. Debe ejecutarse con privilegios sudo o root.

En este paso, accederás y gestionarás Teleport Cluster mediante las dos líneas de comandos tsh y tctl.

En primer lugar, inicia sesión con el usuario no root mediante el siguiente comando. En este ejemplo se utiliza el usuario‘debian‘.

su - debian

Ahora ejecuta el siguiente comando tsh para autenticarte en tu Cluster Teleport. Este ejemplo se autenticará en el Cluster Teleport que se ejecuta en el nombre de dominio‘tele.hwdomain.io‘ con el usuario ‘teleport-admin‘.

tsh login --proxy=tele.hwdomain.io --user=teleport-admin

Se te pedirá que introduzcas la contraseña del usuario «teleport-admin» y el código de autenticación OTP. Introduce la contraseña correcta para tu usuario y el código OTP correcto de tu aplicación 2FA.

Una vez autenticado y con éxito, deberías recibir las conexiones detalladas al Cluster de Telepuertos como las siguientes.

inicio de sesión mediante cli

También puedes verificar la conexión actual al Cluster Teleport mediante el siguiente comando tsh. Esto generará la misma salida que la captura de pantalla de arriba.

tsh status

Ahora que te has autenticado en el Cluster de Teleport mediante tsh, puedes gestionar los recursos en Teleport mediante el terminal.

Ejecuta el siguiente comando tsh para comprobar la lista de hosts/nodos/servidores que están disponibles en el Cluster de Teleport.

tsh ls

Ahora verifica la aplicación habilitada en el Cluster Teleport mediante el comando tsh que aparece a continuación.

tsh apps ls

En la salida, deberías ver que hay un nodo disponible en el Cluster Teleport (teleport-server) y que la aplicación ‘teleport-webapp’ está habilitada.

lista de servidores y aplicaciones

A continuación, también puedes iniciar sesión en los nodos que están disponibles en el Clúster Teleport mediante el comando tsh como se indica a continuación. Con esto, entrarás en el ‘teleport-server’ mediante el comando tsh con el usuario ‘root’ o/y ‘debian’.

tsh ssh root@teleport-server
tsh ssh debian@teleport-server

Deberías ver una salida como la siguiente – Con ambos comandos tsh has accedido con éxito al «teleport-server» mediante el comando tsh.

ssh vía teleport

Para el comando tctl, debes ejecutarlo con sudo al principio. Ejecuta el siguiente comando tctl para comprobar los nodos/servidores disponibles en el Cluster Teleport.

sudo tctl nodes ls

En el siguiente paso, aprenderás a añadir Nodos/Servidores al Cluster Teleport mediante dos métodos diferentes, automáticamente a través del panel de administración web o manualmente a través de la línea de comandos.

Añadir Nodos al Cluster Teleport

Para añadir nodos/servidores al Cluster de Teleport, debes asegurarte de que el servidor es accesible. Y puedes utilizar dos métodos diferentes para añadir Nodos/Servidores a tu Cluster de Teleport.

Puedes utilizar Teleport como gestión del plano de control para diferentes servicios, como servidores, Kubernetes Cluster, Servidor de Base de Datos, Applictaions y Escritorios.

En este paso, añadirás dos servidores diferentes al Cluster Teleport. Añadirás la máquina«cliente1» mediante el script instalador que se generará desde el panel de administración web, y añadirás la máquina«cliente2» manualmente mediante la línea de comandos.

Añadir cliente1 mediante el script instalador

Primero, vuelve al panel de administración web de Teleport y haz clic en el botón AÑADIR SERVIDOR.

añadir servidores

Selecciona el tipo de recurso que quieres añadir. Puedes añadir Kubernetes Cluster, servidores de Base de Datos, Aplicaciones y Escritorios. Selecciona SERVIDORES para añadir el tipo de recurso servidor y haz clic en SIGUIENTE.

seleccionar tipo recurso

Ahora verás el script de instalación generado y la línea de comandos que se puede utilizar para añadir la máquina«cliente1«. Copia esa línea de comandos generada.

script de instalación generado

Ahora inicia sesión en la máquina «cliente1«, accede a los privilegios de root mediante el comando sudo y, a continuación, pega y ejecuta la línea de comandos generada en la máquina«cliente1«. Esto descargará el script generado en la máquina «cliente1» y lo ejecutará.

Recibirás una salida similar a ésta en tu terminal – El script instalador añadirá la máquina ‘cliente1‘ utilizando el token generado y el pin ca del Cluster Teleport. Además, el script instalador detectará automáticamente tu sistema operativo actual, instalará el paquete Teleport automáticamente y generará el archivo de configuración de Teleport ‘/etc/teleport.yaml‘.

ejecuta el script de instalación en el cliente1

Una vez finalizado el proceso, deberías recibir una salida como ésta El servicio Teleport en la máquina‘cliente1‘ también se inicia y habilita automáticamente.

nodo añadido

Ahora vuelve al panel de administración web de Teleport y deberías ver un mensaje como«El servidor se ha unido correctamente a este clúster de Teleport«. Haz clic en SIGUIENTE para continuar.

cliente1 añadido

Ahora introduce los nombres de usuario que pueden acceder a la máquina«cliente1«. Asegúrate de que los usuarios están disponibles y creados en la máquina «cliente1«. Vuelve a hacer clic en SIGUIENTE para continuar.

configurar usuario para iniciar sesión

Por último, puedes verificar las conexiones a la máquina «cliente1» siguiendo los pasos disponibles en el panel de administración web.

  • En primer lugar, selecciona el usuario que quieres utilizar para conectarte.
  • En segundo lugar, haz clic en el botón PROBAR SERVIDOR en el «Paso 2» y asegúrate de que todas las pruebas están marcadas como completas.
  • Por último, haz clic en el botón INICIAR SESIÓN que abrirá automáticamente una nueva pestaña en tu navegador web y accederás a la máquina ‘cliente1’ a través del usuario seleccionado.

A continuación se muestra la captura de pantalla de ‘Probar conexióncon el estado correcto.

conexión de pruebam

A continuación se muestra la captura de pantalla después de iniciar sesión en la máquina ‘cliente1‘ a través de INICIO DE SESIÓN en el Paso 3.

sesión de acceso

Haz clic en FINALIZAR para completar el proceso.

Entonces serás redirigido al panel de administración web de Teleport y deberías ver que la máquina ‘cliente1‘ se ha añadido al Cluster Teleport.

cliente1 añadido

También puedes verificar la lista de nodos/servidores del Cluster Teleport mediante las líneas de comandos tsh y tctl.

Vuelve al ‘teleport-server’ y ejecuta el siguiente comando para verificar la lista de nodos/servidores del Cluster Teleport.

tsh ls
sudo tctl nodes ls

Deberías recibir una salida similar a ésta: La máquina cliente1 está disponible y añadida al Cluster Teleport.

verificar mediante cli

Por último, ejecuta el siguiente comando tsh para iniciar sesión en la máquina cliente1 como usuario«debian«. Ahora deberías haber iniciado sesión en la máquina ‘cliente1‘ a través de Teleport.

tsh ssh debian@client1

A continuación se muestra la pantalla del terminal después de entrar en la máquina cliente1 a través de Teleport.

conectar mediante telepuerto

Con esto en mente, ya has añadido con éxito el nodo/servidor ‘cliente1’ al Cluster de Teleport automáticamente a través del script instalador generado desde el panel de administración web de Teleport.

Añadir el nodo cliente2 manualmente

Ejecuta el siguiente comando para comprobar la huella digital del «pin CA» de tu Cluster Teleport. La huella digital del «pin CA» se utilizará para añadir la «máquina cliente2».

sudo tctl status

Asegúrate de copiar la huella digital del «pinCA«.

comprobar clavija ca

A continuación, ejecuta el siguiente comando tctl para generar un nuevo token que la máquina cliente2 utilizará para unirse al Cluster Teleport. A continuación, verifica la lista de tokens en tu Cluster Teleport.

sudo tctl nodes add --ttl=30m --roles=node | grep "invite token:" | grep -Eo "[0-9a-z]{32}"
sudo tctl token ls

Deberías recibir una salida similar a ésta – Asegúrate de copiar el token generado que la máquina cliente2 utilizará para unirse al Cluster Teleport.

generar token

Ahora conéctate a la máquina«cliente2» e instala el paquete Teleport a través de APT.

Ejecuta el siguiente comando para añadir el repositorio de Teleport a la máquina ‘cliente2 ‘.

Carga las variables de entorno en el archivo‘/etc/os-release‘.

source /etc/os-release

Añade la clave GPG y el repositorio de Teleport.

sudo curl https://apt.releases.teleport.dev/gpg \
-o /usr/share/keyrings/teleport-archive-keyring.asc

echo «deb [signed-by=/usr/share/keyrings/teleport-archive-keyring.asc] https://apt.releases.teleport.dev/${ID?} ${VERSION_CODENAME?} stable/v11» | \
sudo tee /etc/apt/sources.list.d/teleport.list > /dev/null

configurar repositorio

Ahora ejecuta el siguiente comando apt para actualizar y refrescar el índice de paquetes de tu sistema. A continuación, instala Teleport mediante el siguiente comando apt.

sudo apt update
sudo apt install teleport

Ahora debería comenzar la instalación de Teleport.

instalar telepuerto

Después de instalar el paquete Teleport, crea un nuevo archivo de configuración de Teleport ‘/etc/teleport.yaml’ utilizando el siguiente comando del editor nano.

sudo nano /etc/teleport.yaml

Añade las siguientes configuraciones de Teleport al archivo. Asegúrate de cambiar el namenode con el nombre de host de la máquina, el token_name con tu token generado, el proxy_server con el nombre de dominio de tu Cluster Teleport, y el ca_pin con la huella digital del pin CA del Cluster Teleport.

version: v3
teleport:
  nodename: client2
  data_dir: /var/lib/teleport
  join_params:
    token_name: 361b76eac6360da13f1a202fa8164024
    method: token
  proxy_server: tele.hwdomain.io:443
  log:
    output: stderr
    severity: INFO
    format:
      output: text
  ca_pin: sha256:2c96568d7bfa05f0a32b7681eb31b52a5c2a3414274579cbe9ece23e0b5e5443
  diag_addr: ""
auth_service:
  enabled: "no"
ssh_service:
  enabled: "yes"
  commands:
  - name: hostname
    command: [hostname]
    period: 1m0s
proxy_service:
  enabled: "no"
  https_keypairs: []
  acme: {}

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando systemctl para iniciar y activar el servicio Teleport en la máquina client2.

sudo systemctl start teleport
sudo systemctl enable teleport

A continuación, verifica el servicio Teleport mediante el siguiente comando.

sudo systemctl status teleport

Deberías recibir una salida similar a la siguiente captura de pantalla – El servicio Teleport en la máquina cliente2 está configurado y se está ejecutando y habilitando.

configurar cliente

Ahora vuelve al terminal ‘teleport-server ‘ para verificar la lista de nodos/servidores disponibles desde allí. Ejecuta el siguiente comando para comprobar la lista de nodos del Cluster Teleport

sudo tctl nodes ls

Deberías ver que la máquina cliente2 está disponible y añadida al Cluster Teleport.

verificar cliente2

A continuación, ejecuta el siguiente comando tsh para acceder a la máquina cliente2 a través de Teleport SSH. Ahora deberías iniciar sesión en la máquina cliente2 a través de Teleport. Asegúrate de que el usuario «debian» está disponible en la máquina cliente2.

tsh ssh debian@client2

A continuación se muestra la salida que deberías obtener después de iniciar sesión en la máquina cliente2 a través de Teleport.

conectar vía tsh

Ahora vuelve al panel de administración web de Teleport y deberías ver que la máquina cliente2 está disponible en el Cluster de Teleport.

verificar a través del panel de control

Por último, haz clic en el botón«CONECTAR» de la máquina«cliente2″ para iniciar y conectarte a ella. Ahora deberías haber iniciado sesión en la máquina ‘cliente2‘ a través del panel de administración web de Teleport.

sesión de acceso a través de la administración web

Con esto en mente, ya has añadido y configurado con éxito la máquina «cliente2» manualmente generando un token de Teleport, utilizando la huella digital del pin de CA del Cluster de Teleport, instalando el paquete de Teleport y creando un archivo de configuración de Teleport.

Conclusión

Ahora tu infraestructura de servidores está protegida mediante el Clúster Teleport, y ya puedes desactivar los servicios SSH en cada nodo y permitir sólo el acceso desde el Servidor Teleport. Ahora has aprendido a instalar Teleport Cluster en un sistema Debian 11 y has aprendido la configuración básica para instalar Teleport.

También has aprendido a configurar los usuarios de Teleport con la autenticación de dos factores activada y has aprendido a utilizar las líneas de comandos de Teleport (tsh y tctl) para gestionar Teleport Cluster.

Por último, has configurado y añadido con éxito dos nodos cliente1 y cliente2 al Cluster Teleport utilizando dos métodos diferentes. El primer método es mediante el script de instalación generado por el panel de administración web de Teleport. El segundo método añade manualmente los nodos/servidores instalando y configurando Teleport en la máquina de destino.

También te podría gustar...