Table des matières

, , ,

Irssi

Irssi est un client IRC de type CLI. C'est une alternative à Xchat, Konversation, Weechat. Le nom Irssi vient de l'argot finnois « Irssi » signifiant IRC.

Installation

Installez le paquet: irssi.

Configuration

Comme la plupart des applications sous Linux Irssi se configure via l'édition d'un fichier texte.

Éditez le fichier :

 ~/.irssi/config 
Le répertoire caché :
~/.irssi

sera créé lors du premier lancement de Irssi.

Utilisation

Irssi se lance dans un terminal, via la commande :

irssi

La fenêtre se compose de trois parties :

Commandes

Action Commande
Se connecter à son premier serveur IRC.
/connect irc.votreserveur.tld
Se connecter à un autre serveur 2). Note: une fois que vous êtes connecté à plusieurs serveurs, vous pouvez passer de l'un à l'autre en revenant sur la fenêtre « status » et en appuyant sur CTRL+X.
/connect irc.autreserveur.tld
Se connecter au canal #ubuntu-fr.
/join #ubuntu-fr
Quitter irssi.
/quit
Afficher le 'Topic' (sujet de la salle où vous vous trouvez).
/topic
Affiche les noms des personnes dans la salle 3).
/names
Parler en privé à un utilisateur.
/msg nom_d_utilisateur message
Se déplacer dans les différentes fenêtres. CTRL P : pour Previous, précédent CTRL N : pour Next, suivant ALT x : où x est le numéro de la fenêtre que vous voulez afficher4).
Passer en 'non disponible' (away)5).
/away [raison]
Redevenir 'disponible'.
/back
Permet de voir si la machine d'un utilisateur est connectée au serveur, par exemple celui de irc.libera.chat, et de voir son temps de réponse.
/ping
Permet d'obtenir des renseignements sur x utilisateurs.
/whois
Permet de contacter une personne en privé.
/query
Affiche la liste des channels de l'ircnet sélectionné.
/list
Affiche la liste des gens présents sur #debian.
/who #debian
Met en couleur le nick de la personne qui prononce le mot.
/hilight mot
Liste les fichiers disponibles par dcc.
/dcc list
Récupère un fichier envoyé par dcc.
/dcc get nick
Envoyer un fichier par dcc.
/dcc send nick nom_du_fichier
Avoir la liste des commandes.
/help
Avoir de l'aide sur une commande particulière.
/help nom_de_la_commande

Pour exécuter des commandes automatiquement au démarrage de irssi, il s'agit de copier les commandes en question dans le fichier startup6) que vous pouvez créer en saisissant dans un terminal:

touch ~/.irssi/startup

Vous pouvez également lancer des scripts au démarrage de votre Irssi. Dans notre exemple, le script portant le nom script1.pl et script2.pl s'exécuteront à chaque lancement de votre client Irssi.|Dans un terminal :

mkdir ~/.irssi/scripts/autorun/ && ln -s ~/.irssi/scripts/script1.pl ~/.irssi/scripts/autorun/ && ln -s ~/.irssi/scripts/script2.pl ~/.irssi/scripts/autorun/

Configuration de Irssi

Explications

  1. Ligne dans le fichier de configuration ~/.irssi/config.
    1. Les explications.
    2. Les commandes équivalentes (à saisir dans votre client IRC Irssi).

