IRC

Posted on sam. 24 novembre 2018 in social

Internet Relay Chat ou IRC (en français, « discussion relayée par Internet ») est un protocole de communication textuelle sur Internet. Il sert à la communication instantanée principalement sous la forme de discussions en groupe par l’intermédiaire de canaux de discussion, mais peut aussi être utilisé pour de la communication de un à un. Il peut par ailleurs être utilisé pour faire du transfert de fichier.

Installation de Kiwi IRC

Si vous n'avez pas Node.js d'installer :

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
git clone https://github.com/prawnsalad/KiwiIRC.git && cd KiwiIRC
npm install
cp config.example.js config.js
vim config.js
./kiwi build
./kiwi start
http://serveurname:7778/

Si vous souhaitez faire un proxy sur Kiwi IRC pour l'avoir sur une URL ou un sous-domaine :

location /kiwi/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

        proxy_pass http://localhost:7778/kiwi/;
        proxy_redirect default;

        # Websocket support (from version 1.4)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
}

Si vous souhaitez un thème plus foncé, vous pouvez installation en récupérer les fichiers ici : https://github.com/prawnsalad/KiwiIRC/pull/835

mkdir KiwiIRC/client/assets/themes/morning
cd KiwiIRC/client/assets/themes/morning
wget https://raw.githubusercontent.com/xPaw/KiwiIRC/morning-theme/client/assets/themes/morning/theme.json
wget https://raw.githubusercontent.com/xPaw/KiwiIRC/morning-theme/client/assets/themes/morning/style.css
cd ../../../../
vim config.js
# Add "'morning'," line 231

Installation de Lounge

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g thelounge
// vim /root/.lounge/config.js
public
host: "127.0.0.1",
theme: "themes/zenburn.css",
lounge add user
// vim /root/.lounge/users/user.js
{
  "user": "example",
  "password": "password",
  "log": false,
  "networks": [{
    "name": "Freenode",
    "host": "irc.freenode.net",
    "port": 6697,
    "tls": true,
    "password": "serverpw",
    "nick": "john",
    "realname": "John Doe",
    "commands": [
      "/msg NickServ identify password",
      "/msg ChanServ op #chan"
    ],
    "join": "#foo, #bar"
    }]
}

Installation d'un bouncer ZNC

ZNC is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC. It supports SSL secured connections and IPv6.

Fonctionnement sans ZNC

Le client se connecte directement au près du serveur IRC. En cas de déconnexion, le client perd alors le contenu jusqu'à sa prochaine connexion.

Fonctionnement avec ZNC

Le client ne se connecte plus directement sur le serveur IRC mais sur le ZNC. C'est lui qui est alors directement connecté sur l'IRC. Il garde alors en mémoire l’ensemble du contenu et le renvoie ensuite à l'utilisateur lors de sa connexion.

Download the latest source tarball

wget http://znc.in/releases/znc-1.6.3.tar.gz
tar -xzvf znc*.*gz
cd znc*
./configure
make
make install
znc --makeconf

Modification de la configuration pour améliorer la sécurité : forcer le TLS et les chiphers

# Renouvellement du certificat
znc --makepem
# vim .znc/conf/znc.conf
SSLProtocols = -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2
SSLCiphers = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

Hexchat

https://dl.hexchat.net/themes/Solarized%20Dark.hct
git clone https://github.com/hexchat/hexchat.git
cd hexchat
./autogen.sh
./configure --with-theme-manager
make && sudo make install