The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download | Blog
Personal tools
InspIRCd - 10,000 revisions reached!

Configuration.fr

From the makers of InspIRCd.

Jump to: navigation, search


Cette page n'est peut être plus à jour, a vérifier si il y a eu des modifications de configuration depuis les dernières versions 1.1!

La configuration d'InspIRCd se fait simplement en éditant son fichier texte de configuration nommé 'inspircd.conf'. Ce fichier utilise un format similaire à celui des pages HTML, ce qui est différent de ce que les gens utilisent d'ordinaire. Le format d'une instruction à l'intèrieur du fichier de configuration est du style :

 <NomDeLaBalise variable="valeur">

Il pourrait y avoir plusieurs variables dans la balise mais toutes devant avoir impérativement une seule valeur. Une variable doit être obligatoirement suivi d'un signe d'égalité et avoir sa valeur délimitée par des guillemets et sans espaces entre les différents éléments de la valeur comme l'exemple suivant l'indique. Les noms des balises ne doivent contenir que des caractères de l'alphabet.

NOTES: Dans la version 1.1, vous pouvez placer une interligne dans la valeur.

 <NomDeLaBalise variable="première partie de la valeur
 deuxième partie de la valeur"

Vous n'avez pas besoin de fermer les balises comme en XML (</FermetureBalise>)

Pour un exemple à ce propos ou lié à cette page, veuillez vous referrer à la section Configuration:Annotations

Les options de configurations de l'actuelle version d'InspIRCd sont les suivantes :

Contents

<server>

<server name="test.chatspike.net" description="ChatSpike InspIRCd test server" network="ChatSpike">

Cette balise indique le nom de votre serveur, sa description et le nom du réseau auquel il appartient. Le nom du réseau devrait être celui donné aux clients lorsqu'ils s'y connectent. Vous ne devez avoir qu'une seule balise <server>.

<admin>

<admin  name="Mr Bond" nick="James" email="mr@zerozeroseven.gov">

Ce sont les informations personnelles de l'administrateur du serveur. Celle-ci sont obtenues lorsqu'un utilisateur utilise la commande /ADMIN. Vous ne devez avoir qu'une seule balise <admin>.


<bind>

<bind address="" port="6667">

La balise <bind> indique les ports sur lesquels votre serveur doit écouter. Si vous voulez que le serveur écoute sur toutes les adresses IP de vos interfaces réseaux il suffit de laisser la variable 'address' vide comme montrée dans l'exemple ci-dessus. Si vous souhaitez que InspIRCd écoute uniquement sur une seule adresse IP, il vous suffit de la spécifier. Vous devez uniquement indiquer une adresse IP et non un nom de machine. Vous pouvez utiliser autant de balises <bind> que vous en avez besoin.

<bind address="" port="7000" type="servers">

Ce format de la balise <bind> indique sur quel port écouter les serveurs.

Vous pouvez aussi spécifier une plage de ports sur lesquels écouter :

<bind address="1.2.3.4" port="7000-7005">

et même spécifier les deux en combinant les tirets avec les virgules :

<bind address="1.2.3.4" port="7001,7005,7006-7010">

La balise <bind> peut aussi spécifier l'utilisation de la communication cryptée ou compressée. L'exemple suivant indique la syntaxe à suivre :

En utilisant OpenSSL :

 <bind address="" port="6667" ssl="openssl">

En utilisant GNUTLS :

 <bind address="" port="6667" ssl="gnutls">

En utilisant la compression :

 <bind address="" port="6667" transport="zip">

IPV6

Si vous avez compilé InspIRCd avec le support pour les connection de type IPV6, vous devriez spécifier l'adresse IPV4 ou IPV6 sur laquelle écouter. Notez que si vous laissez la variable 'address' sans valeur, cela aura pour conséquence l'écoute sur toutes les adresses IPV6 disponibles de votre serveur mais sur aucune adresse IPV4. Si vous souhaitez l'écoute sur une adresse de ce type, vous devez l'indiquer manuellement.

<power>