Configuration

  1. "fe-common/core" = { theme = "fear2.theme"; term_charset = "UTF-8"; autolog = "yes"; completion_strict = "yes"; };
    1. Utiliser le charset utf-8.
    2. /set term_charset utf-8
  2. settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; timestamp_format = "%D %H:%M:%S"; server_reconnect_time = "1min"};
    1. Attribuer un pseudonyme sur lequel vous serez connu sur le canal.
    2. /nick votre_pseudonyme
  3. channels = ( { name = "#ubuntu-fr"; chatnet = "Libera"; autojoin = "Yes"; } );
    1. Joindre le canal IRC #ubuntu-fr de manière automatique, sous le chatnet Libera.
    2. /channel add -auto #ubuntu-fr Libera
  4. servers = ( { address = "irc.libera.chat"; chatnet = "Libera"; port = "7000"; autoconnect = "yes"; term_type = "utf-8"; } );
    1. Se connecter automatiquement au round-robin : "irc.libera.chat" sans SSL sur le port 6667.
    2. /server add -auto -network Libera -port 6667 irc.libera.chat
  5. servers = ( { address = "irc.libera.chat"; chatnet = "Libera"; port = "7000"; use_ssl = "yes"; ssl_verify = "yes"; ssl_capath = "/etc/ssl/certs"; autoconnect = "yes"; term_type = "utf-8"; } );
    1. Se connecter automatiquement au round-robin : "irc.libera.chat" avec SSL sur le port 7000.
    2. /server add -auto -ssl_verify -ssl_capath /etc/ssl/certs -ssl -network Libera irc.libera.chat 7000
  6. servers = ( { address = "irc.libera.chat"; chatnet = "Libera"; port = "7000"; use_ssl = "yes"; ssl_verify = "yes"; ssl_capath = "/etc/ssl/certs"; autoconnect = "yes"; term_type = "utf-8"; } );
  7. Libera = { type = "IRC"; max_kicks = "1"; max_msgs = "4"; max_whois = "1"; sasl_mechanism = "plain"; sasl_username = "username"; sasl_password = "password_en_clair"; };
    1. Se connecter automatiquement au round-robin : 'irc.libera.chat' avec SASL et le support SSL sur le port 7000 (Attention votre mot de passe sera stocké en clair dans votre sous-dossier ~/.irssi/).
    2. /server add -auto -ssl -ssl_verify -ssl_capath /etc/ssl/certs -network Libera -port 7000 irc.libera.chat
    3. /network add -sasl_mechanism plain -sasl_username <username> -sasl_password <password> Libera
  8. Libera = { type = "IRC"; nick = "pseudonyme"; user_name= "nom_d'utilisateur_à_afficher"; real_name = "nom_réel_à_afficher"; autosendcmd = "/msg NickServ identify password;wait 8000" }; };

    client_irc_mal_configure_.jpg

    1. Configuration du pseudonyme souhaité et permettre l'identification de son pseudonyme enregistré auprès de NickServ, et patienter un laps de temps. L'option wait 8000 permet d'attendre un laps de temps après l'identification auprès de NickServ avant de joindre un canal IRC. Ceci est pratique pour ne pas divulguer son adresse Internet, pour un utilisateur ayant un cloak sous Libera, et ayant un canal IRC ou des canaux, en auto-join. Veillez à supprimer l'option ;wait 8000 de la commande ci-bas avant, mais vous pouvez aussi utiliser la commande /set sasl_disconnect_on_failure ON pour vous déconnecter de Libera automatiquement, si vous êtes pas authentifié par Nickserv.
    2. /network add -nick "pseudonyme" -user "nom_d_utilisateur_à_afficher" -realname "nom_réel_à_afficher" -autosendcmd "/msg NickServ IDENTIFY password ;wait 8000" Libera
  9. settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; proxy_address = "1.2.3.4"; proxy_port = "4242"; use_proxy = "yes"; };
    1. Utiliser un proxy SOCKS.
    2. /set proxy_address 1.2.3.4
    3. /set proxy_port 4242
    4. /set use_proxy ON
  10. settings = { core = { real_name = "pseudo"; user_name = "pseudo"; nick = "pseudo"; use_proxy = "yes"; proxy_address = "1.2.3.4"; proxy_port = "4242"; proxy_string = "CONNECT %s:%d HTTP/1.0\012\012"; proxy_string_after = "conn %s %d"; };
    1. Utiliser Irssi derrière un proxy HTTP.
    2. /set use_proxy ON
    3. /set proxy_address 1.2.3.4
    4. /set proxy_port 4242
    5. /set -clear proxy_string
    6. /set proxy_string_after conn %s %d
    7. /eval set proxy_string CONNECT %s:%d HTTP/1.0\n\n
  11. settings = { "fe-common/core" = { beep_when_window_active = "yes"; beep_when_away = "yes"; beep_msg_level = "HILIGHT MSGS DCC DCCMSGS"; }; }; hilights = ( { text = "ton_nick"; nick = "yes"; word = "no"; } );
    1. Avoir le bip système sur son pseudonyme.
    2. /set beep_when_window_active on
    3. /set beep_when_away on
    4. /set bell_beeps on
    5. /set beep_msg_level HILIGHT MSGS DCC DCCMSGS
    6. /hilight ton_nick
  12. ignores = ( { level = "PARTS QUITS"; channels = ( "#nom_channel1", "#nom_du_channel2" ); } );
    1. Ignorer les déconnexions intempestives sur votre client Irssi.
    2. /ignore -channels #nom_channel1,#nom_du_channel2 * PARTS QUITS
  13. ignores = ( { level = "JOINS"; channels = ( "#nom_channel1", "#nom_channel2" ); } );
    1. Ignorer l'affichage des utilisateurs qui se connectent sur le channel.
    2. /ignore -channels #nom_channel1,#nom_channel2 * JOINS
  14. ignores = ( { level = "JOINS PARTS QUITS"; channels = ( "#nom_channel1", "#nom_channel2" ); } );
    1. Ignorer l'affichage des connexions, et des déconnexions des utilisateurs.
    2. /ignore -channels #nom_channel1,#nom_channel2 * JOINS PARTS QUITS
  15. ignores = ( { level = "ACTIONS"; pattern = "is (away|gone|back)"; regexp = "yes"; } );
    1. Ignorer les messages d'absence public.
    2. /ignore -regexp -pattern "is (away|gone|back)" * ACTIONS
  16. ignores = ( { mask = "*!*@IPV4/IPV6/CLOAK/RDNS"; level = "ALL"; replies = "yes"; } );
    1. Ignorer totalement un utilisateur.
    2. /ignore -replies *!*@IPV4/IPV6/CLOAK/RDNS/ # Ou :
    3. /ignore -replies pseudo # Ou :
    4. /ignore -replies pseudo!*@*

Thèmes et couleurs

Le thème par défaut de Irssi ne concorde pas du tout avec le thème de gnome-terminal : il est prévu pour un terminal sur fond noir. En particulier, le pseudo utilisateur est en gras blanc sur blanc, et les notifications en gras jaune sur blanc.

Pour y remédier, on peut simplement remplacer ces couleurs dans le thème par défaut. Par exemple, y remplacer toutes les occurrences de %W (blanc gras) par %B (bleu gras) et de %Y (jaune gras) par %R (rouge gras).

Veuillez lancer un terminal avec pour contenu :

cp /usr/share/irssi/themes/default.theme /usr/share/irssi/themes/default.theme.bak
sed -i 's/%W/%B/g' /usr/share/irssi/themes/default.theme
sed -i 's/%Y/%R/g' /usr/share/irssi/themes/default.theme

Pour prendre en compte les changements, il faut soit charger un autre thème puis recharger le thème par défaut, soit relancer irssi.

On peut également installer un nouveau thème, en copiant dans le répertoire :

$HOME/.irssi

un fichier *.theme téléchargé par exemple ici.

Pour charger le nouveau thème, il suffit d'utiliser dans irssi la commande :

/set theme nomduthème

Pour revenir au thème par défaut :

/set theme default

Enfin, la méthode la plus radicale consiste à désactiver les couleurs :

/set colors off

Plugins

Irssi-proxy

Irssi + screen est un duo redoutable, mais pas toujours efficace si vous êtes très loin du serveur (lag lorsque vous tapez) ou que vous voulez utiliser un autre client IRC.

C'est là qu'intervient le plugin proxy de Irssi.

Veuillez lancer votre client Irssi avec pour contenu :

/load proxy

Va charger le module de proxy.

Attention : il n'y a pas encore de mot de passe donc mettez-en un en place :

/set irssiproxy_password votre_mot_de_passe

Il peut être différent de votre mot de passe Libera (et c'est même conseillé – c'est juste pour vous connecter au proxy).

Ensuite vous devez définir un port sur lequel vous connecterez votre client IRC:

/set irssiproxy_ports Libera=XXXX

où XXXX est un nombre pour le port TCP (assurez-vous que ce port est accessible de l'extérieur, i.e. qu'il n'est pas bloqué par un pare-feu).

Irssi-OTR (chiffrement)

Chiffrer vos conversations avec Irssi-OTR.

Irssi over Tor (libera.chat)

Pré-requis

sudo systemctl stop tor
Il peut être utile de vous référer à la page Recherche avancée9).

 Stable Node

Fichier torrc minimal pour IRC

Exclure des nodes de votre configuration Tor peut impacter votre anonymat plus ou moins gravement. À vous de choisir, si il est judicieux ou non dans votre cas, de prendre le risque d'utiliser des nodes maintenus par une agence de renseignement10) au prix d'un léger impact de votre anonymat. La configuration ci-bas n'a pas la prétention d'exclure l'intégralité des agences de renseignement dans le monde.
Voici un exemple d'un fichier torrc fonctionnel pour Libera.
Pour un résultat optimal avec ce fichier torrc, veillez à ne pas utiliser la commande :
tor

Mais :

sudo systemctl start tor

Ou :

sudo -u debian-tor tor -f /emplacement/de/votre/fichier/torrc

pour démarrer votre daemon.

Ou :

Si votre fichier torrc est dans /etc/tor/
sudo -u debian-tor tor
Pour connaître le statut de votre daemon tor :
systemctl status tor

torrc-minimal
############################################################################################################
##torrc par BeAvEr pour Libera.                                                                            #
############################################################################################################
MapAddress palladium.libera.chat libera75jm6of4wxpxt4aynol3xjmbtxgfyjpu34ss4d7r7q2v5zrpyd.onion            #
############################################################################################################
DataDirectory /var/lib/tor                                                                                 #
############################################################################################################
GeoIPExcludeUnknown 1                                                                                      #
############################################################################################################
## ⬇️ Pour un résultat optimal avec ExcludeNodes, ne surtout pas décommenter cette option !. ⬇️             # 
## ⬇️ Cette option ne fonctionne pas ou bien mal avec les URL'S .onion, voir avec le logiciel Nyx. ⬇️       #
#StrictNodes 1                                                                                             #
############################################################################################################                                                                                          
## ⬇️ https://fr.wikipedia.org/wiki/Five_Eyes  ⬇️                                                           #
## https://www.developpez.com/actu/309598/L-alliance-Five-Eyes-poursuit-ses-efforts-pour-briser-le-        #
## chiffrement-de-bout-en-bout-utilise-par-les-entreprises-technologiques-l-Inde-et-le-Japon-se-joignent-  #
## au-mouvement/                                                                                           #
#ExcludeNodes {fr}, {ca}, {nz}, {uk}, {au}, {us}, {in}, {jp}, default, Unnamed, unnamed                    #
############################################################################################################
LongLivedPorts 7000                                                                                  #
############################################################################################################
## ⬇️➡️ ssh -D 8123 -f -C -q -N -p votre_port_ssh beaver@ip_distante :).⬇️                                  #
#Socks5Proxy 127.0.0.1:8123                                                                                #
############################################################################################################
TestSocks 1                                                                                                #
############################################################################################################
## ⬇️ https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Sandbox/Linux. ⬇️                        #
## ⬇️ Si vous souhaitez utiliser l'option et que vous obtenez une erreur, veuillez recommenter l'option. ⬇️ #
## ⬇️ (Attention l'option sandbox n'est pas sécurisée, privilégier Docker par exemple !): ⬇️                #
Sandbox 1                                                                                                  #
############################################################################################################
## ⬇️ Vous souhaitez utiliser le logiciel Nyx ? : ⬇️                                                        #
ControlPort 9051                                                                                           #
############################################################################################################

Stopper le daemon tor et installation des packages nécessaires

Pré-requis


Si vous utilisez Ubuntu 18.04 (Beaver Bionic), merci de visiter l'adresse https://2019.www.torproject.org/docs/debian.html , et d'ajouter le dépôt en question. Le binaire de Tor des dépôts Ubuntu Beaver Bionic 18.04, ne reçoit plus aucune mise à jour !.

Nous stoppons ensuite votre daemon tor. Veuillez saisir dans votre terminal :

sudo systemctl stop tor

Génération du certificat client et extraction du fingerprint sha-512 de votre certificat pour Libera

Ici, nous favoriserons la génération d'un certificat sha-512 rsa:9096 valable 700 jours, au lieu d'un certificat sha-256 rsa:204811) valable 1096 jours, comme le préconise le tutoriel de Libera.

