juillet 2007 Archives

jeudi 19 juillet 2007 22:46

cat, netcat, tar et dd



Installer un réseau local, ça ouvre des perspectives.

J'avais noté dans un coin de ma tête des manips rigolotes à faire avec netcat. Lues dans l'excellente documentation de mon ami JML sur Tom's RTBT, je m'étais promis d'essayer à l'occasion.

L'idée est d'ouvrir un port sur une machine tournant sur Tom's RTBT pour lui envoyer des fichiers sans utiliser le FTP, ni SSH, ni un autre protocole évolué. Ainsi on devrait pouvoir installer un système minimal sur un (tout petit) disque d'une machine n'ayant pas de lecteur de CD Rom (genre DD 250 Mo, RAM 20 Mo). Bien sûr, on aura au préalable formaté le disque de façon appropriée, puis on aura monté la partition.

On boote la petite machine avec la disquette de Tom. Si on est derrière un serveur DHCP (Livebox, Freebox, etc.) la carte réseau devrait être configurée automatiquement. On vérifie par ifconfig quelle est son adresse IP.

Pour transférer un ou quelques fichiers, on y tape ensuite la commande suivante :

nc -l -p 1025 > fichier_de_destination


depuis la machine source, elle aussi en réseau, on tape :

cat fichier_d_origine | nc -q0 IP_de_la_petite_machine 1025


L'option « -q0 » de netcat (nc) signifie que la connexion doit être fermée 0 seconde après le passage du caractère « EOF » (End Of File ou fin de fichier).

Bien sûr on n'est pas obligé d'utiliser le port 1025. Puisqu'on est root sur la petite machine on peut prendre n'importe quel port, y compris inférieur à 1024.

Au lieu de cat on peut utiliser dd de la façon suivante :

dd if=fichier d'origine | nc IP_de_la_petite_machine 1025


Avec dd, on peut même copier une partition, voire un disque complet. Par ailleurs on peut se dispenser de l'option « -q0 » puisque dd ferme lui-même la connexion à la fin du transfert.

Par contre pour une arborescence (un répertoire contenant ou non des sous-répertoires, etc.), il faut utiliser tar.

Comme le but de l'opération est de transférer une installation minimale (entre 100 et 200 Mo) sur le disque de la petite machine, on lancera sur la machine de destination :

nc -l -p 1025 | tar -xf -


La machine restera en attente.

Sur celle où on a au préalable préparé une arborescence (par debootstrap par exemple) :

tar -c ./l_arborescence | nc -q0 IP_de_la_petite_machine 1025


Grâce à l'option « -q0 » de nc, la connexion est interrompue dès la fin du transfert et la petite machine rend la main.

On a compacté (tar -c) l'arborescence, on l'a envoyée dans la connexion netcat, on l'a récupérée sur la petite machine en la décompactant à la volée (tar -xf -). Le « f - » est nécessaire à cause de la version de la commande tar présente sur la disquette Tom's RTBT. Dans un autre contexte, c'est à dire entre deux machines normales, « tar -x » suffit après le tube.

J'ai testé, ça fonctionne. Reste plus qu'à installer la petite machine. Quand on aura le temps. Il n'y a pas que l'informatique dans la vie.

Posted by Bernard Adrian | Permanent Link | Categories: libre

dimanche 08 juillet 2007 22:49

Machines en réseau



Pour la première fois, j'ai mis deux machines en réseau derrière la Freebox. Des gamins de 14 ans l'ont fait avant moi, mais ce jour est à marquer d'une pierre blanche.

Rien de bien compliqué : placer un switch entre les bécanes et la Freebox et configurer cette dernière en routeur.

Le plus marrant est de jouer avec ssh d'une machine à l'autre. En particulier l'option -X qui permet de déporter l'affichage d'une machine à l'autre.

Posted by Bernard Adrian | Permanent Link | Categories: libre