3 votes

Connexion transférée refusée par le serveur : Administrativement interdit [échec de l'ouverture]

J'utilise parfois PuTTY comme proxy SOCKS, et j'ai remarqué que parfois, lorsque la page web à laquelle j'essaie de me connecter (à partir du navigateur web) n'existe pas, et nécessite un délai d'attente prolongé, l'écran d'accueil de PuTTY s'affiche. La session Shell décroche (ne peut pas taper de manière interactive dans le terminal jusqu'à ce que le délai d'attente soit atteint), et aussi toutes les autres requêtes de la page web s'arrêtent, aussi .

J'ai récemment remarqué que cela semble être liés au DNS : à l'heure actuelle, il semblerait que les serveurs spécifiés sur les sshd côté en /etc/resolv.conf ont quelques problèmes, et, en conséquence, il est presque impossible de naviguer sur Internet à travers un proxy SOCKS PuTTY, et aussi le terminal PuTTY est bloqué presque tout le temps quand n'importe quelle navigation Web est tentée sans succès.

L'erreur suivante apparaît fréquemment dans les journaux de PuTTY, après quoi le blocage semble s'arrêter pendant un petit moment :

2014-01-11 17:12:03 Forwarded connection refused by server: Administratively prohibited [open failed]

Normalement, c'est ce que je vois dans les journaux, ce qui me donne l'impression que mon navigateur compatible SOCKS ne sait même pas à quelle adresse IP le proxy SOCKS va le connecter :

2014-01-11 17:18:11 Opening forwarded connection to superuser.com:80

Changer le serveur DNS autour du démon ssh ne serait qu'une solution temporaire, qui ne résoudrait pas le problème sous-jacent de blocage d'OpenSSH / PuTTY dans ces situations. (Ne pas utiliser les noms d'hôtes à travers SOCKS semblerait être une erreur, aussi).

Y a-t-il un moyen d'atténuer le blocage de ssh pour de bon ?

(Au minimum, il semblerait que sshd devrait être plus agressif dans la temporisation des DNS, et réessayer avec un autre serveur. J'ai plusieurs serveurs spécifiés dans /etc/resolv.conf, et dig semble réémettre la requête au serveur suivant après exactement 1s, ce qui semble plus approprié que ce que sshd semble faire).

1voto

purecharger Points 840

Selon un développeur d'OpenSSH sur la liste de diffusion officielle, http://lists.mindrot.org/pipermail/openssh-unix-dev/2014-January/031974.html Ceci est dû au fait qu'un résolveur standard libc est utilisé par OpenSSH, qui est synchrone et bloquant, donc aucun autre trafic n'est traité pendant qu'une résolution est en cours.

La résolution de ce problème nécessiterait une correction autour de ssh/channels.c#connect_to dans OpenSSH ( bogue n° 1357 confirme qu'il se trouve dans le chemin de code de SOCKS5 tel qu'utilisé par Mozilla), pour utiliser une fonction de résolveur différente de celle par défaut getaddrinfo de la libc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X