Nous devons ensuite générer un certificat client pour Libera, veuillez saisir dans votre terminal :

openssl req -x509 -sha512 -new -newkey rsa:9096 -days 700 -nodes -out torLibera.pem -keyout torLibera.pem

Nous créons ensuite un dossier certs dans votre sous-dossier .irssi et nous allons transférer votre certificat torLibera.pem fraîchement généré dans le dossier certs. Veuillez saisir dans votre terminal :

mkdir -p $HOME/.irssi/certs ; mv *.pem $HOME/.irssi/certs

Il nous faut ensuite extraire l'empreinte de votre certificat torLibera.pem. Pour se faire, veuillez saisir dans un terminal la commande suivante :

openssl x509 -in ~/.irssi/certs/torLibera.pem -noout -fingerprint -sha512 | awk -F= '{gsub(":",""); print tolower ($2)}'

Vous pouvez consulter l'état de votre certificat, via la commande suivante :

openssl x509 -in ~/.irssi/certs/torLibera.pem -text

Ajout de l'empreinte SHA-512 à votre pseudonyme Libera

Veuillez copier votre fingerprint de votre certificat torLibera.pem, et ensuite veuillez ouvrir votre client Irssi, et y saisir :

/connect irc.libera.chat
/nick <votre_pseudonyme_enregistré_auprès_de_Libera>
/msg nickserv identify <votre_mot_de_passe>
/msg nickserv CERT ADD <votre_fingerprint>

