Un serveur IRC est un serveur sur lequel est installé un programme (appelé IRCD) permettant aux utilisateurs connectés de discuter en temps réel par le biais du protocole IRC. Ce programme offre aussi des outils complets pour la gestion et l’administration du serveur.
Création d’un utilisateur spécial
Par souci de sécurité il faut éviter de lancer un server IRC avec le compte root. Même s’il est possible de le sécuriser dans les options de configuration, il est quand même préférable d’utiliser un compte spécialement prévu à cet effet.
# adduser ircd |
Un fois l’utilisateur créé, se connecter avec et se placer dans son répertoire par défaut.
# su ircd |
Installation d’Unrealircd
Veillez à ce qu’un compilateur C soit installé (ici gcc) ainsi que le programme make.
Télécharger l’archive, pour connaître la dernière version voir le site officiel : https://www.unrealircd.org
# wget https://www.unrealircd.org/unrealircd4/unrealircd-4.0.0-rc4.tar.gz |
Extraire les fichiers de l’archive.
# tar -xvzf unrealircd-4.0.0-rc4.tar.gz |
Supprimer l’archive
# rm unrealircd-4.0.0-rc4.tar.gz |
Se positioner dans le répertoire unrealircd-4.0.0-rc4/
et lancer la commande ./config
# cd unrealircd-4.0.0-rc4 |
Vous devriez voir :
_ _ _ ___________ _____ _ |
Aller jusqu’à la fin du document en appuyant sur Enter (attention à ne pas rater l’étape suivante, il faut aller doucement quand on atteint les 95% -> 100%). Quand vous avez atteint la fin du document taper Entrée.
Vous pouvez dans un premier temps laisser les configurations par défaut, vous pourrez à tout moment éditer la configuration.
Si vous rencontrer un problème concernant les librairies SLL :
Apparently you do not have both the openssl binary and openssl development libraries installed. |
Il faudra simplement installer le package en question, celui qui est déjà présent dans les paquetages de votre disribution.
Il faudra ensuite relancer un ./Config
# ./Config |
Une fois la configuration terminée vous devez lancer la commande ./make
puis ./make install
:
# make |
# make install |
Notes : Vous avez maintenant un nouveau répertoire unrealircd/
qui vient de se créer contenant tout le logiciel dont l’arborescence est la suivante :
conf/
contient les fichiers de configurationlogs/
contient les fichiers de logsmodules/
contient les modules (.so files on *NIX, .dll files on Windows)tmp/
contient les fichiers temporairesdata/
contient les données persistantes comme ircd.tunecache/
contient les fichiers de cache
Configuration d’Unrealircd
Les fichiers de configuration se situent dans /home/xxxx/unrealircd/conf
. Le mieux est de s’y placer.
Si c’est une première installation il faut obligatoirement configurer UnrealIRCd, pour cela copier /conf/examples/example.conf
dans /conf
et le renommer unrealircd.conf
.
cp conf/examples/example.conf conf/unrealircd.conf |
La configuration de base (pour ne pas avoir d’erreur au lancement) dépend de 3 options.
On aura dans un premier temps besoin de 3 clés, vous pouvez les générer comme ceci :
# ./unrealircd gencloak |
Ouvrir ensuite le fichier conf/unrealircd.conf
, vers la ligne 144 vous devez changer l’utilisateur par défaut ainsi que le mot de passe par défaut (ligne 147)
# vim conf/unrealircd.conf |
Vers la ligne 377 mettre les 3 clés précédemment générées.
# vim conf/unrealircd.conf |
Vers la ligne 387 mettre un email valide.
# vim conf/unrealircd.conf |
Lancement d’UnrealIRCd
Lancer unealircd
# ./unrealircd start |
Nous avons maintenant un serveur IRC qui tourne.
Se connecter au serveur
Directement via un navigateur en tapant :
irc://adresseIP/chanel |
En ouvant (par exemple) Xchat et suivre les instructions :
- Ouvrir XChat
- Cliquer sur Add
- Donner un nom à ce nouveau réseau
- Cliquer sur Editer
- Remplacer newserver/6667 par l’adresse ou l’adresse IP du serveur sur lequel se connecter
- Cliquer sur Fermer
- Cliquer sur Connecter
Gestion du serveur
Pour éviter d’avoir des problèmes de droits sur les fichiers, il est préférable de se connecter avec l’utilisateur qui lance le serveur IRC pour les modifier.
Les fichiers de configuration se situent dans /home/xxxx/unrealircd/conf/
. Le mieux est de s’y placer.
Créer des règles
Créer un fichier à la racine intitulé ircd.rules
. Inscrivez-y vos conditions d’utilisations.
Modifier ensuite votre bloc TLD dans /home/xxxx/unrealircd/conf/unrealircd.conf
, il faut le créer s’il n’existe pas :
tld { |
Relancer votre serveur IRC
# ./unrealircd start |
En vous reconnectant via votre client, utiliser la commande IRC /rules
vous devriez voir les conditions d’utilisations
_ |
Créer un filtre anti grossièretés
Ouvrez le fichier intitulé badwords.conf
. Ajoutez / modifier ces lignes :
Syntaxe
badword <type> { |
- badword : spécifie à quel endroit doit s’appliquer le filtre.
- channel : s’applique aux canaux avec le mode +G.
- message : s’applique uniquement aux messages privés entre utlisateurs avec le mode utilisateur +G.
- quit : s’applique uniquement aux messages (personalisés) affichés avant de quitter le serveur
- all : s’applique aux trois, canaux, messages privés et messages personalisés.
- word : le mot ou l’expression régulière à filtrer.
- replace : le mot ou l’expression de remplacement. Si rien n’est précisé, le mot sera remplacé par
. - action : spécifie ce que le serveur doit faire si une expression est trouvée.
- replace : remplace simplement le mot ou l’expression trouvé.
- block : le message est bloqué en entier.
Sans précision, action replace est appliqué.
Exemple :
On note que plusieurs syntaxes sont possibles. Si aucun mot de remplacement n’est précisé, le serveur affichera *< censored > *
word "merde"; |
Ce fichier est déjà inclus dans /home/xxxx/unrealircd/conf/unrealircd.conf
(ligne 49 environ).
include "help/help.conf"; |
Relancer votre serveur IRC
# ./unrealircd start |
En vous reconnectant via votre client, si vous entrez des gros mots vous les verrez toujours cependant les autres utilisateurs verront vos filtres.
Créer un MOTD
Créer un fichier à la racine intitulé ircd.motd
s’il n’existe pas déjà. Mettez y ce que vous voulez.
Modifier ensuite votre bloc TLD dans /home/xxxx/unrealircd/conf/unrealircd.conf
, il faut le créer s’il n’existe pas :
tld { |
Relancer votre serveur IRC
# ./unrealircd start |
En vous reconnectant via votre client, vous devriez voir le MOTD
/\/\ ___ ___ ___ __ _ __ _ ___ __| |_ _ (_) ___ _ _ _ __ _ |
Filtrer l’upload / download de fichier
Ouvrez le fichier intitulé dccallow.conf
.
Par défaut aucune extension n’est autorisée et il faut créer une liste blanche :
# Example of a possible semi-secure /DCCALLOW configuration written by Syzop. |
Ce fichier doit être inclus dans /home/xxxx/unrealircd/conf/unrealircd.conf
(ligne 52 environ).
include "help/help.conf"; |
Note : Il est possible de faire la démarche inverse : tout autoriser et uniquement interdire dans le bloc deny{} les extensions concernées (faire une liste noire). Ce qui est bien plus risqué.
Relancer votre serveur IRC
# ./unrealircd start |
En vous reconnectant via votre client, seules les extensions autorisées pourront être transférées à un utilisateur. Si l’extention n’est pas sur la liste blanche le serveur renverra l’erreur spécifiée dans le bloc deny{} à la ligne reason
Configuration UnrealIRCD : le tld {}
Dans /home/xxxx/unrealircd/conf/unrealircd.conf
il faut créer, s’il n’existe pas Le TLD Block (qui est optionnel) :
tld { |
Le tld block permet de spécifier, par exemple, le motd (Message Of The Day à la connexion au serveur), les règles et le salon par défaut.
- Le tld::mask est un masque user@host auquel l’username et l’host de l’utilisateur doivent correspondre
- Le tld::motd correspond au fichier motd
- Le tld::rules correspond au fichier rules
- Le tld::shortmotd correspond au fichier shortmotd (optionnel)
- Le tld::opermotd correspond au fichier opermotd (optionnel)
- Le tld::botmotd correspond au fichier botmotd (optionnel)
- Le tld::channel permet de spécifier un salon que cet utilisateur sera forcé de joindre à sa connexion. S’il est présent, il remplacera le auto-join channel par défaut (défini par set::auto-join) (optionnel)
Les entrées TLD sont vérifiées de haut en bas.