.:Bordel-de-Nerd:.

Commandes en vrac #2

closeCet 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.

Samoustique

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

twidge recherche

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 ».

2 Responses to Commandes en vrac #2

  1. kir0

    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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash player