- État Fermée
- Pourcentage achevé
- Type Anomalie
- Catégorie Non trié
- Assignée à Personne
- Système d'exploitation Freebox Server V7 (Delta)
- Sévérité Moyenne
- Priorité Très Basse
- Basée sur la version 4.9.8
- Due pour la version Non décidée
-
Échéance
Non décidée
- Votes
- Privée
Ouverte par VinS - 20/07/2025
Dernière modification par mmakassikis - 28/07/2025
FS#40419 - Accès SSH/SFTP à distance très long voire impossible
Bonjour
Cela fait un moment que j’ai ce problème. J’ai des machines (Raspberry Pi, VM HA…) connectées sur la Delta auxquelles j’accède en SSH et SFTP depuis l’extérieur.
Pour me connecter de l’extérieur, je passe par des partages de connexion (ou en direct) en 4G ou 5G depuis plusieurs smartphones différents, tous chez Free Mobile. Seulement soit la connexion met très longtemps (même en passant par le VPN de la box), soit elle est carrément impossible (timeout). J’ai testé via une autre box Free, une Révolution, dans l’entourage, j’ai le même symptôme.
Par contre depuis n’importe quel autre opérateur (j’ai testé les 3 autres, via les box ou forfaits mobiles), je n’ai aucun problème, la connexion à mes machines est immédiate.
Qu’est-ce qui fait que Free bloque ces connexions vers une box Free ? Par contre pour SMB, via le VPN, aucun problème.
S’il y a une solution de contournement en attendant une correction je suis preneur.
D’avance merci
28.07.2025 06:59
Raison de la fermeture : Ticket invalide
Commentaires de fermeture :
tentative de connexion ssh à la box
plutôt qu'aux serveurs derrière
la box
Chargement...
Activer les raccourcis clavier
- Alt + ⇧ Shift + l Se connecter/Se déconnecter
- Alt + ⇧ Shift + a Ouvrir une tâche
- Alt + ⇧ Shift + m Mes recherches
- Alt + ⇧ Shift + t Rechercher par ID de tâche
Liste des tâches
- o Ouvrir la tâche sélectionnée
- j Déplacer le curseur vers le bas
- k Déplacer le curseur vers le haut
Détails de la tâche
- n Tâche suivante
- p Tâche précédente
- Alt + ⇧ Shift + e ↵ Enter Modifier cette tâche
- Alt + ⇧ Shift + w Surveiller
- Alt + ⇧ Shift + y Fermer cette tâche
Édition de la tâche
- Alt + ⇧ Shift + s Enregistrer la tâche
cela suggère que niveau réseau tout va bien.
quelle est la valeur de UseDNS sur les serveurs SSH en question ?
sinon, vous pouvez faire un "ssh -vv user@address" pour avoir plus de logs lors de l'établissement de la connexion
UseDNS était commenté, je l'ai mis à NO et relancé le service mais pas de changement. Dans les logs rien d'anormal côté clés entre autres mais j'ai ceci quand je suis hors VPN :
- En SSH, ça finit par se connecter une fois sur 10 mais j'ai ces lignes dans les logs :
"Connection closed by ::1 port xxxxx [preauth]" puis "Accepted password for User from XX.XX.XX.XX port YYYYY ssh2 quand la connexion est OK
- En SFTP via FileZilla, la connexion ne passe pas du tout : même lignes (mais le délai time-out doit être plus court)
Avec VPN monté ça fonctionne de suite. De même sans VPN, avec une SIM d'un autre opérateur, ça fonctionne de suite.
si je résume:
connexion OK si le client est:
* sur le réseau local
* connecté au VPN de la box
* à distance, sur un réseau non Free/FreeMobile
connexion lente voir passe en timeout lorsque le client est connecté via Free Mobile, ou depuis une autre ligne Free.
Est-ce que les connexions se font en IPv4 ou en IPv6 ?
Est-ce qu'il y a d'autre logs au niveau du serveur ? Le message "Connection closed" suggère que le serveur ferme la connexion. Ceci peut arriver si le client n'envoie pas de méthode d'authentification, ou si la méthode utilisée est rejetée par le serveur. Cela semble improbable puisque la même configuration fonctionne depuis un autre réseau.
quand la connexion n'aboutie pas, quels sont les derniers messages ?
edit: une fois connecté, est-ce que cela semble 'lent' ?
Ce n'est donc pas ma configuration :
https://www.universfreebox.com/article/584404/2-bugs-genants-ont-ete-reperes-suite-a-la-derniere-mise-a-jour-freebox
ne prêtez pas attention à cet article.
l'auteur parle de votre ticket sans l'avoir lu, puisqu'il indique que c'est suite à la dernière mise à jour de firmware. Or:
…
En fait ça doit dater à peu près des débuts de la 4.9. Mais j'avais un plus gros problème avec cette mise à jour, j'ai passé un mois à faire des tests avec l'assistance et même changé de Freebox. L'assistance a même mis en doute mon installation électrique, finalement le problème a été corrigé avec la 4.9.2 (problèmes de Kernel Panic).
La configuration de mes serveurs n'ayant pas changé depuis plus d'un an, je doute que ça vienne d'un paramètre sur ceux-ci. Je vais éviter cette fois les tests à n'en plus finir, à la limite je peux connecter l'un de mes serveurs sur la box d'un autre opérateur pour confirmer que ça fonctionne ailleurs, mais il faudra patienter au moins 3 semaines.
Précision : l'accès fonctionne sans VPN, depuis un partage Free Mobile, avec l'adresse IP mais pas avec le nom de domaine.
Par contre depuis une SIM SFR, la connexion fonctionne via l'adresse IP ET le nom de domaine
quelle est la MAC de votre freebox ?
s'agit-il d'un domaine perso, ou bien d'un domaine freeboxos.fr ?
si c'est un domaine freeboxos.fr, une requête DNS répond avec les adresses IPv4 et IPv6 de la box.
En IPv4, le client essaie de se connecter à l'IP de la box sur un port donné; vous avez vraisemblablement une redirection configurée et donc la box forward à l'équipement sur le LAN.
En IPv6, le client essaie de se connecter à la box sur le même port, qui ne répond pas (à raison) ⇒ timeout côté client
Bonjour
Ayant pas mal travaillé sur SSH ces derniers temps, je vais essayer de vous faire une réponse moins bidon que l'article non fondé d'universfreebox
Déjà sur les SIM des autres opérateurs, forcez l'APN en IPv6 et désactivez celui en IPv4 et je suis certain que vous aurez les même soucis que depuis les SIM Free Mobile qui je crois push les 2 APN v4 v6 avec probablement une precedence pour v6
Idem sur les VPN, montez un VPN ipv6 only et vous devriez avoir les même soucis.
—-
Je suppose que vous êtes sous Linux.
Solution 1 - dirty
Sur le client, éditez le fichier /etc/gai.conf et modifiez la précédence IPv4 / IPv6
décommentez la ligne:
Si le client est un windows, je pense qu'on doit pouvoir faire pareil avec netsh (après je ne connais pas windows, donc je suppose)
qqch comme:
Trouvez la valeur associée à `::/0`
Et mettez une valeur plus grande à '::ffff:0:0/96', ici j'ai mis 10 (le dernier terme)
Solution 2 - prefered
Assignez une des très nombreuses IPv6 publique disponible sur la connexion à la machine cible (la machine qui à un NAT du port 22 en IPv4) en mode ipv6 fixe, sans utiliser SLAAC mais plutôt qqch comme
Pour l'exemple dans mon lab j'ai une machine qui s'appelle: deb13-lab-10c
J'ai mis comme adresse: 2a01:e0x:xxxx:xxx5:0:deb1:31ab:10c ce qui donne:
Puis renseignez vos DNS comme suit:
Avec la machine de mon lab, ça donne:
Vous ne devriez plus avoir de problèmes.
Dans le cas ou vous auriez toujours des soucis, il faudrait:
1) faire un tcpdump en ipv4 + en ipv6 sur le client et sur le serveur:
2) Puis ouvrir le pcap avec `tshark -Vr client.pcap` ou `tshark -Vr server.pcap` pour analyse.
3) En parallèle, je vous recommande de build une version DEBUG de SSH:
4) puis utiliser la version de debug avec une commande du type:
5) Vous pouvez aussi reproduire sur le server ssh:
Après avoir build une version debug de SSH sur le server également, vous pouvez lancer une nouvelle instance de sshd en mode debug sur un autre port (222 pour l'exemple)
Puis vous rajouter un DNAT en IPv4 pour joindre le serveur sur le port 222 depuis l'ipv4 publique de la Freebox.
Ensuite il faut reproduire le souci, récupérer les traces (très verbeuses) côté client + server et les 4 captures tcpdump (server + client en v4 + en v6) et analyser tout ça pour voir ou ça coince.
6) Me contacter si besoin pour analyse
7) Nota Bene:
j'ai pas mal travaillé sur SSH et ce que je peux vous dire c'est que le debug de SSH est très compliqué sans décrypter car dans le handshake SSH permettant d'établir le flux après msg_code 21 (NEWKEYS) à la 3è frame envoyée par le server et à la 4è frame ssh envoyée par le client, tout est crypté donc impossible de debug sans décrypter en live
voici un handshake SSH typique sur la dernière version d'OpenSSH disponible sur github (kex: mlkem768x25519-sha256, cipher: chacha20-poly1305):
Et c'est seulement à partir de ce "Channel Success" qu'une session 'exec' ou 'shell' peut s'établir (lire que la connexion est utilisable)
Aussi vous noterez que j'ai énuméré les msg_code par coeur après la frame 'msg_code 21' (server frame 3 / client frame 4), car partout ou vous voyez Encrypted packet, eh bien c'est crypté donc impossible d'avoir la fin du handshake sans décrypter la frame au préalable, puis les clés changent périodiquement à chaque REKEY donc il faut calculer de nouveau le shared_secret, dériver les iv + clés symétriques, etc… pour pouvoir continuer de décrypter.
Si besoin d'aller plus loin dans le debug contactez moi et je vous dirais comment et ou patcher le code source d'OpenSSH pour décrypter le flux en live (sans proxy ou hack du type man-in-the-middle) afin de pouvoir debug
Cordialement
nbanba
J'ai fait plus l'inverse : j'ai désactivé l'IPv6 de l'APN Free Mobile puisque je n'utilise que de l'IPv4. C'était désactivé sur la box et les serveurs mais pas côté Smartphones pour le partage de connexion.
Bonjour
IPV6 étant :
- l'avenir
- inévitable à terme
Je vous invite à utiliser la "solution 2" de mon précédent message plutôt que de vous enfermé dans un workarround périmé et non viable à terme.
PS: c'est facile ! surtout que vous avez l'air de connaître Linux…
Cordialement
nbanba
Bonjour
Question :
Comment faites vous pour désactiver l'ipv6 sur la freebox ?
Cela semble techniquement impossible, l'ipv4 étant transporté par des trames ipv6, le réseau Free étant en ipv6 natif.
Cordialement
nbanba