<power diepass="XXXXX" restartpass="XXXXX" pause="5">

Cette balise spécifie les mots de passes nécessaires pour les commandes /DIE et /RESTART. La variable 'pause' indique le nombre de secondes à attendre entre la notification 'server is shutting down' et l'arrêt complet du serveur. Vous ne devez avoir qu'une seule balise de ce type et elle n'est pas optionnelle. Dans la configuration par défaut (Win32 inclut) celle-ci est commentée car laisser une valeur par défaut est un risque important pour la sécurité. Veillez à configurer cette balise convenablement.

<link>

<link name="autre.serveur.org" ipaddr="foomatic.bazqux.org" port="7000"
 sendpass="XXX" recvpass="XXX" autoconnect="120" hidden="no"
 failover="autre2.server.org" transport="transporttype" bind="1.2.3.4">

Cette balise spécifie un serveur sur lequel votre serveur va tenter de se connecter. Pour débuter une connection, vous devez actuellement utiliser la commande /CONNECT. Lors de la connection, votre serveur envoie le mot de passe spécifié dans la variable 'sendpass' et si celui-ci convient, il reçoit alors le mot de passe spécifié dans la variable 'recvpass' en retour. Cela engendrera la connection sortante sur le port que vous avez spécifié, qui est un numéro de port TCP. Le nom du serveur ne doit pas forcément correspondre au nom de machine que vous avez indiqué, mais doit absolument concorder avec la balise <link> du serveur distant. Vous pouvez bien entendu ajouter autant de balises <link> que vous le souhaitez.

La valeur optionnelle du paramêtre 'autoconnect', si celui-ci est utilisé, indiquera à votre serveur de se connecter automatiquement toutes les X secondes (nombre de secondes que vous avez spécifiées comme paramêtre). La durée interne de fin de connection est de 30 secondes, vous ne devez pas définir de valeur inférieure à 31 secondes.

La variable hidden est optionnelle et si celle-ci est définit à yes, true, ou 1, cela aura pour effet de cacher l'adresse ou le nom de machine à tous les opérateurs. Cela cachera l'adresse IP lors de l'appel à la commande /STATS c, et seul le nom du serveur apparaitra (Dans l'exemple ci-dessus, 'autre.serveur.org' sera toujours visible par les opérateurs, mais le nom de machine 'foomatic.bazqux.org' ne sera jamais montré aux opérateurs).

Les variables failover, transport et bind sont optionnelles, et si définies sont utilisées dans ces cas : FIXME

  • bind Will bind any outgoing connections to the given IP address. This is mainly of use to multi-homed servers.
  • transport Will use a specified module as the transport layer protocol. Valid entries in this field are gnutls, openssl or zip, for m_ssl_gnutls, m_ssl_openssl and m_ziplinks respectively.
  • failover Indicates another server name to try if this one should fail to connect. See the documentation on Linking To Other Servers for more information.

FIXME

<uline>

<uline server="services.beastie.com">
<uline server="stats.beastie.com" silent="yes">

Cette balise indique si un ou plusieurs serveurs de votre réseau sont U lined. En termes d'IRC, un serveur U-Lined signifie que celui-ci à des autorisations spéciales. Bien souvent, ce sont ceux qui sont associés aux bots (robots) des services réseaux. Pour une description historique plus détaillée des serveurs U-lined et pourquoi c'est intrinsèque à InspIRCd, veuillez cliquer sur le lien ci-dessus. Vous pouvez n'avoir aucune balise de ce type ou bien une ou plusieurs.

La variable 'silent' est optionnelle, lorsque celle-ci est à 'yes' cela retire du SNOMASK les notifications +CQ du serveur en question.

<connect>

<connect allow="*" timeout="60" flood="10" pingfreq="120"
threshold="5" sendq="131074" recvq="4096" globalmax="3"
localmax="3" port="6660">

