Il faut ouvrir les ports de 3023 à 3027 sur la console azure
Ajouter dans un compose
version: '3.7'
services:
teleport:
image: quay.io/gravitational/teleport:6
container_name: teleport
ports:
- "3023:3023"
- "3024:3024"
- "3025:3025"
networks:
- traefik
depends_on:
- proxy
restart: unless-stopped
command:
- --insecure-no-tls
volumes:
- /home/docker/config/teleport:/etc/teleport
- /home/docker/vol/teleport:/var/lib/teleport
labels:
- "traefik.http.routers.teleport.rule=Host(`pam.domain.tld`)"
- "traefik.http.routers.teleport.tls=true"
- "traefik.http.routers.teleport.tls.certresolver=letsencrypt"
- "traefik.http.routers.teleport.entrypoints=websecure"
- "traefik.http.services.teleport.loadbalancer.server.port=3080"
- "traefik.http.routers.teleport.service=teleport"
- "traefik.http.routers.teleport-http.rule=Host(`pam.domain.tld`)"
- "traefik.http.routers.teleport-http.middlewares=https-redirect@file"
- "traefik.docker.network=traefik"
- "traefik.enable=true"
Dans un dossier /home/docker/config/teleport/
créer le fichier teleport.yaml
teleport:
nodename: pam.domain.tld
data_dir: /var/lib/teleport
log:
output: stderr
severity: INFO
ca_pin: ""
auth_service:
enabled: "yes"
listen_addr: 0.0.0.0:3025
ssh_service:
enabled: "yes"
labels:
env: system
commands:
- name: hostname
command: [hostname]
period: 1m0s
proxy_service:
enabled: "yes"
listen_addr: 0.0.0.0:3023
public_addr: pam.domain.tld:443
ssh_public_addr: pam.domain.tld
https_keypairs: []
acme: {}
Créer un dossier /home/docker/vol/teleport
et lui attribuer les droits de l'user 1001:1001
chown 1001:1001 /home/docker/vol/teleport
Lancer ce service avec docker-compose
et vérifier le bon démarrage.
Puis lancer la commande
docker exec -ti teleport /bin/sh
Puis la création d'un utilisateur admin
tctl users add <USERNAME> --logins=root,toto --roles=admin,editor
cela génére une url, qu'il faut transmettre à l'utilisateur
Sur le serveur pam.domain.tld, ouvrir une session ssh et lancer la commande
tctl nodes add
Produira :
teleport start \
--roles=node \
--token=<TOKEN> \
--ca-pin=<CA> \
--auth-server=172.21.0.14:3025
Sur la machine cliente.
EDIT NON NECESSAIRE:
Ouvrir le port 3022 (TCP) au niveau de la console azure
Installer le client teleport sur le host client
wget https://get.gravitational.com/teleport_6.0.2_amd64.deb
dpkg -i teleport_6.0.2_amd64.deb
Ajouter un fichier /etc/teleport/teleport.yaml en remplaçant les valeur <TOKEN>
et <CA>
obtenue sur le serveur et en adaptant les labels ssh
teleport:
auth_token: "<TOKEN>"
ca_pin: "<CA>"
auth_servers:
- "pam.domain.tld:443"
auth_service:
enabled: "no"
ssh_service:
enabled: "yes"
labels:
env: production
proxy_service:
enabled: "no"
Lancer la commande obtenue sur le serveur en ramplaçant l'auth_servers
teleport start \
--roles=node \
--token=<TOKEN> \
--ca-pin=<CA> \
--auth-server=pam.domain.tld:443
Si l'opération aboutie, la machine devrait apparaître sur l'IHM teleport. Il ne reste plus qu'à activer le service.
Modifier le fichier de service systemd
nano /lib/systemd/system/teleport.service
ajouter le paramètre du fichier de configuration --config=/etc/teleport/teleport.yaml
[Unit]
Description=Teleport SSH Service
After=network.target
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=-/etc/default/teleport
ExecStart=/usr/local/bin/teleport start --config=/etc/teleport/teleport.yaml --pid-file=/run/teleport.pid
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/run/teleport.pid
LimitNOFILE=8192
[Install]
WantedBy=multi-user.target
Activer le service
systemctl enable teleport.service
systemctl start teleport
Nota : si l'opération échoue, il faut supprimer le dossier /var/lib/teleport
sur la machine cliente
hello im getting this error in traefik v2.4 "middleware "https-redirect@file" does not exist" in my teleport 6 docker-compose.yaml
merci en avance
version: '3.7'
services:
teleport:
image: quay.io/gravitational/teleport:6
container_name: teleport
ports:
- "3023:3023"
- "3024:3024"
- "3025:3025"
networks:
- proxy
#depends_on:
# - proxy
restart: unless-stopped
command:
- --insecure-no-tls
volumes:
- /home/Bibou/data/configurations/teleport:/etc/teleport
- ./vol/teleport:/var/lib/teleport
labels:
- "traefik.http.routers.teleport.rule=Host(
pam.xx.xx
)"- "traefik.http.routers.teleport.tls=true"
- "traefik.http.routers.teleport.tls.certresolver=letsencrypt"
- "traefik.http.routers.teleport.entrypoints=websecure"
- "traefik.http.services.teleport.loadbalancer.server.port=3080"
- "traefik.http.routers.teleport.service=teleport"
- "traefik.http.routers.teleport-http.rule=Host(
pam.xx.xx
)"- "traefik.http.routers.teleport-http.middlewares=https-redirect@file"
#- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.docker.network=proxy"
- "traefik.enable=true"
networks:
proxy:
external: true
~
EDIT : fixed by changing the teleport:6 to the latest teleport:9.12
merci dans tt les cas