Configurons maintenant votre client Irssi, pour utiliser Tor LOL.

Configuration de votre pseudonyme avec SASL

  • Le support SASL est disponible à partir de la version 0.8.18 de Irssi.

Ajout du réseau Tor à votre client Irssi

Via ce procédé il vous sera plus nécessaire de vous identifier par votre mot de passe NickServ, mais avec votre certificat torLibera.pem.

Dans votre client Irssi y insérer :

/network add -sasl_username votre_pseudonyme -sasl_password ~/.irssi/certs/torLibera.pem -sasl_mechanism EXTERNAL LiberaTor 

Et ensuite :

/server add -auto -net LiberaTor -ssl -ssl_cert ~/.irssi/certs/torLibera.pem palladium.libera.chat 7000

Nous ignorons les requêtes de type CTCP et DCC pour ne pas divulguer votre IP originale :

/ignore * CTCPS
/ignore * DCC
/save
/quit

Pour que votre client Irssi se connecte sur le .onion de Libera, il nous faudra utiliser le logiciel proxychains4.

Pour lancer votre client Irssi sur le .onion Libera, il nous faudra utiliser le protocole SOCKS5 et non SOCKS4 dans le fichier de configuration /etc/proxychains.conf pour une performance accrue.
sudo sed -i 's/socks4\t127.0.0.1/socks5\t127.0.0.1/g' /etc/proxychains.conf