Cette balise indique ce qui est autorisé ou non pour les clients qui se connectent à votre serveur. Par défaut, si rien n'est définit on refuse l'accès à tout le monde. Utilisez la variable 'allow' pour autoriser une IP, un masque ou un nom de machine ; dans le cas contraire utilisez la variable 'deny' à la place de cette dernière. Vous pouvez également ajouter optionnellement la valeur 'password' pour autoriser les connections uniquement par mot de passe. La variable 'timeout' indique le temps maximum que le serveur peut attendre pour l'enregistrement de l'utilisateur lorsque celui-ci s'y connecte. S'il n'y a toujours pas d'enregistrement au dela de cette durée, la connection est supprimée et en stoppant les petits malins qui veulent conserver plusieurs connections ouvertes sur votre serveur sans pour autant l'utiliser. Ceci est séparé des contrôles de PING. La variable 'flood' indique combien de lignes maximum peuvent être envoyées dans le sendq avant de se faire déconnecter du serveur pour flood. Le détecteur de flood fonctionne de quatre manières. Vous pouvez vous faire déconnecter avec les raisons suivantes :

  • Sending more than "flood" lines in one burst, which causes the ircd to drop you immediately,
  • Sending more than "flood" lines per "threshold" seconds, which causes the ircd to drop you should you reach "flood" amount of lines.
  • Sending more than "sendq" bytes to your buffer at once before the ircd can process the data.
  • Attempting to receive more than "sendq" bytes at once from the ircd.


Vous pouvez en plus inclure la variable 'pingfreq' comme montré ci-dessus, ce qui indique combien de connections du groupe sont 'pinguer' pour contrôler leur état. Si vous n'incluez pas cette variable, la valeur par défaut de celle-ci est de 120 secondes.

La variable 'port' est facultative ; celle-ci détermine sur quel port la balise 'connect' est focalisée. Si elle n'est pas utilisée, la balise 'connect' se chargera de tous les ports à l'écoute sinon, seul les connections entrantes sur le port spécifié seront traitées.

  • Les variables 'localmax' et 'globalmax' peuvent être utilisées pour forcer les limites de sessions locales et globales. Les limites de sessions sont comptées contre tous les utilisateurs, mais appliquées seulement aux utilisateurs de la classe.

Par exemple, si vous avez une classe « A » qui a une limite de session de 3, et une classe « B » qui a une limite de session de 5, et de façon ou d'autre, deux utilisateurs sont parvenus à entrer dans la classe que B qui assortit également la classe A, là est seulement un raccordement laissé pour cette IP maintenant dans A, mais s'ils peuvent se relier encore à B, il y a de trois. Si ces valeurs sont omises, le défaut de 3 (pour les deux valeurs) est employé.

Veuillez noter que les balises 'connect' sont lues à partir du début jusqu'à la fin du fichier de configuration, donc il faut faire attention lorsque l'on refuse l'acces d'un masque au départ puis que l'on autorise par la suite encore un autre masque etc...

<class>

<class name="Eteindre" commands="DIE RESTART REHASH">

Ces balises définissent des classes. Une classe est un groupe nommé, d'une ou pusieurs commandes qui peut être utilisé pour créer un type d'opérateurs spécifiques. Les commandes que vous placez dans ces classes sont arbitraire, vous n'êtes pas forcés de mettre par exemple, les commandes des services ensembles ou bien les KLINE avec les KILL ; en clair vous êtes totalement libre de créer les groupes que vous désirez. Vous pouvez placer autant de balises de ce type que vous le souhaitez.

Comme la version 1.0 beta 6, si vous mettez une commande nommée '*' dans une classe, celle-ci couvrira toutes les commandes possibles. Utilisez cela avec extrême précaution ! Par exemple :

<class name="Tout" commands="*">

<type>

<type name="GlobalOp" classes="OperChat BanControl HostCloak Modular" host="globalop.chatspike.net">

Ces balises définissent les types d'opérateurs. Un type d'opérateur est un groupe nommé d'une ou plusieurs classes. Quand ce type d'opérateurs obtiens avec succès ses droits, ils obtiennent le masque définit dans la variable 'host' ainsi que l'accès aux commandes définies dans les classes inclues. Vous pouvez définir autant de balises de ce type que vous voulez.

