« Headscale » : différence entre les versions

Linarphy (discussion | contributions)
Correction de liens vers les serveurs
Grosse mise à jour de Headscale
 
Ligne 11 : Ligne 11 :
}}
}}


[[Headscale]] est un logiciel libre imitant l'API de [[wikipedia:Tailscale|Tailscale]]. Il permet de lier via un "hub" commun de multiples appareils, formant un réseau local interne. Certains nœuds de ce réseau sont des sorties, qui peuvent être utiliser par tous les nœuds du réseau pour le trafic sortant (accès internet) ce qui permet de les considérer comme des '''VPN''', en plus de nœuds internes.
[[Headscale]] est un logiciel libre de gestion de nœuds [[Tailscale]]. Il imite l’API du [https://tailscale.com gestionnaire privé par défaut]. Il permet de lier via un "hub" commun de multiples nœuds, formant un réseau local interne. Certains nœuds de ce réseau sont des sorties qui peuvent transmettre le trafic sortant, ce qui permet de les considérer comme des '''VPN'''.


== Configuration actuelle ==
== Configuration actuelle ==
Sur l'architecture actuelle, il tourne sur le serveur computing et est accessible [https://headscale.linarphy.net ici]. En plus des appareils utilisant le '''VPN''', chaque serveur est un nœud (même les serveurs '''DNS'''). Les serveurs sont des nœuds de sortie, ce qui permet aux appareil de choisir le lieu de connexion pour les services web accédé par l'utilisateur de celui-ci.
Sur l'architecture actuelle, il tourne sur le [[Computing|serveur computing]]. La répartition des nœuds est disponible dans l’article concernant [[Tailscale]].


== Procédures ==
== Procédures ==


=== Ajout un nœud de sortie (exit node) ===
=== Ajout un nœud de sortie (exit node) ===
Créer le nœud avec la commande suivante: <code>tailscale up --login-server=<nowiki>https://headscale.linarphy.net</nowiki> --advertise-exit-node --accept-dns=false</code>  ou, s'il existe déjà, la commande <code>tailscale set --advertise-exit-node</code>.
Sur le [[computing|serveur computing]] (exécutant [[headscale]]), lancer la commande <code>headscale routes list</code> ce qui permet d'afficher un tableau trié par ''ID''. Cibler les deux ''ID'' correspondant au nœud de sortie ('''IPv4''' et '''IPv6''') et exécuter la commande <code>headscale routes enable -r {ID}</code> pour ces deux nombres.
 
Sur le serveur [[computing]] (exécutant [[headscale]]), lancer la commande <code>headscale routes list</code> ce qui permet d'afficher un tableau trié par ''ID''. Cibler les deux ''ID'' correspondant au nœud de sortie ('''IPv4''' et '''IPv6''') et exécuter la commande <code>headscale routes enable -r {ID}</code> pour ces deux nombres.
 
Sur le noeud lancer la commande:<syntaxhighlight lang="bash">
echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/99-tailscale.conf
sysctl -p /etc/sysctl.d/99-tailscale.conf
</syntaxhighlight>Si firewalld est installé, il est nécessaire d'effectuer les commandes suivantes:<syntaxhighlight lang="bash">
firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --add-interface=tailscale0 --zone=trusted --permanent
firewall-cmd --reload
</syntaxhighlight>Dans ce cas, il est aussi possible d'avoir besoin d’exécuter la commande <code>firewall-cmd --add-service wireguard --permanent</code> puis <code>firewall-cmd --reload</code>.


Les informations concernant la configuration du nœud sont disponibles dans l’article [[Tailscale]].
== Installation ==
== Installation ==
Si non indiqué, l'utilisateur effectuant les commandes dans la suite des opérations et le '''root''' (ou superutilisateur).
Si non indiqué, l'utilisateur effectuant les commandes dans la suite des opérations et le '''root''' (ou superutilisateur).
Ligne 44 : Ligne 33 :


=== Téléchargement et installation ===
=== Téléchargement et installation ===
Le service s'installe sur les systèmes debian à l'aide de package '''.deb''' disponible [https://github.com/juanfont/headscale/releases/latest ici]. Si l'architecture du serveur n'est pas connu, utiliser le paquet pour l'architecture '''amd64'''. Une fois l'archive téléchargé avec curl: <code>curl -L {url} -o headscale.tar.gz</code>, puis l'avoir extrait avec <code>tar -xf headscale.tar.gz</code> et supprimer l'archive avec <code>rm headscale.tar.gz</code>, il suffit alors de l'installer avec aptitude: <code>apt install ./headscale.deb</code>.
Le service s'installe sur les systèmes debian à l'aide de package '''.deb''' disponible [https://github.com/juanfont/headscale/releases/latest ici]. Si l'architecture du serveur n'est pas cconnue utiliser le paquet pour l'architecture '''amd64'''. Une fois l'archive téléchargée avec curl: <code>curl -L {url} -o headscale.tar.gz</code>, puis l'avoir extrait avec <code>tar -xf headscale.tar.gz</code> et supprimer l'archive avec <code>rm headscale.tar.gz</code>, il suffit alors de l'installer avec aptitude : <code>apt install ./headscale.deb</code>.


=== Reverse proxy ===
=== Reverse proxy ===
Comme pour la plupart des services, Headscale sera disponible via un nom de domaine spécial.
Comme pour la plupart des services, Headscale sera disponible sur son nom de domaine propre.


Ajouter le nom de domaine sur la zone '''DNS''' de l'interface d'administration de [[FreeIPA]] (procédure [[FreeIPA#DNS|ici]]).
Ajouter le nom de domaine sur la zone '''DNS''' de l'interface d'administration de [[FreeIPA]] (procédure [[FreeIPA#DNS|ici]]).
Ligne 397 : Ligne 386 :
   nameservers:
   nameservers:
     global:
     global:
      # Quad9 DNS
      - 9.9.9.9
      - 2620:fe::fe
      - 149.112.112.112
      - 2620:fe::9
       #- 1.1.1.1
       #- 1.1.1.1
       #- 1.0.0.1
       #- 1.0.0.1