Tailscale
Tailscale systray
Sur les ordinateurs de bureau connectés au réseau mesh, il est possible d’ajouter systray
Le démon en arrière-plan (tailscaled) fonctionne généralement avec root comme utilisateur, et donc seulement rootpeut gérer le démon. Pour permettre à un autre utilisateur de gérer Tailscale, définissez l’utilisateur en tant qu’opérateur à l’aide de la commande tailscale set
1
2
#sudo tailscale set --operator=<USERNAME>
sudo tailscale set --operator=$USER
Sous Arch Linux KDE Plasma, l’application officielle de barre d’état système de Tailscale devrait fonctionner. Elle est encore en bêta, nécessite Tailscale v1.88 ou ultérieure et doit être activée pour votre réseau Tailscale.
Vérifier version Tailscale
1
tailscale version
Version
1
2
3
4
1.102.4
tailscale commit: 3caf7d9e7dcaba589cfc58beda596929733e4fea-dirty
long version: 1.102.4
go version: go1.27.0-X:nodwarf5
Démarrer le service et se connecter si besoin (activé par défaut à l’installation client tailscale)
1
2
sudo systemctl enable --now tailscaled
sudo tailscale up
Lancement application barre d’état système avec le compte utilisateur, sans sudo :
1
tailscale systray
Pourlancement automatique (Tailscale v1.96 ou +)
1
tailscale configure systray --enable-startup=freedesktop
On peut aussi utiliser un service systemd utilisateur
1
tailscale configure systray --enable-startup=systemd
Si la commande
tailscale systrayn’est pas disponible, mettez Tailscale à jour et vérifiez que la fonctionnalité bêta est activée pour votre réseau. Tail Tray est une autre option conçue pour KDE, mais ce n’est pas l’application officielle de Tailscale.
Tailscale et VPN Mullvad
Problème tailscale si le VPN Mullvad est actif
PV1 Archlinux: Tests pour mettre en évidence l’erreur
1
2
3
4
5
tailscale ping yiak # direct ou "via DERP(...)" ?
ping -4 -c2 100.64.0.6 # IPv4 tailnet
ping -6 -c2 fd7a:115c:a1e0::6 # IPv6 tailnet
dig headscale.xoyize.xyz
dig @100.100.100.100 headscale.xoyize.xyz
, NOK avec VPN
Ces tests confirment que Mullvad bloque le tailnet.
Insérer des règles directement dans les chaînes de Mullvad fonctionne (autoriser l’entrée et la sortie sur l’interface tailscale), mais Mullvad les efface à la reconnexion (règles non persistantes). La méthode qui survit aux reconnexions utilise une table nftables séparée qui pose sur le trafic Tailscale la marque d’exclusion de Mullvad, ct mark 0x00000f41 (source). Voici le principe, à adapter : mullvad and tailscale coexisting or hello nftables +2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo mkdir -p /etc/nftables.d
sudo tee /etc/nftables.d/mullvad-tailscale.nft <<'EOF'
table inet excludeTraffic {}
delete table inet excludeTraffic
table inet excludeTraffic {
chain excludeOutgoing {
type route hook output priority -100; policy accept;
ip daddr 100.64.0.0/10 ct mark set 0x00000f41 meta mark set 0x6d6f6c65
ip6 daddr fd7a:115c:a1e0::/48 ct mark set 0x00000f41 meta mark set 0x6d6f6c65
}
chain allowIncoming {
type filter hook input priority -100; policy accept;
iifname "tailscale0" ct mark set 0x00000f41 meta mark set 0x6d6f6c65
}
}
EOF
Chargez-la au démarrage avec une unité systemd ou nftables.service. La valeur 0x6c7873 vient de ma mémoire de la doc de Mullvad, alors que 0x00000f41 est confirmée par ma recherche : vérifiez les deux sur la page « split tunneling » de Mullvad, ou reprenez un des dépôts qui documentent ce montage (par exemple alessio-ds/tailscale-mullvad-linux, qui cible Arch). Après chargement, sudo nft list ruleset doit montrer la table, et tailscale ping un-pair doit répondre alors que Mullvad est connecté.
Correctif persistant
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo tee /etc/systemd/system/tailscale-mullvad.service <<'EOF'
[Unit]
Description=Exclusion du tailnet du kill switch Mullvad
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/nft -f /etc/nftables.d/mullvad-tailscale.nft
ExecStop=/usr/bin/nft delete table inet excludeTraffic
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now tailscale-mullvad.service
systemctl is-active tailscale-mullvad.service
Le fichier commence par table ... {} suivi de delete table, donc le service peut être relancé autant de fois que vous voulez sans erreur.
Vérifier que ça tient
1
2
mullvad disconnect && mullvad connect && sleep 5
ping -4 -c2 100.64.0.6
Ça doit aussi marcher après un redémarrage, sans action de votre part.
Vous pouvez maintenant lancer l’audit avec Mullvad actif : ./hs-audit.sh. Si un alias du CSV est en Ping=Y et que SSH est refusé alors que le ping passe, regardez le pare-feu du VPS, puisque l’IP source est celle de Mullvad.