technique:adminserv:traefik:dashboard

Accéder au tableau de bord

Traefik propose un tableau de bord permettant de visualiser l’état de sa configuration dynamique : routeurs, services, middlewares…

Ce tableau de bord ne peut être visualisé qu’en activant l’accès à l’API, rendant cette opération très sensible.

Ainsi, le tableau de bord a été activé sur toutes les machines virtuelles avec une double sécurité :

  • Accès protégé avec un mot de passe différent par VM (enregistré sur VaultWarden) ;
  • Filtrage IP n’autorisant que la machine de monitoring à accéder au dashboard.

Note:

En effet, la machine de monitoring est la plus critique de l’infrastructure, car elle contient le LDAP. Si elle était compromise, n’importe qui pourrait changer les infos du LDAP, comme les clés SSH autorisées à se connecter sur les machines, les accès admin de toutes les machines, etc.

Pour pouvoir accéder au dashboard de n’importe quelle VM, il faut donc « rebondir » par monitoring. Une simple redirection de port ne suffit pas, car les redirections de ports fonctionnent en écoutant un port local, sur localhost donc. Or le dashboard est accessible en HTTPS et a un certificat valide, qui ne collera pas avec localhost.

Bref, il nous faut un autre moyen.

C’est via un proxy SOCKS5 que l’on va pouvoir réaliser cette opération.

Note:

On peut se représenter le fonctionnement de ce qui suit comme un genre de VPN temporaire bricolé pour une personne.

SSH permet d’ouvrir un proxy SOCKS local qui aura exactement l’effet attendu : rediriger l’ensemble du trafic reçu par une machine « rebond », masquant de facto l’IP source et la remplaçant par celle du rebond. Il suffit alors de choisir monitoring comme rebond pour avoir l’autorisation de consulter le dashboard.

Pour ouvrir un proxy SOCKS rebondissant sur monitoring sur le port standard 1080, en local :

snippet.bash
ssh -D 1080 -N <login>@monitoring.picasoft.net

Il faut ensuite demander à ton navigateur (Firefox, j’espère :D) d’utiliser ce proxy.

Note:

Astuce : créer un profil dédié dans Firefox pour éviter d’avoir à changer sans cesse les paramètres réseaux. Ça se passe dans about:profiles. Dès que tu as besoin de consulter un dashboard, ouvre une fenêtre avec ce profil.

Pour ce faire, depuis les paramètres tu peux chercher socks et ouvrir les paramètres réseaux.

Entrer cette configuration :

Et voilà ! Visiter par exemple https://media.picasoft.net/dashboard/ et entrer les identifiants pour voir un magnifique dashboard. Ici, un exemple de la liste des routeurs.

Attention:

Attention, le / final est obligatoire !

En cliquant sur un routeur, on obtient une vue d’ensemble de la chaîne entrypoint → routeur → middlewares → service, et plein d’autres infos utiles pour le debug.

Important:

FIXME Pour une raison qui m’échappe totalement, l’IP captée par Traefik sur pica02 est l’IP de la gateway du réseau docker-ro, tandis que sur media c’est bien l’IP de monitoring.

Ainsi, pour l’instant le dashboard ne fonctionne pas sur les VM ayant ce comportement. Faut-il chercher du côté d’iptables ? :-?

  • technique/adminserv/traefik/dashboard.txt
  • de qduchemi