La valeur de la variable 'name' des balises <type> ne doivent pas inclure d'espaces. Utilisez un '_' à la place. Exemple :

<type name="Global_Op" classes="OperChat BanControl HostCloak Modular" host="globalop.chatspike.net">

<oper>

<oper name="helper" password="helper" host="*@*" type="Helper">

Cette balise définit les opérateurs. Chaque opérateur ne devrait avoir qu'un seul type dans la variable 'type'. Vous devez créer une balise identique supplémentaire si vous voulez définir différents hosts (FIXME : Find the french word/expression !!) OU séparer les différents hostnames par des espaces, par exemple :

<oper name="oper" password="iam1337!" host="*@secret.place.gov *@home.org" type="ReallyALamer">

Les mots de passes des opérateurs sont en texte clair mais vous pouvez utiliser le module m_md5 ou encore le module m_sha256 avec m_oper_hash.

<oper name="helper" hash="md5" password="fde5d67bfb6dc4b598291cc2ce35ee4a" host="*@*" type="Helper">

ou

<oper name="helper" hash="sha256" password="e81d3b0e9d82feaaf5f6e55bdff24731d7eee08632ffa63801e6397290c5d20a" host="*@*" type="Helper">

Pour générer un mot de passe crypté utilisez mkpasswd

Veuillez noter que ce type EST sensible à la case, si vous le saisissez pas correctement, votre commande d'opérateur echouera.

<files>

<files  motd="/path/to/motd" rules="/path/to/rules">

Cette balise, que vous ne devriez avoir qu'une seule fois dans votre fichier de configumration, spécifie le chemin du fichier contenant le message du jour (qui est juste un fichier texte simple) et du fichier contenant les règles du serveur et qui sera affiché avec la commande /RULES. Le chemin des fichier est relatif à celui du répertoire des fichier de configuration ou bien à partir du répertoire raçine suivant vos préférences.

<module>

<module name="m_silence.so">