Et nous lançons ensuite notre client irssi avec proxychains4 :

proxychains4
proxychains4 -q irssi

Xirssi

Le projet semble être abandonné.

xirssi.jpg

Si vous suivez ce tutoriel, vous connaissez le client IRC en CLI Irssi, ici, vous allez voir comment avoir Irssi mais en version GTK, pour se faire on va devoir compiler Irssi et Xirssi.

Compilation de Irssi

Veuillez ouvrir un terminal avec les commandes suivantes :

Nous installons les dépendances logicielles pour Irssi.
sudo apt-get build-dep irssi 
Ensuite, nous récupérons le tar.gz de Irssi via le site officiel.
wget http://www.irssi.org/files/irssi-0.8.17.tar.gz
Ensuite, nous décompressons le tar.gz irssi-0.8.17.tar.gz et on se place dans le dossier irssi-0.8.17.
tar -xzvf irssi-0.8.17.tar.gz && cd irssi-0.8.17
Nous lançons la compilation de Irssi.
./configure --with-perl --with-glib2 ## L'option --with-glib2 n'est plus disponible, mais ce fut le cas à l'époque.
make
sudo make install

Nous vérifions votre version de Irssi via la commande suivante :

irssi --version

Et on obtient ceci :

irssi 0.8.17 (20141011 1044)

