Serveur IRC

Cette documentation se base sur les logiciels suivants :

- UnrealIRCd 3.2.8.1
- GNU/Linux Debian

Il faut savoir qu’elle a également été mise en pratique avec succès sur un NSLU2.

UnrealIRCd est un serveur IRC Libre et gratuit, il est très utilisé dans les petites et moyennes structures francophones. Il est assez complet et sa configuration peut être assez poussée.

Nous allons donc principalement aborder l’installation du logiciel et sa configuration de base.

Préparation du système

Tout d’abord, nous allons préparer le système pour l’installation du logiciel.

Les outils de compilation :

# apt-get update
# apt-get install build-essential

OpenSSL pour la création des certificats :

# apt-get install openssl libssl-dev

Il faut également ajouter un nouvel utilisateur pour ne pas faire fonctionner le daemon en root.

# adduser ircd --system --home /etc/unrealircd

Remote Includes (optionnel)

Cette partie n’est pas obligatoire pour faire fonctionner votre serveur IRC.
Cependant cette fonction permet des choses intéressantes dans le cas d’un fonctionnement en réseau (comme celui du RHIEN).
Les "Remote Includes" permettent basiquement d’inclure un fichier externe dans son fichier de configuration. L’intérêt étant de pouvoir centraliser une partie de la configuration des serveurs IRC du même réseau et ainsi, en faciliter la maintenance.

Un script automatisant l’installation a été crée par l’équipe FBSD-DEV :

# cd /etc/unrealircd/
# wget http://www.fbsd-dev.org/cURL/cURL.sh
# env HOME=/etc/unrealircd sh cURL.sh

Le "env HOME=/etc/unrealircd" permet d’installer les composants dans /etc/unrealircd au lieu du dossier personnel de l’utilisateur root (configuration par défaut du script). On aurait pu également lancer le script avec l’utilisateur ircd.

Installation

Téléchargement du logiciel :

# cd /tmp
# wget http://www.unrealircd.com/downloads/Unreal3.2.8.1.tar.gz
# tar xzvf Unreal3.2.8.1.tar.gz

Vérification (si nécessaire) :

MD5 : 7b741e94e867c0a7370553fd01506c66
SHA1 : 363c3c995bb38cf601f409610ce1937a0002c419

Début de l’installation :

# cd /tmp/Unreal3.2.8.1
# ./Config

Personnalisation de l’installation :

Pour la suite, j’ai pris le parti de traduire le texte affiché à l’écran et de proposer les réponses que je conseille.
Les réponses vides signifient qu’il suffit d’appuyer sur entrer pour accepter le choix par défaut qui se trouve entre crochets.


De nombreux ancien systèmes d’exploitation ont une pile TCP/IP non sécurisée qui pourrait être vulnérable aux attaques d’usurpation d’adresse IP, si vous utilisez un système d’exploitation qui est vulnérable à ce type d’attaques activez cette option. Cette option peut également être utile pour empêcher la connexion de serveur mandataire ouvert.

Voulez-vous activer la protection anti-spoof du serveur ?

Dans quel dossier se trouve la configuration du serveur ?

Quel est le chemin vers le binaire ircd tout en incluant le nom du binaire ?

Voulez-vous compiler en tant que HUB ou LEAF ?
Tapez Hub pour choisir HUB et Leaf pour choisir LEAF.
Un Hub se connecte à plusieurs serveurs tandis qu’un Leaf ne peut se connecter qu’à un serveur à la fois.

Quel est le nom d’hôte du serveur hébergeant l’IRCd ?
Ici vous devrez mettre votre nom d’hôte.

Quelles devraient êtres les permissions par défaut de vos fichiers de configuration ? (Mettez 0 pour désactiver)
Il est fortement recommandé d’utiliser 0600 pour éviter une lecture par n’importe qui.

Voulez-vous utiliser les connexion SSL (Secure Socket Layer) ?

Si vous connaissez le chemin vers OpenSSL sur votre système, entrez le ici. Sinon laissez vide.

