Installer un serveur IRC sous Raspberry PI

Nous allons installer un serveur IRC Afin de garder le contact avec nos amis.

Choix du serveur

Il existe un large choix de serveurs IRC :

  • IRCD (serveur IRCNET)
  • IRCU (serveur Undernet)
  • Bahamut (serveur DALnet)
  • IRCD-Hybrid (serveur EFNET)

Ils sont tous basés sur IRCD, seul la configuration et quelques services diffèrent.
Notre choix se porte sur IRCD-Hybrid, le plus simple à mettre en oeuvre : installer les paquets, modifier légèrement la configuration et lancer le serveur. Il est aussi l’un des plus légers sous Raspberry PI.

Installation du serveur

Installation de irdc-Hybrid

Nous commençons par mettre à jour le système

$ sudo apt-get update

Installons Cmake et ircd-hybrid

$ sudo apt-get install cmake
$ sudo apt-get install ircd-hybrid

Lors de l’installation un nouvel utilisateur – irc – est créé avec des privilèges limités. Ce sera l’utilisateur par défaut pour ircd-Hybrid. À la fin de l’installation le serveur démarre. Nous pouvons nous y connecter en local en installant le paquet irssi (client irc en mode TEXTE), lançons le et tapons /connect 127.0.0.1 . Le MOTD par défaut doit apparaître. Tapons /exit pour quitter irssi et revenir à la ligne de commande.

Configuration du serveur

Pour configurer ircd-hybrid, déplaçons nous dans le dossier /etc/ircd-hybrid/ , si l’acces vous est refusé un petit

$ sudo chmod -R 755 /etc/ircd-hybrid/

pour y accéder. Puis éditons ircd.conf.

$ sudo nano /etc/ircd-hybrid/ircd.conf

et modifions quelques lignes :

serverinfo {
        /* name: the name of our server */
        name = "nom_du_serveur";

        /* description: the description of our server.  '[' and ']' may not
         * be used here for compatibility with older servers.
         */
        description = "description du serveur";

        /* network info: the name and description of the network this server
         * is on.  Shown in the 005 reply and used with serverhiding.
         */
        network_name = "nom.du.reseau";
        network_desc = "description du reseau";
....
};
....
listen {
host="ip.du.serveur";
port=6667;
};
auth {
user="*@*";
...
};
...
operator {
name = "root";
password ="motdepasse.genere.par passwd -Hmd5 passphrase";
...
};
...

il faut aussi effacer la ligne

havent_read_conf = 1

puis relançons le serveur

$ sudo service ircd-hybrid restart

Vérifions si tout est bien configurer en nous reconnectant avec irssi :

nom_du_serveur Message of the Day - 
-
-         _,met$$$$$gg.       ircd-hybrid 7.2.2
-      ,g$$$$$$$$$$$$$$$P.    -----------------
-    ,g$$P""       """Y$$.".  
-   ,$$P'              `$$$.  If you are seeing this, you have
- ',$$P       ,ggs.     `$$b: installed the ircd-hybrid package and
- `d$$'     ,$P"'   .    $$$  you are now connected to your new IRC
-  $$P      d$'     ,    $$P  server -- congratulations.
-  $$:      $$.   -    ,d$$'  
-  $$;      Y$b._   _,d$P'    Since you have just installed the
-  Y$$.    `.`"Y$$$$P"'       package, there are some things you
-  `$$b      "-.__            should do before going any further:
-   `Y$$b                     
-    `Y$$.                    1. Edit /etc/ircd-hybrid/ircd.conf to
-      `$$b.                  suit your needs. Beware some options have
-        `Y$$b.               been removed or moved into other blocks in
-          `"Y$b._            the configuration file since
-             `""""           ircd-hybrid 7.0.3.
- 
-                             2. Edit /etc/ircd-hybrid/ircd.motd (this
-                             MOTD) to suit your needs. You are free
-                             to use this Debian swirl under the
-                             Debian Open Use Logo License. :)
- 
-                             3. Restart the server using invoke-rc.d
-                             ircd-hybrid restart.
- 
-                             -- Joshua Kwan <joshk@triplehelix.org>
-                             -- Aurélien GÉRÔME <ag@roxor.cx>
-
End of /MOTD command.

le serveur est bien renommé.

Modification du MOTD

Éditons le message du jour:

$ sudo nano /etc/ircd-hybrid/ircd.motd

Mettons un message de bienvenue et quelques règles, enregistrons, et redemarons le serveur.

$ sudo service ircd-hybrid restart

installation des services

Nous allons installer les services ChanServ/NickServ/OpenServ grâce à Anope, qui propose tous ces services, et qui est relativement standart (on le retrouve sur beaucoup de chan irc), en utilisant l’utilisateur créé par ircd-hybrid.
Créons le repertoire de travail des services, récupérons les sources et compilons-les.

sudo mkdir /srv/ircd-services/ ; chown irc:irc /srv/ircd-services/
su irc
cd /srv/ircd-services/
wget http://downloads.sourceforge.net/project/anope/anope-stable/Anope%2020.0.1/anope-2.0.1-source.tar.gz
tar xvzf anope-2.0.1-source.tar.gz
./anope-2.0.1-source/Config

Le script Config vous demande de télécharger CMake. Répondons non puisque nous l’avons déjà installé avec le serveur.
Changeons le chemin vers /srv/ircd-services/ puis utilisons les paramètres par défaut (yes ou « entrée »).
Compilons:

make

Prenons un café, un deuxième.

 make install

Laissons tourner la machine.
Les services sont installés mais pas encore fonctionnels, configurons-les.

$ sudo cp exemple.conf services.conf
$ sudo nano services.conf

Éditons les lignes

IRCDModule "hybrid"
EncModule "enc_md5"
#(attention à l'ip et au mot de pass)
RemoteServer xxx.xxx.xxx.xxx 6667 "password"
ServerName "nom_du_serveur"
ServerDesc "description du serveur"
ServicesRoot "root"

Lançons les services avec ./services . Connectons-nous avec irssi sur notre serveur, les services Nickserv,ChanServ apparaissent à la connexion au serveur.
Bon chat.