====== IRC - Envoi/Réception fichiers ======
* Objet : Envoyer des fichiers sur IRC
* Niveau requis : {{tag>avisé}}
* Commentaires : //Configurer son client IRC pour envoyer des fichiers en utilisant un protocole complémentaire DCC//
* Suivi :
* Création par [[user>lagrenouille]] 17/03/2017
* Testé par Hassassin le 16-03-2017
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=17421 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
*{{tag>à-placer}}
===== 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, [[doc:reseau:weechat|weechat]], [[doc:reseau:irssi|irssi]], [[doc:reseau:konversation|konversation]], chatZilla, adium et beaucoup plus encore.
Les ports officiels IRC sont le 6667 et 6697 en ssl, lire [[http://www.bortzmeyer.org/7194.html|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 :
* la version d'un client (CTCP VERSION),
* l'heure locale (CTCP TIME)
* et certaines informations (CTCP USERINFO) entre autres.
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 XChat((plus maintenu depuis 2010/2012)) :
apt-get install hexchat
Pour installer [[doc:reseau:weechat|weechat]] :
apt-get install weechat
===== Utilisation =====
En pratique pour établir le transfert dans les deux sens, il faut :
- se choisir des ports non utilisés,
- les ouvrir dans sa box ou son modem-routeur,
- 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 [[https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml|officiellement réserver à l'IANA]]:
Pour les tests, j'ai ouvert UDP/TCP).
{{https://debian-facile.org/images/file-Rd3ec32e3df85430a59aa7524bfc194aa.png}}
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
{{https://debian-facile.org/images/file-Rffa86b7dd7dabbb3b572b2b660def980.png?700}}
{{https://debian-facile.org/images/file-R7cc4b0e5f44fe8a0e0c6dc72b0874fcb.png}}
Pour envoyer votre fichiers :
- Un clic droit sur le nom de la personne à qui vous voulez envoyer
- 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 :
* le fichier proposé,
* le nom et
* l’IP de l’envoyeur…
Cliquez sur détail et acceptez :
- la fenêtre pour choisir votre répertoire de réception s’ouvre,
- la progression du transfert est indiquée,
- c’est bon, votre fichier est arrivé à bon port…
{{https://debian-facile.org/images/file-R8b911ff212f6c799b0c6ce4c53a765ff.png?500}}
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 :
* le nom,
* l’IP et
* le message: terminé
{{https://debian-facile.org/images/file-R95ae0ee6bcf82d9bab8389a6fddd296d.png?500}}