Voulez-vous activer le support de l’IPv6 ?
Tout dépend si votre réseau dispose de l’IPv6, ou tout du moins disposera à court terme.

Voulez-vous activer le support des liens compressés ?

Si vous connaissez le chemin vers zlib sur votre système, entrez le ici. Sinon laissez vide.

Voulez-vous activer les "remote includes" ?

Spécifiez le dossier où libcurl est installé

Voulez-vous activer les préfixes pour les administrateurs et les propriétaires de canaux ?
Ceci donnera +a le préfixe & et pour +q (tout comme +o est @)
Supporté par les plus gros clients (mIRC, xchat, epic, eggdrop, Klient,
PJIRC, irssi, CGI:IRC, etc.)
Cette fonction doit être activée/désactivée sur tout le réseau.

Quelle valeur voulez-vous utiliser pour le journal listen() ? Certains vieux serveurs posent problème avec plus de 5, tandis que d’autres fonctionnent très bien avec beaucoup plus.

Quelle doit être la portée de l’historique des pseudonymes ?

Quelle longueur maximale pour sendq voulez-vous avoir ?

Combien de "buffer pools" voulez-vous ?
Ce nombre sera multiplié par MAXSENDQLENGTH.

Combien de "file descriptors" (ou sockets) l’IRCd peut utiliser ?

Voulez-vous configurer d’autres paramètres ?
Écrivez-les ici :


Ensuite, le programme va vous demander certaines informations pour générer votre certificat. Pour laisser un champ vide il faut mettre un "." (sans les guillemets).

Code de votre pays (ex : France) :

    Country Name [US]:FR

Nom de votre région (ex : Île de France) ou laissez vide :

    State/Province [New York]:IDF

Nom de votre ville (ex : Paris) :

    Locality Name (eg, city) []:PARIS

Nom de votre réseau (ex : MonRéseauIRC) :

    Organization Name (eg, company) [IRC geeks]:MonRéseauIRC

Mettez ici ce que vous voulez (ex : IRC) :

    Organizational Unit Name (eg, section) [IRCd]:IRC

Votre nom de domaine (ex : irc.monreseauirc.net) :

    Common Name (Full domain of your server) []:irc.monreseauirc.net

Vous tomberez certainement sur une référence à CACert vers la fin, il s’agit d’une autorité de certification à but non lucratif dont nous tenterons de décrire les aspects dans un autre document.

La suite est plus classique :

# make

Puis :

# make install

On doit maintenant faire en sorte qu’UnrealIRCd se lance au démarrage :

# mv /etc/unrealircd/unreal /etc/init.d/unrealircd
# chmod +x /etc/init.d/unrealircd
# update-rc.d unrealircd defaults

Configuration

Il faudra tout d’abord copier certains fichiers de configuration vers le bon dossier :

# cd /etc/unrealircd
# cp /tmp/Unreal3.2.8.1/doc/example.fr.conf unrealircd.conf
# cp /tmp/Unreal3.2.8.1/doc/help.fr.conf help.conf
# cp /tmp/Unreal3.2.8.1/*.pem
# cp /tmp/Unreal3.2.8.1/ssl.rnd

Vous pouvez maintenant éditer le fichier de configuration (unrealircd.conf) à votre guise. Tous les commentaires du fichier sont traduit en français, il me semble donc pas nécessaire de poursuivre sur le sujet.

Lorsque vous aurez terminé, vous pourrez lancer le logiciel de cette façon :

# /etc/init.d/unrealircd start

Pour finir, n’oubliez pas d’autoriser les connexions sur les ports que vous avez choisi (sûrement 6667) et de faire les redirections nécessaires sur votre routeur.

Liens utiles

Site d’UnrealIRCd

Documentation d’UnrealIRCd

Site d’Anope

Best Practices Guide

HowTo : Linking servers

HowTo : Remote Includes + cURL.sh Install Script

HowTo : Use SSL Certs for Passwords

Comparison of Internet Relay Chat daemons

Comparison of Internet Relay Chat services

 

RHIEN | CC-BY-SA | Flux rss RSS 2.0 | SPIP