Aller au contenu principal

UFW sans perdre l’accès SSH

Objectif : TCP 80/443 publics, SSH seulement sur tailscale0, entrées refusées et sorties autorisées par défaut. Gardez une session publique fiable et une session Tailscale vérifiée. Une connexion établie peut survivre à la suppression d’une règle ; seule une nouvelle connexion valide la politique.

sudo ufw status verbose
sudo ufw status numbered
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # secours temporaire
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow in on tailscale0 to any port 22 proto tcp
sudo ufw --force enable

Ouvrez de nouvelles sessions publique et Tailscale. Si les deux réussissent, relisez les règles puis supprimez la règle générique par sa sémantique :

sudo ufw delete allow 22/tcp
sudo ufw status verbose
sudo ufw status numbered

Ne réutilisez pas un ancien numéro de règle. Une suppression numérotée ne retire généralement que l’entrée IPv4 ou IPv6 désignée.

[LOCAL: WSL2]
ssh -o ConnectTimeout=10 "$VPS_USER@$TAILSCALE_IPV4" # réussite
ssh -o ConnectionAttempts=1 -o ConnectTimeout=5 \
"$VPS_USER@$VPS_PUBLIC_IPV4" # échec

Attention : les ports publiés par Docker peuvent contourner les règles UFW ordinaires. Examinez ports, les adresses d’écoute, docker ps et la chaîne DOCKER-USER. Désactiver la gestion iptables de Docker casse souvent le réseau des conteneurs.

Si le chemin privé échoue, gardez la session encore ouverte, restaurez sudo ufw allow 22/tcp, vérifiez un nouveau SSH public par clé et arrêtez les changements. Ne réinitialisez pas tout le pare-feu.