/* Fichier de configuration pour UnrealIRCd 6 * * Copiez ce fichier dans le répertoire conf/, renommez le * 'unrealircd.conf' et parcourez-le ligne par ligne (modifiez le !) * * Important : Toutes les lignes, sauf celles ne comportant qu'un { * ouvrant, doivent finir par un ; y compris };. C'est très important, * car si vous oubliez un ; quelque part, alors le parser du fichier de * configuration se plaindra et votre fichier ne sera pas lu correctement ! * S'il s'agit de votre première expérience avec le fichier de configuration * d'UnrealIRCd, nous vous recommandons de vous documenter un peu à propos * de la syntaxe. Ça ne vous prendra que quelques minutes et vous aidera * beaucoup : * https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax * * Documentation pour UnrealIRCd 6 (très complète !) : * https://www.unrealircd.org/docs/UnrealIRCd_6_documentation/fr * * Foire Aux Questions : * https://www.unrealircd.org/docs/FAQ * */ /* Ceci est un commentaire, ici, tout le texte est ignoré (type #1) */ // Ceci est aussi un commentaire, cette ligne est ignorée (type #2) # Ceci est aussi un commentaire, cette ligne est ignorée (type #3) /* UnrealIRCd utilise beaucoup les modules. Ceux-ci vous permettent * de personnaliser complètement les fonctionnalités que vous voulez * activer sur UnrealIRCd. * Voir : https://www.unrealircd.org/docs/Modules * * En utilisant la ligne include ci-dessous, nous indiquons à l'IRCd de * lire le fichier 'modules.default.conf' ce qui activera plus de 150 * modules fournis avec UnrealIRCd. En d'autres termes, ceci activera * toutes les fonctionnalités disponibles d'UnrealIRCd. * Si vous configurez UnrealIRCd pour la première fois, nous vous * conseillons d'utiliser cette ligne. Après, lorsque tout fonctionnera * vous pourrez revenir personnaliser la liste (si vous le souhaitez). */ include "modules.default.conf"; /* Incluons aussi d'autres fichiers : * - help/help.conf pour le système d'aide sur IRC via /HELPOP * - badwords.conf pour le mode utilisateur et de salon +G * - spamfilter.conf comme exemple d'utilisation de spamfilter * - operclass.default.conf qui contient les classes d'opérateurs * par défaut à utiliser dans vos blocs oper. */ include "help/help.conf"; include "badwords.conf"; //include "spamfilter.conf"; include "operclass.default.conf"; include "snomasks.default.conf"; /* Load the default cloaking module (2021 onwards): */ loadmodule "cloak_sha256"; /* Or load the old module from UnrealIRCd 3.2/4/5 instead: */ //loadmodule "cloak_md5"; /* Le bloc me { } indique qui est le serveur. * Il définit le nom du serveur, une ligne d'informations et un identifiant * "sid" unique. L'id du serveur (sid) doit commencer par un chiffre suivit * de deux chiffres ou lettres. Le sid doit être unique sur votre réseau IRC * (chaque serveur doit avoir un sid différent). */ me { name "irc.example.org"; info "Serveur ExampleNET"; sid "001"; } /* Le bloc admin { } définit ce que les utilisateurs verront en faisant * /ADMIN. C'est généralement des infos de contact de l'administrateur. */ admin { "Bob Smith"; "bob"; "adresse.email@example.org"; } /* Les clients et serveurs sont placés dans des classes, que nous * définissons dans ces blocs class { }. * Les blocs de classe comportent les éléments suivants : * - pingfreq: à quelle fréquence envoyer un ping à l'utilisateur ou au * serveur (en secondes) * - connfreq: à quelle fréquence on essaye de se connecter à ce serveur * (en secondes) * - sendq: la taille maximale de la queue d'émission pour une connexion * - recvq: la taille maximale de la queue de réception pour une connexion * (contrôle du flood) */ /* Classe pour des clients */ class clients { pingfreq 90; maxclients 1000; sendq 200k; recvq 8000; } /* Classe spéciale pour des IRCOps avec des limites plus hautes */ class opers { pingfreq 90; maxclients 50; sendq 1M; recvq 8000; } /* Classe pour des serveurs */ class servers { pingfreq 60; connfreq 15; /* essayer de se connecter toutes les 15 sec */ maxclients 10; /* nombre max de serveurs */ sendq 5M; } /* Les blocs allow définissent quels clients peuvent se connecter au * serveur. Ils vous permettent d'ajouter un mot de passe ou de restreindre * le serveur à certaines IP seulement. C'est aussi là que vous configurez * le nombre maximum de connexions par IP. * Voir : https://www.unrealircd.org/docs/Allow_block */ /* Accepter tout le monde, mais seulement 5 connexions par IP */ allow { mask *; class clients; maxperip 5; } /* Exemple de bloc allow spécial pour une IP donnée : * Les utilisateurs sur cette IP doivent se connecter avec un mot de passe. * S'il est correct, alors autoriser 20 connexions sur cette IP. */ allow { mask 192.0.2.1; class clients; password "unmotdepassesecret"; maxperip 20; } /* Les blocs oper définissent vos Opérateurs IRC. * Les Opérateurs IRC sont des utilisateurs avec des "droits en plus" * par rapport aux autres, par exemple, ils peuvent /KILL (déconnecter) * d'autres utilisateurs, faire se connecter des serveurs entre eux, * /JOIN des salons même s'ils sont bannis, etc ... * Voir aussi : https://www.unrealircd.org/docs/Oper_block */ /* Voici un exemple de bloc oper pour 'bobsmith' avec le mot de * passe 'test'. * Vous DEVEZ le modifier !! */ oper bobsmith { class opers; mask *@*; password "test"; /* Les permissions Oper sont définies dans un bloc 'operclass'. * Voir https://www.unrealircd.org/docs/Operclass_block * UnrealIRCd est fourni avec des classes par défaut, voir la doc * pour une liste complète. Nous avons choisi 'netadmin' ici. */ operclass netadmin; swhois "est un Administrateur du Réseau"; vhost netadmin.example.org; } /* Les blocs listen définissent les ports sur lesquels le serveur écoute. * C'est-à-dire les ports que les clients et les serveurs utilisent pour * se connecter à ce serveur. * * Syntaxe : * listen * { * ip ; * port ; * options { * ; * } * } */ /* Port standard pour IRC 6667 */ listen { ip *; port 6667; } /* Port standard pour IRC sur SSL/TLS 6697 */ listen { ip *; port 6697; options { tls; } } /* Port SSL/TLS spécial pour la connexion entre serveurs */ listen { ip *; port 6900; options { tls; serversonly; } } /* NOTE : Si vous utilisez un serveur IRC avec plusieurs IP et que vous * utilisez les blocs listen ci-dessus, vous aurez peut-être une * erreur 'Address already in use' et l'IRCd ne démarrera pas. * Celle-ci indique que vous devez préciser une IP spécifique * au lieu de '*'. Exemple : * listen 1.2.3.4:6667; * Bien sûr, remplacez 1.2.3.4 par l'IP qui vous est assignée. */ /* * Les blocs link vous permettent de connecter plusieurs serveurs ensemble * pour former un réseau IRC. * Voir https://www.unrealircd.org/docs/Tutorial:_Linking_servers */ link hub.example.org { incoming { mask *@something; } outgoing { bind-ip *; /* ou une IP précise */ hostname hub.example.org; port 6900; options { tls; } } password "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"; /* Empreinte SSL de l'autre serveur */ class servers; } /* Les U-lines donnent encore plus de pouvoir à certains serveurs. * Si vous utilisez des Services, vous devez les indiquer ici. * NE JAMAIS indiquer le nom d'un serveur UnrealIRCd normal ici !!! * (Si vous ne savez pas ce que sont les Services, voir : * https://www.unrealircd.org/docs/Services ) */ ulines { services.example.org; } /* Ici vous pouvez indiquer un mot de passe pour les commandes /DIE et * /RESTART, qui sont restreintes aux IRCops. * Il s'agit surtout d'une petite protection contre les redémarrages et * les coupures de serveur accidentels. */ drpass { restart "restart"; die "die"; } /* Le bloc log indique ce qui doit être journalisé et dans quel fichier. * Voir aussi https://www.unrealircd.org/docs/Log_block */ /* Ceci est une bonne valeur par défaut, elle journalise presque tout */ log { source { all; !debug; !join.LOCAL_CLIENT_JOIN; !join.REMOTE_CLIENT_JOIN; !part.LOCAL_CLIENT_PART; !part.REMOTE_CLIENT_PART; !kick.LOCAL_CLIENT_KICK; !kick.REMOTE_CLIENT_KICK; } destination { file "ircd.log" { maxsize 100M; } } } /* Avec des "alias", vous pouvez créer un alias comme /UNTRUC pour envoyer * un message à un utilisateur ou à un bot. Ils sont souvent utilisés pour * les services. * * Nous fournissons un certain nombre d'alias par défaut, voir les fichiers * du répertoire aliases/. * Pour exemple, ici nous ajoutons les alias pour les Services Anope. */ include "aliases/anope.conf"; /* Bannir des nicks pour qu'ils ne soient pas utilisables par des * utilisateurs normaux */ ban nick { mask "*C*h*a*n*S*e*r*v*"; reason "Réservé aux Services"; } /* Bannir une IP. * NB : vous pouvez aussi utiliser /KLINE, /GLINE et /ZLINE pour ça. */ ban ip { mask 195.86.232.81; reason "Je vous hais !"; } /* Bannir un serveur - si ce serveur est connecté au réseau, nous nous * déconnecterons */ ban server { mask eris.berkeley.edu; reason "Va-t-en d'ici."; } /* Bannir un utilisateur - juste pour l'exemple, on utilise normalement * /KLINE or /GLINE pour ça */ ban user { mask *tirc@*.saturn.bbn.com; reason "Idiot"; } /* Bannir un realname (ou 'gecos') */ ban realname { mask "Swat Team"; reason "mIRKFORCE"; } ban realname { mask "sub7server"; reason "sub7"; } /* Exceptions de ban et TKL. Vous permet d'exempter des utilisateurs des * KLINE, GLINE, etc ... * Si vous êtes un IRCOp avec une IP statique (et qu'il n'y a que des * personnes de confiance sur cette IP), alors vous pouvez vous ajouter ici. * Ainsi, vous pourrez toujours vous connecter même si vous vous bannissez * accidentellement. */ /* except ban vous protège des KLINE et ZLINE */ except ban { mask *@192.0.2.1; // vous pouvez ajouter d'autres lignes mask à la suite } /* except ban avec le type 'all' vous protège des GLINE, GZLINE, QLINE, SHUN */ except ban { mask *@192.0.2.1; type all; } /* Avec un bloc deny dcc vous pouvez interdire des noms de fichiers dans * les échanges DCC */ deny dcc { filename "*sub7*"; reason "Possible virus Sub7"; } /* deny channel vous permet d'interdire des masques de noms de salons */ deny channel { channel "*warez*"; reason "Le warez est illegal"; class "clients"; } /* Les VHosts (Virtual Hosts - Hôtes Virtuels) permettent aux utilisateurs * d'avoir un nom d'hôte différent. * Voir https://www.unrealircd.org/docs/Vhost_block */ /* Vhost d'exemple. Sur IRC, entrez /VHOST test test * NOTE : seuls les utilisateurs avec un nom d'hôte 'unrealircd.com' * peuvent l'utiliser, donc modifiez vhost::mask avant de tester. */ vhost { vhost i.hate.microsefrs.com; mask *@unrealircd.com; login "test"; password "test"; } /* Les blocs de liste noire interrogeront un service de liste noire DNS externe * chaque fois qu'un utilisateur se connecte, pour voir si l'adresse IP est connue * pour provoquer des attaques de drones, est une machine piratée connue, etc.. * Documentation: https://www.unrealircd.org/docs/Blacklist_block * Ou regardez simplement les blocs ci-dessous. */ /* DroneBL, probablement la liste noire la plus populaire utilisée par les serveurs IRC. * Voir https://dronebl.org/ pour leur documentation et les * significations des types de réponse. AAu moment de la rédaction, nous utilisons des types: * 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone, * 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain, * 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers, * 14: Open Wingate Proxy, 15: Compromised router / gateway, * 16: Autorooting worms. */ blacklist dronebl { dns { name dnsbl.dronebl.org; type record; reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; } } action gline; ban-time 24h; reason "Proxy/Drone detected. Check https://dronebl.org/lookup?ip=$ip for details."; } /* EFnetRBL, voir https://rbl.efnetrbl.org/ pour la documentation * et la signification des types de réponse. * Au moment de la rédaction: 1 is open proxy, 4 is TOR, 5 is drones/flooding. * * REMARQUE: Si vous souhaitez autoriser les proxys TOR sur votre serveur, alors * vous devez supprimer le '4;' ci-dessous dans la section de réponse. */ blacklist efnetrbl { dns { name rbl.efnetrbl.org; type record; reply { 1; 4; 5; } } action gline; ban-time 24h; reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details."; } /* Vous pouvez inclure d'autres fichiers de configuration */ /* include "klines.conf"; */ /* Configuration du réseau */ set { network-name "ExampleNET"; default-server "irc.example.org"; services-server "services.example.org"; stats-server "stats.example.org"; help-channel "#Help"; cloak-prefix "Clk"; prefix-quit "Quit"; /* Les clés de cloaking doivent être identiques sur tous les serveurs * d'un réseau. Elles sont utilisées pour générer les noms d'hôtes * masqués et doivent être gardées secrètes. Les clés doivent être * 3 chaînes de 80 caractères aléatoires et ne comporter que des * minuscules (a-z), des majuscules (A-Z) et des chiffres (0-9). * (voir l'exemple) * NB : sur *NIX, vous pouvez exécuter './unreal gencloak' sur votre * serveur pour que Unreal génère 3 clés aléatoires pour vous. */ cloak-keys { "Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi"; "et une autre"; "et une troisième"; } } /* Configuration spécifique au serveur */ set { kline-address 'indiquez.une.adresse.email'; /* e-mail ou URL indiquée lorsqu'un utilisateur est banni */ modes-on-connect "+ixw"; /* modes utilisateur ajoutés lorsqu'un utilisateur se connecte */ modes-on-oper "+xws"; /* modes utilisateur ajoutés lorsqu'un utilisateur devient IRCOp */ oper-auto-join "#opers"; /* salon que les IRCOps joignent automatiquement */ options { hide-ulines; /* cacher les U-lines de /MAP et /LINKS */ show-connect-info; /* afficher les messages "looking up your hostname" à la connexion */ } maxchannelsperuser 10; /* nombre max de salons par utilisateur */ /* Temps minimum qu'un utilisateur doit rester connecter avant de pouvoir * utiliser un message de QUIT. Le but est pour réduire le spam. */ anti-spam-quit-message-time 10s; /* Ou indiquez un message de QUIT constant, ce qui fait que les raisons * de /QUIT sont ignorées. */ /* static-quit "Le client a quitté"; */ /* static-part fait la même chose pour /PART */ /* static-part yes; */ /* Protections anti-flood. * Voir: https://www.unrealircd.org/docs/Set_block#set::anti-flood */ anti-flood { } /* Paramètres de Spamfilter */ spamfilter { ban-time 1d; /* durée par défaut des bans *LINE ajoutés par spamfilter */ ban-reason "Spam/Publicité"; /* raison par defaut */ virus-help-channel "#help"; /* salon par défaut pour l'action 'viruschan' */ /* except "#help"; salon à exempter de Spamfilter */ } /* Restreindre certaines commandes. * Voir https://www.unrealircd.org/docs/Set_block#set::restrict-commands */ restrict-commands { list { except { connect-time 60; /* après 60 secondes, vous pouvez utiliser LIST */ identified yes; /* ou immédiatement, si vous êtes identifié aux services */ reputation-score 24; /* ou si vous avez un score de réputation de 24 ou plus */ } } invite { except { connect-time 120; identified yes; reputation-score 24; } } /* En plus de la possibilité de restreindre toute commande, * tel qu'illustré ci-dessus. Il existe également 4 types spéciaux * que vous pouvez restreindre. Ceux-ci sont "private-message", * "private-notice", "channel-message" and "channel-notice". * Ils sont commentés (désactivés) dans cet exemple : */ //private-message { // except { connect-delay 10; } //} //private-notice { // except { connect-delay 10; } //} } } /* * Ce qui suit configurera la limitation de connexion de "unknown users". * * Quand UnrealIRCd détecte un nombre élevé d'utilisateurs se connectant à partir d'adresses IP * qui n'ont pas été vus auparavant, les connexions des nouvelles IP sont rejetées * au-dessus du taux fixé. Par exemple à 10:60 seuls 10 utilisateurs par minute peuvent se connecter * qui n'ont pas été vus auparavant. Les adresses IP connues peuvent toujours entrer, * quel que soit le tarif fixé. Idem pour les utilisateurs qui se connectent avec SASL. * * Voir également https://www.unrealircd.org/docs/Connthrottle pour les détails. * Ou continuez simplement à lire les paramètres de configuration par défaut ci-dessous: */ set { connthrottle { /* Nous configurons d'abord quels utilisateurs sont exemptés de la * restrictions. Ces utilisateurs sont toujours autorisés! * Par défaut, ce sont des utilisateurs sur des adresses IP qui ont * un score de 24 ou plus. Un score de 24 signifie que l'IP * était connecté à ce réseauk pendant au moins 2 heures * au cours du mois passé (ou minimum 1h si inscrit). * Nous permettons également aux utilisateurs qui sont identifiés aux services via * SASL contourner les restrictions. */ except { reputation-score 24; identified yes; /* pour plus d'options, voir restrictions * https://www.unrealircd.org/docs/Mask_item */ } /* Les nouveaux utilisateurs sont tous les utilisateurs qui n'appartiennent pas au * groupe d'utilisateurs connus. Ils sont considérés comme "nouveaux" et dans * le cas d'un nombre élevé de ces nouveaux utilisateurs se connectant * ils sont soumis à une limitation du débit de connexion. * Par défaut, le taux est de 20 nouveaux utilisateurs locaux par minute * et 30 nouveaux utilisateurs global par minute. */ new-users { local-throttle 20:60; global-throttle 30:60; } /* Ceci configure quand ce module ne sera PAS actif. * Les paramètres par défaut désactiveront le module lors que: * - Le module de réputation fonctionne depuis moins d'une * semaine. Si vous courez moins d'une semaine, il y a * données insuffisantes pour déterminer qui est un "utilisateur connu". * - Le serveur vient d'être démarré (3 premières minutes). */ disabled-when { reputation-gathering 1w; start-delay 3m; } } } /* HISTORIQUE DES CANAUX: * UnrealIRCd a le mode canal +H qui peut être utilisé par les utilisateurs pour relire * historique de la chaîne, comme avant leur adhésion. Pour des informations générales * sur cette fonctionnalité, voir https://www.unrealircd.org/docs/Channel_history * * Les limites de l'historique peuvent être configurées via set::history. * Les valeurs par défaut sont probablement déjà bien pour toi, mais si vous êtes sur un * système à faible mémoire ou ayant des milliers de canaux, vous voudrez peut-être re vérifier. * Voir https://www.unrealircd.org/docs/Set_block#set::history pour les options. * * En plus de cela, vous pouvez avoir "persistent channel history", qui * signifie que l'historique des chaînes est stocké crypté sur le disque * afin qu'il soit préservé entre les redémarrages du serveur IRC, voir * https://www.unrealircd.org/docs/Set_block#Persistent_channel_history * La fonction d'historique persistant n'est PAS activée par défaut car vous * devez de configurer un bloque de secret { }. Ce qui suit est un simple * exemple avec des mots de passe stockés directement dans le fichier de configuration. * Pour une meilleure sécurité, voir https://www.unrealircd.org/docs/Secret_block * sur des moyens alternatifs pour ne pas stocker les mots de passe directement dans la configuration. */ //secret historydb { password "somepassword"; } //set { history { channel { persist yes; db-secret "historydb"; } } } /* Enfin, vous souhaiterez peut-être avoir un MOTD (Le message du jour), cela peut être * fait en créant un archive de text 'ircd.motd' dans votre répertoire conf/. * Ce fichier sera montré à vos utilisateurs lors de la connexion. * Pour plus d'informations, voir https://www.unrealircd.org/docs/MOTD_and_Rules */ /* * Un problème ou besoin d'aide supplémentaire ? * 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr * 2) https://www.unrealircd.org/docs/FAQ <- répond à 80% des questions ! * 3) Si vous avez toujours des problèmes, vous pouvez aller sur * irc.unrealircd.org #unreal-support, * mais nous exigeons que vous lisiez LA DOCUMENTATION et la FAQ d'abord ! */