Cher journal,
Je t'écris pour partager mon expérience concernant les réglages de mon routeur fonctionnant sous DD-WRT au cas où ça puisse servir à quelqu'un.
Mon besoin de départ était de pouvoir accéder à mes PC à la maison depuis n'importe quel endroit et notamment au boulot derrière les différents pare-feu et proxy.
Je vais parler du DD-WRT mais cette config devrait sûrement être adaptable à d'autres systèmes.
1ère étape : config. d'un nom DNS pour passer outre l'adressage IP dynamique imposé par mon FAI (SFR).
J'ai ouvert un compte gratuit DynDNS que j'ai ensuite configuré sur mon dd-wrt dans Configuration->DDNS. Ainsi l'IP est mise à jour par le routeur.
2ème étape : activation de l'accès SSH sur le routeur.
Dans Administration->Services j'ai activé SSHd sur le port 443. Ce port me permet d'avoir un accès depuis mon boulot car il est forcément ouvert en sortie car utilisé par https. Bon l'inconvénient c'est qu'à priori je ne pourrai pas utiliser de SSL sur un serveur chez moi car dans ce cas il faudrait rediriger ce port 443 et donc il y aurait un conflit.
A ce stade, il est donc possible d'accéder à son routeur depuis l'extérieur en SSH, c'est déjà un bon début. J'utilise pour cela putty (PC sous Windows oblige) configuré avec le proxy du boulot (cf réglages du navigateur par exemple) et je me connecte avec le DNS attribué ci-dessus sur le port 443.
3ème étape : tunneling d'un port via SSH.
Toujours avec putty, je configure la connexion avec le forward d'un port dynamique (disons le port 6060) qui se traduirait par un ssh -D 8080 -p 443 user@dnsdemonserveur. Ainsi je vais pouvoir utiliser ce port pour me connecter via un tunnel ssh. Par exemple au boulot, si je souhaite accéder à un site avec firefox via mon tunnel et donc dans les mêmes conditions que si j'étais chez moi, je configure firefox en lui disant d'utiliser un proxy Socks (4 ou 5) sur l'hôte localhost et le port 6060. Ceci peut être aussi utile pour par exemple pidgin qui est bloqué par un proxy à mon boulot, mais qui configuré de la même façon va pouvoir fonctionner.
En espérant vous avoir donné des idées.
# Autres solutions
Posté par j_kerviel . Évalué à 5.
corkscrew : peut être utilisé avec d'autres services en 443 autant que je me souvienne. Nécessite juste un .ssh_config bien configuré.
[^] # Re: Autres solutions
Posté par Sébastien B. . Évalué à 2.
~% cat .ssh/config2
ProxyCommand corkscrew addresseproxyhttp portproxyhttp %h %p ~/.ssh/auth
~% cat .ssh/auth
user:password
Ma configuration de corkscrew, quand j'en ai besoin, je renomme .ssh/config2 en .ssh/config et ça marche :)
Pensez à remplacer addresseproxyhttp et portproxyhtttp, ainsi que user et password dans le .ssh/auth.
[^] # Re: Autres solutions
Posté par nyquist . Évalué à 3.
#config spécifique pour chez moi
host myhome.dyndns.com
ProxyCommand corkscrew addresseproxyhttp portproxyhttp %h %p ~/.ssh/proxyauth
user Myhomeuser
port 443
ServerAliveInterval 300
#config general pour le reste
host *
ServerAliveInterval 300
comme ça quand je me connecte chez moi je fait juste ssh myhome.dyndns.com et quand je me connecte a un serveur au boulot je fais ssh boulot sans changer de fichier de conf.
(à noter que l'on doit pouvoir spécifier de créer un tunnel ssh directement dans le ficher de config (man ssh_config)
[^] # Re: Autres solutions
Posté par Maxime (site web personnel) . Évalué à 1.
[^] # Re: Autres solutions
Posté par Sébastien B. . Évalué à 3.
[^] # Re: Autres solutions
Posté par Maxime (site web personnel) . Évalué à 1.
Transformons juste mon intervention précédente par : Et avec une clef ssh ça va encore plus vite pour se connecter :). Quoi que c'est pas tellement plus intéressant...
Et sinon j'utilise très régulièrement le script vpn-pppssh que j'ai légèrement modifié pour être utilisable avec un openwrt. Ça marche très bien, je recommande. Ça permet de pouvoir avoir son ssh qui tourne sur le port 443 et pouvoir faire un vpn sans avoir à installer d'autres softs.
Bien sûr ça marche qu'avec Linux mais c'est tout ce dont j'ai besoin.
[^] # Re: Autres solutions
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3.
[^] # Re: Autres solutions
Posté par Maxime (site web personnel) . Évalué à 3.
J'aurais bien testé mais j'ai visiblement perdu la main sur le routeur et ya personne pour me le redémarrer... :D
[^] # Re: Autres solutions
Posté par duf . Évalué à 4.
T'imagines pas à quel point ce que tu viens de dire me bouleverse... Je n'avais jamais fait attention à cette option et là je suis d'autant plus "frustré" qu'après une rapide recherche sur google cette option est disponible depuis la 4.3 semble-t-il donc au moins 2006...
Et moi qui passait du temps à faire des tunnels sur plusieurs ports d'une même machine....
Bon, je dis merci et je vais songer dès demain à revoir tous les "man" des commandes que j'utilise régulièrement, j'ai peut être loupé d'autres options tout aussi importantes !!!
[^] # Re: Autres solutions
Posté par icyfemur . Évalué à 2.
http://guacamole.sourceforge.net/
[^] # Re: Autres solutions
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 4.
[^] # Re: Autres solutions
Posté par Alex . Évalué à 2.
[^] # Re: Autres solutions
Posté par icyfemur . Évalué à 1.
Blague à part, en effet on peut pas faire de tunnel, mais ça a l'avantage de pouvoir être utilisé sur n'importe quel ordinateur, sans configuration.
# SSH + SSL, c'est possible avec SSLH
Posté par Olivier (site web personnel) . Évalué à 10.
Personnellement, j'utilise SSLH ( http://www.rutschle.net/tech/sslh.shtml ), pour contourner le problème.
il s'agit d'un "wrapper", qui permet de switcher une connexion entrante sur un port (typiquement TCP/443), afin de la rediriger soit vers un serveur HTTPS (SSL), soit vers un serveur SSH.
C'est du C, donc cela doit pouvoir se compiler, et s'exécuter directement sur on WRT. Après, il ne te reste qu'à le configurer, pour diriger les flux SSL et SSH vers les bons serveurs.
[^] # Re: SSH + SSL, c'est possible avec SSLH
Posté par Mass-Yas . Évalué à 2.
[^] # Re: SSH + SSL, c'est possible avec SSLH
Posté par zerkman (site web personnel) . Évalué à 3.
Il tourne sur mon pécé serveur qui héberge un vserver avec serveur apache en ports 80 et 443, et un serveur ssh sur l'hôte. Y'a juste la règle iptables à retirer pour le port 443, car c'est sslh qui s'occupe de la redirection.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 6.
Ce commentaire a été supprimé par l’équipe de modération.
# sinon openvpn
Posté par mathieu mathieu (site web personnel) . Évalué à 3.
Il existe l'option port-share si tu veux partager le port 443 avec un serveur https.
# Foxyproxy
Posté par regisb . Évalué à 2.
Très très pratique si tu vas en Chine un jour.
[^] # Re: Foxyproxy
Posté par zerkman (site web personnel) . Évalué à 7.
[^] # Re: Foxyproxy
Posté par syntaxerror . Évalué à 5.
[^] # Re: Foxyproxy
Posté par Mass-Yas . Évalué à 2.
# Correction
Posté par Florent Zara (site web personnel, Mastodon) . Évalué à 2.
Si on forward le port 6060, alors la ligne de commande doit se traduire par ssh -D 6060 -p 443 user@dnsdemonserveur.
mes 2 cents
[^] # Re: Correction
Posté par Mass-Yas . Évalué à 1.
# arf
Posté par Julien Gilbert . Évalué à 1.
Vous voulez pas la jouer soft ? Je suis pas contraignant... vous voulez la jouer hard ? On va la jouer hard
[^] # Re: arf
Posté par claudex . Évalué à 2.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: arf
Posté par Julien Gilbert . Évalué à 1.
1- les plages d'adresses orange sont bloquées
2- les requetes sortant directement par l'adresse IP (sans résolution de DNS) sont bloquées
Dans les deux cas, rien à faire.
Vous voulez pas la jouer soft ? Je suis pas contraignant... vous voulez la jouer hard ? On va la jouer hard
[^] # Re: arf
Posté par claudex . Évalué à 3.
Je doute vu que ça voudrait dire que les machines n'avaient pas de cache DNS, ce qui doit être légèrement ennuyant.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: arf
Posté par mathieu mathieu (site web personnel) . Évalué à 5.
- une liste noire qui coupait tous les dyndns etc.
- une liste blanche comportait quelques regexpr bien planquées (genre *\.oracle\.*)
- une liste gris (soumise à un quota)
Il suffisait d'avoir son propre nom de domaine et d'y mettre un "monserver.oracle.mondomaine.com" et le tour était joué.
Après y a encore plus bourrin (mais lent), le tunneling over dns.
[^] # Re: arf
Posté par Maxime (site web personnel) . Évalué à 2.
[^] # Re: arf
Posté par MrLapinot (site web personnel) . Évalué à 2.
Tu en as d'autre, mais c'est celui qui marche le mieux pour moi (surtout avec le script de connexion fourni par Debian, qui automatise la recherche d'une MTU correcte, etc.).
# Encore une autre solution
Posté par zebra3 . Évalué à 4.
En pratique, il permet de faire du SSH à traver Jabber en passant par la connexion avec un contact local à la machine à atteindre (si j'ai bien compris). Donc si tu as deux comptes Jabber, tu peux utiliser cette méthode aussi. Plus de souci de routage.
Plus d'infos sur http://blogs.gnome.org/xclaesse/2010/07/16/telepathy-ssh-ren(...) .
Je trouve cette idée géniale, c'est une preuve des capacités d'extensibilité de XMPP et de Telepathy.
Au passage, c'est dans Incoming, ça devrait donc entrer dans Debian sous peu.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Encore une autre solution
Posté par eon2004 . Évalué à 1.
[^] # Re: Encore une autre solution
Posté par Batchyx . Évalué à 2.
# dns
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
En général lorsqu'il y a un proxy il n'y a pas de serveur DNS puisque c'est le proxy qui fait la résolution, inutile de répondre aux requêtes DNS des crapwares qui n'utilisent pas le proxy !
Il m'est arrivé plusieurs fois de faire des tunnels SSH à travers des proxys, mais j'ai toujours été limité par l'absence de résolution DNS, alors peut-être ai-je bêtement oublié quelque chose…
Au passage cela rappelle que même en passant à travers un proxy, si le serveur DNS n'est pas dans le tunnel (je ne sais pas faire) ou bien un cache local, le flux d'information n'est certes pas visible, mais les requêtes de résolution le sont (même problème que TOR).
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: dns
Posté par Alex . Évalué à 3.
Dans les quelques cas où la boite bloquait certaines requêtes dns, firefox propose l'option network.proxy.socks_remote_dns, si tu utilise ton ssh pour faire socks, la résolution sera faites à l'autre bout du tunnel.
Autre solution, dans ton resolv.conf tu précise localhost comme serveur de nom, et tu fais du port fowarding dans ton tunnel ssh (en configurant ton relay/serveur dns sur du tcp). Si ton dns ne fait pas tcp, la solution gruicky, cest de faire de l'udp port fowarding sur un port arbitraire (de tête, donc ca ne marche peut être pas out of the box, et si quelqu'un sait faire du fowarding udp directement via ssh, jsuis preneur)
ssh -L4242:localhost:4242
au bout du tunnel:
mkfifo monfifo
nc -l -p 4242 < monfifo | nc -u tondns 53 > monfifo
sur ton poste
mkfifo monfifo
nc -l -u -p 53 < monfifo | nc localhost 4242 > monfifo
[^] # Re: dns
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: dns
Posté par Alex . Évalué à 2.
et pour éviter de faire un tunnel udp dans ton tunnel ssh, tu peux installer au bout de ton tunnel maradns (petit serveur dns) ou pdnsd (cache dns), qui te serviront de relay dns, et qui peuvent écouter en tcp.
[^] # Re: dns
Posté par snurpsss . Évalué à 1.
URL: about:config
rechercher: socks
network.proxy.socks_remote_dns;true (à false par défaut)
et voilà !
[^] # Re: dns
Posté par Thomas Debesse (site web personnel) . Évalué à 1.
ce commentaire est sous licence cc by 4 et précédentes
# Proxytunnel
Posté par NilugeKiWi . Évalué à 8.
C'est pour ça que dieu a inventé proxytunnel (http://proxytunnel.sourceforge.net/) : ça permet (entre autre) de faire du ssh over https (mais on doit aussi pouvoir faire du vpn over https). Résultat on a notre connexion ssh, et sur le réseau il ne passe que du https, donc on ne voit pas que c'est du ssh encapsulé.
En plus proxytunnel ne tourne que côté client.
La conf ssh:
ProxyCommand proxytunnel -X ip_proxy_entreprise:port -r ip_serveur_perso:443 -d %h:%p -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"
À personnaliser avec le user-agent du navigateur habituel au boulot pour rendre définitivement méconnaissable les données qui transitent.
Côté serveur il suffit d'avoir un proxy https quelconque qui redirige le trafic vers le démon ssh, et le tour est joué. Par exemple un serveur apache qui tourne déjà sur le port 443 fera très bien l'affaire (il faudra juste bien régler les permissions sur le mod_proxy pour ne pas faire open proxy).
Au final les données passent par le proxy entreprise, puis le proxy sur le serveur personnel, puis vers le démon ssh.
Un howto bien pratique, avec la config client openssh/putty et serveur apache :
http://dag.wieers.com/howto/ssh-http-tunneling/
Attention : pour que ça fonctionne avec apache il faut soit une version trunk, soit appliquer un patch (voir https://issues.apache.org/bugzilla/show_bug.cgi?id=29744 ).
[^] # Re: Proxytunnel
Posté par zerkman (site web personnel) . Évalué à 2.
[^] # Re: Proxytunnel
Posté par NilugeKiWi . Évalué à 1.
Donc il envoie un connect server_perso:port_sshd au proxy de l'entreprise, et après il envoie les données ssh directement en clair au travers du proxy entreprise.
La conséquence de tout ça c'est que le proxy entreprise voit qu'il ne relaie pas du https comme il devrait habituellement le faire. Ça peut donc être détecté/bloqué.
proxytunnel permet de faire du vrai ssh over https: le contenu n'est pas distinguable d'un vrai flux https (sauf si on se met à faire des études statistiques sur le flux, là ça doit moins ressembler à du https, mais bon).
[^] # Re: Proxytunnel
Posté par john Smith (site web personnel) . Évalué à 1.
une autre idée si on a pas envie d'avoir un apache bien lourd ?
par exemple quelque chose de léger qui peut s'installer sur un openwrt ?
[^] # Re: Proxytunnel
Posté par NilugeKiWi . Évalué à 1.
Je l'utilise pour mes tests pour simuler le proxy entreprise, mais il permet peut être de jouer aussi le role de l'autre proxy. À tester.
[^] # Re: Proxytunnel
Posté par frafra . Évalué à 1.
[^] # Re: Proxytunnel
Posté par Christophe HENRY (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.