Votre Irssi est compilé, au tour de Xirssi.

Compilation de Xirssi

On installe le paquet subversion et on récupère les sources de Xirssi.

Veuillez ouvrir un terminal avec les commandes suivantes :

sudo apt-get install subversion
svn co http://svn.irssi.org:8080/repos/xirssi/trunk/ xirssi
On se place dans le dossier xirssi, et on lance la compilation :-D.
cd xirssi
./autogen.sh
./configure --with-irssi=/patch/irssi
make
sudo make install

Si tout est ok, vous devriez avoir votre binaire Xirssi :

xirssi1.jpg

Aller plus loin

Il y a beaucoup de commandes disponibles pour IRC, encore quelques unes sur le site de Wikipedia12).

  1. Lire la doc officielle, en anglais : http://www.irssi.org/documentation.
  2. Si vous voulez utiliser de manière plus efficace Irssi vous pouvez changer les raccourcis claviers pour les principales commandes (toujours dans ~/.irssi/config).
  3. Vous pouvez utiliser un script, des tonnes ici : https://scripts.irssi.org/ Les scripts adv_windowlist, nickolor, et urlgrab sont particulièrement utiles.
  4. Vous pouvez écrire votre propre script en Perl et le diffuser : http://juerd.nl/site.plp/irssiscripttut.

Voir aussi


Contributeurs : Rédigée par Ju, refonte de l'intégralité de la documentation par BeAvEr depuis 2010.

1)
Il y'a, chez moi, une deuxième barre pour Screen.
2)
Vous restez connecté au premier.
3)
Il existe un script qui tente de faire une barre latérale pour Irssi http://wouter.coekaerts.be/site/irssi/nicklist.
4)
ALT SHIFT & : pour revenir aux messages serveurs.
5)
Les messages où vous êtes nommés seront copiés dans la fenêtre statut du serveur.
6)
'/' n'est pas nécessaire ;-).
7)
Si vous souhaitez monitorer votre trafic Tor.
8)
m(.
9)
Dans la partie Flag, favoriser le choix Stable.
11)
Même si à ce jour aucune collision fut trouvée officiellement avec sha-256 rsa:2048 !.
12)
La page contient que des informations concernant le protocole IRC, et les flags.