UnrealIRCd

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
# cd ~

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
# ./config

Vous devriez voir :

_   _                      _ ___________  _____     _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|

Configuration Program
for UnrealIRCd 4.0.0-rc4

This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
regarding the setup of it, during the process.

A short installation guide is available online at:
https://www.unrealircd.org/docs/Installing_from_source

Full documentation is available at:
https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
[Enter to continue]


==[ DOCUMENTATION ]==
THe UnrealIRCd 4 documentation is located in a wiki online at:
* https://www.unrealircd.org/docs/
The old unreal32docs.*html files have been removed.
[....]

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.
Please install the needed binaries and libraries.
The package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'

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 configuration
  • logs/ contient les fichiers de logs
  • modules/ contient les modules (.so files on *NIX, .dll files on Windows)
  • tmp/ contient les fichiers temporaires
  • data/ contient les données persistantes comme ircd.tune
  • cache/ 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
Here are 3 random cloak keys:
7ACh5i43kT5ma1dBtVmx70ma16W0Dn2z1yCk03OlFm1T042bcvo763wOx4
U863d01f2mgDJ7hL332j8ok2lIPX142b5m6HdiRSv5edPgl78t64uCWw423
1Xfsng7ppq6qLUW5oG2u2DhX730y74uJf7Vk88P7tr1gVPcueY9ryipfp

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
144 oper opossum { // Changer l'utilisateur
145 class opers;
146 mask *@*;
147 password "xXxXxXxXxXxXxX"; // Change le mot de passe
[...]

Vers la ligne 377 mettre les 3 clés précédemment générées.

# vim conf/unrealircd.conf
// Mettez vos 3 clés
377 cloak-keys {
378 "3ACh5i43kT5mbwdBtVVx7hma04W0Dx2d1yCm03OaFg1T063dpho763jOi4";
379 "1Xfw548oop6qLUW5vG2d7DhX730h74uJf7Vk88P7pr1gVPckbY6jyipfp";
380 "U663i01j4NkDJ7vL322w8oq2lIPX0etb5m6H5SRSv5edPgl78t64uCWw313";
[...]

Vers la ligne 387 mettre un email valide.

# vim conf/unrealircd.conf
386 set {
387 kline-address "[email protected]"; // Mettre un email ou une url valide.
[...]

Lancement d’UnrealIRCd

Lancer unealircd

#  ./unrealircd start
Starting UnrealIRCd
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
v4.0.0-rc4

using TRE 0.8.0 (BSD)
using OpenSSL 1.0.1f 6 Jan 2014

Loading IRCd configuration..
Configuration loaded without any problems.
Loading tunefile..
Initializing SSL..
Dynamic configuration initialized.. booting IRCd.
UnrealIRCd is now listening on the following addresses/ports:
IPv4: *:6900(SSL), *:6697(SSL), *:6667
IPv6: *:6900(SSL), *:6697(SSL), *:6667
UnrealIRCd started.

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 {
mask *@*;
rules "ircd.rules";
};

Relancer votre serveur IRC

#  ./unrealircd start

En vous reconnectant via votre client, utiliser la commande IRC /rules vous devriez voir les conditions d’utilisations

                                        _    
_ __ _ _ | | ___ ___
* - _____ _____ _____ | '__|| | | || | / _ \/ __| _____ _____ _____
* - | | | |_| || || __/\__ \
* - |_| \__,_||_| \___||___/
* -
* - 1/ Don't feed animals after midnight
* - 2/ You can pet the cat but he can bite you...
* - 3/ Be aware from rabbits (and ducks)
* - 4/ Respect rules
* - _____ _____ _____ _____ _____ _____ _____ _____ _____

Créer un filtre anti grossièretés

Ouvrez le fichier intitulé badwords.conf. Ajoutez / modifier ces lignes :

Syntaxe

badword <type> {
word <text-to-match>;
replace <replace-with>;
action <replace|block>;
};
  • 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 > *

all {
    word "merde";
replace "mer**";
action replace;
};

badword all {
word (putain);
replace "put***";
action replace;
};

badword all {
word connard;
};

Ce fichier est déjà inclus dans /home/xxxx/unrealircd/conf/unrealircd.conf (ligne 49 environ).

include "help/help.conf";
include "badwords.conf";
include "spamfilter.conf";
include "operclass.default.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 {
mask *@*;
motd "ircd.motd";
[...]
};

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.

# Dans un premier temps on interdit tout
deny dcc {
filename "*";
reason " +++ Format de fichier non autorisé +++ ";
soft yes;
};

# Formats autorisés pour les images
allow dcc { filename "*.jpg"; soft yes; };
allow dcc { filename "*.jpeg"; soft yes; };
allow dcc { filename "*.gif"; soft yes; };
allow dcc { filename "*.png"; soft yes; };
allow dcc { filename "*.bmp"; soft yes; };

# Formats autorisés pour l'audio / vidéo
allow dcc { filename "*.mp1"; soft yes; };
allow dcc { filename "*.mp2"; soft yes; };
allow dcc { filename "*.mp3"; soft yes; };
allow dcc { filename "*.mpg"; soft yes; };
allow dcc { filename "*.mpeg"; soft yes; };
allow dcc { filename "*.m1v"; soft yes; };
allow dcc { filename "*.m2v"; soft yes; };
allow dcc { filename "*.vob"; soft yes; };
allow dcc { filename "*.wav"; soft yes; };

# Formats autorisés pour les autres fichiers
allow dcc { filename "*.txt"; soft yes; };
allow dcc { filename "*.log"; soft yes; };
allow dcc { filename "*.pdf"; soft yes; };
allow dcc { filename "*.c"; soft yes; };
allow dcc { filename "*.cpp"; soft yes; };

Ce fichier doit être inclus dans /home/xxxx/unrealircd/conf/unrealircd.conf (ligne 52 environ).

include "help/help.conf";
include "badwords.conf";
include "spamfilter.conf";
include "operclass.default.conf";
include "dccallow.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 {
mask <hostmask>;
motd <motd-file>;
rules <rules-file>;
shortmotd <shortmotd-file>;
opermotd <opermotd-file>;
botmotd <botmotd-file>;
channel <channel-name>;
options {
ssl;
};
};

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.

Documentation

https://fr.wikipedia.org/wiki/Serveur_IRC

> Partager <