# [tip]ssh au travers d'un proxy et sans DNS vers l'exterieur

## nico_calais

Voilà le problème de départ.

Je veux pouvoir me connecter de mon boulot à mon serveur chez moi.

Malheureusement, le proxy du boulot n'acceppte que les requetes http. De plus, du lan, on ne peut resolver une addresse publique, du genre google.

Ces contraintes empechent par exemple de faire un ssh [domaine-du-server']

Heureusement, j'ai trouvé une solution qui se divise en deux parties :

1) Passer à travers le proxy

J'ai trouvé proxytunnel et l'ai installé en ~x86. 

Pour l'utiliser il faut editer le fichier ~./ssh/config

les [] ne sont pas à mettre

```

Host [nom du serveur]

ProxyCommand /usr/bin/proxytunnel -p [proxy:port] -u [utilisateur pour s'authentifier si besoin] -s [mot de passe en cas de besoin] -d [Addresse IP publique de votre serveur:port] -v (verbose optionel)

```

D'après la doc, le port de votre serveur ssh devrait être 443 pour https. 

Une fois le fichier edité, vous n'avez plus qu'à lancer la commande ssh [nom du serveur donné dans ~./ssh/config] et vous devriez pouvoir vous connecter.

C'est cool, mais y a un truc qui gêne. Si vous avez une addresse IP dynamique chez vous et que vous ne pouvez pinger votre nom de domaine, vous risquez d'être dans le caca un jour.

J'ai donc cherché un moyen de pouvoir être au courant tous les matins de mon addresse IP.

2) Connaitre son addresse IP publique 

Les prerequis sont un nom de domaine qui soit mis à jour automatiquement après un changement de votre addresse IP publique. Dyndns et no-ip.org (ce que j'ai) font très bien ça.

Il faut aussi sendEmail qui permet d'envoyer facilement un email à partir d'un script.

Enfin, j'utilise fping pour connaitre l'addresse IP publique qui est geré par un routeur/modem

C'est mon premier script bash. Il doit pas être top, mais ça marche. Bien entendu, libre à vous de l'ameliorer s'il y a quelque chose à en tirer   :Wink: 

Il est à lancer sur n'importe quelle machine pouvant resoudre l'addresse IP d'un nom de domaine public et pouvant envyer un email.

Je le lance tout simplement sur mon serveur perso.

```

#!/bin/bash

touch /tmp/ip.txt

echo "Date du jour :" > /tmp/ip.txt

echo "--------------" >> /tmp/ip.txt

date >> /tmp/ip.txt

echo  >> /tmp/ip.txt

fping -A [nom de domaine de votre addresse IP publique]  >> /tmp/ip.txt

sendEmail -f [addresse email emettrice] -t   [addresse email du destinataire] -u [tite] -o message-file=/tmp/ip.txt -s [serveur smtp:port] -xu [identifiant si vous en avez besoin] -xp [mot de passe]

rm /tmp/ip.txt

```

Pour l'envoi d'email, j'utilise le serveur smtp de mon fai et ça marche nickel.

Y a plus qu'à lancer le script quand vous le desirez via un cron et vus devriez pouvoir vous amuser sur votre serveur du boulot  :Smile: 

Voilà, c'est mon premier tip. J'ai eu du mal à trouver ces infos donc, j'ai voulu vous faire partager mes quelques découvertes de ces derniers jours.

Have fun  :Wink: 

----------

## kwenspc

Pourquoi ce script en fait? Si justement on a un nom de domaine chez dyn-dns.org et que notre serv met à jour l'ip de ce nom de domaine automatiquement via net-dns/ez-ipupdate (par exemple), alors on peut diretcement faire ssh <le_domaine> sans avoir à attendre un mail automatique et lire l'ip donné. 

quelque chose m'a échappé?  :Neutral: 

----------

## bong

 *nico_calais wrote:*   

> Voilà le problème de départ.
> 
> Je veux pouvoir me connecter de mon boulot à mon serveur chez moi.
> 
> Malheureusement, le proxy du boulot n'acceppte que les requetes http. De plus, du lan, on ne peut resolver une addresse publique, du genre google.
> ...

 

et donc idem avec dyndns...

----------

## kwenspc

ah ok d'où le besoin de connaître l'addresse IP 

bon j'va me coucher moi.

----------