Cette balise spécifie quels modules vous voulez charger. Il peut y avoir autant de balises que vous le voulez et tout les modules disponibles sont ceux présents dans le répertoire prévu à cet effet (Spécifié lors de l'execution du script ./configure).

<options>

<options prefixquit="Quit: " loglevel="debug" netbuffersize="10240" maxwho="32"
 noservices="no" allowhalfop="yes" moduledir="/path/to/modules" somaxconn="128"
 userstats="oclgk" customversion="" maxtargets="20" hidesplits="no"
 hidewhois="" flatlinks="no" hideulines="no" nouserdns="no" syntaxhints="no"
 cyclehosts="yes" ircumsgprefix="no" announcets="yes"
 hostintopic="yes" announceinvites="yes" quietbursts="no" hidekills="no" exemptchanops="" morronbanner="">

Cette balise spécifie un groupe d'options particulières. Elle peut contenir bon nombre d'options qui sont décrites dans les sous-section ci-dessous :

prefixquit

  • L'option 'prefixquit' indique quel préfixe est à afficher avant chaque message de départ d'un client du serveur. Elle à plusieurs utilitées à savoir la première qui évite de la part de certains utilisateurs d'afficher de faux messages de KILL.

loglevel

  • Cette option spécifie le niveau d'informations événementielles à inscire dans le fichier prévu à cet effet. Utilisez seulement le mode verbeux ('verbose') et déboggage ('debug') si vous comptez débogguer un module. Ces modes peuvent montrer des informations sensibles et générer d'importants logs et ne doivent donc jamais êtres utilisés en production.

netbuffersize

  • Cette option définit la taille des mémoires temporaires qui reçoivent les données des clients. C'est un complément aux limites de flood définies dans les balises <connect>. Par exemple si vous lui mettez une valeur de 10k (10240) et bien si un utilisateur envoie plus de 10k de données en une fois et que le serveur reçoie plus de 10k de données dans un appel à recv(), l'utilisateur sera déconnecté du serveur pour flood. Diminuer la valeur revient à diminuer les performances mais prendra moins de mémoire.

maxwho

  • Cette option indique le nombre maximum de réponse que la commane /WHO générera.Sur la plupart des réseaux de plus de 1000 utilisateurs, faire un /WHO 0 ou /WHO * (dépend du type de l'ircd) déconnectera l'utilisateur et dépensera beaucoup des ressources du serveur. Ceci limite la capacité des utilisateurs à flooder.

noservices

  • Cette option est utilisée sur les réseaux qui n'ont et n'auront jamais de services. Si vous mettez 'yes' comme valeur, le premier utilisateur qui entre sur un salon obtiendra par transparence le mode +q. Si le module m_chanprotect est chargé, de la même manière l'utilisateur qui entrera en premier dans un salon obtiendra le mode +o. Cela signifie que il y a un founder sur le salon, qui peut mettre les modes +a, etc, si les modules sont chargés, sans avoir besoin d'un service pour mettre le +q. Ceuillez noter que dans ce cas, il ne peut y avoir qu'un seul founder par salon, et quand le salon est détruit (tous les utilisateurs le quitte), le serveur ne se souvient pas de qui était founder. Cette option est utile pour les réseaux qui n'utilisent pas de services traditionels. Si vous mettez 'no', l'ircd agira de la même manière que UnrealIRcd ou Bahamut, en donnant le +q uniquement lorsque qu'un serveur en fait la demande.

qaprefixes

  • Cette option, lorsqu'elle est mise activée, permet aux utilisateurs possédant les modes +q et +a, d'avoir le préfixe ~ et & utilisés, comme dans UnrealIRCd. Si l'option n'est pas activée, les prefixes ne seront pas montrés. Cettte option est utile uniquement pour les réseaux qui utilisent le module m_chanprotect.

deprotectself

  • Lorsque cette option est activée, les utilisateurs ayant le mode +q ou +a peuvent se retirer leur modes eux mêmes. La configuration par défaut est de ne pas activer cette fonctionnalitée.

somaxconn

  • The optional somaxconn value is the maximum number of sockets that may be waiting in the accept queue. This usually allows the ircd to soak up more connections in a shorter space of time when increased but please be aware there is a system defined maximum value to this, the same way there is a system defined maximum number of file descriptors. Some systems may only allow this to be up to 5 (ugh) while others such as FreeBSD will default to a much nicer 128. If this value is omitted, the system defined constant SOMAXCONN is used in its place.

softlimit

  • Cette fonctionnalité optionnelle autorise à définir une limite logiciel sur le serveur. Cela ne peut être une limite supérieure à celle définie avec le script ./configure mais peut être changé lorsque lorsque celui-ci est en service et ceci prendra effet lors du rechargement du fichier de configuration. C'est utile de conserver une limite logiciel inférieure à celle définie par le ./configure car cela permet d'avoir une réserve d'urgence.

userstats

  • Le champ userstats est optionnel et spécifie quels caractères de /STATS peuvent être utilisés par les non-opérateurs. Les caractères dans ce champ sont sensibles à la case.

operspywhois

  • Si cette option est activée, lorsque qu'un IRC opérateur utilisera /WHOIS sur un utilisateur celui-ci obtiendra la liste de tous les saons sur lesquel ce dernier est présent, qu'ils soient secrets (+s), privés ou encore que l'utilisateur ciblé soit invisible (+i).

customversion

  • Le champ customversion est optionnel et si vous spécifiez son élément de configuration, et que celui-ci contient bien une valeur, cela aura pour effet d'afficher la chaîne de caractères en seconde partie de ce qui sera affiché lors d'un /VERSION en remplacant le nom du système ('uname'), les drapeaux de compilation et enfin le nom du moteur de socket/dns. Vous pouvez utiliser cette option pour la sécurité ou bien par pure vanité.

maxtargets

  • Le champ maxtargets est optionnel, et si celui-ci n'est pas définit, est par défaut de 20. Il indique le nombre maximum de cibles pouvant être données aux commandes telles que /PRIVMSG, /KICK etc.

hidesplits

  • Si ce champ est mis à 'yes', 'true' ou '1', le champ optionnel hidesplits cachera le nom du serveur qui s'est déconnecté aux non-opérateurs. Ceci est similaire (presque identique) à la procédure employée par ircu lors des netsplits, qui montre aux utilisateurs normaux uniquement un '*.net *.split' plutôt que le nom réel du serveur par mesure de sécurité. Les actuels bénéfices de cette fonctionnalité sont discutés dans bon nombres de réseaux, mais vous pouvez décider vous même si vous la voulez ou non Image:Tongue.gif

hidebans

  • Lorsque que ce champ est mis à 'yes', cela cachera les messages de déconnection dûes aux GLINE, KLINE, ZLINE et QLINE des utilisateurs normaux. Par exemple, l'utilisateur Aqui n'est pas opérateur ne verra que le messages (G-Lined) pendant que l'utilisateur B qui est un opérateur obtiendra le message suivant (G-Lined:Raison ici).

hidewhois

  • Le champ optionnel hidewhois peut être règlé par un texte arbitraire et s'il est définit, remplacera le serveur de l'utilisateur dans n'importe quel /WHOIS effectué par un non-opérateur. La plupart de réseaux qui active cette fonctionnalité devrait probablement le mettre à titre d'exemple, à *.reseau.net. Comme l'option hidesplits ci-dessus les actuels bénéfices de cette fonctionnalité sont également discutés.

flatlinks

  • L'option flatlinks si celle-ci est règlé à 'true', 'yes' ou '1' lrsque le module m_spanningtree.so est chargé, aura comme effet d'applanir les /MAP et /LINKS des non-opérateurs.

hideulines

  • hideulines quand il est spécifié et que vous utilisez le module m_spanningtree.so cachera les serveurs U-Lined lorsque les non-opérateurs feront appel aux commandes /LINKS et /MAP. S'il vous plaît soyez conscient que cela cachera n'importe quel serveurs sous adjacent (leaf) à un serveur U-Lined.

nouserdns

  • Quand les utilisateurs se connectentà votre serveur, celui-ci essayera de résoudre leur nom de machine en utilisant le serveur DNS spécifié dans la balise <dns>. Cela peut consommer beaucoups de ressources processeur et une large bande passante pour les serveurs vraiment chargés. Mettez cette option à 'on' et le serveur ne procedera pas à la résolution DNS des clients connectés. Il est recommandé d'utiliser un serveur de résolution dns local lorsque c'est possible.

syntaxhints

  • Mettez cette option à 'on' pour donner aux utilisateurs ne fournissant pas assez de paramêtres pour une commande, une allusion de syntaxe utilisant le RPL_TEXT numérique ainsi que la norme ERR_NEEDMOREPARAMS.

cyclehosts

  • Lorsque le nom de machine d'un utilisateur change, cette option le fait apparaître comme si l'utilisateur quittait le serveur pour le rejoindre juste après mais avec son nouveau nom de machine. Il est recommandé de laisser cette option activée.

ircumsgprefix

  • Fournit le syle de préfixes type Undernet pour les NOTICEs et PRIVMSGs salon. Avec cette option activée, le texte sera précédé du préfixe utilisé. Eg. NOTICE @#test :@ Ceci est un test' comme opposé à la norme 'NOTICE @#test :Ceci est un test'

announcets

  • Lorsque cette option est activée et que le timestamp d'un salon est mis à jour, les utilisateurs présent sur ce salon seront informés de ce changement par une notice serveur envoyée au salon avec l'ancienne et la nouvelle valeur du TS dans le timestamp

allowhalfop

  • La variable allowhalfop active ou désactive le support des demi-opérateurs (mode salon +h). Cela sera mis dans un modules dans le futur. Ceux qui désire uniquement un niveau de base de conformité RFC devraient désactiver cette option en mettant la valeur à 'no'.

moduledir

  • La variable moduledir est optionnelle et spécifie le chemin ou se trouve les modules. Si elle n'est pas définie, la valeur spécifiée lors de la compilation sera prise en compte par défaut (qui normalement est le répertoire modules/)

hostintopic

  • Si cette variable est mise à 'yes' (ce qui est par défaut à partir de la version 1.1.2), le pseudo!utilisateur@nom.de.machine complet sera sauvegardé lors des changements du titre du salon. Notez que si l'un des serveurs à cette option activée et pas les autres, ces derniers accepteront le pseudo!utilisateur@nom.de.machine complet mais n'enverront que le pseudo pour les changements locaux.

announceinvites

  • Si cette option est mise à 'yes' (par défaut), les invitations seront annoncés sur le salon lorsqu'un utilisateur en invitera un autre. Si vous considerez que ceci n'est pas nécessaire, mettez la valeur à 'no'.

quietbursts

  • If this option is set to no (the default), then when there is a link made from another server the bursts will be announced as joins to opers with the correct snomasks, if you consider this to be unncecessary noise, explicitly set this to yes

hidekills

  • If this option is set, the string it is set to will be used as the prefix for all KILL messages, masking the original sender of the KILL. i.e.:

[01:59:57] * w00t2 (viroteck@test-d57df912.karoo.KCOM.COM) Quit (Killed (*.lol.hax (Drone!)))

instead of:

[01:59:57] * w00t2 (viroteck@test-d57df912.karoo.KCOM.COM) Quit (Killed (SomeOper (Drone!)))

exemptchanops

  • Exempt Channel ops from the effects of channel modes. A valid configuration for this setting is in the format exemptchanops="modeshere" or blank for the default behavior of no exemptions. (currently only modes SfgNc are supported)

moronbanner

  • The NOTICE to show to users who are glined, zlined, klined or qlined when they are disconnected. This is totally freeform, you may place any text here you wish.

<badip>

<badip ipmask="69.69.69.69" reason="No porn here thanks.">

These tags are used to define a z-line in your config file. You can define these from IRC with the /ZLINE command. You may use glob patterns in these tags.


<badnick>

<badnick nick="*[rxHO]*" reason="Script kiddiot.">

These tags are used to define banned nick masks, which you can also define on irc with the /QLINE command. You may use glob patterns in these tags if you wish.

NOTE: An interesting new feature of inspircd is that when you set a Q:Line, any users matching the nick will be disconnected. They will not be allowed back onto the network again using the same nickname that still matches the Q:Line mask, and must choose another before being allowed back to the server.


<badhost>

<badhost host="*@localhost" reason="No irc from localhost!">

These tags are used to define banned hostnames (K-Lines) which you may define over irc using the /KLINE command. You may use glob patterns in these tags if you wish to do so.

Note that K-Lines set with the /KLINE command will NOT be saved if the IRCd is resarted, however, K-Lines set in the configuration files will.

<exception>

<exception host="*@ircop.host.com" reason="Opers hostname">

These tags are used to define hostnames (E-Lines) which will not be affected by Klines / Glines / Zlines. This is the same as the /ELINE command on IRC, but exceptions added with /ELINE will not be saved over IRCd restarts. You may use glob patterns in these tags if you wish to do so.


<die>

<die value="anything here">

This tag if included will cause your irc server to bail on startup with the provided message. It is mainly used to make sure that config files are properly edited before use.


<dns>

<dns server="127.0.0.1" timeout="5">

This tag specifies what nameserver the ircd will attempt to use. The timeout value indicates how long to wait for a response from the DNS server.

For optimal performance of your irc network, each server which runs inspircd should also be running a copy of BIND. This should be a recent copy (you know, one without exploits, they do exist!) and should be listening on localhost (127.0.0.1). You should then make your queries to this, and it should be set as a caching nameserver. This way, you can return most of your queries extremely quickly. Home routers are not recommended as DNS servers!


<pid>

<pid file="/path/to/inspircd.pid">

This tag specifies a path to the PID file, which can be used to monitor an inspircd server and/or control its state from the shell. If this value is not defined, the default value of inspircd.pid is used. Paths can be relative to the config dir, or a full path from the filesystem root.

<banlist>

<banlist chan="*" limit="32">

This tag indicates that all channels matching the glob pattern given will have a banlist which is limited to 'limit' entries. In this case, all your channels will have a limit of 32. The banlist tags are read from top to bottom and when a matching tag is found, that ban limit is used for the channel. For example you may have a channel which reguarly gets frequented by spammers, trolls and other such online lowlife, and require a bigger banlist, and you would be able to increase the size of the banlist for this channel. If the server cannot find a matching banlist tag for a channel, it defaults to a hardcoded default of 64 entries. The official way to set a global limit is to use a tag similar to the one above which matches all channels which have not already been specified individually.

<channels>

<channels  users="20"
           opers="60">

This tag indicates the maximum amount of channels that a user or oper is allowed to be in at any one time.

<disabled>

<disabled commands="TOPIC MODE">

This optional tag provides a list of commands which are not available to non-operators. When a non-operator attempts to use a disabled command they will receive a 421 numeric as shown below:

TOPIC This command has been disabled.

The disabled commands only take effect once the user is fully 'registered' (e.g. after USER/NICK/PASS) so disabling NICK does not prevent connections. Please be careful of which commands you disable as disabling some commands can break the dialog boxes of many popular clients such as mIRC and xchat.

<include>

<include file="file.conf">

This optional tag allows you to include another config file allowing you to keep your configuration tidy. The configuration file you include will be treated as part of the configuration file which includes it, in simple terms the inclusion is transparent. All paths to config files are relative to the directory of the main config file inspircd.conf, unless the filename starts with a forward slash (/) in which case it is treated as an absolute path.

<insane>

<insane hostmasks="no" ipmasks="no" nickmasks="no" trigger="95.5">

This optional tag allows you to specify how wide a gline, eline, kline, zline or qline can be before it is forbidden from being set. By setting hostmasks="yes", you can allow all G, K, E lines, no matter how many users the ban would cover. This is not recommended! By setting ipmasks="yes", you can allow all Z lines, no matter how many users these cover too. Needless to say we don't recommend you do this, or, set nickmasks="yes", which will allow any qline.

The trigger value indicates how wide any mask will be before it is prevented from being set. The default value is 95.5% if this tag is not defined in your configuration file, meaning that if your network has 1000 users, a gline matching over 955 of them will be prevented from being added.

Please note that remote servers (and services) are exempt from these restrictions and expected to enforce their own policies locally!

<whowas>

<whowas groupsize="10" maxgroups="100000" maxkeep="3d">

This tag lets you define the behaviour of the /whowas command of your server. The following values can be defined:

  • groupsize - Controls the maximum entries per nick shown when performing a /whowas nick. Setting this to 0 disables whowas completely.
  • maxgroups - The maximum number of nickgroups that can be added to the list. If max is reached, oldest group will be deleted first like a FIFO. A groupsize of 3 and a maxgroups of 5000 will allow for 5000 nicks to be stored with a history of 3, thus giving a total of 3 * 5000 = 15000 entries. A setting of 0 disables whowas completely.
  • maxkeep - The maximum time a nick is kept in the whowas list before being pruned. Time may be specified in seconds, or in the following format: 1y2w3d4h5m6s meaning one year, two weeks, three days, 4 hours, 5 minutes and 6 seconds. All fields in this format are optional. Minimum is 1 hour, if less InspIRCd will default back to 1 hour.

<timesync>

<timesync enable="no" master="no">

Time sychronization options for m_spanningtree linking:

  • enable - If this value is 'yes', 'true', or '1', time synchronization is enabled on this server. This means any servers you are linked to will automatically synchronize time, however you should use ntpd instead where possible, NOT this option.
  • master - If this value is set to yes, then this server will act as the authoritative time source for the whole network. All other servers will respect its time without question, and match their times to it. only one server should have the master value set to 'yes'.

Other tags

Any other tags you find in the config file are implemented by modules. You should search this wiki for documentation on the modules to learn how to configure them. A good place to start that search is our Modules List.