Table des matières

IRC - Envoi/Réception fichiers

Introduction

L'IRC (Internet Relay Chat) est un protocole qui permet de dialoguer en temps réel avec d'autres utilisateurs en se connectant grâce à un logiciel spécifique (appelé un client).

Il existe de nombreux clients, sous différents systèmes d’exploitation, on peut y trouver: xchat, hexchat, weechat, irssi, konversation, chatZilla, adium et beaucoup plus encore.

Les ports officiels IRC sont le 6667 et 6697 en ssl, lire l'article de Bortzmeyer

DCC, abréviation de Direct Client-to-Client, est un protocole utilisé par de nombreux clients IRC, utilisé pour envoyer des fichiers, mais peut également être utilisé pour chatter plus rapidement et de manière plus sécurisée discrète avec un autre utilisateur.

Je ne parlerai ici que des envois de fichiers.

Dans une connexion DCC normale, l'émetteur agit comme le serveur et la cible agit comme un client.
L'émetteur doit donc être capable de se configurer comme serveur, les connexions entrantes vers un client IRC peuvent être bloquées par des pare-feux ou des routeurs de type NAT, si aucun port n'est ouvert en entrée, ou redirigé pour autoriser la connexion du client destinataire venant relever les fichiers de l'émetteur.

La demande DCC est généralement reçue par le client de destination, mais la connexion échoue si le port utilisé est fermé au niveau du pare-feu, ou mal routé.

XDCC désigne en général tout procédé de partage de fichier via un Robot IRC, (communément appelé bot IRC).
Les bots XDCC proposent un ou plusieurs fichiers, généralement volumineux, à télécharger en utilisant le protocole DCC.

Bien que XDCC soit souvent employé pour diffuser du contenu illégal, tel que des distributions warez de logiciels, musique, ou films, il est aussi utilisé à des fins légales.

CTCP (Client-To-Client Protocol) est un protocole courant implémenté par la plupart des clients IRC, et étend le protocole IRC.

Il permet aux utilisateurs de connaître :

Il peut également être utilisé pour encoder des messages que le protocole IRC ne permettrait pas d'envoyer.

Enfin, il est utilisé comme moyen d'initier une connexion directe entre deux clients via le protocole DCC en vue de transférer des fichiers, ou de discuter, sans passer par le serveur IRC (éliminant ainsi toutes les contraintes liées au dialogue via le serveur IRC).

Installation

Pour installer hexchat, client libre et actif, fork de XChat2) :

apt-get install hexchat

Pour installer weechat :

apt-get install weechat

Utilisation

En pratique pour établir le transfert dans les deux sens, il faut :

  1. se choisir des ports non utilisés,
  2. les ouvrir dans sa box ou son modem-routeur,
  3. les ouvrir au niveau du pare-feu.

Sur ma livebox orange j'ai ouvert les ports 1963 et 1964 25555 et 25556 dans les règles NAT/PAT (à priori, seul TCP est utilisé). Il s'est avéré que 1963 est utilisé par un utilitaire de MAJ Mint.
Pour vérifier qu'un port n'est pas officiellement réserver à l'IANA: Pour les tests, j'ai ouvert UDP/TCP).

Dans la Configuration réseau de Hexchat, j'ai mis les mêmes ports et j'ai coché Obtenir l'adresse ip comme le montre la capture d'écran ci-dessous.
Les personnes avec qui je veux envoyer et recevoir des fichiers devront choisir le même genre d'options si elles sont routées pour accéder à l'internet.

Les numéros de ports sont à choisir librement.
2 ports permettent 1 envoi + 1 réception simultanés, mais vous pouvez en ouvrir plus

Pour envoyer votre fichiers :

  1. Un clic droit sur le nom de la personne à qui vous voulez envoyer
  2. choisir envoyer un fichier.

La fenêtre pour saisir votre fichier s’ouvre.

Pour la réception, une fenêtre de dialogue s’ouvre, dans laquelle vous voyez :

Cliquez sur détail et acceptez :

  1. la fenêtre pour choisir votre répertoire de réception s’ouvre,
  2. la progression du transfert est indiquée,
  3. c’est bon, votre fichier est arrivé à bon port…

Pour Weechat, j’ai mis les mêmes ports.
Il faut aller dans le fichier weechat/xfer.conf.
Mettez vos ports (configurés dans la box), comme indiqué ci-dessous dans port_range:

port_range = "25555-25556"

la commande pour envoyer vos fichiers est : /dcc send nom du receveur /emplacement du fichier/fichier

exemple :

/dcc send toto /home/momo/Images/avosconsoles.png

Cherchez votre fenêtre active pour cette fonction avec F6 ou F5.

Dans la fenêtre, on vous demandera de taper A et enter pour accepter.
Si l’opération est bien réussie vous aurez :

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
plus maintenu depuis 2010/2012