Commandes en vrac #2
30
septembre
Cet article a été publié il y a 3 ans 8 mois 19 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.Ce billet est donc le deuxième de la série commandes en vrac, vous pouvez retrouver le premier ici.
Aujourd’hui nous allons commencer par une commande utile lorsque vous êtes derrière un proxy (ou si vous voulez vous faire passer pour une autre IP).
Cette commande va créer un tunnel ssh et et y en-capsuler l’application de votre choix.
Le pré requis pour pouvoir mettre en place ce tunnel est évidemment d’avoir un accès ssh sur une machine distante.
Imaginons que la machine distante sur laquelle nous avons un accès ssh a pour adresse IP 85.110.34.56 (adresse factice) et que ssh tourne sur le port 2224.
Pour créer notre tunnel ssh nous utilisons la commande suivante
ssh -N username@85.110.34.56 -p2224 -D3333 |
- -p choix du port à utiliser pour la connexion
- -N ne pas exécuter de commande distante
- -D Établir un transfert de port en redirigent tout vers le port 3333 (explications détaillés plus tard dans le billet)
Voilà le tunnel ssh est crée il faut maintenant faire en sorte que nos applications puissent l’utiliser.
Il faut pour cela installer « tsocks » qui permet de créer un proxy socks
sudo apt-get install tsocks |
Et le configurer pour qu’il écoute sur le port 3333
Pour cela éditez le fichier de configuration /etc/tsocks.conf
Recherchez cette ligne
# The port defaults to 1080 but I've stated it here for clarity server_port = 1080 |
Et modifiez là
# The port defaults to 1080 but I've stated it here for clarity server_port = 3333 |
Une fois le tunnel ssh établi et tsocks configuré vous pouvez encapsuler l’application de votre choix par ce tunnel.
Rien de plus simple il suffit d’utiliser cette commande (exemple avec Firerox)
tsocks firefox |
Pour automatiser cette connexion il est tout à fait possible de créer un petit script Bash
#!/bin/bash USER=nom_d_utilisateur SERVEUR=serveur_distant PORT=port #vérifier qu'on a bien une commande en argument if [ $# = 0 ]; then echo -e "Argument manquant" exit 1 fi #établir le tunnel ssh avec redirection dynamique des ports ssh -N -D3333 $USER@$SERVER -p $PORT & #garder le PID du processus ssh pid=$! #attendre un moment que la connexion s'établisse sleep 3 #on encapsule les connexion de l'application (lancée en argument) dans un proxy socks (paramétré sur le port 3333 dans /etc/tsocks.conf) tsocks $* #Quand on quitte le programme fermer la connexion ssh kill $pid exit 0 |
Pour terminer il ne reste plus qu’à déplacer ce script dans la « PATH » et le rendre exécutable
sudo mv monscript.sh /usr/local/bin/tunnel_ssh.sh sudo chmod +x /usr/local/bin/tunnel_ssh.sh |
On lance ainsi cette commande pour encapsuler un programme
tunnel_ssh.sh mon_appli |
Pour terminer ce deuxième billet regroupant des commandes utiles au quotidien je vais une fois de plus parler de twidge (client cli pour twitter que j’affectionne particulièrement)
La première commande permet de rechercher dans les archives de nos tweets une chaine de caractère
twidge lsarchive | awk '{ FS="<" ; RS="<" } /Votre recherche/ { print }' |
exemple
La deuxième commande relative à twidge est toute simple mais forte utile, elle permet de planifier l’envoi d’un tweet
at 20:00 at> twidge update "Hey, il est 20h, ceci est un tweet planifié" at> Ctrl-D |
Les possibilités offertes par twidge sont encore nombreuses, j’en présenterais d’autres dans mes futurs billets « Commandes en vrac ».


Post intéressant,
Merci pour le partage. je tiens à surligner qu’il y a une petite erreur dans le script bash :
ssh -N -D3333 $USER@$SERVER -p$PORT &
Il manquait le $ ^^
Bonne continuation.
- Kir0
Bien vu pour la faute de frappe, c’est corrigé.
Merci pour ton commentaire.
Jérôme.