1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-28 06:36:39 +02:00
Files
unrealircd/doc/unreal32docs.fr.html
T
2005-01-03 18:16:47 +00:00

3361 lines
191 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>UnrealIRCd - 3.2 - Official Documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.block_section { font-size: 24; font-weight: bold; }
.block_name { font-size: 24; font-weight: bold; }
.block_required { color: red; font-weight: bold; }
.block_recommended { color: green; font-weight: bold; }
.block_optional { color: blue; font-weight: bold; }
.block_old { font-size: 14; }
.set { font-weight: bold; }
.desc { margin-left: 15px; }
pre { font: "times new roman"; font-style: normal;}
</style><!-- $Id$ --></head>
<body>
<a href="unreal32docs.html">English</a> |
<a href="unreal32docs.de.html">German</a> |
<a href="unreal32docs.es.html">Spanish</a> |
<a href="unreal32docs.hu.html">Hungarian</a> |
French
<br><br>
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
<font size="4"><a href="http://www.unrealircd.com/">http://www.unrealircd.com</a></font><br>
<font size="4">Version: 3.2.2-CVS</font><br>
<b>Derni&egrave;re mise &agrave; jour de la documentation:</b> 2004-12-01</div>
<br>
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
<b>Documentation:</b> CKnight^ / Syzop<br>
<b>Traduction fran&ccedil;aise:</b> <a href="mailto:kolibot@rs2i.net?subject=UnrealIRCd%20-%20French%20Support">Vincent Guesnard ( Kolibot )</a> &amp; <a href="mailto:babass@rs2i.net?subject=UnrealIRCd%20-%20French%20Support">babass</a> - <a href="irc://irc.rs2i.net/UnrealIRCd">irc.rs2i.net</a><br>
<p>En raison de la complexit&eacute; croissante d'UnrealIRCd 3.2, nous avons chang&eacute; pour une navigation plus facile, ce qui nous a permis
de vous donner acc&egrave;s &agrave; beaucoup plus de documentations. Pour voir ce document vous devez avoir un navigateur compatible, ils sont
list&eacute;s ci-dessous. Les mises &agrave; jour de ce document sont disponibles ici :
<a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
ainsi qu'un FAQ <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">http://www.vulnscan.org/UnrealIrcd/faq/</a>.
</p>
<p><b>Navigateurs compatibles: </b><br>
</p><ul>
<li>Opera 6.02
</li><li>Microsoft Internet Explorer 6.X / 5.5
</li><li>Netscape Navigator 6.X
</li><li>Mozilla 1.2.X
</li><li>Lynx (to a point)
</li></ul>
<p></p>
<p><font size="+2"><b>INDEX / TABLE DES MATIERES</b></font><br>
1. <a href="#IntroductionNotes">Introduction &amp; Notes</a><br>
---1.1. <a href="#notesonolder">Notes sur la mise &agrave; jour/mixing 3.1.x -&gt; 3.2</a><br>
---1.2. <a href="#notesonupgrade">Notes sur la mise &agrave; jour entre versions 3.2</a><br>
2. <a href="#installation">Installation</a><br>
3. <a href="#features">Caract&eacute;ristiques</a><br>
-- 3.1. <a href="#feature_cloaking">Cloaking</a><br>
-- 3.2. <a href="#feature_modules">Modules</a><br>
-- 3.3. <a href="#feature_snomasks">Snomasks</a><br>
-- 3.4. <a href="#feature_aliases">Aliases</a><br>
-- 3.5. <a href="#feature_helpop">Helpop</a><br>
-- 3.6. <a href="#feature_operaccesslevels">Niveau d'acc&egrave;s des op&eacute;rateurs</a></a><br>
-- 3.7. <a href="#feature_opercmds">Commandes op&eacute;rateurs</a><br>
-- 3.8. <a href="#feature_ssl">SSL</a><br>
-- 3.9. <a href="#feature_ipv6">IPv6</a><br>
-- 3.10. <a href="#feature_ziplinks">Zip links</a><br>
-- 3.11. <a href="#feature_dyndns">Support des links avec DNS/IP dynamiques</a><br>
-- 3.12. <a href="#feature_antiflood">Caract&eacute;ristiques de l'anti-flood</a><br>
-- 3.13. <a href="#feature_bantypes">Types de ban</a><br>
-- 3.14. <a href="#feature_spamfilter">Spamfilter</a><br>
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
-- 3.16. <a href="#feature_other">Autres particularit&eacute;s</a><br>
4. <a href="#configuringyourunrealircdconf">Configurer votre fichier unrealircd.conf
</a><br>
---4.1. <a href="#configurationfileexplained">Explication du fichier de configuration</a><br>
---4.2. <a href="#meblock"> Me Block -=- (M:Line)</a><br>
---4.3. <a href="#adminblock">Admin Block -=- (A:Line)</a><br>
---4.4. <a href="#classblock">Class Block -=- (Y:Line)</a><br>
---4.5. <a href="#allowblock">Allow Block -=- (I:Line)</a><br>
---4.6. <a href="#listenblock">Listen Block -=- (P:Line)</a><br>
---4.7. <a href="#operblock">Oper Block -=- (O:Line)</a><br>
---4.8. <a href="#drpassblock">DRpass Block -=-(X:Line)</a><br>
---4.9. <a href="#includedirective">Include Directive</a><br>
---4.10. <a href="#loadmoduledirective">Loadmodule Directive</a><br>
---4.11. <a href="#logblock">Log Block</a><br>
---4.12. <a href="#tldblock">TLD Block -=- (T:Line)</a><br>
---4.13. <a href="#bannickblock">Ban Nick Block -=- (Q:Line)</a><br>
---4.14. <a href="#banuserblock">Ban User Block -=- (K:Line)</a><br>
---4.15. <a href="#banipblock">Ban IP Block -=- (Z:Line)</a><br>
---4.16. <a href="#banserverblock">Ban Server Block -=-(q:Line)</a><br>
---4.17. <a href="#banrealnameblock">Ban Realname Block -=- (n:Line)</a><br>
---4.18. <a href="#banversionblock">Ban Version Block</a><br>
---4.19. <a href="#banexceptionblock">Ban Exception Block -=- (E:Line)</a><br>
---4.20. <a href="#tklexceptionblock">TKL Exception Block</a><br>
---4.21. <a href="#throttleexceptionblock">Throttle Exception Block</a><br>
---4.22. <a href="#denydccblock">Deny DCC Block -=- (dccdeny.conf)</a><br>
---4.23. <a href="#denyversionblock">Deny Version Block -=- (V:Line)</a><br>
---4.24. <a href="#denylinkblock">Deny Link Block -=- (D:Line / d:Line)</a><br>
---4.25. <a href="#denychannelblock">Deny Channel Block -=- (chrestrict.conf)</a><br>
---4.26. <a href="#allowchannelblock">Allow Channel Block</a><br>
---4.27. <a href="#allowdccblock">Allow DCC Block</a><br>
---4.28. <a href="#vhostblock">Vhost Block -=- (vhost.conf)</a><br>
---4.29. <a href="#badwordsblock">Badword Block -=- (badwords.conf)</a><br>
---4.30. <a href="#ulinesblock">Uline Block -=- (U:Line)</a><br>
---4.31. <a href="#linkblock">Link Block -=- (C/N/H:Lines)</a><br>
---4.32. <a href="#aliasblock">Alias Block</a><br>
---4.33. <a href="#helpblock">Help Block</a><br>
---4.34. <a href="#officialchannels">Official Channels Block</a><br>
---4.35. <a href="#spamfilter">Spamfilter Block</a><br>
---4.36. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
5. <a href="#addtlfiles">Fichiers additionnels</a><br>
6. <a href="#userchannelmodes">Modes utilisateurs &amp; salons</a><br>
7. <a href="#useropercommands">Commandes utilisateurs &amp; Op&eacute;rateurs</a><br>
8. <a href="#security">Conseils de s&eacute;curit&eacute;/checklist</a><br>
---8.1. <a href="#secpasswords">Mots de passe</a><br>
---8.2. <a href="#secnonircd">Vuln&eacute;rabilit&eacute;s non li&eacute;es &agrave; l'Ircd</a><br>
---8.3. <a href="#secpermissions">Permissions et fichier de configuration</a><br>
---8.4. <a href="#secuser">Probl&egrave;mes li&eacute;s aux utilisateurs</a><br>
---8.5. <a href="#secsnif">SSL/SSH &amp; sniffing</a><br>
---8.6. <a href="#secDoS">Denial of Service attacks (DoS) [ou: comment prot&eacute;ger mon hub]</a><br>
---8.7. <a href="#secinformation">Conseil sur la divulgation d'informations</a><br>
---8.8. <a href="#secantiexploit">Protection contre les exploits</a><br>
---8.9. <a href="#secsummary">Conclusion</a><br>
9. <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">Foire au questions (FAQ)</a><br>
A. <a href="#regex">Expressions Régulières</a><br>
---A.1. <a href="#regexlit">Literals</a><br>
---A.2. <a href="#regexdot">L'opérateur Point</a><br>
---A.3. <a href="#regexrep">Les opérateurs de répétition</a><br>
---A.4. <a href="#regexbracket">Bracket Expressions</a><br>
---A.5. <a href="#regexassert">Assertions</a><br>
---A.6. <a href="#regexalt">Alternation</a><br>
---A.7. <a href="#regexsub">Subexpressions</a><br>
---A.8. <a href="#regexbackref">Back References</a><br>
---A.9. <a href="#regexcase">Case Sensitivity</a><br>
</p>
<p><b><font size="+2">1.0 &#8211; Introduction &amp; Notes <a name="IntroductionNotes"></a></font></b><br>
</p><div class="desc">
<p>Ce document a &eacute;t&eacute; &eacute;cris exclusivement pour l'utilisation d'UnrealIRCd. Utiliser ce
document avec un autre logiciel, ou le distribuer avec un autre logiciel est strictement
interdit sans la permission &eacute;crite de l'&eacute;quipe de d&eacute;veloppement d'UnrealIRCd. Ce document
peut être copi&eacute;/imprim&eacute;/reproduit/publi&eacute; autant de fois que vous le souhaitez, &agrave; condition
que ce soit pour l'utilisation d'UnrealIRCd et qu'il ne soit jamais modifi&eacute; d'une quelconque mani&egrave;re.
&#8211; Copyright UnrealIRCd Development Team 2002-2004</p>
<p>Lisez ce manuel avant de demander de l'aide, vous devez aussi lire attentivement la
<a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">FAQ</a> qui r&eacute;pond &agrave; plus de 80% de
vos questions/probl&egrave;mes. Si vous avez encore besoin d'aide vous pouvez demander du support sur
irc.ircsystems.net (port 6667) channel #unreal-support (notez que nous requerrons de votre part une
parfaite connaissance de ce document et de la FAQ et que nous donnons uniquement de l'aide sur UnrealIRCD,
pas sur les services !). Si vous avez un r&eacute;el bug (comme un crash) alors reportez le ici
<a href="http://bugs.unrealircd.org/" target="_blank">http://bugs.unrealircd.org</a>.</p></div>
<p><font size="+2"><b>1.1 &#8211; Notes sur la mise &agrave; jour/mixing 3.1.x -&gt; 3.2 </b></font><a name="notesonolder"></a><br>
</p>
<div class="desc">
<p>Au cas où vous souhaiteriez mettre &agrave; jour Unreal3.1.x vers Unreal3.2 vous noterez que l'ensemble des fichiers
de configuration a chang&eacute;, vous devriez trouver cela difficile au d&eacute;but, mais une fois que vous aurez chang&eacute;
vous trouverez cela beaucoup mieux !</p>
<p>N'oubliez pas de lire la section 3 &agrave; propos des caract&eacute;ristiques, bien que vous connaissiez d&eacute;j&agrave; la plupart
d'entre elles car elles sont issues des 3.1.x, il y en a tout de même de nouvelles !!</p>
<p>Le mieux n'est pas de mixer une 3.1.x avec une 3.2, mais si vous souhaitez r&eacute;ellement faire cela, vous
aurez besoin d'une version 3.1.4 minimum, mais une 3.1.5 est fortement conseill&eacute;e.</p></div>
<p><font size="+2"><b>1.2 &#8211; Notes sur la mise &agrave; jour entre versions 3.2</b></font><a name="notesonupgrade"></a><br>
</p><div class="desc">
<p>Le protocole recommand&eacute; pour mettre &agrave; jour est :<br>
Linux:<br>
</p><ul>
<li>Renommez votre ancien dossier UnrealIRCd (sinon vous &eacute;craserez son contenu dans la prochaine &eacute;tape)
</li><li>Extraire la nouvelle version d'UnrealIRCd and &eacute;crivez ./Config et make
</li><li>Copiez vos anciens fichiers de configuration vers le nouveau r&eacute;pertoire (unrealircd.conf, motd, rules, server.* [SSL certs], network file, etc)<p></p></li></ul>
Windows:<br>
<ul>
<li>Copiez tous vos fichiers de configuration temporairement vers un autre dossier.
</li><li>Lancez le d&eacute;sinstalleur pour toutes les versions pr&eacute;c&eacute;dentes d'Unreal que vous avez install&eacute;es.
</li><li>Lancez l'installeur pour la nouvelle version d'Unreal.
</li><li>Copiez vos anciens fichiers de configuration vers le nouveau dossier.
</li></ul>
<p>Veuillez v&eacute;rifier les RELEASE NOTES pour voir ce qui a chang&eacute;. Si vous notez des changements (ou bug)
entre les versions, VOUS DEVEZ ÊTRE SUR D'AVOIR LU LES RELEASE NOTES EN PREMIER avant de reporter cela comme un bug.</p></div>
<p><font size="+2"><b>2.0 - Installation</b></font><a name="installation" id="installation"></a><br></p><div class="desc">
<br>
<b>Syst&eacute;mes d'exploitation test&eacute;s et support&eacute;s:</b><br>
<ul>
<li><b>*NIX versions:</b>
<ul>
<li>Linux 2.2.x
</li><li>Linux 2.4.x
</li><li>FreeBSD 4.6-STABLE
</li><li>FreeBSD 4.5-STABLE
</li><li>Solaris 2.x
</li></ul>
</li><li><b>Windows version:</b>
<ul>
<li>WindowsXP Home
</li><li>WindowsXP Pro
</li><li>Windows 2000 Pro
</li><li>Windows 2000 Server
</li><li>Windows 2000 Advanced Server
</li><li>Windows 98
</li><li>Windows Me
</li></ul>
</li></ul>
<br>
Si vous avez Unreal3.2 et qu'il fonctionne correctement sous un autre syst&egrave;me d'exploitation,
envoyer les d&eacute;tails ici : <a href="mailto://docs@unrealircd.com">docs@unrealircd.com<br>
</a> <p></p>
<p><b>Instructions d'installation:</b><br>
Linux:<br>
</p><ol>
<li>gunzip -d Unreal3.2.2.tar.gz
</li><li>tar xvf Unreal3.2.2.tar
</li><li>cd Unreal3.2
</li><li>./Config
</li><li>R&eacute;pondez &agrave; ces questions avec le meilleur de vos connaissances.
G&eacute;n&eacute;ralement, si vous n'êtes pas sur, les param&egrave;tres par d&eacute;faut devrait fonctionner !
</li><li>make
</li><li>Maintenant cr&eacute;ez votre unrealircd.conf ainsi que les autres fichiers de configuration, regardez la section 4.
</li></ol>
<p>
Windows:<br>
</p><ol>
<li>Lancez l'installateur d'Unreal
</li><li>Maintenant cr&eacute;ez votre unrealircd.conf ainsi que les autres fichiers de configuration, regardez la section 4.
</li></ol>
<p></p>
<p> </p></div>
<p><font size="+2"><b>3.0 - Caract&eacute;ristiques</b></font>
<a name="features"></a></p><div class="desc">
<p>La plupart des caract&eacute;ristiques majeures/mineures sont expliqu&eacute;es dans cette section.
Elle fourni une vue d'ensemble, et fait parfois r&eacute;f&eacute;rence aux fichiers de configuration
(quelque chose dont vous ne connaissez encore rien).</p>
<p>Vous pouvez sauter cette section, toutefois il est sugg&eacute;r&eacute; de la lire avant/apr&egrave;s l'installation.</p></div>
<p><font size="+2"><b>3.1 - Cloaking</b></font><a name="feature_cloaking"></a></p><div class="desc">
<p>Le Cloaking vous permet de cacher le v&eacute;ritable host des utilisateurs, par exemple si votre host r&eacute;el est <i>d5142341.cable.wanadoo.nl</i>,
il sera montr&eacute; (lors des join, part, whois, etc) ainsi : <i>rox-2DCA3201.cable.wanadoo.nl</i>.
Cette sp&eacute;cificit&eacute; est utile pour pr&eacute;venir les floods entre utilisateurs depuis qu'ils ne peuvent plus voir l'host ou l'IP r&eacute;el.</p>
<p>Cela est contrôl&eacute; par le usermode +x (comme : /mode votrepseudo +x), les administrateurs peuvent forcer le mode +x par d&eacute;faut,
ou rendre impossible aux utilisateurs d'enlever ce mode.</p>
<p>Un host cloaked est g&eacute;n&eacute;r&eacute; par un module de cloaking (vous devez en avoir un d'amorc&eacute;), il y en a 2 officiels &agrave; ce jour :<br>
<b>cloak:</b> C'est le nouveau module officiel de cloaking qui est plus s&eacute;curis&eacute; que l'ancien, il utilise la m&eacute;thode de
hachage md5 et requi&egrave;re 3 set::cloak-keys:: consistant &agrave; mixer des caract&egrave;res alphanum&eacute;rique (a-z, A-Z et 0-9)
[ex: CZCBd45Q6DmtExAd8Bm2"]. Regardez l'example.conf pour un exemple.<br>
<b>oldcloak:</b> C'est l'ancien algorithme utilis&eacute; par Unreal3.2 et les versions pr&eacute;c&eacute;dentes, il est ici dans le but
de vous montrer l'&eacute;volution du processus de chiffrage des hosts/IP r&eacute;els. Il n'est plus consid&eacute;r&eacute; comme s&eacute;curis&eacute;
(vous devriez avoir un avertissement si vous l'utilisez)
et vous devriez passer au 'cloak' d&egrave;s que tous les serveurs seront mis &agrave; jour.</p>
<p>Les Cloak keys DOIVENT être les mêmes sur TOUS LES SERVEURS d'un r&eacute;seau. Elles doivent être gard&eacute;es SECRETES car
il est possible de d&eacute;chiffrer l'host original si vous connaissez ces cl&eacute;s (ce qui rendrait le umode +x obsol&egrave;te).</p>
</div>
<p><font size="+2"><b>3.2 - Modules</b></font><a name="feature_modules"></a></p><div class="desc">
<p>UnrealIRCd supporte des modules, ce qui est tr&egrave;s sympathique car :<br>
- Vous pouvez les charger/d&eacute;charger pendant que l'ircd est lanc&eacute; (avec /rehash).
Cela vous permet de corriger certains bugs ou d'ajouter de nouvelles sp&eacute;cificit&eacute;s
sans être oblig&eacute; de red&eacute;marrer !<br>
- D'autres personnes peuvent cr&eacute;er (3rd party) des modules avec de nouvelles commandes, modes utilisateurs et même des modes channels.
UnrealIRCd contient seulement quelques modules. Regarder ici www.unrealircd.com -&gt; modules ou utiliser google pour trouver des 3rd party modules.<br>
</p><p>Vous avez besoin de lancer au moins 2 modules ausinon vous n'aurez pas la possibilit&eacute; d'amorcer l'ircd ! :<br>
- Le module des commandes : commands.so (commands.dll sous windows)<br>
- un module de cloaking: habituellement cloak.so (cloak.dll sous windows)</p>
</div>
<p><font size="+2"><b>3.3 - Snomasks</b></font><a name="feature_snomasks"></a></p><div class="desc">
<p>Les Snomasks sont des notices serveurs, c'est un type sp&eacute;cial de usermode que vous recevrez sous forme de notices serveurs.
(la plupart du temps, cela est utilis&eacute; par les op&eacute;rateurs).</p>
<p>Cela peut être &eacute;tabli par: /mode votrepseudo +s SNOMASK, par exemple: /mode votrepseudo +s +cF<br>
Pour enlever certains snomasks, utilisez quelque chose comme : /mode votrepseudo +s -c<br>
Ou vous pouvez aussi enlever tous vos snomasks en &eacute;crivant simplement: /mode votrepseudo -s</p>
<p>Les snomasks disponibles sont :<br>
c - les connexions locales<br>
F - les connexions globales (except&eacute;es celles qui proviennent des serveurs qui sont dans vos U:lines)<br>
f - les notices de flood<br>
k - les notices de kill [*]<br>
e - les notices de 'eyes'<br>
j - les notices de 'junk'<br>
v - les notices de vhost<br>
G - les notices de gline/shun<br>
n - les changements de pseudo locaux<br>
N - les changements de pseudo globaux<br>
q - les notices d'interdiction d'utilisation de nick (Q:line)<br>
s - recevoir les notices serveurs [*]<br>
S - recevoir les notices de l'anti-spam<br>
o - recevoir les notices d'identification oper<br>
[*: ces snomasks sont autoris&eacute;s aux non-op&eacute;rateurs]<br>
</p>
<p>Vous pouvez rendre automatique le don de snomasks (set::snomask-on-connect) et aussi
ceux que vous souhaitez quand vous vous /oper (set::snomask-on-oper, oper::snomask)</p>
<p>Par défaut, si un utilisateur applique uniquement le mode +s, certains snomasks sont appliqués.
Pour les non-opers, snomask +ks, et pour les opers, snomasks +kscfvGqo.</p></div>
<p><font size="+2"><b>3.4 - Aliases</b></font><a name="feature_aliases"></a></p><div class="desc">
<p>Avec les aliases vous pouvez configurer des commandes rapides. Par exemple "/ns identify blah"
sera envoy&eacute; &agrave; nickserv (cela sera traduis par : privmsg nickserv identify blah). Vous pouvez
bien entendu cr&eacute;er des alias plus compliqu&eacute;s comme /register qui sera retourn&eacute; vers Chanserv
si le premier param&egrave;tre est un # ou sinon vers nickserv.</p>
<p>Les aliases sont &agrave; configurer dans les alias blocks contenus dans le fichier de configuration,
vous pouvez aussi inclure un fichier avec des aliases par d&eacute;faut dont la plupart des services se servent.</p></div>
<p><font size="+2"><b>3.5 - Helpop</b></font><a name="feature_helpop"></a></p><div class="desc">
<p>UnrealIRCd a un syst&egrave;me d'aide accessible via /helpop. La commande /helpop est enti&egrave;rement configurable
via l'help block dans le fichier de configuration. En suppl&eacute;ment, un help.conf est inclus, il contient
une aide basique pour toutes les commandes par d&eacute;faut.<br>
Par exemple <i>/helpop chmodes</i> vous donne la liste de tous les modes channels disponibles d'UnrealIRCd.<br>
Rappelez vous que si vous êtes un op&eacute;rateur (helpop) vous devrez ajouter le pr&eacute;fix ? aux mots cl&eacute;s,
donc <i>/helpop</i> devient <i>/helpop ?</i> et
<i>/helpop chmodes</i> devient <i>/helpop ?chmodes</i> etc..</p></div>
<p><font size="+2"><b>3.6 - Niveau d'acc&eacute;s des op&eacute;rateurs</b></font><a name="feature_operaccesslevels"></a></p><div class="desc">
<p>Dans UnrealIRCd, plusieurs niveaux d'op&eacute;rateurs sont accessibles. Vous pouvez d&eacute;finir des droits suppl&eacute;mentaires (comme l'utilisation de /gline).
Grâce &agrave; cela vous pouvez donner aux op&eacute;rateurs les privil&egrave;ges dont ils ont besoin.</p>
<p>Cela est contrôl&eacute; par les flags op&eacute;rateurs dans l'oper block, regardez l'oper block pour plus d'informations.</p></div>
<p><font size="+2"><b>3.7 - Commandes op&eacute;rateurs</b></font><a name="feature_opercmds"></a></p><div class="desc">
<p>UnrealIRCd a beaucoup de commandes performantes pour les op&eacute;rateurs qui sont expliqu&eacute;es dans <a href="#useropercommands">Commandes utilisateurs et op&eacute;rateurs</a>,
vous voudrez probablement lire cela apr&egrave;s l'installation :)</p></div>
<p><font size="+2"><b>3.8 - SSL</b></font><a name="feature_ssl"></a></p><div class="desc">
<p>Le SSL (Secure Socket Layer) vous permet de s&eacute;curiser les connexions grâce &agrave; un chiffrement des E/S.
Vous pouvez l'utiliser pour s&eacute;curiser le trafic entre serveurs mais aussi le trafic client&lt;-&gt;serveur.
Habituellement, le SSL est utilis&eacute; pour prot&eacute;ger contre le sniffing et pour l'authentification.</p>
<p>Pour l'utiliser, il vous faudra compiler votre IRCd avec le support SSL. Pour avoir un port SSL, voici la syntaxe : listen::options::ssl.</p>
<p>Les connexions SSL ne sont pas par d&eacute;faut (donc ne mettez pas le port 6667 en SSL !!), il vous faut un client ou un tunnel qui supporte le protocol SSL.</p>
<p>Clients supportant le SSL: <a href="http://www.xchat.org/" target="_blank">XChat</a>,
<a href="http://www.irssi.org/" target="_blank">irssi</a>,
<a href="http://www.mirc.com/" target="_blank">mIRC</a> (6.14 et sup&eacute;rieures,
requiert certaines <a href="http://www.mirc.co.uk/ssl.html" target="_blank">dlls additionelles</a>)</p>
<p>Pour les clients ne supportant pas le SSL vous pouvez utiliser un tunnel comme
<a href="http://www.stunnel.org/" target="_blank">stunnel</a>, ci-dessous, un exemple de stunnel.conf ( pour stunnel 4.x):<br>
</p><pre> client = yes
[irc]
accept = 127.0.0.1:6667
connect = irc.myserv.com:6697
</pre>
Si vous vous connectez sur 127.0.0.1 port 6667, votre trafic sera chiffr&eacute; et retourn&eacute; vers irc.myserv.com port 6697 (un port SSL).<p></p>
<p>Il faut aussi que vous ayez des certificats valides quand vous vous connectez aux serveurs et ne pas les accepter aveugl&eacute;ment
(comme dans l'exemple stunnel) sinon vous serez vuln&eacute;rable aux attaques "active sniffing" (ssl redirects).
Ce n'est toutefois pas l'endroit appropri&eacute; pour en parler (renseignez vous sur le SSL, ne nous demandez rien).
[mIRC et xchat vous donne la possibilit&eacute; d'accepter ou non un certificat, ce qui est parfait].</p></div>
<p><font size="+2"><b>3.9 - IPv6</b></font><a name="feature_ipv6"></a></p><div class="desc">
<p>UnrealIRCd supporte l'IPv6, depuis la beta15 cela semble être stable.<br>
Votre OS a besoin d'avoir le support IPv6 et il faut valider le support IPv6 durant le ./Config.<br>
</p><p>Bien que Microsoft ai une implantation exp&eacute;rimentale de l'IPv6 pour w2k/XP, cela n'est pas (encore) support&eacute; par UnrealIRCd.</p></div>
<p><font size="+2"><b>3.10 - Zip links</b></font><a name="feature_ziplinks"></a></p><div class="desc">
<p>Les Zip links peuvent être activ&eacute;s pour les links entre serveurs, il compresse les donn&eacute;es en utilisant zlib.
Il peut sauvegarder entre 60 et 80% de votre bande passante... Donc, cela est tr&egrave;s utilis&eacute; pour les links ayant
des bandes passantes faibles ou les links avec &eacute;norm&eacute;ment d'utilisateurs, cela peut beaucoup aider quand vous
lancez un /connect et que le serveur &agrave; relier contient de nombreux utilisateurs/channels/etc...</p>
<p>Pour compiler avec le support zip links, il faudra r&eacute;pondre Yes lors de la question portant sur le zlib pendant le
./Config et ajouter dans votre link block link::options::zip (des deux côt&eacute;s).</p></div>
<p><font size="+2"><b>3.11 - Support des links avec IP/DNS dynamiques</b></font><a name="feature_dyndns"></a></p><div class="desc">
<p>UnrealIRCd a quelques (nouvelles) sp&eacute;cificit&eacute;s qui aideront les utilisateurs ayant des IP dynamiques et qui utilisent des DNS dynamiques
(comme blah.dyndns.org). Si vous linkez 2 hosts DNS dynamiques, voici ce que vous devrez mettre :
link::options::nodnscache et link::options::nohostcheck.</p></div>
<p><font size="+2"><b>3.12 - Caract&eacute;ristiques Anti-Flood</b></font><a name="feature_antiflood"></a></p><div class="desc">
<p>
<b>Throttling</b><br>
Le Throttling est une m&eacute;thode qui vous permet de d&eacute;terminer le temps minimum pour qu'un client se reconnecte apr&egrave;s une d&eacute;connexion &agrave; votre serveur.
Vous pouvez configurer cela dans votre set::throttle block pour autoriser X connexions toutes les YY secondes depuis la même IP.<br>
<b>Modes des salons</b><br>
Certains modes channels sont tr&egrave;s efficaces contre le flood. En voici quelque uns:<br>
<b>K</b> = /knock interdit, <b>N</b> = changements de pseudo interdits, <b>C</b> = CTCPs interdits, <b>M</b> = seul les utilisateurs enregistr&eacute;s peuvent parler.<br>
Depuis la beta18, il y a un mode channel beaucoup plus avanc&eacute; +f...<br>
<b>Mode salon f</b><br>
A la place d'utiliser des scripts ou des bots pour vous prot&eacute;ger du flood, cela est maintenant possible dans l'ircd.<br>
Un exemple du mode +f est : <i>*** Blah sets mode: +f [10j]:15</i><br>
Cela signigie que 10 joins sont autoris&eacute;s toutes les 15secondes sur le salon, si la limite est atteinte, le salon va mettre automatiquement le mode +i
Les types de flood suivant sont disponibles :<br>
<table border="1" cellpadding="3" cellspacing="1">
<tbody><tr><td>Type:</td><td>Nom:</td><td>Action par d&eacute;faut:</td><td>Autres actions possibles:</td><td>Commentaires</td></tr>
<tr><td>c</td><td>CTCPs</td><td>auto +C</td><td>m, M</td><td>&nbsp;</td></tr>
<tr><td>j</td><td>joins</td><td>auto +i</td><td>R</td><td>&nbsp;</td></tr>
<tr><td>k</td><td>knocks</td><td>auto +K</td><td>&nbsp;</td><td><font size="-1">(uniquement pour les clients locaux)</font></td></tr>
<tr><td>m</td><td>messages/notices</td><td>auto +m</td><td>M</td><td>&nbsp;</td></tr>
<tr><td>n</td><td>nickchanges</td><td>auto +N</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>t</td><td>text</td><td>kick</td><td>b</td><td>par messages/notices utilisateurs comme l'ancien +f. Kick ou ban l'utilisateur.</td></tr>
</tbody></table>
</p><p>&nbsp;
Example:
</p><pre><font color="green">*** ChanOp sets mode: +f [20j,50m,7n]:15</font>
&lt;ChanOp&gt; lalala
<font color="green">*** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined #test
*** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
*** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
*** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test</font>
-- snip XX lines --
<font color="green">*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test</font>
<font color="brown">-server1.test.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), putting +i</font>
<font color="green">*** server1.test.net sets mode: +i</font>
&lt;Evil2&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil12&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil15&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil10&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil8&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
-- snip XX lines --
<font color="brown">-server1.test.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m</font>
<font color="green">*** server1.test.net sets mode: +m</font>
<font color="green">*** Evil1 is now known as Hmmm1</font>
<font color="green">*** Evil2 is now known as Hmmm2</font>
<font color="green">*** Evil3 is now known as Hmmm3</font>
<font color="green">*** Evil4 is now known as Hmmm4</font>
<font color="green">*** Evil5 is now known as Hmmm5</font>
<font color="green">*** Evil6 is now known as Hmmm6</font>
<font color="green">*** Evil7 is now known as Hmmm7</font>
<font color="green">*** Evil8 is now known as Hmmm8</font>
<font color="brown">-server1.test.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N</font>
<font color="green">*** server1.test.net sets mode: +N</font>
</pre>
En fait, cela peut être plus avanc&eacute;/compliqu&eacute;:<br>
A la place de l'action par d&eacute;faut, vous pouvez sp&eacute;cifier d'autres types de flood, par exemple : <i>+f [20j#R,50m#M]:15</i><br>
Cela mettra le salon en +R si la limite de join est atteinte (&gt;20 joins en 15 secondes),
et mettra le salon en +M si la limite de message est atteinte (&gt;50 messages en 15 secondes).<br>
<br>
Il y a &eacute;galement des param&egrave;tres que vous pouvez ajouter pour enlever les modes apr&egrave;s X minutes : <i>+f [20j#R5]:15</i> mettra le salon en +R si la
limite est atteinte et l'enlevera apr&egrave;s 5 minutes.<br>
Un serveur peut avoir un temps par d&eacute;faut pour l'enl&egrave;vement de ces modes (set::modef-default-unsettime) donc si vous &eacute;crivez <i>+f [20j]:15</i>, cel&agrave; pourra être
transform&eacute; en <i>+f [20j#i10]:15</i>, c'est juste par d&eacute;faut, vous pouvez toujours mettre [20j#i2]:15 ou quelque chose dans le genre,
et vous pouvez aussi annuler compl&eacute;tement le retrait automatique en faisant : +f [20j#i0]:15 (un 0 explicite).<br>
<br>
L'ancien mode +f (msgflood par un utilisateur) est aussi toujours disponible via 't', +f 10:6 est maintenant appel&eacute; +f [10t]:6 et
+f *20:10 est maintenant +f [20t#b]:10. Actuellement l'ircd devrait automatiquement convertir l'ancien mode +f vers le nouveau.
Notez qu'il n'y a aucun unsettime disponible pour les bans via 't' ([20t#b30]:15 ne fonctionne pas).<br>
<br>
Le meilleur mode +f d&eacute;pend fortement du salon... combien d'utilisateurs a t'il ? Avez vous un jeu qui fait que les utilisateurs envoient
beaucoup de messages (ex:trivia) ? Est ce un genre de salon principal ou en auto-join? etc...<br>
Il n'y a pas un mode +f parfait pour tous les salon s, mais pour commencer regardez
l'exemple suivant et modifiez le en fonction de vos besoins:<br>
+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15<br>
30 joins toutes les 15 secondes, si la limite est atteinte, le salon met le mode +i pour 10 minutes.<br>
40 messages toutes les 15 secondes, si la limite est atteinte, le salon met le mode +m pour 10 minutes.<br>
7 ctcps toutes les 15 secondes, si la limite est atteinte, le salon met le mode +C pour 15 minutes.<br>
10 changements de pseudo toutes les 15 secondes, si la limite est atteinte, le salon met le mode +N pour 15 minutes.<br>
30 knocks toutes les 15 secondes, si la limite est atteinte, le salon met le mode +K pour 10 minutes.<br>
Si le salon a beaucoup d'utilisateurs (&gt;75 ?) vous devrez augmenter la sensibilit&eacute; du join (par ex: 50) et bien entendu
la limite de messages (par ex: 60 ou 75).<br>
Les temps de retrait des modes est sp&eacute;cialement une question de goût... vous devez
vous en douter... Que faire si aucun op n'est disponible quand un &eacute;v&eacute;nement se produit, voudrais-je
que le salon soit bloqu&eacute; pendant 15 minutes (= pas agr&eacute;able pour les
utilisateurs) ou 5 minutes (= la fautif n'ayant qu'&agrave; attendre 5m et flooder
&agrave; nouveau). Ca d&eacute;pend aussi du type de flood, les utilisateurs sont incapables de rejoindre le salon (+i) ou
parler (+m) est pire que de leur empecher de changer leur pseudo (+N)
ou d'envoyer des ctcps au salon (+C) onc vous devrez &eacute;tablir diff&eacute;rents temps de
retrait des modes.
<p></p></div>
<p><font size="+2"><b>3.13 - Types de ban</b></font><a name="feature_bantypes"></a></p><div class="desc">
<p>
<b>Les types de ban basiques et les cloaked hosts</b><br>
UnrealIRCd supporte les types de ban basiques comme <i>+b nick!user@host</i>.<br>
Mais aussi, si l'host masqu&eacute; de quelqu'un est 'rox-ACB17294.isp.com' et que vous posez un ban *!*@rox-ACB17294.isp.com,
alors si l'utilisateur enl&egrave;ve le mode x (/mode votrepseudo -x) (et son host devient par exemple 'dial-123.isp.com')
alors le ban fonctionnera toujours. Les bans sont toujours v&eacute;rifi&eacute;s pour les hosts r&eacute;els ET les hosts masqu&eacute;s.<br>
Les bans avec des IP sont aussi disponibles (ex: *!*@128.*) et sont aussi toujours v&eacute;rifi&eacute;s.<br>
<br>
Les bans sur les cloaked IPs requi&egrave;rent quelques explications :<br>
Si l'IP d'un utilisateur est 1.2.3.4 son cloaked host pourrait être 341C6CEC.8FC6128B.303AEBC6.IP.<br>
Si vous bannissez *!*@341C6CEC.8FC6128B.303AEBC6.IP vous bannirez donc aussi *!*@1.2.3.4 (ce qui semble &eacute;vident...)<br>
Si vous bannissez *!*@*.8FC6128B.303AEBC6.IP vous bannissez *!*@1.2.3.*<br>
Si vous bannissez *!*@*.303AEBC6.IP vous bannissez *!*@1.2.*<br>
Cela devrait vous aider &agrave; savoir comment un ban doit être &eacute;tabli le moment venu.<br>
<br>
<b>Types de ban &eacute;tendus</b><br>
Les bans &eacute;tendus ressemble &agrave; ~[!]&lt;type&gt;:&lt;stuff&gt;. Actuellement, les types suivant sont disponibles:<br>
<table border="1">
<tbody><tr><td>type:</td><td>nom:</td><td>explication:</td></tr>
<tr><td>~q</td><td>quiet</td><td>Les personnes conformes &agrave; ces bans peuvent rejoindre les salons mais ne peuvent pas parler,
si ils n'ont pas au moins comme flag +v. <i>Ex: ~q:*!*@blah.blah.com</i></td></tr>
<tr><td>~n</td><td>nickchange</td><td>Les personnes conformes &agrave; ces bans ne peuvent pas changer de pseudo,
si ils n'ont pas au moins comme flag +v. <i>Ex: ~n:*!*@*.aol.com</i></td></tr>
<tr><td>~c</td><td>channel</td><td>Si l'utilisateur est sur ce salon, il ou elle ne pourra pas rejoindre le salon.
<i>Ex: ~c:#lamers</i></td></tr>
<tr><td>~r</td><td>realname</td><td>Si le nom r&eacute;el d'un utilisateur est conforme alors il ne pourra pas rejoindre le salon.<br>
<i>Ex: ~r:*Stupid_bot_script*</i><br>
NOTE: un underscore ('_') correspond aussi bien &agrave; un espace (' ') qu'&agrave; un underscore ('_'), donc ce ban correspondra &agrave;
'Stupid bot script v1.4'.</td></tr>
</tbody></table>
Ces types de bans sont aussi support&eacute;s dans la liste d'exception (+e) d'un salon.<br>
Certains modules peuvent ajouter d'autres types de ban &eacute;tendus.<br>
</p></div>
<p><font size="+2"><b>3.14 - Spamfilter</b></font><a name="feature_spamfilter"></a></p><div class="desc">
<p>Le Spamfilter est un nouveau syst&egrave;me de lutte contre le spam, la publicit&eacute;, les worms et plein d'autres choses.
Il fonctionne un peu comme que le syst&egrave;me de badwords mais il a de nombreux avantages.</p>
<p>Les Spamfilters sont ajout&eacute;s grâce &agrave; la commande /spamfilter qui utilise la syntaxe suivante:<br>
<b>/spamfilter [add|del|remove|+|-] [type] [action] [tkltime] [reason] [regex]</b><br>
<table border="0">
<tbody><tr valign="top"><td><b>[type]</b></td><td> Sp&eacute;cifie le type de la cible:<br>
<table>
<tbody><tr><td><b>Char:</b></td><td><b>Config item:</b></td><td><b>Description:</b></td></tr>
<tr><td>c</td><td>channel</td><td>Channel message</td></tr>
<tr><td>p</td><td>private</td><td>Message priv&eacute;(d'utilisateur &agrave; utilisateur)</td></tr>
<tr><td>n</td><td>private-notice</td><td>Private notice</td></tr>
<tr><td>N</td><td>channel-notice</td><td>Channel notice</td></tr>
<tr><td>P</td><td>part</td><td>Part reason</td></tr>
<tr><td>q</td><td>quit</td><td>Quit reason</td></tr>
<tr><td>d</td><td>dcc</td><td>DCC filename</td></tr>
<tr><td>a</td><td>away</td><td>Away message</td></tr>
<tr><td>u</td><td>user</td><td>Ban utilisateur, serra compar&eacute; &agrave; nick!user@host:realname</td></tr>
</tbody></table>
Vous pouvez sp&eacute;cifier plusieurs cibles, comme : cpNn</td></tr>
<tr valign="top"><td><b>[action]</b></td><td> specifie l'action devant être prise (seule 1 action peut être specifi&eacute;e)<br>
<table>
<tbody><tr><td>kill</td><td>kill l'utilisateur</td></tr>
<tr><td>tempshun</td><td>shun le session courante de l'utilisateur (si il se reconnecte le shun n'est valable)</td></tr>
<tr><td>shun</td><td>met un shun sur l'host</td></tr>
<tr><td>kline</td><td>met une kline sur l'host</td></tr>
<tr><td>gline</td><td>met une gline sur l'host</td></tr>
<tr><td>zline</td><td>met une zline sur l'host</td></tr>
<tr><td>gzline</td><td>met sur une gzline ( zline globale ) sur l'host</td></tr>
<tr><td>block</td><td>bloque seulement le message</td></tr>
<tr><td>dccblock</td><td>marque l'utilisateur et l'empêche donc d'envoyer d'autres DCCs</td></tr>
<tr valign="top"><td>viruschan</td><td>part tous les salons, rejoint le set::spamfilter::virus-help-channel, d&eacute;sactive toutes les commandes
except&eacute; PONG, ADMIN, et msg/notices vers le set::spamfilter::virus-help-channel</td></tr>
</tbody></table></td></tr>
<tr valign="top"><td><b>[tkltime]</b></td><td> Dur&eacute;e de la *line ajout&eacute;e par le filre, utilisez '-' pour mettre la valeur par d&eacute;faut ou pour passer outre
(ex: si action = 'block')</td></tr>
<tr valign="top"><td><b>[reason]</b></td><td> Raison du Block ou de la *line... Vous NE POUVEZ PAS, mais des underscores ('_') seront traduits
par des espaces lors de l'utilisation. Et un double underscore ('__') donne un underscore ('_'). Encore une fois, utilisez '-' pour utiliser la valeur par d&eacute;faut.</td></tr>
<tr valign="top"><td><b>[regex]</b></td><td> Ceci est le vrai regex ou "bad word" correspondant au terme qui doit bloquer le message et lancer l'action.</td></tr>
</tbody></table>
<br>
Voici un exemple: <i>/spamfilter add pc gline - - Come watch me on my webcam</i><br>
Si le texte <i>come watch me on my webcam</i> est trouv&eacute; dans un message priv&eacute; ou sur un salon
alors le message sera bloqu&eacute; et une gline sera imm&eacute;diatement ajout&eacute;e.<br>
Un autre exemple: <i>/spamfilter add pc block - - come to irc\..+\..+</i><br>
Ceci est un regex qui sera valid&eacute; sur <i>Hi, come to irc.blah.net</i> etc....<br>
Et un dernier exemple avec un temps/raison :<br>
<i>/spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam</i><br>
Si <i>come watch me on my webcam</i> est trouv&eacute; dans un message priv&eacute; alors l'utilisateur est gline pour 3 heures
avec comme raison : <i>Please go to www.viruscan.xx/nicepage/virus=blah</i>.<br>
<br>
Les Spamfilters ajout&eacute;s avec /spamfilter sont globaux. Ils fonctionnent que l'utilisateur/salon
ait le mode +G d&eacute;fini ou pas, seuls les op&eacute;rateurs et les ulines (services) sont exempt&eacute;s de filtrage.
</p>
<p>Vous pouvez aussi ajouter des spamfilters dans le fichier de configuration mais ceux ci seront des
spamfilters locaux (non globaux, mais vous pouvez utiliser d'autres "includes" pour cela).
La syntaxe de ces spamfilters { } block sont expliqu&eacute;s <a href="#spamfilter">ici</a><br>
Exemple:<br>
</p><pre>spamfilter {
regex "//write \$decode\(.+\|.+load -rs";
target { private; channel; };
reason "Generic $decode exploit";
action block;
};</pre><p></p>
<p><b>set::spamfilter::ban-time</b> vous autorise &agrave; modifier le ban time par d&eacute;faut pour les *lines ajout&eacute;es par le spamfilter (d&eacute;faut: 1 jour)<br>
<b>set::spamfilter::ban-reason</b> vous autorise &agrave; sp&eacute;cifier une raison par d&eacute;faut pour les *lines (d&eacute;faut: 'Spam/advertising')<br>
<b>set::spamfilter::virus-help-channel</b> vous autorise &agrave; sp&eacute;cifier le salon &agrave; joindre pour l'action 'viruschan' (d&eacute;faut: #help)<br>
<b>set::spamfilter::virus-help-channel-deny</b> vous autorise &agrave; bloquer tout join normal au virus-help-channel (d&eacute;faut: no)<br>
</p></div>
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
<p>UnrealIRCd a maintenant un support pour le CIDR (Classless Interdomain Routing). CIDR vous
permet de bannir des ranges d'IP. Des Ips sont allou&eacute;es aux FAI en utilisant CIDR, cela vous
permet en pla&ccedil;ant un ban bas&eacute; sur le CIDR de bannir facilement un FAI. Unreal supporte le CIDR
pour l'IPv4 et l'IPv6. Les masques CIDR peuvent être utilis&eacute;s dans l'allow::ip, ban user::mask,
ban ip::mask, except ban::mask, except throttle::mask, et except tkl::mask (pour gzline, gline, et shun).
De plus, le CIDR peut être utilis&eacute; dans les /kline, /gline, /zline, /gzline, et /shun. Unreal
utilise la syntaxe standard d'IP/bits, 127.0.0.0/8 (correspond &agrave; 127.0.0.0 - 127.255.255.255),
et fe80:0:0:123::/64 (correspond &agrave; fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
<p><font size="+2"><b>3.16 - Autres particularit&eacute;s</b></font><a name="feature_other"></a></p><div class="desc">
<p>UnrealIRCd a &eacute;norm&eacute;ment de particularit&eacute;s donc tout n'est pas expos&eacute; ici... Vous d&eacute;couvrirez tout cela par vous même.</p></div>
<p> </p>
<p><font size="+2"><b>4.0 - Configurer votre unrealircd.conf</b></font>
<a name="configuringyourunrealircdconf"></a></p><div class="desc">
<p>Tout d'abord, cr&eacute;er un bon unrealircd.conf vous prendra un peu de temps, certainement quelquechose
comme 10 - 60 min. Vous pouvez essayer de le lancer le plus tôt que vous pouvez et le modifier plus tard,
ou alors vous pouvez &eacute;tudier les sections principales directement pas-&agrave;-pas ce qui est la m&eacute;thode recommand&eacute;e :p.
Si vous avez un probl&egrave;me, v&eacute;rifiez votre syntaxe, regardez dans le manuel et la FAQ avant de demander
de l'aide ou de rapporter un bug.</p></div>
<p><b><font size="+2">4.1 Explication du fichier de configuration</font></b><a name="configurationfileexplained"></a><br></p><div class="desc">
<p></p>
<p>Le nouveau syst&egrave;me utilise un syst&egrave;me bas&eacute; sur des blocs. Chaque entr&eacute;e, ou bloc, dans le nouveau format a un format sp&eacute;cifique.
Le format est du type :</p>
<pre>&lt;nom du bloc&gt; &lt;valeur du bloc&gt; {
&lt;directive du bloc&gt; &lt;valeur du bloc&gt;;
};
</pre><p></p>
<p>&lt;nom du bloc&gt; est le type du bloc, tel que me, ou admin. &lt;valeur du bloc&gt;
parfois sp&eacute;cifie une valeur, telle que /oper login, mais d'autres fois ce sera des
sous-types tel que dans un ban utilisateur.</p>
<p>&lt;directive du bloc&gt; est une variable individuelle sp&eacute;cifique au bloc, et
&lt;valeur de la directive&gt; contient des espaces, ou des caract&egrave;res repr&eacute;sentant
un commentaire qui doit être contenu entre des guillemets. Si vous voulez utiliser un
guillemet &agrave; l'int&eacute;rieur &agrave; l'int&eacute;rieur d'un commentaire (texte entre guillemets)
utilisez \" et il sera interpr&eacute;t&eacute; comme un caract&egrave;re simple.</p>
<p> Une &lt;directive du bloc&gt; peut contenir des directives, si c'est le cas elle aura
elle aura son propre jeu d'accolades l'entourant. Certains blocs n'ont pas de directives
et sont juste sp&eacute;cifi&eacute;s par &lt;valeur du bloc&gt;, tel que include.
Notez aussi qu'il n'y a pas de format d&eacute;fini, cela veut dire qu'un bloc peut tenir sur une
seule ligne comme sur plusieurs lignes. Le format ci-dessus est ce qui est normalement utilis&eacute;
(et qui sera utilis&eacute; dans ce fichier) parce qu'il est facile &agrave; lire. </p>
<p>Note : le fichier de configuration est sensible aux majuscules / minuscules (case sensitive)
donc NOM-DU-BLOC n'est pas la même chose que nom-du-bloc. Il y a une notation sp&eacute;ciale utilis&eacute;e
pour parler d'entr&eacute;es dans le fichier de configuration. Par exemple pour parler du &lt;nom de la directive&gt;
dans l'exemple ci-dessus, vous devrez dire &lt;nom du bloc&gt;::&lt;directive du bloc&gt;, et si
la directive a un sous bloc que vous voulez r&eacute;f&eacute;rencer, vous ajouterez un autre :: et le nom
de la sous directive. </p>
<p>Pour parler d'une directive non nomm&eacute;e vous devrez mettre &lt;nom du bloc&gt;:: qui voudra
dans ce cas dire &lt;valeur du bloc&gt;, ou cela pourra être une entr&eacute;e dans un sous bloc
qui n'a pas de nom.</p>
<p>Trois types de commentaires sont support&eacute;s :</p>
<p> # commentaire d'une seule ligne<br>
// Ocommentaire d'une seule ligne<br>
/* Commentaire<br>
&nbsp;&nbsp;&nbsp;&nbsp;multi-ligne */<br>
</p>
<p>Maintenant que vous savez comment &ccedil;a fonctionne, cr&eacute;ez votre unrealircd.conf ou copiez doc/example.conf
et commencez &agrave; l'&eacute;diter. Il est recommand&eacute; d'y aller pas &agrave; pas avec les diff&eacute;rents blocs et de suivre ce
manuel de r&eacute;f&eacute;rence.</p>
<p></p></div>
<p><font class="block_section">4.2 - </font><font class="block_name">Me Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(Connu pr&eacute;c&eacute;demment comme M:Line)</font><a name="meblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>me {
name &lt;nom du serveur&gt;;
info &lt;description du server&gt;;
numeric &lt;numeric du serveur&gt;;
};
</pre><p></p>
<p>Ces valeurs sont plutôt claires. Le <b>nom</b> d&eacute;fini le nom du serveur,
<b>info</b> d&eacute;fini les ligne d'information sur le serveur, <b>numeric</b> d&eacute;fini
un num&eacute;rique pour identifier le serveur. Ce dernier doit avoir une valeur comprise
entre 1 et 255 qui est SPÉCIFIQUE au serveur ce qui signifie qu'aucun autre serveur
du r&eacute;seau ne doit avoir le même num&eacute;rique.</p>
<p>Exemple:<br>
</p><pre>me {
name "irc.foonet.com";
info "FooNet Server";
numeric 1;
};
</pre><p></p></div>
<p></p>
<p><font class="block_section">4.3 - </font><font class="block_name">Admin Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(Connu pr&eacute;c&eacute;demment comme A:Line)</font><a name="adminblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>admin {
&lt;text-line&gt;;
&lt;text-line&gt;;
};
</pre><p></p>
<p> </p>
<p>Ce bloc d&eacute;fini le texte qui sera affich&eacute; lors d'une requête /admin. Vous pouvez
sp&eacute;cifier autant de lignes que vous le souhaitez et elles peuvent contenir toutes
les informations que vous voulez, mais il est standard d'indiquer les pseudos et email
des admins au minimum. Vous pouvez &eacute;galement inclure d'autres informations sur les
contacts que vous d&eacute;sirez donner.</p>
<p>Exemple:<br>
</p><pre>admin {
"Bob Smith";
"bob";
"widely@used.name";
};
</pre><p></p></div>
<p></p>
<p><font class="block_section">4.4 - </font><font class="block_name">Class Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(Connu pr&eacute;c&eacute;dement comme Y:Line)</font><a name="classblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>class &lt;name&gt; {
pingfreq &lt;ping-frequency&gt;;
connfreq &lt;connect-frequency&gt;;
maxclients &lt;maximum-clients&gt;;
sendq &lt;send-queue&gt;;
recvq &lt;recv-queue&gt;;
};
</pre><p></p>
<p> </p>
<p>Les Class blocks sont les classes dans lequels les connections seront plac&eacute;es (par exemple pour les
allow blocks ou les serveurs des link blocks), vous avez g&eacute;n&eacute;ralement plusieurs class blocks (exemple : pour les serveurs, clients, opers).</p>
<p><b>name</b> est la description, comme "clients" ou "serveurs", ce nom est utilis&eacute; comme
r&eacute;f&eacute;rence pour les classes dans allow/link/oper/etc blocks.</p>
<p><b>pingfreq</b> est le nombre de secondes entres les PINGs depuis le server (quelquechose entre 90 et 180 secondes est recommand&eacute;).</p>
<p><b>connfreq</b> est utilis&eacute; uniquement pour les serveurs et repr&eacute;sente le nombre de secondes entre 2 tentatives de connections si l'autoconnection est activ&eacute;e.</p>
<p><b>maxclients</b> sp&eacute;cifie le nombre maximum (total) de clients / serveurs pouvant faire partie de cette classe.</p>
<p><b>sendq</b> sp&eacute;cifie la quantit&eacute; d'informations pouvant être dans la file d'envoi (send queue) (tr&egrave;s grand pour les serveurs avec une faible bande passante, moyen pour les clients).</p>
<p><b>recvq</b> sp&eacute;cifie la quantit&eacute; d'informations pouvant être dans la file de reception (receive queue) et est utilis&eacute; pour contrôler le flood (cela s'applique uniquement aux
utilisateurs normaux, essayez avec des valeurs 3000-8000, 8000 est la valeur par d&eacute;faut).</p>
<p>Exemples:<br>
</p><pre>class clients {
pingfreq 90;
maxclients 500;
sendq 100000;
recvq 8000;
};
class servers{
pingfreq 90;
maxclients 10; /* Nombre maximal de serveur pouvant être link&eacute; au même moment */
sendq 1000000;
connfreq 100; /* Combien de secondes entre 2 tentatives de connexions */
};
</pre><p></p>
<p> </p></div>
<p><font class="block_section">4.5 - </font><font class="block_name">Allow Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme I:Line)</font><a name="allowblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>allow {
ip &lt;user@ip-connection-mask&gt;;
hostname &lt;user@host-connection-mask&gt;;
class &lt;connection-class&gt;;
password &lt;connection-password&gt; { &lt;auth-type&gt;; };
maxperip &lt;max-connections-per-ip&gt;;
redirect-server &lt;server-to-forward-to&gt;;
redirect-port &lt;port-to-forward-to&gt;;
options {
&lt;option&gt;;
&lt;option&gt;;
...
};
};
</pre><p></p>
<p>C'est ici que vous sp&eacute;cifiez qui peut se connecter &agrave; ce serveur, vous pouvez avoir plusieurs allow blocks.</p>
<p><b>A propos des correspondances</b><br>
Le contrôle des acc&egrave;s fonctionne comme ceci : concordances des ip ou des host, donc "hostname *@*"; et "ip *@1.2.3.4"
signifiera que &ccedil;a concordera toujours. Les allow blocks sont lus de haut en bas, donc vous devez sp&eacute;cifier les host/ip
particuliers APRÈS votre allow block g&eacute;n&eacute;ral *@*. De plus, si vous voulez sp&eacute;cifier un bloc bas&eacute; uniquement sur la
correspondance &agrave; un ip, alors mettez pour l'hostname quelque chose d'invalide, tel que "hostname PERSONNE;",
cela permettra au bloc de ne v&eacute;rifier que la correspondance de l'ip.</p>
<p><b>ip</b><br>
L'ip mask est de la forme user@ip, user est l'ident et souvent est d&eacute;fini par *, ip est l'ipmask. Quelques exemples : *@*
(depuis n'importe où), *@192.168. * (seulement depuis les adresses commen&ccedil;ant par 192.168), etc.</p>
<p><b>host</b><br>
Également un user@host hostmask, encore une fois... user est souvent d&eacute;fini par *. Quelques exemples : *@* (n'importe où),
*@*.wanadoo.fr (seulement depuis wanadoo.fr).</p>
<p><b>password</b> (optionnel)<br>
Requiert un mot de passe &agrave; la connexion. Vous devez &eacute;galement sp&eacute;cifier une m&eacute;thode d'encryption des mot de passe ici.
</p>
<p><b>class</b><br>
Sp&eacute;cifie le nom de la classe dans lequel les connections relevant de cet allow block sont plac&eacute;es.
</p>
<p><b>maxperip</b> (optionnel, mais recommend&eacute;)<br>
Vous permet de sp&eacute;cifier combien de connections &agrave; ce serveur sont autoris&eacute;es par ip (exemple : maxperip 4;).
</p>
<p><b>redirect-server</b> (optionnel)<br>
Si la classe est pleine, les utilisateurs seront redirig&eacute;s vers ce serveur (si les clients le supporte [mIRC 6 le fait]).</p>
<p><b>redirect-port</b> (optionnel)<br>
Si un serveur de redirection est sp&eacute;cifi&eacute; vous pouvez d&eacute;finir le port ici, sinon ce sera le 6667.</p>
<p><b>options block</b> (optionnel)<br>
Les options valides sont :<br>
&nbsp;&nbsp;&nbsp;<b>useip</b> toujours afficher l'ip &agrave; la place de l'hostname<br>
&nbsp;&nbsp;&nbsp;<b>noident</b> n'utilise pas d'ident mais l'username sp&eacute;cifi&eacute; par le client<br>
&nbsp;&nbsp;&nbsp;<b>ssl</b> ne fonctionne que si le client est connect&eacute; via ssl<br>
&nbsp;&nbsp;&nbsp;<b>nopasscont</b> concordance continue si aucun mot de passe n'est donn&eacute;e (ainsi vous pourrez mettre des clients dans des
classes sp&eacute;ciales si ils fournissent un mot de passe).
</p><p>Exemples:<br>
</p><pre>allow {
ip *;
hostname *;
class clients;
maxperip 5;
};
allow {
ip *@*;
hostname *@*.passworded.ugly.people;
class clients;
password "f00Ness";
maxperip 1;
};
</pre><p></p></div>
<p>&nbsp;</p>
<p><font class="block_section">4.6 - </font><font class="block_name">Listen Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(Connu pr&eacute;c&eacute;demment comme P:Line)</font><a name="listenblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>listen &lt;ip:port&gt; {
options {
&lt;option&gt;;
&lt;option&gt;;
...
};
};
</pre><p></p>
<p> </p>
<p>Ce bloc vous permet de sp&eacute;cifier les ports d'&eacute;coute de votre IRCd.
Si aucune option n'est requise, vous devez le sp&eacute;cifier sans aucune directive
sous la forme listen &lt;ip:port&gt;;.</p>
<p><b>ip et port</b><br>
Vous pouvez mettre * comme valeur pour ip pour toutes les accepter, ou en sp&eacute;cifier une pour accepter
uniquement les connexions sur cette ip (habituellement requis chez des loueurs de shell). Le port est
le port que vous voulez &eacute;couter. Vous pouvez &eacute;galement sp&eacute;cifier un intervalle de ports &agrave; la place d'une
valeur unique. Par exemple, 6660-6669 &eacute;coutera du port 6660 au port 6669 (inclus). Pour les utilisateur
d'IPv6, voir ci-dessous.</p>
<p><b>Info pour les utilisateurs de l'IPv6</b><br>
Si vous avez un serveur Ipv6 vous devrez inclure les ip entre crochets. Comme [::1]:6667 (&eacute;couter en localhost
sur le port 6667). Si vous utilisez l'IPv6 et que vous voulez &eacute;couter une adresse Ipv4 sp&eacute;cifique vous devrez
utiliser ::ffff:ipv4ip. Par exemple : [::ffff:203.123.67.1]:6667 qui &eacute;coutera &agrave; 203.123.67.1 sur le port 6667.
Évidemment, vous pouvez aussi juste utiliser *.</p>
<p><b>options block</b> (optionnel)<br>
Vous pouvez sp&eacute;cifier des options sp&eacute;ciales pour ce port si vous le souhaitez, les options possibles sont :<br>
<table border="0">
<tbody><tr><td><center><b>clientsonly</b></center></td><td> port r&eacute;serv&eacute; aux clients</td></tr>
<tr><td><center><b>serversonly</b></center></td><td> port r&eacute;serv&eacute; aux serveurs</td></tr>
<tr><td><center><b>java</b></center></td><td> support CR java</td></tr>
<tr><td><center><b>ssl</b></center></td><td> port encrypt&eacute; SSL</td></tr>
</tbody></table>
</p>
<p>Exemples:</p>
<pre>listen *:6601 {
options {
ssl;
clientsonly;
};
};
</pre><p></p>
<p>Si il n'y a pas d'options :</p>
<p>listen *:8067;<br>
listen 213.12.31.126:6667;<br>
listen *:6660-6669;</p></div>
<p><font class="block_section">4.7 - </font><font class="block_name">Oper Block</font>
<font class="block_recommended">RECOMMENDE</font> <font class="block_old">(Connu pr&eacute;c&eacute;demment comme O:Line)</font><a name="operblock"></a></p><div class="desc">
<p></p>
<p>
</p><pre>oper &lt;name&gt; {
from {
userhost &lt;hostmask&gt;;
userhost &lt;hostmask&gt;;
};
password &lt;password&gt; { &lt;auth-type&gt;; };
class &lt;class-name&gt;;
flags &lt;flags&gt;;
flags {
&lt;flag&gt;;
&lt;flag&gt;;
...
};
swhois &lt;whois info&gt;;
snomask &lt;snomask&gt;;
modes &lt;modes&gt;;
maxlogins &lt;num&gt;;
};
</pre><p></p>
<p>L'oper block vous permet d'assigner des IRC Op&eacute;rateurs pour votre serveur. Le <b>oper::</b>
sp&eacute;cifie le login pour la commande /oper. Le <b>oper::from::userhost</b> est le masque user@host
auquel l'utilisateur doit correspondre, vous pouvez sp&eacute;cifier plus qu'un seul hostmask en
cr&eacute;ant plusieurs oper::from::userhost. Le <b>oper::password</b> est le mot de passe que l'utilisateur
doit sp&eacute;cifier, oper::password:: vous permet de sp&eacute;cifier une m&eacute;thode d'authentification pour ce mot de passe,
les types d'authentifications valides sont crypt, md5 et sha1, ripemd-160. Si vous voulez laisser
un mot de passe non crypt&eacute; ne mettez pas ce sous-bloc.</p>
<p>Notez s'il vous plait que le login et le mot de passe sont tous deux case sensitive autrement dit les majuscules
et les minuscules ont leurs importance.</p>
<p>La directive <b>oper::class</b> sp&eacute;cifie le nom d'une classe pr&eacute;existante (apparaît avant dans le fichier
de configuration) que le oper block utilisera.</p>
<p>La directive <b>oper::flags</b> a deux formats. Si vous voulez utiliser l'ancien style d'oper flags,
OAa, vous utilisez la m&eacute;thode flags &lt;flags&gt; method, si vous voulez utiliser la nouvelle m&eacute;thode,
alors vous utiliserez la m&eacute;thode flags { &lt;flag&gt;; } Ci-dessous ce trouve la liste des flags
(dans les deux formats) et leurs correspondances.</p>
<table border="1" width="75%">
<tbody><tr>
<td width="10%"><div align="center"><b>Ancien Flag</b></div></td>
<td width="16%"><div align="center"><b>Nouveau Flag</b></div></td>
<td width="74%"><b>Description</b></td>
</tr>
<tr>
<td height="24"><div align="center">o</div></td>
<td><div align="center">local</div></td>
<td>Fait de vous un local operator</td>
</tr>
<tr>
<td><div align="center">O</div></td>
<td><div align="center">global</div></td>
<td>Fait de vous un global operator</td>
</tr>
<tr>
<td><div align="center">C</div></td>
<td><div align="center">coadmin</div></td>
<td>Fait de vous un coadmin</td>
</tr>
<tr>
<td><div align="center">A</div></td>
<td><div align="center">admin</div></td>
<td>Fait de vous un admin</td>
</tr>
<tr>
<td><div align="center">a</div></td>
<td><div align="center">services-admin</div></td>
<td>Fait de vous un services admin</td>
</tr>
<tr>
<td><div align="center">N</div></td>
<td><div align="center">netadmin</div></td>
<td>Fait de vous un Network Admin</td>
</tr>
<tr>
<td><div align="center">r</div></td>
<td><div align="center">can_rehash</div></td>
<td>Oper pouvant utiliser /rehash</td>
</tr>
<tr>
<td><div align="center">D</div></td>
<td><div align="center">can_die</div></td>
<td>Oper pouvant utiliser /die</td>
</tr>
<tr>
<td><div align="center">R</div></td>
<td><div align="center">can_restart</div></td>
<td>Oper pouvant utiliser /restart</td>
</tr>
<tr>
<td><div align="center">h</div></td>
<td><div align="center">helpop</div></td>
<td>Oper re&ccedil;oit umode +h (helpop)</td>
</tr>
<tr>
<td><div align="center">w</div></td>
<td><div align="center">can_wallops</div></td>
<td>Oper pouvant envoyer des /wallops</td>
</tr>
<tr>
<td><div align="center">g</div></td>
<td><div align="center">can_globops</div></td>
<td>Oper pouvant envoyer des /globops</td>
</tr>
<tr>
<td><div align="center">c</div></td>
<td><div align="center">can_localroute</div></td>
<td>Peut se connecter aux serveurs localement</td>
</tr>
<tr>
<td><div align="center">L</div></td>
<td><div align="center">can_globalroute</div></td>
<td>Peut se connecter aux serveurs globalement</td>
</tr>
<tr>
<td><div align="center">k</div></td>
<td><div align="center">can_localkill</div></td>
<td>Peut /kill les utilisateurs locaux</td>
</tr>
<tr>
<td><div align="center">K</div></td>
<td><div align="center">can_globalkill</div></td>
<td>Peut /kill les utilisateurs globaux</td>
</tr>
<tr>
<td><div align="center">b</div></td>
<td><div align="center">can_kline</div></td>
<td>Peut utiliser /kline</td>
</tr>
<tr>
<td><div align="center">B</div></td>
<td><div align="center">can_unkline</div></td>
<td>Peut utiliser /kline -u@h</td>
</tr>
<tr>
<td><div align="center">n</div></td>
<td><div align="center">can_localnotice</div></td>
<td>Peut envoyer des notices sur le serveur local</td>
</tr>
<tr>
<td><div align="center">G</div></td>
<td><div align="center">can_globalnotice</div></td>
<td>Peut envoyer des notices globales</td>
</tr>
<tr>
<td><div align="center">z</div></td>
<td><div align="center">can_zline</div></td>
<td>Peut utiliser /zline</td>
</tr>
<tr>
<td><div align="center">t</div></td>
<td><div align="center">can_gkline</div></td>
<td>Peut utiliser /gline, /shun et /spamfilter</td>
</tr>
<tr>
<td><div align="center">Z</div></td>
<td><div align="center">can_gzline</div></td>
<td>Peut utiliser /gzline</td>
</tr>
<tr>
<td><div align="center">W</div></td>
<td><div align="center">get_umodew</div></td>
<td>Mets umode +W lorsque vous vous oper</td>
</tr>
<tr>
<td><div align="center">H</div></td>
<td><div align="center">get_host</div></td>
<td>Vous applique un oper host</td>
</tr>
<tr>
<td><div align="center">v</div></td>
<td><div align="center">can_override</div></td>
<td>Peut utiliser <a href="#operoverride">OperOverride</a></td>
</tr>
<tr>
<td><div align="center">q</div></td>
<td><div align="center">can_setq</div></td>
<td>Peut utiliser l'usermode +q</td>
</tr>
<tr>
<td><div align="center">X</div></td>
<td><div align="center">can_addline</div></td>
<td>Peut utiliser /addline</td>
</tr>
<tr>
<td><div align="center">d</div></td>
<td><div align="center">can_dccdeny</div></td>
<td>Peut utiliser /dccdeny et /undccdeny</td>
</tr>
</tbody></table>
<p>Certains flags vous en donnent d'autres par défaut:</p>
<table border="1" width="59%">
<tbody><tr>
<td width="19%"><b>local</b></td>
<td width="17%"><b>global</b></td>
<td width="19%"><b>admin/coadmin</b></td>
<td width="22%"><b>services-admin</b></td>
<td width="23%"><b>netadmin</b></td>
</tr>
<tr>
<td>can_rehash</td>
<td>can_rehash</td>
<td>can_rehash</td>
<td>can_rehash</td>
<td>can_rehash</td>
</tr>
<tr>
<td>helpop</td>
<td>helpop</td>
<td>helpop</td>
<td>helpop</td>
<td>helpop</td>
</tr>
<tr>
<td>can_globops</td>
<td>can_globops</td>
<td>can_globops</td>
<td>can_globops</td>
<td>can_globops</td>
</tr>
<tr>
<td>can_wallops</td>
<td>can_wallops</td>
<td>can_wallops</td>
<td>can_wallops</td>
<td>can_wallops</td>
</tr>
<tr>
<td>can_localroute</td>
<td>can_localroute</td>
<td>can_localroute</td>
<td>can_localroute</td>
<td>can_localroute</td>
</tr>
<tr>
<td>can_localkill</td>
<td>can_localkill</td>
<td>can_localkill</td>
<td>can_localkill</td>
<td>can_localkill</td>
</tr>
<tr>
<td>can_kline</td>
<td>can_kline</td>
<td>can_kline</td>
<td>can_kline</td>
<td>can_kline</td>
</tr>
<tr>
<td>can_unkline</td>
<td>can_unkline</td>
<td>can_unkline</td>
<td>can_unkline</td>
<td>can_unkline</td>
</tr>
<tr>
<td>can_localnotice</td>
<td>can_localnotice</td>
<td>can_localnotice</td>
<td>can_localnotice</td>
<td>can_localnotice</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>can_globalroute</td>
<td>can_globalroute</td>
<td>can_globalroute</td>
<td>can_globalroute</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>can_globalkill</td>
<td>can_globalkill</td>
<td>can_globalkill</td>
<td>can_globalkill</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>can_globalnotice</td>
<td>can_globalnotice</td>
<td>can_globalnotice</td>
<td>can_globalnotice</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>global</td>
<td>global</td>
<td>global</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>can_dccdeny</td>
<td>can_dccdeny</td>
<td>can_dccdeny</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>can_setq</td>
<td>can_setq</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>admin</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>services-admin</td>
</tr>
</tbody></table>
<p>La directive <b>oper::swhois</b> vous permet d'ajouter une ligne suppl&eacute;mentaire dans le
whois d'un oper. <font color="blue">[optionnel]</font></p>
<p>La directive <b>oper::snomask</b> vous permet d'obtenir automatiquement les snomaks que vous
souhaitez lors d'un /oper. Pour avoir la liste des SNOMASKs possibles reportez vous &agrave; la
<a href="#feature_snomasks">Section 3.3</a> <font color="blue">[optionnel]</font></p>
<p>La directive <b>oper::modes</b> vous permet de pr&eacute;d&eacute;finir un mode oper lors de l'identification.
<font color="blue">[optionnel]</font></p>
<p>La directive <b>oper::maxlogins</b> vous permet de restreindre le nombre de login oper concurrent
pour un host, par exemple si vous d&eacute;finissez 1 alors, une seule personne pourra se oper &agrave; partir
d'un bloc &agrave; n'importe quel moment.
<font color="blue">[optionnel]</font></p>
<p>Exemple:<br>
</p><pre>oper bobsmith {
class clients;
from {
userhost bob@smithco.com;
userhost boblaptop@somedialupisp.com;
};
password "f00";
flags {
netadmin;
can_gkline;
can_gzline;
can_zline;
can_restart;
can_die;
global;
};
swhois "Example of a whois mask";
snomask frebWqFv;
};
</pre><p></p>
<a name="operoverride"><b>Quelques petites informations &agrave; propos d' OperOverride :</b><br>
Les OperOverride sont des choses comme : joindre un salon +ikl et passer outre les bans
(vous devez d'abord vous inviter), vous oper sur le salon, etc.<br>
L'operflag can_override a &eacute;t&eacute; ajout&eacute; de mani&egrave;re &agrave; stopper les abus d'opers. Aucun oper n'est
capable d'override par d&eacute;faut, vous devez explicitement leur donner le flag can_override.
</a><p><a name="operoverride"> </a></p></div>
<p><a name="operoverride"><font class="block_section">4.8 - </font><font class="block_name">DRpass Block</font>
<font class="block_recommended">RECOMMENDE</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme X:Line)</font></a><a name="drpassblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>drpass {
restart &lt;restart-password&gt; { &lt;auth-type&gt;; };
die &lt;die-password&gt; { &lt;auth-type&gt;; };
};</pre><p></p>
<p>Ce bloc d&eacute;fini les mots de passe /restart et /die avec respectivement drpass::restart
et drpass::die. Les drpass::restart:: et drpass::die:: vous permettent de sp&eacute;cifier le
type d'authentification qu'ils utilisent. Les types d'authentification actuellement
support&eacute;s sont crypt&eacute;, md5 et sha1, ripemd-160.</p>
<p>Exemple:</p>
<pre>drpass {
restart "I-love-to-restart";
die "die-you-stupid";
};
</pre><p></p>
<p> </p></div>
<p><font class="block_section">4.9 - </font><font class="block_name">Include Directive</font><a name="includedirective"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
include &lt;file-name&gt;;</p>
<p>Cette directive sp&eacute;cifie le nom de fichier devant être charg&eacute; comme fichier de configuration s&eacute;par&eacute;.
Ce fichier peut contenir n'importe quel type de bloc de configuration et peut &eacute;galement inclure d'autres
fichiers. Les wildcards sont support&eacute; dans le nom du fichiers pour vous permettre de charger plusieurs
fichiers en une fois.</p>
<p><b>exemple 1: un fichier r&eacute;seau</b><br>
</p><pre>include mynetwork.network;</pre><p></p>
<p>Ce sera la syntaxe &agrave; utiliser si vous voulez utiliser un fichier r&eacute;seau s&eacute;par&eacute;. Les fichiers r&eacute;seaux
s&eacute;par&eacute;s ne sont plus requis; tous les param&egrave;tres r&eacute;seaux peuvent être ins&eacute;r&eacute;s directement dans
unrealircd.conf. Ou vous pouvez mettre un include pour les charger depuis le fichier.</p>
<p><b>exemple 2: aliases</b><br>
</p><pre>include aliases/ircservices.conf</pre><p></p>
<p>Un autre exemple est de l'utiliser pour inclure des alias blocks, UnrealIRCd est fournis avec des fichiers
contenant les bons aliases pour beaucoup de services:<br>
</p><ul>
<li>aliases/ircservices.conf (IRCServices, Daylight)
</li><li>aliases/epona.conf (Epona)
</li><li>aliases/anope.conf (Anope)
</li><li>aliases/auspice.conf (Auspice)
</li><li>aliases/generic.conf (Magick, Sirius, Wrecked)
</li><li>aliases/cygnus.conf (Cygnus)
</li><li>aliases/operstats.conf (OperStats)
</li><li>aliases/genericstats.conf (GeoStats, NeoStats)
</li></ul>
<p></p>
<p></p></div>
<p><font class="block_section">4.10 - </font><font class="block_name">LoadModule Directive</font>
<font class="block_required">OBLIGATOIRE</font><a name="loadmoduledirective"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
loadmodule &lt;file-name&gt;;</p>
<p>Reportez-vous <a href="#feature_modules">ici</a> pour voir pourquoi les modules sont biens/utiles.</p>
<p>Modules qui viennent standards avec Unreal3.2 :</p>
<p>commands.so / commands.dll - Toutes les / commandes (en r&eacute;alit&eacute; pas encore toutes, mais pourra &eacute;ventuellement être toutes) <font color="red">OBLIGATOIRE</font><br>
cloak.so / cloak.dll - Cloaking module <font color="red">OBLIGATOIRE</font> (ou n'importe quel autre cloaking module)</p>
<p>Si vous voulez être sur que ceux si seront charg&eacute;s :</p>
<pre>loadmodule "src/modules/commands.so";
loadmodule "src/modules/cloak.so";
</pre>
<p>ou sous windows:</p>
<pre>loadmodule "modules/commands.dll";
loadmodule "modules/cloak.dll";
</pre>
</div>
<p><font class="block_section">4.11 - </font><font class="block_name">Log Block</font>
<font class="block_optional">OPTIONNEL</font><a name="logblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>log &lt;file-name&gt; {
maxsize &lt;max-file-size&gt;;
flags {
&lt;flag&gt;;
&lt;flag&gt;;
...
};
};
</pre><p></p>
<p>Le log block vous permet d'assigner diff&eacute;rents fichiers de log pour diff&eacute;rentes actions.
Le <b>log::</b> contient le nom du fichier de log. <b>log::maxsize</b> est une directive optionnelle
vous permettant de sp&eacute;cifier la taille &agrave; laquelle vous voulez que le fichier soit effac&eacute; et relanc&eacute;.
Vous pouvez utiliser MB pour megabytes, KB pour kilobytes, GB pour gigabytes.
Le <b>log::flags</b> sp&eacute;cifie quel type d'information sera dans ce log.
Ci-dessous la liste des flags disponibles.</p>
<p>Vous pouvez &eacute;galement avoir plusieurs log block, pour loguer diff&eacute;rentes choses dans des fichiers diff&eacute;rents.</p>
<p><b>Flags disponibles:</b><br>
<table border="0">
<tbody><tr><td>errors</td><td>erreurs</td></tr>
<tr><td>kills</td><td>logue le /kill notices</td></tr>
<tr><td>tkl</td><td>logue les infos sur les *lines, shun et spamfilters (ajout/suppression/expiration)</td></tr>
<tr><td>connects</td><td>logue les connexions / d&eacute;connexions des utilisateurs</td></tr>
<tr><td>server-connects</td><td>logue les connections / squit des serveurs</td></tr>
<tr><td>kline</td><td>logue l'usage des /kline</td></tr>
<tr><td>oper</td><td>logue les tentatives de s'oper (r&eacute;ussies et rat&eacute;es)</td></tr>
<tr><td>sadmin-commands</td><td>logue l'usage des /sa* (samode, sajoin, sapart, etc.)</td></tr>
<tr><td>chg-commands</td><td>logue l'usage des /chg* (chghost, chgname, chgident, ect.)</td></tr>
<tr><td>oper-override</td><td>logue l'usage des operoverrides</td></tr>
<tr><td>spamfilter</td><td>logue les concordances au spamfilter</td></tr>
</tbody></table>
</p>
<p>Exemple:</p>
<pre>log ircd.log {
maxsize 5MB;
flags {
errors;
kills;
oper;
kline;
tkl;
};
};
</pre><p></p>
<p></p></div>
<p><font class="block_section">4.12 - </font><font class="block_name">TLD Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme T:Line)</font><a name="tldblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>tld {
mask &lt;hostmask&gt;;
motd &lt;motd-file&gt;;
rules &lt;rules-file&gt;;
shortmotd &lt;shortmotd-file&gt;;
opermotd &lt;opermotd-file&gt;;
botmotd &lt;botmotd-file&gt;;
channel &lt;channel-name&gt;;
options {
ssl;
}
};</pre><p></p>
<p>Le tld block vous permet de sp&eacute;cifier un motd, rules (r&egrave;gles), et salon pour un utilisateur
en se basant sur son host. C'est utile si vous voulez diff&eacute;rents motd pour diff&eacute;rentes langues.
Le <b>tld::mask</b> est un masque user@host auquel l'username et l'host de l'utilisateur doivent
correspondre. Les <b>tld::motd</b>, <b>tld::shortmotd</b>,<b>tld::opermotd</b>,<b>tld::botmotd</b>, et
<b>tld::rules</b> sp&eacute;cifie respectivement les fichiers motd, shortmotd, opermotd, botmotd et rules
qui doivent être affich&eacute;s pour un hostmask. Les tld::shortmotd, tld::opermotd, et tld::botmotd sont optionnels.
<b>tld::channel</b> sp&eacute;cifie respectivement les fichiers motd,
shortmotd et rules qui doivent être affich&eacute;s pour un hostmask. Le tld::shortmotd est optionnel.
Le bloc <b>tld::options</b> vous permet de d&eacute;finir des exigences suppl&eacute;mentaires, habituellement
seuls tld::options::ssl qui affiche seulement le fichier pour les usagers SSL, et tld::options::remotes
qui affiche seulement le fichier pour les utilisateurs &eacute;trangers existent.</p>
<p>Les entr&eacute;es TLD sont v&eacute;rifi&eacute;es de haut en bas.</p>
<p>Exemple:<br>
</p><pre>tld {
mask *@*.fr;&lt;
motd "ircd.motd.fr";
rules "ircd.rules.fr";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.13 - </font><font class="block_name">Ban Nick Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme Q:Line)</font><a name="bannickblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban nick {<br>
mask &lt;nickname&gt;;
reason &lt;reason-for-ban&gt;;
};</pre><p></p>
<p>Le ban nick block vous permet d'interdire l'utilisation d'un pseudo sur le serveur.
Le ban::mask permet &agrave; des masques avec joker de correspondre &agrave; plusieurs pseudos, et
ban::reason vous permet de sp&eacute;cifier la raison pour laquelle ce ban a &eacute;t&eacute; plac&eacute;.
Le plus souvent ces blocs sont utilis&eacute;s pour bannir l'usage de pseudos g&eacute;n&eacute;ralement
utilis&eacute;s par des services r&eacute;seaux.</p>
<p>Exemple:<br>
</p><pre>ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reserved for Services";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.14 - </font><font class="block_name">Ban User Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme K:Line)</font><a name="banuserblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban user {
mask &lt;hostmask&gt;;
reason &lt;reason-for-ban&gt;;
};</pre><p></p>
<p>Ce bloc vous permet de bannir un masque user@host &agrave; sa connexion au serveur.
Le ban::mask est une version avec joker du user@host &agrave; bannir, et ban::reason est la raison pour
laquelle ce ban a &eacute;t&eacute; plac&eacute;. Notez que ceci est uniquement un ban local et l'utilisateur peut
toujours se connecter &agrave; un autre serveur pour rejoindre le r&eacute;seau.</p>
<p>Exemple:<br>
</p><pre>ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.15 - </font><font class="block_name">Ban IP Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme Z:Line)</font><a name="banipblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban ip {
mask &lt;ipmask&gt;;
reason &lt;reason-for-ban&gt;;
};</pre><p></p>
<p>Le ban ip block banni une IP lorsqu'il se connecte au serveur. Cela inclus aussi bien les
utilisateurs que les serveurs qui essayent de se connecter. Le param&egrave;tre ban::mask est un IP
pouvant contenir un joker, et ban::reason est la raison pour laquelle ce ban a &eacute;t&eacute; plac&eacute;.
Depuis que ce ban affecte les serveur il doit être utilis&eacute; tr&egrave;s prudemment.</p>
<p>Exemple:<br>
</p><pre>ban ip {
mask 192.168.1.*;
reason "Get a real ip u lamer!";
};</pre><p></p>
<p> </p></div>
<p><font class="block_section">4.16 - </font><font class="block_name">Ban Server Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme q:Line)</font><a name="banserverblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban server {
mask &lt;server-name&gt;;
reason &lt;reason-for-ban&gt;;
};</pre><p></p>
<p>Ce bloc retire la possibilit&eacute; d'un serveur de se connecter au r&eacute;seau. Si le serveur se link directement
&agrave; votre serveur, le link sera rejet&eacute;. Si le serveur se link &agrave; un autre serveur, le serveur local se
d&eacute;connectera du r&eacute;seau. Le champ ban::mask sp&eacute;cifie un masque avec joker &agrave; confronter au nom du serveur
tentant de se connecter, et ban::reason sp&eacute;cifie la raison pour laquelle ce ban a &eacute;t&eacute; plac&eacute;.</p>
<p>Exemple:<br>
</p><pre>ban server {
mask broken.server.my.network.com;
reason "Its broken!";
};</pre><p></p>
<p> </p></div>
<p><font class="block_section">4.17 - </font><font class="block_name">Ban RealName Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme n:Line)</font><a name="banrealnameblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban realname {
mask &lt;realname-mask&gt;;
reason &lt;reason-for-ban&gt;;
};</pre><p></p>
<p>Le ban realname block vous permet de bannir un client bas&eacute; sur le champs GECOS (realname).
Cela est utilis&eacute; pour les flood de clones car souvent les bots clones utilisent le même realname.
Le ban::mask sp&eacute;cifie le realname devant être banni. Le masque peut contenir un joker.
Le ban::reason sp&eacute;cifie pour ce ban a &eacute;t&eacute; plac&eacute;.</p>
<p>Exemple:<br>
</p><pre>ban realname {
mask "Bob*";
reason "Bob sucks!";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.18 - </font><font class="block_name">Ban Version Block</font>
<font class="block_optional">OPTIONNEL</font> <a name="banversionblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ban version {
mask &lt;version-mask&gt;;
reason &lt;reason-for-ban&gt;;
action [kill|tempshun|shun|kline|zline|gline|gzline];
};</pre><p></p>
<p>Le ban version block vous permet de bannir un utilisateur pour l'utilisation du client IRC qu'il utilise.
Ceci se base sur la r&eacute;ponse au CTCP version envoy&eacute; au client. Il est donc bien entendu que si le
client n'envoie pas de r&eacute;ponse au CTCP version, le ban ne fonctionnera pas. Cette fonction doit vous
permettre de bloquer des scripts dangereux. Le <b>ban::mask</b> sp&eacute;cifie la version devant être bannie.
Le mask peut contenir un joker. Le <b>ban::reason</b> sp&eacute;cifie la raison pour laquelle le ban a &eacute;t&eacute; plac&eacute;.
Vous pouvez &eacute;galement sp&eacute;cifier <b>ban::action</b>, <i>kill</i> est la valeur par d&eacute;faut,
<i>tempshun</i> shunera uniquement la connexion de l'utilisateur et devrait fonctionner tr&egrave;s efficacement
contres les bots/zombies avec des IPs dynamiques car il n'affectera pas les utilisateurs innocents.
<i>shun/kline/zline/gline/gzline</i> placeront un ban de ce type sur l'ip (*@IPADDR), la dur&eacute;e de ce ban
peut être configur&eacute;e avec set::ban-version-tkl-time et est de 1 jour par d&eacute;faut.</p>
<p>Exemples:<br>
</p><pre>ban version {
mask "*SomeLameScript*";
reason "SomeLameScript contains backdoors";
};</pre>
<pre>ban version {
mask "*w00tZombie*";
reason "I hate those hundreds of zombies";
action zline;
};</pre>
<p></p>
<p></p></div>
<p><font class="block_section">4.19 - </font><font class="block_name">Ban Exceptions Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme E:Line)</font><a name="banexceptionblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>except ban {
mask &lt;hostmask&gt;;
};</pre><p></p>
<p>L'except ban block vous permet de sp&eacute;cifier un user@host qui outrepassera un ban plac&eacute; sur une plage de host.
Ceci est tr&egrave;s utile lorsque vous voulez bannir un FAI, mais que vous voulez que certains utilisateurs
sp&eacute;cifiques puissent toujours se connecter. La directive except::mask sp&eacute;cifie le masque user@host
du client qui sera autoris&eacute; &agrave; se connecter.</p>
<p>Exemple:<br>
</p><pre>except ban {
mask myident@my.isp.com;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.20 - </font><font class="block_name">TKL Exceptions Block</font>
<font class="block_optional">OPTIONNEL</font><a name="tklexceptionblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>except tkl {
mask &lt;hostmask&gt;;
type &lt;type&gt;;
type {
&lt;type&gt;;
&lt;type&gt;;
...
};
};</pre><p></p>
<p>L'except tkl block vous permet de sp&eacute;cifier un user@host qui pourra outrepasser un ban tkl
plac&eacute; sur une plage de host. Ceci est tr&egrave;s utile lorsque vous voulez bannir un FAI, mais que
vous voulez que certains utilisateurs sp&eacute;cifiques puissent toujours se connecter. La directive
except::mask sp&eacute;cifie le masque user@host du client qui sera autoris&eacute; &agrave; se connecter.
L' except::type sp&eacute;cifie quel type de ban pourra être outrepass&eacute;. Les types valides sont
gline, gzline, qline, gqline et shun qui feront une exception pour les Glines, Global Zlines,
Qlines, Global Qlines, et shuns.</p>
<p>Exemple:<br>
</p><pre>except tkl {
mask myident@my.isp.com;
type gline;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.21 - </font><font class="block_name">Throttle Exceptions Block</font>
<font class="block_optional">OPTIONNEL</font> <a name="throttleexceptionblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>except throttle {
mask &lt;ipmask&gt;;
};</pre><p></p>
<p>L'except throttle block vous permet de sp&eacute;cifier une IP qui pourra outrepasser le throttling system.
Ceci fonctionne uniquement si vous avez choisi d'activer le throttling. L'except::mask sp&eacute;cifie l'IP
qui ne sera pas bannie &agrave; cause du throttling.</p>
<p>Exemple<br>
</p><pre>except throttle {
mask 192.168.1.*;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.22 - </font><font class="block_name">Deny DCC Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme dccdeny.conf)</font><a name="denydccblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>deny dcc {
filename &lt;file-to-block&gt;;
reason &lt;reason-for-ban&gt;;
soft [yes|no];
};</pre><p></p>
<p>Le deny dcc block vous permet de sp&eacute;cifier un nom de fichier qui ne pourra être envoy&eacute;
par DCC via le serveur. Ceci est tr&egrave;s utile pour aider &agrave; stopper la propagation de
virus et / ou trojans.</p>
<p>Le param&egrave;tre <b>deny::filename</b> sp&eacute;cifie un masque avec joker du nom de fichier &agrave; rejeter,
et <b>deny::reason</b> sp&eacute;cifie la raison pour laquelle ce fichier est bloqu&eacute;.</p>
<p>Il existe aussi une option <b>deny::soft</b> ,si elle a la valeur 'yes' (oui) le dcc sera bloqu&eacute;
&agrave; moins que l'utilisateur le permette explicitement via /DCCALLOW + pseudo-essayant-d'envoyer.
Regardez le dccallow.conf pour avoir un bon exemple de configuration pour dccallow.</p>
<p>Exemples<br>
</p><pre>deny dcc {
filename virus.exe;
reason "This is a GD Virus";
};
deny dcc {
filename "*.exe";
reason "Executable content";
soft yes;
};</pre>
<p></p></div>
<p></p>
<p><font class="block_section">4.23 - </font><font class="block_name">Deny Version Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme V:Line)</font><a name="denyversionblock"></a></p><div class="desc">
<p></p>
<p> Syntaxe:<br>
</p><pre>deny version {
mask &lt;server-name&gt;;
version &lt;version-number&gt;;
flags &lt;compile-flags&gt;;
};</pre><p></p>
<p>Ce bloc vous permet d'interdire &agrave; un serveur de se linker en fonction de la version
d'Unreal qu'il utilise et quelle option de compilation il a. Le format pour ce bloc
est un peu complexe mais il n'est pas trop difficile &agrave; comprendre. La directive deny::mask
sp&eacute;cifie le nom du serveur avec joker auquel il s'applique. Le deny::version sp&eacute;cifie le
num&eacute;ro de protocole de la version auquel on fait r&eacute;f&eacute;rence.</p>
<p>Par exemple, 3.0 d'où 2301, 3.1.1/3.1.2 d'où 2032, 3.2 d'où 2303. Le premier
caract&egrave;re de ce param&egrave;tre peut être un des suivant &gt;, &lt;, =, !. Ce caract&egrave;re
dit &agrave; l' IRCd comment interpr&eacute;ter la version. Si ce caract&egrave;re est un &gt;
alors toutes les versions sup&eacute;rieures &agrave; celle sp&eacute;cifi&eacute;e seront interdites, Si c'est un &lt;
toutes les versions inf&eacute;rieures seront interdites, si c'est un = seulement cette version sera interdite,
et si c'est un ! alors toutes les versions seront interdites except&eacute; celle sp&eacute;cifi&eacute;e. La directive
deny::flags vous permet de sp&eacute;cifier que compile time flag le serveur doit ou ne doit pas avoir.
Les flags sont arrang&eacute; l'un apr&egrave;s l'autre sans s&eacute;paration entre eux, si un caract&egrave;re est pr&eacute;c&eacute;d&eacute; d'un !
alors cela signifiera que le serveur ne pourra pas être compil&eacute; avec ce flag, si il n'y a pas de pr&eacute;fixe !,
alors cela signifiera que le serveur devra être compil&eacute; avec ce flag.</p>
<p></p></div>
<p><font class="block_section">4.24 - </font><font class="block_name">Deny Link Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme D/d:Line)</font><a name="denylinkblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>deny link {
mask &lt;server-name&gt;;
rule &lt;crule-expression&gt;;
type &lt;type-of-denial&gt;;
};</pre><p></p>
<p>Ce bloc vous permets d'utiliser des r&egrave;gles sp&eacute;cifiques pour interdire le link d'un serveur.
Le deny::mask sp&eacute;cifie un nom de serveur avec joker auquel cette r&egrave;gle s'applique.
La directive deny::rules est tr&egrave;s complexe. Une expression crule vous permet de contrôler
le link en d&eacute;tail, et il se r&egrave;gle comme un programme. Quatre op&eacute;rateurs sont support&eacute;s,
connected(&lt;servermask&gt;), retourne vrai si un serveur correspondant au
servermask est connect&eacute;, directcon(&lt;servermask&gt;), etourne vrai si un serveur
correspondant au servermask est directement connect&eacute; &agrave; ce serveur,
via(&lt;viamask&gt;,&lt;servermask&gt;), retourne vrai si un serveur correspondant au
servermask est connect&eacute; &agrave; partir d'un serveur correspondant au viamask, et directop(),
qui retourne vrai si l'IRCOP utilisant /connect est directement connect&eacute; sur ce serveur.
Ces op&eacute;rateurs peuvent être combin&eacute;s en utilisant &amp;&amp; (et) et || (ou), les items
peuvent &eacute;galement être mis entre parenth&egrave;ses pour permettre le regroupement. De plus, un
op&eacute;rateur pr&eacute;c&eacute;d&eacute; d'un ! v&eacute;rifier si l'op&eacute;rateur retourne faux. Si l'expression est &eacute;valu&eacute;e
comme enti&egrave;rement vraie, alors le link est refus&eacute;. Le deny::type permet deux valeurs diff&eacute;rentes,
auto (s'applique uniquement aux autoconnexions, /connect fonctionnera toujours), et all
(s'applique &agrave; toutes les tentatives de connections).</p>
<p></p></div>
<p><font class="block_section">4.25 - </font><font class="block_name">Deny Channel Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme chrestrict.conf)</font><a name="denychannelblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>deny channel {
channel "&lt;channel-mask&gt;";
reason &lt;reason-for-ban&gt;;
redirect "&lt;channel-name&gt;";
warn [on|off];
};</pre><p></p>
<p> </p>
<p>Le deny channel block vous permet d'interdire aux utilisateurs de rejoindre un salon.
La directive <b>deny::channel</b> sp&eacute;cifie le nom d'un salon avec joker que les utilisateurs
ne pourront rejoindre, et le <b>deny::reason</b> sp&eacute;cifie la raison pour laquelle le salon
ne peut être rejoint. De plus, vous pouvez sp&eacute;cifier un <b>deny::redirect</b>. Si celui-ci est
sp&eacute;cifi&eacute;, lorsqu'un utilisateur essaye de rejoindre un salon correspondant &agrave; un deny::channel,
il ou elle sera redirig&eacute;(e) vers deny::redirect. Et il y a &eacute;galement <b>deny::warn</b>
qui (si il est activ&eacute;) enverra une opernotice (au EYES snomask) si un utilisateur essaye de rejoindre le salon.
</p>
<p>Exemples</p>
<pre>deny channel {
channel "#unrealsucks";
reason "No it don't!";
};
deny channel {
channel "#*teen*sex*";
reason "You == dead";
warn on;
};
deny channel {
channel "#operhelp";
reason "Our network help channel is #help, not #operhelp";
redirect "#help";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.26 - </font><font class="block_name">Allow Channel Block</font>
<font class="block_optional">OPTIONNEL</font><a name="allowchannelblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>allow channel {
channel "&lt;channel-mask&gt;";
};</pre><p></p>
<p>Le allow channel block vous permet de sp&eacute;cifier des salons sp&eacute;cifiques que les utilisateurs pourront joindre.
La directive allow::channel sp&eacute;cifie les noms de salon avec joker pouvant être rejoint.</p>
<p>Exemple:<br>
</p><pre>allow channel {
channel "#something";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.27 - </font><font class="block_name">Allow DCC Block</font>
<font class="block_optional">OPTIONNEL</font><a name="allowdccblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>allow dcc {
filename "&lt;filename-mask&gt;";
soft [yes|no];
};</pre><p></p>
<p>Le allow dcc block vous permet de sp&eacute;cifier des exceptions au deny dcc block,
les jokers sont permis. Si <b>allow dcc::soft</b> est mis &agrave; 'yes' il applique la liste
des 'soft dcc bans', si il est mis &agrave; 'no' il applique la listes des dcc bans normaux ('hard').</p>
<p>Exemple:<br>
</p><pre>allow dcc {
filename "*.jpg"; /* Images are usually safe */
soft yes;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.28 - </font><font class="block_name">Vhost Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme vhosts.conf)</font><a name="vhostblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>vhost {
vhost &lt;vhost&gt;;
from {
userhost &lt;hostmask&gt;;
userhost &lt;hostmask&gt;;
...
};
login &lt;login-name&gt;;
password &lt;password&gt; { &lt;auth-type&gt;; };
swhois "&lt;swhois info&gt;";
};</pre><p></p>
<p>Le vhost block vous permet de sp&eacute;cifier un login/mot-de-passe pouvant être utilis&eacute; avec
la commande /vhost pour obtenir un faux hostname. Le param&egrave;tre vhost::vhost peut être un
user@host ou juste un host que l'utilisateur recevra apr&egrave;s un /vhost r&eacute;ussi. Le vhost::from::userhost
contient un user@host auquel l'utilisateur doit correspondre pour être &eacute;ligible pour un vhost. Vous
pouvez sp&eacute;cifier plus d'un hostmask. Le vhost::login est le login que l'utilisateur doit rentrer
et vhost::password est le mot de passe devant être entr&eacute;. Le vhost::password:: vous permet de sp&eacute;cifier
le type d'authentification utilis&eacute; par cet item. Les types d'authentification actuellement support&eacute;s
sont crypt&eacute;, md5 et sha1, ripemd-160. Finallement, vhost::swhois vous permet d'ajouter un ligne
suppl&eacute;mentaire au whois des utilisateurs, exactement comme dans le oper block oper::swhois.</p>
<p>Exemple:<br>
</p><pre>vhost {
vhost my.own.personal.vhost.com;
from {
userhost my@isp.com;
userhost myother@isp.com;
};
login mynick;
password mypassword;
swhois "Im Special";
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.29 - </font><font class="block_name">Badword Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme badwords.*.conf)</font><a name="badwordsblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>badword &lt;type&gt; {
word &lt;text-to-match&gt;;
replace &lt;replace-with&gt;;
action &lt;replace|block&gt;;
};</pre><p></p>
<p>Le badword block vous permet de manipuler la liste utilis&eacute;e pour le mode utilisateur
et salon +G pour cacher les 'mauvais mots'. Le badword:: sp&eacute;cifie le type, les types
valides sont channel, message, quit et all. Channel est pour la liste des salons +G, message
est pour la liste des utilisateurs +G, quit est pour la censure des messages de quit et all
est pour ajouter les trois listes. Le badword::word peut être un simple mot ou une expression
r&eacute;guli&egrave;re que nous pouvons chercher. Le badword::replace est ce par quoi doit être remplac&eacute;
le mot correspondant. Si badword::replace n'est pas sp&eacute;cifi&eacute;, le mot est remplac&eacute;
par &lt;censored&gt;. Le badword::action d&eacute;fini quelle action doit être r&eacute;alis&eacute;e si un mauvais
mots est trouv&eacute;. Si vous sp&eacute;cifiez replace, alors le mauvais mots est remplac&eacute;, si vous sp&eacute;cifez
block, le message entier sera bloqu&eacute;. Si vous ne sp&eacute;cifiez pas un badword::action, le mot sera remplac&eacute;.</p>
<p>Exemple:<br>
</p><pre>badword channel {
word shit;
replace shoot;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.30 - </font><font class="block_name">ULines Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme the U:Line)</font><a name="ulinesblock"></a></p><div class="desc">
<p></p>
<p>Syntaxe:<br>
</p><pre>ulines {
&lt;server-name&gt;;
&lt;server-name&gt;;
...
};</pre><p></p>
<p>Le ulines block vous permet d'accorder &agrave; certains serveurs des possibilit&eacute;s suppl&eacute;mentaires.
Ceci doit uniquement être utilis&eacute; pour des serveurs comme les services et les stats.
Ceci ne doit pas être appliqu&eacute; &agrave; un serveur normal. Chaque entr&eacute;e est le nom du serveur qui
recevra les possibilit&eacute;s suppl&eacute;mentaires.</p>
<p>Exemple<br>
</p><pre>ulines {
services.mynetwork.com;
stats.mynetwork.com;
};</pre><p></p>
<p></p></div>
<p><font class="block_section">4.31 - </font><font class="block_name">Link Block</font>
<font class="block_optional">OPTIONNEL</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme C/N/H:Lines)</font><a name="linkblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>link &lt;server-name&gt; {
username &lt;usermask&gt;;
hostname &lt;ipmask&gt;;
bind-ip &lt;ip-to-bind-to&gt;;
port &lt;port-to-connect-on&gt;;
password-connect &lt;password-to-connect-with&gt;;
password-receive &lt;password-to-receive&gt; { &lt;auth-type&gt;; };
hub &lt;hub-mask&gt;;
leaf &lt;leaf-mask&gt;;
leafdepth &lt;depth&gt;;
class &lt;class-name&gt;;
ciphers &lt;ssl-ciphers&gt;;
options {
&lt;option&gt;;
&lt;option&gt;;
...
};
};</pre><p></p>
<p>C'est le bloc dont vous avez besoin pour linker les serveurs, s'il vous plaît prenez le temps de
lire tout ceci car c'est l'une des parties les plus difficiles et les utilisateurs font souvent des erreurs. ;P</p>
<p>D'abord <b>server-name</b> est le nom du serveur distant, le nom que le serveur distant a dans son bloc me { },
tel que hub.blah.com (pas l'ip et peut être diff&eacute;rent de l'hostname).</p>
<p><b>username</b><br>
Vous pouvez le sp&eacute;cifier si vous utilisez l'ident pour l'authentification,normalement vous mettrez "*".
</p>
<p><b>hostname</b><br>
L'host ou l'ip du serveur distant. Ceci est utilis&eacute; pour la connexion et pour l'authentification / v&eacute;rification
du cot&eacute; entrant. Quelques exemples :<br>
<table border="0">
<tbody><tr><td><i>1.2.3.4</i></td><td> IP normale</td></tr>
<tr><td><i>hub.blah.com</i></td><td> host: seulement pour sortie, ne peut accepter de connexion entrante sans
la pr&eacute;sence de link::options::nohostcheck</td></tr>
<tr><td><i>*</i></td><td> ne peut pas se connecter mais accepte la connexion de n'importe quel serveur (avec le bon mot de passe)</td></tr>
<tr><td><i>::ffff:1.2.3.4</i></td><td> pour linker de l'ipv6 &agrave; de l'ipv4.</td></tr>
</tbody></table>
</p>
<p><b>bind-ip</b> (optionnel)<br>
Peut être utilis&eacute; pour sp&eacute;cifier un IP (ex. : 192.168.0.1) depuis lequel nous devons nous connecter,
presque jamais utilis&eacute;.
</p>
<p><b>port</b><br>
Port auquel on se connecte (celui que le serveur distant &eacute;coutera).
</p>
<p><b>password-connect</b><br>
Le mot de passe utilis&eacute; pour se connecter au serveur distant, doit être &eacute;crit en clair.
</p>
<p><b>password-receive</b><br>
Le mot de passe utilis&eacute; pour valider les links entrants, peut être encrypt&eacute;
(les m&eacute;thodes d'encryptions valides sont crypt, md5, sha1, ripemd-160).
Vous pouvez laisser le param&egrave;tre auth-type d&eacute;crypt&eacute;. Souvent, il est le même que le password-connect.
</p>
<p><b>hub vs leaf</b><br>
Un hub a plusieurs serveurs link&eacute; &agrave; lui, un leaf n'a qu'un seul link... le vôtre.
Un serveur est soit un hub, soit un leaf, vous ne pouvez combiner ces options.
</p>
<p><b>hub</b> (optionnel)<br>
Cette valeur est un masque des serveurs auquel ce hub peut se connecter (ex. : *.my.net).
</p>
<p><b>leaf</b> (optionnel)<br>
Cette valeur est un masque que ce serveur interpr&eacute;tera comme un leaf.
</p>
<p><b>leaf-depth</b> (optionnel)<br>
Si celui-ci est sp&eacute;cifier, alors leaf doit l'être aussi.
Cette valeur sp&eacute;cifie la profondeur (nombre de sauts) que ce serveur peut avoir derri&egrave;re lui.
</p>
<p><b>class</b><br>
La classe dont ce serveur fait partie, souvent une classe de serveurs s&eacute;par&eacute;s est utilis&eacute; pour ceci.
</p>
<p><b>compression-level</b> (optionnel)<br>
Sp&eacute;cifie le taux de compression (1-9) pour ce link. Seulement utilis&eacute; si link::options::zip est activ&eacute;.
</p>
<p><b>ciphers</b> (optionnel)<br>
Specifie le SSL ciphers a utiliser pour ce link. Pour obtenir une liste de ciphers disponibles, utilisez
la commande `openssl ciphers`. Les ciphers doivent être sp&eacute;cifi&eacute;s comme : une liste s&eacute;par&eacute;e.
</p>
<p><b>options block</b><br>
Une ou plusieurs options utilis&eacute;es pour se connecter &agrave; ce serveur. Parfois pas requises.<br>
<table border="0">
<tbody><tr><td><b>ssl</b></td><td> si vous êtes connect&eacute; &agrave; un port ssl.</td></tr>
<tr><td><b>autoconnect</b></td><td> le serveur essayera de se connecter automatiquement, le temps est
sp&eacute;cifi&eacute; dans votre class::connfreq (il est mieux d'activer ceci seulement dans un sens, comme leaf-&gt;hub)</td></tr>
<tr><td><b>zip</b></td><td> si vous voulez des links compress&eacute;s, vous devez compiler les deux serveurs concern&eacute;s avec l'option zip activ&eacute;</td></tr>
<tr><td><b>nodnscache</b></td><td> ne pas cacher l'ip pour les connexions des serveurs sortants, utilisez cela
pour des serveurs dont l'host change souvent (comme dyndns.org)</td></tr>
<tr><td><b>nohostcheck</b></td><td> ne pas valider l'host distant (link::hostname), utilisez cela pour des
serveurs dont l'host change souvent (comme dyndns.org)</td></tr>
<tr><td><b>quarantine</b></td><td> les opers sur ce serveur conserveront le status de locop.</td></tr>
</tbody></table>
</p>
<p>Exemple:</p>
<pre>link hub.mynet.com {
username *;
hostname 1.2.3.4;
bind-ip *;
port 7029;
hub *;
password-connect "LiNk";
password-receive "LiNk";
class servers;
options {
autoconnect;
ssl;
zip;
};
};</pre><p></p>
<p> </p></div>
<p><font class="block_section">4.32 - </font><font class="block_name">Alias Block</font>
<font class="block_optional">OPTIONNEL</font><a name="aliasblock"></a>
</p><div class="desc">
<p>Syntaxe [standard alias]:<br>
</p><pre>alias &lt;name&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
};</pre><p></p>
<p>(Note: reportez-vous &eacute;galement <a href="#includedirective">ici</a> &agrave; propos des fichiers d'alias standards d'UnrealIRCd)</p>
<p>L'alias block (alias standards) vous permet de transmettre une commande &agrave; un
utilisateur, par exemple /chanserv envoie un message &agrave; l'utilisateur chanserv.
L' alias:: sp&eacute;cifie le nom de la commande qui sera l'alias (ici : chanserv),
alias::target est le pseudo ou le salon &agrave; qui il sera envoy&eacute;, si l' alias:: est
le même que la cible &agrave; qui il sera envoy&eacute; alias::target peut ne pas être rempli.
L' alias::type sp&eacute;cifie le type d'alias, les types valides sont services
(l'utilisateur est sur le serveur des services), stats (l'utilisateur est sur le
serveur de statistiques), normal (la cible est sur n'importe quel serveur).
L'alias block a &eacute;galement une autre utilit&eacute; expliqu&eacute; ci-dessous.</p>
<p>Syntaxe [command alias]:<br>
</p><pre>alias &lt;name&gt; {
format &lt;regex-expression&gt; {
target &lt;nick-to-forward-to&gt;;
type &lt;type-of-alias&gt;;
parameters &lt;parameter-string&gt;;
};
format &lt;regex-expression&gt; {
...
};
type command;
};</pre><p></p>
<p>Lorsque l'alias block est utilis&eacute; dans ce format, il vous permet une plus vaste plage d'usage.
Par exemple, vous pouvez cr&eacute;er des alias tels que /identify. L' alias:: est comme ci-dessus,
le nom de l'alias de commande. L' alias::format sp&eacute;cifie une expression r&eacute;guli&egrave;re compar&eacute;e au
texte envoy&eacute; &agrave; l'alias de commande, si l'entr&eacute;e correspond &agrave; l' alias::format elle sera utilis&eacute;e,
vous pouvez d&eacute;finir plusieurs alias::format qui feront faire diff&eacute;rentes choses &agrave; la commande suivant
la syntaxe utilis&eacute;e. L'alias::format::target est la cible &agrave; qui envoyer cette commande.
L' alias::format::type sp&eacute;cifie le type d'alias devant être transmit. L'alias::format::parameters
est ce qui sera envoy&eacute; &agrave; cet alias en tant que param&egrave;tre. Pour sp&eacute;cifier un des param&egrave;tres donn&eacute; &agrave;
l'alias de commande, sp&eacute;cifiez % suivi d'un nombre, par exemple %1 est le premier param&egrave;tre.
Pour sp&eacute;cifier tous les param&egrave;tres depuis un param&egrave;tre donn&eacute; jusqu'&agrave; la fin, mettez % suivi par
le nombre et un -, par exemple %2- retourne tous les param&egrave;tres depuis le deuxi&egrave;me jusqu'au dernier.
De plus, vous pouvez sp&eacute;cifier %n qui sera remplac&eacute; par le pseudo de l'utilisateur qui a tapp&eacute; la commande.
Pour des exemples d'utilisation de l'alias block dans le format de commande, consultez le doc/example.conf.</p>
<p></p></div>
<p><font class="block_section">4.33 - </font><font class="block_name">Help Block</font>
<font class="block_optional">OPTIONNEL</font><a name="helpblock"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>help &lt;name&gt; {
&lt;text-line&gt;;
&lt;text-line&gt;;
...
};</pre><p></p>
<p>(Note: normalement vous ajoutez seulement l'help.conf)</p>
<p>L'help block vous permet des cr&eacute;er des entr&eacute;es &agrave; utiliser dans /helpop.
L' help:: est la valeur qui doit être interpr&eacute;t&eacute;e comme param&egrave;tre dans /helpop,
si l'help:: est laiss&eacute; vide, alors il sera utilis&eacute; lorsqu'aucun param&egrave;tre n'est
pr&eacute;cis&eacute; dans /helpop. Les entr&eacute;es pour l'help block sont les textes qui seront affich&eacute;
lorsque l'utilisateur demandera l' /helpop.</p>
<p></p></div>
<p><font class="block_section">4.34 - </font><font class="block_name">Official Channels Block</font>
<font class="block_optional">OPTIONNEL</font><a name="officialchannels"></a>
</p><div class="desc">
<p>Syntaxe:<br>
</p><pre>official-channels {
"#channel" { topic "The default topic"; };
};</pre><p></p>
<p>Les salons officiels sont affich&eacute;s dans la /list même si aucun utilisateurs n'y sont.
Le <b>topic</b> est optionnel et est montr&eacute; dans la /list si il y a 0 utilisateur.
</p>
<p>Exemple:<br>
</p><pre>official-channels {
"#Help" { topic "The official help channel, if nobody is present type /helpop helpme"; };
"#Home";
"#Main" { topic "The main channel"; };
};</pre><p></p>
</div>
<p><font class="block_section">4.35 - </font><font class="block_name">Spamfilter Block</font>
<font class="block_optional">OPTIONNEL</font><a name="spamfilter"></a>
</p><div class="desc">
<p>
Le spamfilter block vous permet d'ajouter un filtre anti-spam local (pas au niveau du r&eacute;seau).<br>
Voir <a href="#feature_spamfilter">Features - Spamfilter</a> pour plus d'information &agrave; propos des filtres anti-spam.<br>
</p>
<p>Syntaxe:<br>
</p><pre>spamfilter {
regex &lt;word&gt;;
target { &lt;target(s)&gt; };
action &lt;action&gt;;
reason &lt;reason&gt;;
ban-time &lt;time&gt;;
};</pre><p></p>
<p><b>regex</b> est le regex auquel on doit correspondre.<br>
<b>target</b> sp&eacute;cifie les cibles, reportez-vous <a href="#feature_spamfilter">ici</a> pour obtenir la liste des types disponibles (ex: 'channel').<br>
<b>action</b> sp&eacute;cifie l'action &agrave; effectuer, reportez-vous <a href="#feature_spamfilter">ici</a> pour obtenir la liste des types disponibles (ex: 'gline')<br>
<b>reason</b> optionnel : sp&eacute;cifie la raison du ban ou du blocage, sinon la raison par d&eacute;faut est utilis&eacute;e.<br>
<b>ban-time</b> optionnel : sp&eacute;cifie la dur&eacute;e d'un ban *line, sinon la valeur par d&eacute;faut est utilis&eacute;e (1 jour).<br>
</p>
<p>Exemples:<br>
</p><pre>spamfilter {
regex "Come watch me on my webcam";
target { private; channel; };
action gline;
reason "You are infected, please go to www.antivirus.xx/blah/virus=GrrTrojan";
ban-time 6h;
};
spamfilter {
regex "come to irc\..+\..+";
target { private; channel; };
action gline;
action gline;
reason "No spamming allowed";
};
</pre><p></p>
</div>
<p><font class="block_section">4.36 - </font><font class="block_name">Set Block</font>
<font class="block_required">OBLIGATOIRE</font> <font class="block_old">(connu pr&eacute;c&eacute;demment comme unrealircd.conf/networks file)</font><a name="setblock"></a>
</p><div class="desc">
<p>Le fichier set est ce qui est utilis&eacute; en tant que notre networks/unrealircd.conf et notre
fichier networks. Sur les r&eacute;seaux d'un seul serveur, plutôt que d'avoir 3 fichiers vous pouvez
tout mettre dans l'unrealircd.conf lui même, sur les r&eacute;seaux multi-serveurs, je vous recommande
d'utiliser des fichiers networks s&eacute;par&eacute;s.</p>
<p>Maintenant, si votre serveur est sur un r&eacute;seau, il y a des chances pour que vous utilisiez
basiquement les mêmes r&eacute;glages Set. Dans ce cas, il est plus logique d'avoir un fichier network,
qui est charg&eacute; avec une directive <a href="#includedirective">include</a>.
Ci-dessous, vous trouverez toutes les directives set disponibles.</p>
<p>Dans cette documentation, nous nous r&eacute;f&eacute;rons aux r&eacute;glages / directives sous la forme
&lt;block-name&gt;::&lt;block-directive&gt; Ce format N'est PAS le format pouvant être
entr&eacute; dans le fichiers de configuration. IL DOIT être converti dans le format list&eacute; ci-dessous.
Il est pr&eacute;sent&eacute; dans un format qui le rend plus simple &agrave; expliquer.</p>
<p>Syntaxe:<br>
</p><pre>set {
&lt;entry&gt; &lt;value&gt;;
&lt;entry&gt; &lt;value&gt;;
...
};</pre><p></p>
<p>Le set block appliques des options pour les r&eacute;glages d'un serveur individuel. Chaque entr&eacute;e
fait quelque chose de diff&eacute;rent et elles seront toutes d&eacute;crites ci-dessous. Certaines directives
ont des sous blocs qui seront &eacute;galement d&eacute;crits. Il y a beaucoup de intitul&eacute;s r&eacute;glages &agrave; couvrir,
toutes les directives list&eacute;es ci-dessous peuvent être incluses sous UN intitul&eacute;. Si une directive
a des options, elles seront incluses dans l'intitul&eacute; de r&eacute;glages au mieux.<br>
Exemple:<br>
</p><pre>set {
kline-address my@emailaddress.com;
auto-join #welcome;
options {
hide-ulines;
};
hosts {
local LocalOp.MyNet.com;
global globalop.mynet.com;
};
};</pre><p></p>
<p>Maintenant si vous voulez faire les intitul&eacute;s de r&eacute;glages s&eacute;par&eacute;ment,
dites que vous voulez r&eacute;gler vos options sur une simple ligne.<br>
Exemple:<br>
set { options { hide-ulines; no-stealth; }; };<br>
</p>
<p><font class="set">set::kline-address &lt;email-address&gt;;</font><br>
L'adresse email &agrave; laquelle doivent être envoy&eacute;s les questions sur les K:line.
Cette valeur doit être sp&eacute;cifi&eacute;e.</p>
<p><font class="set">set::gline-address &lt;email-address&gt;;</font><br>
L'adresse email &agrave; laquelle doivent être envoy&eacute;s les questions sur les G:line.</p>
<p><font class="set">set::modes-on-connect &lt;+modes&gt;;</font><br>
Les modes qui seront appliqu&eacute;s &agrave; un utilisateur &agrave; la connexion.</p>
<p><font class="set">set::snomask-on-connect &lt;+modes&gt;</font><br>
Les snomask qui seront appliqu&eacute;s &agrave; un utilisateur &agrave; la connexion.</p>
<p><font class="set">set::modes-on-oper &lt;+modes&gt;;</font><br>
Les modes qui seront appliqu&eacute;s &agrave; un utilisateur lorsqu'il s' /oper.</p>
<p><font class="set">set::snomask-on-oper &lt;+modes&gt;;</font><br>
Les snomask qui seront appliqu&eacute;s &agrave; un utilisateur lorsqu'il s' /oper.</p>
<p><font class="set">set::modes-on-join &lt;+modes&gt;;</font><br>
Les modes qui seront appliqu&eacute;s &agrave; un salon lors de sa cr&eacute;ation.
Tous les modes ne peuvent pas être utilis&eacute;s par cette commande.
+qaohvbeOAzlLk ne peuvent être appliqu&eacute;s par cette commande.</p>
<p><font class="set">set::restrict-usermodes &lt;modes&gt;</font><br>
Empêche les utilisateurs d'appliquer / enlever les modes list&eacute;s ici (n'utilisez pas + ou -).
Par exemple, vous pouvez mettre le +G en modes-on-connect et G en restrict-usermodes,
de cette fa&ccedil;on vous obligez tous les utilisateurs &agrave; avoir le mode +G et les empêcher
de se mettre en -G.</p>
<p><font class="set">set::restrict-channelmodes &lt;modes&gt;</font><br>
Empêche les utilisateurs d'appliquer / enlever les modes de salon list&eacute;s ici (n'utilisez pas + ou -).
Par exemple, vous pouvez mettre le +G en modes-on-connect et G en restrict-channelmodes,
de cette fa&ccedil;on vous obligez tous les (nouveaux) salons &agrave; avoir le mode +G et les empêcher de se mettre en -G.<br>
NOTE : il peut toujours être possible d'utiliser ces modes de salon sans passer par les
services en utilisant MLOCK. Malheureusement nous ne pouvons pas en faire plus &agrave; ce propos, vous
devrez le demander aux codeurs de vos services d'impl&eacute;menter une option restrict-channelmodes &eacute;galement.</p>
<p><font class="set">set::restrict-extendedbans &lt;types|*&gt;</font><br>
Ne permet pas aux utilisateurs d'utiliser des bans &eacute;tendus ("*") ou en empêche certains (ex. : "qc").</p>
<p><font class="set">set::auto-join &lt;channels&gt;;</font><br>
Les salons qu'un utilisateur est forc&eacute; de rejoindre &agrave; la connexion.
Pour sp&eacute;cifier plus d'un salon, utilisez une virgule pour les s&eacute;parer.<br>
[Note : n'oubliez pas d'ajouter des quotes comme : auto-join "#chan";]</p>
<p><font class="set">set::oper-auto-join &lt;channels&gt;;</font><br>
Le(s) salon(s) qu'un utilisateur sera forc&eacute; de rejoindre apr&egrave;s /oper.
Pour sp&eacute;cifier plus d'un salon, utilisez une virgule pour les s&eacute;parer.<br>
[Note: n'oubliez pas d'ajouter des quotes comme : oper-auto-join "#chan";]</p>
<p><font class="set">set::anti-spam-quit-message-time &lt;timevalue&gt;;</font><br>
Cette valeur de temps sp&eacute;cifie la dur&eacute;e minimale pendant laquelle l'utilisateur
doit être connect&eacute; avant de pouvoir afficher un message /quit. Utilis&eacute; pour pr&eacute;venir le spam.
Une valeur de temps est une valeur num&eacute;rique avec d pour jour, h pour heure, m pour minutes,
et s pour secondes, par exemple 1d2h3m signifie 1 jour, 2 heures, 3 minutes.</p>
<p><font class="set">set::prefix-quit &lt;text-to-prefix-quit&gt;;</font><br>
D&eacute;fini le texte qui sera affich&eacute; devant le message de quit.
Si la valeur est 0, alors le texte standard "Quit:" sera appliqu&eacute;.</p>
<p><font class="set">set::static-quit &lt;quit message&gt;;</font><br>
D&eacute;fini le message de quit qui sera envoy&eacute; quel que soit le message envoy&eacute; par
le client lorsqu'il quitte le r&eacute;seau. Ceci &eacute;limine le besoin de recourir &agrave;
l'anti-spam-quit-message-time, ainsi que le set::prefix-quit. Cela NE remplacera
PAS les ERREURS par le message static-quit.</p>
<p><font class="set">set::static-part &lt;no|yes|part message&gt;;</font><br>
Le 'yes' empêchera tous les commentaires de part, le 'no' laissera fonctionner
les part comme d'habitude, n'importe quoi d'autre sera utilis&eacute; comme commentaire
de part (ex. : static-part "Bye!") mais ca peut être assez ennuyeux, alors utilisez le prudemment.</p>
<p><font class="set">set::who-limit &lt;limit&gt;;</font><br>
D&eacute;fini le nombre maximum de r&eacute;ponses retourn&eacute;es lors d'un /who.
Si cette option n'est pas sp&eacute;cifi&eacute;e, il n'y aura pas de limite.</p>
<p><font class="set">set::silence-limit &lt;limit&gt;;</font><br>
D&eacute;fini le maximum d'entr&eacute;es dans la SILENCE list.
Si la directive n'est pas sp&eacute;cifi&eacute;e, une limite de 15 sera appliqu&eacute;e.</p>
<p><font class="set">set::oper-only-stats &lt;stats-list&gt;;</font><br>
Sp&eacute;cifie une liste de flags stats sans s&eacute;parateur qui d&eacute;fini les flags stats
que seuls les op&eacute;rateurs pourront utiliser. Ne donnez pas de valeur si vous
voulez permettre aux utilisateurs d'utiliser tous les flags, ou sp&eacute;cifiez *
pour que les utilisateurs ne puissent en utiliser aucun. Seul les flags stats
cours peuvent être sp&eacute;cifi&eacute;s ici.</p>
<p><font class="set">set::oper-only-stats {&lt;stats-flag&gt;; &lt;stats-flag&gt;;};</font><br>
Sp&eacute;cifie une liste de flags stats pouvant être utilis&eacute;s uniquement par les op&eacute;rateurs.
Ceci ne marche qu'avec les flags stats longs.</p>
<p><font class="set">set::maxchannelsperuser &lt;amount-of-channels&gt;;</font><br>
Sp&eacute;cifie le nombre de salons sur lesquels un simple utilisateur peut être en même temps.</p>
<p><font class="set">set::maxdccallow &lt;amount-of-entries&gt;;</font><br>
Sp&eacute;cifie le nombre maximum d'entr&eacute;es qu'un utilisateur peut avoir dans son / sa list DCCALLOW.</p>
<p><font class="set">set::channel-command-prefix &lt;command-prefixes&gt;;</font><br>
Sp&eacute;cifie le caract&egrave;re de pr&eacute;fixe pour les services dans les "commandes de salons".
Les messages commen&ccedil;ant par le caract&egrave;re sp&eacute;cifi&eacute; seront envoy&eacute; même si le client est en +d.
La valeur par d&eacute;faut est "`".</p>
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
Sp&eacute;cifie ce qu'il arrive quand un user@host change (+x/-x/chghost/chgident/setident/vhost/etc).<br>
<i>never</i> supprime toutes les commandes, <i>always</i> le permet toujours même si
le client est sur un salon (peut causer le desync du client) [d&eacute;faut] <i>not-on-channels</i>
le permet uniquement si l'utilisateur n'est sur aucun salon, <i>force-rejoin</i> forcera &agrave;
rejoindre tous les salons avec re-op/voice/etc si n&eacute;cessaire.</p>
<p><font class="set">set::options::hide-ulines;</font><br>
Si il est pr&eacute;sent, Les serveurs avec Uline seront cach&eacute;s dans une requête /links par les non-opers.</p>
<p><font class="set">set::options::flat-map;</font><br>
Si il est pr&eacute;sent, tous les serveurs apparaîtrons comme directement link&eacute;s dans /map et /links,
ainsi vous ne pourrez plus voir quel serveur est link&eacute; directement au quel. C'est une petite aide
contre les attaque (D)DoS parce que les personnes mal-intentionn&eacute;es ne peuvent plus voir
facilement les 'points faibles'.</p>
<p><font class="set">set::options::show-opermotd;</font><br>
Si il est pr&eacute;sent, l'opermotd sera montr&eacute; aux utilisateurs une fois qu'ils se seront /oper avec succ&egrave;s.</p>
<p><font class="set">set::options::identd-check;</font><br>
Si il est pr&eacute;sent, la pr&eacute;sence d'un serveur d'identd sera v&eacute;rifi&eacute;e et la valeur retourn&eacute;e
sera utilis&eacute;e comme username. Si aucune requête d'ident n'est retourn&eacute;e ou si le serveur
d'identd n'existe pas, l'username de l'utilisateur sp&eacute;cifi&eacute; sera pr&eacute;fix&eacute; d'un ~.
Si cette valeur est omise, aucune v&eacute;rification ne sera faite.</p>
<p><font class="set">set::options::show-connect-info;</font><br>
Si il est pr&eacute;sent, les notices "ident request", "hostname lookup", etc.
seront affich&eacute;es &agrave; la connexion de l'utilisateur..</p>
<p><font class="set">set::options::dont-resolve;</font><br>
Si il est pr&eacute;sent, les hosts des utilisateurs entrants ne seront pas r&eacute;solus,
peut être utile si beaucoup de vos utilisateur n'ont pas d'host pour acc&eacute;l&eacute;rer la connexion.<br>
Notez que depuis que le 'non resolving' existe vous pouvez &eacute;galement avoir des allow blocks bas&eacute;s sur les hosts.</p>
<p><font class="set">set::options::mkpasswd-for-everyone;</font><br>
Fait en sorte que le /mkpasswd puisse être utilis&eacute; par tout le monde &agrave; la place des opers uniquement,
l'usage de cette commande par les non-opers est envoy&eacute; aux EYES snomask.</p>
<p><font class="set">set::options::allow-part-if-shunned;</font><br>
Permet aux utilisateurs shun d'utiliser /part.</p>
<p><font class="set">set::options::fail-oper-warn;</font><br>
Si il est pr&eacute;sent, un utilisateur sera pr&eacute;venu que ca tentative de /oper manquée a &eacute;t&eacute; enregistr&eacute;e.</p>
<p><font class="set">set::dns::timeout &lt;timevalue&gt;;</font><br>
Une valeur de temps sp&eacute;cifie la dur&eacute;e qu'un serveur DNS a pour r&eacute;pondre.
Une valeur de temps est un num&eacute;rique avec d pour jour, h pour heure,
m pour minutes, et s pour secondes, par exemple 1d2h3m signifie 1 jour, 2 heures, 3 minutes.</p>
<p><font class="set">set::dns::retries &lt;number-of-retries&gt;;</font><br>
Une valeur num&eacute;rique sp&eacute;cifie le nombre de fois que la r&eacute;solution de DNS reprendra en cas d'&eacute;chec.</p>
<p><font class="set">set::dns::nameserver &lt;name-of-dns-server&gt;;</font><br>
Sp&eacute;cifie l'hostname du serveur qui sera utilis&eacute; pour la r&eacute;solution de DNS.</p>
<p><font class="set">set::dns::bind-ip &lt;ip&gt;;</font><br>
Sp&eacute;cifie l'ip à relier au r&eacute;solveur; presque jamais requis</p>
<p><font class="set">set::network-name &lt;name-of-network&gt;;</font><br>
Sp&eacute;cifie le nom du r&eacute;seau sur lequel ce serveur tourne.
Cette valeur devrait être exactement la même sur tous les serveurs d'un r&eacute;seau.</p>
<p><font class="set">set::default-server &lt;server-name&gt;;</font><br>
D&eacute;fini le nom au serveur par d&eacute;faut &agrave; indiquer aux utilisateurs pour se
connecter si celui-ci est remplis.</p>
<p><font class="set">set::services-server &lt;server-name&gt;;</font><br>
Sp&eacute;cifie le nom du serveur auquel les services sont connect&eacute;s. Obligatoire,
d&eacute;finissez le avec quelquechose comme services.yournet.com si vous n'avez pas de services.</p>
<p><font class="set">set::stats-server &lt;server-name&gt;;</font><br>
Établis le nom du serveur sur lequel le bot de statistique est pr&eacute;sent.Si aucun service de
statistique n'est lanc&eacute;, cette valeur peut être ignor&eacute;.</p>
<p><font class="set">set::help-channel &lt;network-help-channel&gt;;</font><br>
Sp&eacute;cifie le nom du channel d'aide du r&eacute;seau.</p>
<p><font class="set">set::cloak-keys { "key1"; "key2"; "key3"; };</font><br>
Sp&eacute;cifie les cl&eacute;s qui seront utilis&eacute;s pour g&eacute;n&eacute;rer les +x hosts.
Cette valeur doit être la même sur tous les serveurs d'un r&eacute;seau.
Si ce n'est pas le cas, les serveurs ne pourront plus linker.
Les 3 set::cloak-keys:: doivent être des strings de 5 &agrave; 100 caract&egrave;res
(10 &agrave; 20, c'est bien), elles doivent contenir des lowercases (a-z),
des uppercases (A-Z) et des chiffres (0-9). Noter que cela d&eacute;pend du module
de cloaking que vous utilisez, d'autres r&egrave;gles peuvent être appliqu&eacute;es.</p>
<p><font class="set">set::hiddenhost-prefix &lt;prefix-value&gt;;</font><br>
D&eacute;finis le pr&eacute;fix qui sera utilis&eacute; dans les hiddenhosts (+x).
Il est compos&eacute; g&eacute;n&eacute;ralement de trois ou quatre lettres qui repr&eacute;sente le nom du r&eacute;seau.</p>
<p><font class="set">set::hosts::local &lt;locop-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux op&eacute;rateurs locaux quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::global &lt;globop-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux op&eacute;rateurs globaux quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::coadmin &lt;coadmin-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux co-admins quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::admin &lt;admin-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux admins quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::servicesadmin &lt;servicesadmin-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux services-admins quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::netadmin &lt;netadmin-host-name&gt;;</font><br>
D&eacute;finie l'hostname qui sera assign&eacute; aux netadmins quand ils se mettent le umode +x.
Vous pouvez optionnellement specifier un username@host pour cette valeur.</p>
<p><font class="set">set::hosts::host-on-oper-up &lt;yes/no&gt;;</font><br>
Si vous mettez yes, le flag H/get_host sera honor&eacute; et le umode +x sera automatiquement
mis quand vous vous /oper. Si vous mettez no, l'utilisateur doit se mettre le umode +x
manuellement pour recevoir l'oper host.</p>
<p><font class="set">set::ssl::egd &lt;filename&gt;;</font><br>
Sp&eacute;cifie que le support de l'EGD (Entropy Gathering Deamon) devrait être activ&eacute;.
Si vous utilisez OpenSSL 0.9.7 ou une version post&eacute;rieure, alors /var/run/egd-pool,
/dev/egd-pool, /etc/egd-pool, et /etc/entropy seront recherch&eacute;s par d&eacute;faut donc aucun
nom de fichier n'est n&eacute;cessaire, vous pouvez simplement sp&eacute;cifier set::ssl::egd sans valeur.
Si vous utilisez une version d'OpenSSL ant&eacute;rieure &agrave; la 0.9.7 ou vous voulez utiliser
un socket EGD plac&eacute; ailleurs que dans la liste des emplacements list&eacute;s ci-dessus,
vous pouvez sp&eacute;cifier le nom de fichier de l'UNIX Domain Socket qu'un EGD &eacute;coute.</p>
<p><font class="set">set::ssl::certificate &lt;filename&gt;;</font><br>
Sp&eacute;cifie le nom de fichier où le certificat SSL du serveur est situ&eacute;.</p>
<p><font class="set">set::ssl::key &lt;filename&gt;;</font><br>
Sp&eacute;cifie le nom de fichier où la cl&eacute; priv&eacute;e SSL du serveur est situ&eacute;e.</p>
<p><font class="set">set::ssl::trusted-ca-file &lt;filename&gt;;</font><br>
Sp&eacute;cifie le nom de fichier où les certificats du trusted CAs sont situ&eacute;s.</p>
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
Force les clients n'ayant pas de certificat a être refus&eacute;.</p>
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
N'autorise par de connexion en provenance de personne ayant des certificats auto-sign&eacute;s.</p>
<p><font class="set">set::ssl::options::verify-certificate;</font><br>
Fais qu' Unreal d&eacute;termine si le certificat SSL est valide avant d'accepter la connexion.</p>
<p><font class="set">set::throttle::period &lt;timevalue&gt;</font><br>
Combien de temps un utilisateur doit attendre avant de ce reconnecter.</p>
<p><font class="set">set::throttle::connections &lt;amount&gt;;</font><br>
Combien de fois un utilisateur doit se connecter avec le même host pour être throttled. ( stopp&eacute; )</p>
<p><font class="set">set::ident::connect-timeout &lt;amount&gt;;</font><br>
Nombre de secondes avant de renoncer &agrave; la connexion au serveur d'ident (d&eacute;faut : 10s).</p>
<p><font class="set">set::ident::read-timeout &lt;amount&gt;;</font><br>
Nombre de secondes avant de renoncer &agrave; une r&eacute;ponse (d&eacute;faut : 30s).</p>
<p><font class="set">set::anti-flood::unknown-flood-bantime &lt;timevalue&gt;;</font><br>
Sp&eacute;cifie combien de temps une connexion inconnue d'un floodeur est bannie.</p>
<p><font class="set">set::anti-flood::unknown-flood-amount &lt;amount&gt;;</font><br>
Sp&eacute;cifie la quantit&eacute; de donn&eacute;es (en KiloBytes) que la connexion inconnue
doit envoyer pour que l'utilisateur soit kill&eacute;.</p>
<p><font class="set">set::anti-flood::away-flood &lt;count&gt;:&lt;period&gt;</font><br>
Protection contre le flood d'away : limite le nombre de /away par p&eacute;riodes en secondes.
Ceci r&eacute;clame que le NO_FLOOD_AWAY soit activ&eacute; dans le config.h. Exemple : <i>away-flood 5:60s;</i>
signifie maximum 5 changements en 60 secondes.</p>
<p><font class="set">set::anti-flood::nick-flood &lt;count&gt;:&lt;period&gt;</font><br>
Protection contre le NickFlood : limite le nombre de changements de pseudo par
p&eacute;riodes en secondes. Par exemple <i>nick-flood 4:90</i>
signifie 4 en 90 secondes, le d&eacute;faut est 3 en 60 secondes.</p>
<p><font class="set">set::default-bantime &lt;time&gt;</font><br>
Le bantime par d&eacute;faut quand vous faites /kline, /gline, /zline, /shun, etc sans param&egrave;tre
de temps (comme /gline *@some.nasty.isp), par d&eacute;faut, celui ci est permanent (0).
Exemple: <i>default-bantime 90d;</i></p>
<p><font class="set">set::modef-default-unsettime &lt;value&gt;</font><br>
Pour le chmode +f vous pouvez sp&eacute;cifier un unsettime par d&eacute;faut, si vous sp&eacute;cifiez 10 par exemple,
alors +f [5j]:15 sera transform&eacute; en [5j#i10]:15. La valeur par d&eacute;faut est pas d'unsettime par d&eacute;faut.</p>
<p><font class="set">set::modef-max-unsettime &lt;value&gt;</font><br>
Le nombre maximum de minutes pour un mode +f unsettime (in +f [5j#i<TIME>]:15),
c'est une valeur comprise entre 0 et 255. Par d&eacute;faut, ceci est &agrave; 60 (= 1 heure).</p>
<p><font class="set">set::ban-version-tkl-time &lt;value&gt;</font><br>
Si vous sp&eacute;cifiez une 'action' like zline/gline/etc dans les ban version, alors vous pouvez
sp&eacute;cifier ici combien de temps l'ip va être bannie, par d&eacute;faut, ceci est &eacute;tabli &agrave; 86400 (1 jour).</p>
<p><font class="set">set::spamfilter::ban-time &lt;value&gt;</font><br>
Même chose qu'au dessus mais pour les *lines ajout&eacute;s par le spamfilter</p>
<p><font class="set">set::spamfilter::ban-reason &lt;reason&gt;</font><br>
La raison utilis&eacute;e pour l'ajout de *lines par le spamfilter</p>
<p><font class="set">set::spamfilter::virus-help-channel &lt;channel&gt;</font><br>
Le salon a utiliser pour l'action 'viruschan' dans le spamfilter</p>
<p><font class="set">set::spamfilter::virus-help-channel-deny &lt;yes|no&gt;</font><br>
Si vous mettez yes (ou "1") cela enverra "invite only" &agrave; tous les utilisateurs normaux
essayant de rejoindre le virus-help-channel. Seul les op&eacute;rateurs, les personnes qui
r&eacute;sulte des spamfilters et les personnes qui sont /invite peuvent le rejoindre.</p>
<p><font class="set">set::spamfilter::except &lt;target(s)&gt;</font><br>
Ces cibles sont exempt&eacute;s du spamfilter ( aucune action sera entrepris ), cela peut être
une simple cible, ou une liste s&eacute;par&eacute; par des virgules. Ex: except "#help,#spamreport"</p>
<p></p> </div>
<p><b><font size="+2">5 &#8211; Fichiers additionnels<a name="addtlfiles"></a>
</font></b></p><div class="desc">
En plus des fichiers de configuration, Unreal compte quelques autres fichiers comme MOTD, OperMOTD, BotMOTD et les r&egrave;gles (Rules).
Ci-dessous ce trouve la liste des fichiers et leurs utilit&eacute;s.<br>
Notez que les fichiers motd (tous les types) et les fichiers de r&egrave;gles peuvent aussi être sp&eacute;cifi&eacute;s
dans un tld block, ce sont juste les fichiers utilis&eacute;s par d&eacute;fauts (et pour les remotes de MOTD / Rules).<p>&nbsp;
<table border="1" width="83%">
<tbody><tr>
<td>ircd.motd</td><td>Affich&eacute; lorsqu'un /motd est ex&eacute;cut&eacute; et (si ircd.smotd n'est pas pr&eacute;sent) lorsqu'un utilisateur se connecte</td>
</tr>
<tr>
<td>ircd.smotd</td><td>Affich&eacute; &agrave; la connexion uniquement (MOTD court)</td>
</tr>
<tr>
<td>ircd.rules</td><td>Affich&eacute; lorsqu'un /rules est ex&eacute;cut&eacute;</td>
</tr>
<tr>
<td>oper.motd</td><td>Affich&eacute; lorsqu'un /opermotd est ex&eacute;cut&eacute; ou lorsque vous tapez /oper</td>
</tr>
<tr>
<td>bot.motd</td><td>Affich&eacute; lorsqu'un /botmotd est ex&eacute;cut&eacute;</td>
</tr>
</tbody></table>
</p><p></p></div>
<p><b><font size="+2">6 &#8211; Modes des salons et des utilisateurs<a name="userchannelmodes"></a>
</font></b></p><div class="desc">
<table border="1" width="83%">
<tbody><tr>
<td><div align="center"><b>Mode</b></div></td>
<td><div align="center"><b>Description</b></div></td>
</tr>
<tr>
<td colspan="2"><div align="center"><b>Modes des salons</b></div></td>
</tr>
<tr>
<td><div align="center">A</div></td>
<td>Seul les administrateurs peuvent rejoindre le salon</td>
</tr>
<tr>
<td><div align="center">a &lt;nick&gt;</div></td>
<td>Rend l'utilisateur administrateur du salon</td>
</tr>
<tr>
<td><div align="center">b &lt;nick!user@host&gt;<br>
</div></td>
<td>Banni du salon l'utilisateur sp&eacute;cifi&eacute;</td>
</tr>
<tr>
<td><div align="center">c</div></td>
<td>Aucune couleur ANSI ne peut être envoy&eacute; sur le salon</td>
</tr>
<tr>
<td><div align="center">C</div></td>
<td>Aucun CTCP n'est accept&eacute; sur le salon</td>
</tr>
<tr>
<td><div align="center">e &lt;nick!user@host&gt;</div></td>
<td>Exception ban &#8211; L'utilisateur sp&eacute;cifi&eacute; peut rejoindre le salon même
si il en est banni</td>
</tr>
<tr>
<td><div align="center">f * &lt;lines:seconds&gt;</div></td>
<td>Flood protection, Si le * est sp&eacute;cifi&eacute;, un utilisateur sera kickban
si il envoie &lt;lines:seconds&gt; si le * n'est pas sp&eacute;cifi&eacute;, il sera juste kick&eacute;</td>
</tr>
<tr>
<td><div align="center">G</div></td>
<td>Contrôle les mots list&eacute;s dans les Badword Blocks
et les remplace par les mots sp&eacute;cifi&eacute;s. </td>
</tr>
<tr>
<td><div align="center">M</div></td>
<td>Seul les utilisateurs dont le pseudo est enregistr&eacute; (+r) peuvent parler sur le salon</td>
</tr>
<tr>
<td><div align="center">h &lt;nick&gt;</div></td>
<td>Donne le statut de half-op &agrave; l'utilisateur</td>
</tr>
<tr>
<td><div align="center">i</div></td>
<td>Le salon ne peut être rejoint que sous invitation</td>
</tr>
<tr>
<td><div align="center">K</div></td>
<td>/knock n'est pas autoris&eacute;</td>
</tr>
<tr>
<td><div align="center">k &lt;key&gt;</div></td>
<td>Attribue un mot de passe &agrave; sp&eacute;cifier pour rejoindre le salon</td>
</tr>
<tr>
<td><div align="center">l &lt;##&gt;</div></td>
<td>Sp&eacute;cifie le nombre maximum d'utilisateurs</td>
</tr>
<tr>
<td><div align="center">L &lt;Chan&gt;</div></td>
<td>Si le maximum sp&eacute;cifi&eacute; par +l est atteint, les utilisateurs seront redirig&eacute;s vers ce salon</td>
</tr>
<tr>
<td><div align="center">m</div></td>
<td>Salon mod&eacute;r&eacute;. Seuls les utilisateurs +v/h/o peuvent parler</td>
</tr>
<tr>
<td><div align="center">N</div></td>
<td>Aucun changement de pseudo n'est autoris&eacute;</td>
</tr>
<tr>
<td><div align="center">n</div></td>
<td>Aucune message ne peut être envoy&eacute; de l'ext&eacute;rieur du salon</td>
</tr>
<tr>
<td><div align="center">O</div></td>
<td>Seul les IRCops peuvent joindre le salon</td>
</tr>
<tr>
<td><div align="center">o &lt;nick&gt;</div></td>
<td>Donne le statut d'op&eacute;rateur &agrave; l'utilisateur</td>
</tr>
<tr>
<td><div align="center">p</div></td>
<td>Rend le salon priv&eacute; (n'apparaît plus dans la liste des salons)</td>
</tr>
<tr>
<td><div align="center">q &lt;nick&gt;</div></td>
<td>Rend l'utilisateur « owner » (propri&eacute;taire) du salon</td>
</tr>
<tr>
<td><div align="center">Q</div></td>
<td>Seul les U:Lined peuvent kicker les utilisateurs</td>
</tr>
<tr>
<td><div align="center">R</div></td>
<td>Seuls les utilisateurs enregistr&eacute;s peuvent rejoindre le salon</td>
</tr>
<tr>
<td><div align="center">S</div></td>
<td>Supprime toutes les couleurs</td>
</tr>
<tr>
<td><div align="center">s</div></td>
<td>Rend le salon secret (n'apparaît plus dans la liste des salons)</td>
</tr>
<tr>
<td><div align="center">t</div></td>
<td>Seuls les chanops peuvent changer le topic</td>
</tr>
<tr>
<td><div align="center">T</div></td>
<td>Aucune notice ne peut être envoy&eacute;e sur le salon</td>
</tr>
<tr>
<td><div align="center">u</div></td>
<td>Auditorium &#8211; Les commandes /names et /who #chan n'affichent que les op&eacute;rateurs </td>
</tr>
<tr>
<td><div align="center">V</div></td>
<td>/invite n'est pas autoris&eacute;</td>
</tr>
<tr>
<td><div align="center">v &lt;nick&gt;</div></td>
<td>Donne le statut de voice &agrave; l'utilisateur (peut parler quand le salon est mod&eacute;r&eacute;, +m)</td>
</tr>
<tr>
<td><div align="center">z</div></td>
<td>Seul les utilisateurs avec une connexion s&eacute;curis&eacute;e (SSL) peuvent joindre le salon</td>
</tr>
</tbody></table>
<p>&nbsp;</p>
<table border="1" width="75%">
<tbody><tr>
<td><div align="center"><b>Mode</b></div></td>
<td><div align="center"><b>Description</b></div></td>
</tr>
<tr>
<td colspan="2"><div align="center"><b>Modes des utilisateurs</b></div></td>
</tr>
<tr>
<td><div align="center">r</div></td>
<td>Identifie le pseudo comme &eacute;tant enregistr&eacute;</td>
</tr>
<tr>
<td><div align="center">s</div></td>
<td>Peut lire les server notices</td>
</tr>
<tr>
<td><div align="center">v</div></td>
<td>Re&ccedil;oit les notices de refus de DCC infect&eacute;s</td>
</tr>
<tr>
<td><div align="center">o</div></td>
<td>Global IRC Operator (d&eacute;fini par Oper Block)</td>
</tr>
<tr>
<td><div align="center">O</div></td>
<td>Local IRC Operator (d&eacute;fini par Oper Block)</td>
</tr>
<tr>
<td><div align="center">B</div></td>
<td>Vous renseigne comme &eacute;tant un bot</td>
</tr>
<tr>
<td><div align="center">i</div></td>
<td>Invisible (n'est pas montr&eacute; dans un /who)</td>
</tr>
<tr>
<td><div align="center">A</div></td>
<td>Server Admin (d&eacute;fini dans Oper Block)</td>
</tr>
<tr>
<td><div align="center">x</div></td>
<td>Donne &agrave; l'utilisateur un hostname cach&eacute;</td>
</tr>
<tr>
<td><div align="center">q</div></td>
<td>Seul les U:Lines peuvent vous kicker (Services Admin uniquement)</td>
</tr>
<tr>
<td><div align="center">a</div></td>
<td>Services Admin (d&eacute;fini dans Oper Block)</td>
</tr>
<tr>
<td><div align="center">g</div></td>
<td>Peut envoyer et lire les globops et locops</td>
</tr>
<tr>
<td><div align="center">H</div></td>
<td>Cache le status d'IRCop (IRCop uniquement)</td>
</tr>
<tr>
<td><div align="center">S</div></td>
<td>Utilis&eacute; pour prot&eacute;ger les Services Daemons</td>
</tr>
<tr>
<td><div align="center">t</div></td>
<td>Dis que vous utilis&eacute; un /vhost</td>
</tr>
<tr>
<td><div align="center">C</div></td>
<td>Co-Admin (d&eacute;fini dans Oper Block)</td>
</tr>
<tr>
<td><div align="center">d</div></td>
<td>Fait en sorte que vous ne puissiez pas recevoir de message provenant des channels</td>
</tr>
<tr>
<td><div align="center">N</div></td>
<td>Network Administrator (d&eacute;fini dans Oper Block)</td>
</tr>
<tr>
<td><div align="center">w</div></td>
<td>Peut lire les wallops</td>
</tr>
<tr>
<td><div align="center">h</div></td>
<td>Disponible pour aide (HelpOp) (d&eacute;fini dans Oper Block)</td>
</tr>
<tr>
<td><div align="center">G</div></td>
<td>Filtre tous les bad words d&eacute;finis par configuration</td>
</tr>
<tr>
<td><div align="center">W</div></td>
<td>Vous laisse voir quand quelqu'un vous /whois (IRCop uniquement)</td>
</tr>
<tr>
<td><div align="center">p</div></td>
<td>Cache les canaux sur lesquels vous êtes dans les /whois</td>
</tr>
<tr>
<td><div align="center">R</div></td>
<td>Vous permet de ne recevoir de messages priv&eacute;s et de notices que d'utilisateurs enregistr&eacute;s (+r)</td>
</tr>
<tr>
<td><div align="center">V</div></td>
<td>Vous marque comme un utilisateur de WebTV</td>
</tr>
<tr>
<td><div align="center">z</div></td>
<td>Indique que vous êtes un client SSL</td>
</tr>
<tr>
<td><div align="center">T</div></td>
<td>Vous empêche de recevoir des CTCPs</td>
</tr>
</tbody></table>
<p></p></div>
<p><font size="+2"><b>7 &#8211; Commandes utilisateurs et op&eacute;rateurs<a name="useropercommands" id="useropercommands"></a></b></font></p><div class="desc">
<p>Notez que la documentation fournie par /helpop est plus &agrave; jour, utilisez /helpop commande (ou /helpop ?commande si vous êtes oper)
pour avoir des informations sur une commande.</p>
<table border="1" width="90%">
<tbody><tr>
<td width="33%"><div align="center"><b>Commande</b></div></td>
<td width="57%"><div align="center"><b>Description</b></div></td>
<td width="10%"><div align="center"><b>Qui</b></div></td>
</tr>
<tr>
<td>nick &lt;newnickname&gt;</td>
<td>Change votre pseudo. Averti les autres de votre changement de pseudo<br></td>
<td>Tous</td>
</tr>
<tr>
<td>whois &lt;nick&gt;</td>
<td>Affiche les informations sur l'utilisateur cibl&eacute;. Inclus le pseudo, l'host, les salons sur lesquels il se trouve et son statut d'Oper.
Si vous êtes un IRCOP, vous avez acc&egrave;s &agrave; plus d'informations tel que les umodes de l'utilisateur.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">who &lt;mask&gt;</td>
<td>Vous permet de chercher des utilisateurs.
Masks inclus : pseudo, #salon, hostmask (*.attbi.com)<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">whowas &lt;nick&gt; &lt;max de r&eacute;ponses&gt;</td>
<td>Affiche les informations sur un pseudo qui n'est plus connect&eacute;.
Le nombre maximum de r&eacute;ponses est facultatif et limite le nombre d'enregistrements qui seront retourn&eacute;s<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">ison &lt;nick1 nick2 nick3 ...&gt;</td>
<td>Vous permet de v&eacute;rifier qu'un utilisateur (ou plusieurs) est connect&eacute;.
R&eacute;ponse simple, meilleur usage pour les scripts.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">join &lt;channel1,channel2, ...&gt;</td>
<td>Vous permet de rejoindre des salons. Utiliser /join #salon1,#salon2,#salon3
vous permettra de rejoindre plus d'un salon en une fois. La commande /join 0 vous
fait partir (PART) de tous les salons.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">cycle &lt;channel1, channel2, ...&gt;</td>
<td>Cycle les salons sp&eacute;cifi&eacute;s. Cette commande &eacute;quivaut &agrave; faire un PART suivi d'un JOIN.
( Pour les utilisateurs de mIRC, la commande /hop est &eacute;quivalente )</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">motd &lt;server&gt;</td>
<td>Affiche le motd ( Message Of The Day ) du serveur. Vous pouvez sp&eacute;cifier un nom de
serveur si vous souhaitez voir le motd d'un serveur particulier sur un r&eacute;seau.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">rules &lt;server&gt;</td>
<td>Affiche le ircd.rules d'un serveur. Ajouter le nom d'un serveur. Vous pouvez sp&eacute;cifier un nom
de serveur si vous souhaitez voir le ircd.rules d'un serveur particulier sur un r&eacute;seau.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">lusers &lt;server&gt; </td>
<td>Affiche le nombre actuel et maximum d'utilisateurs, en global et local. Vous pouvez sp&eacute;cifier
un nom de serveur si vous souhaitez voir les statistiques d'un serveur particulier sur un r&eacute;seau.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">map</td>
<td>Affiche la carte (map) du r&eacute;seau</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">quit &lt;reason&gt;</td>
<td>Vous d&eacute;connecte du serveur. Si vous ajoutez une raison,
elle sera affich&eacute;e sur tous les salons, lorsque vous quitterez.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">ping &lt;user&gt;</td>
<td>Envoie une requête de PING &agrave; l'utilisateur. Utilis&eacute; pour v&eacute;rifier une connexion et son lag.
Les serveurs envoient des pings &agrave; des moments d&eacute;termin&eacute;s pour v&eacute;rifier que les utilisateurs
sont toujours connect&eacute;s. <br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">version &lt;nick&gt;</td>
<td>Cela envoie une requête de CTCP Version &agrave; l'utilisateur.
Si il est configur&eacute; pour, le client renverra sa version en r&eacute;ponse.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">links</td>
<td>Affiche la liste de tous les serveurs reli&eacute;s au r&eacute;seau.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">Admin &lt;server&gt;</td>
<td>Affiche les "admin info" du serveur. Si un nom de serveur est inclus,
il affichera les infos de ce serveur.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">userhost &lt;nick&gt;</td>
<td>Affiche les userhost du pseudo sp&eacute;cifi&eacute;. G&eacute;n&eacute;ralement utilis&eacute; pour les scripts.<br></td>
<td>All</td>
</tr>
<tr>
<td height="39">topic &lt;salon&gt; &lt;topic&gt;</td>
<td>Topic &lt;salon&gt; affichera le topic courrant du salon sp&eacute;cifi&eacute;. Topic
&lt;salon&gt; &lt;topic&gt; changera le topic du salon sp&eacute;cifi&eacute;.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">invite &lt;nick&gt; &lt;channel&gt;</td>
<td>Invite l'utilisateur sp&eacute;cifi&eacute; &agrave; rejoindre le salon sp&eacute;cifi&eacute;. (Vous devez être channel Op)<br></td>
<td>ChanOp</td>
</tr>
<tr>
<td height="39">kick &lt;channel, channel&gt; &lt;user, user&gt; &lt;reason&gt;</td>
<td>Kick le ou les utilisateurs sp&eacute;cifi&eacute;s du ou des salons sp&eacute;cifi&eacute;s.
Une raison peut &eacute;galement être pr&eacute;cis&eacute;e.<br></td>
<td>ChanOp</td>
</tr>
<tr>
<td height="39">away &lt;raison&gt;</td>
<td>Vous marque comme &eacute;tant absent. Une raison peut &eacute;galement être sp&eacute;cifi&eacute;e.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">Watch +-&lt;nick&gt; +-&lt;nick&gt;<br></td>
<td>Watch est un nouveau syst&egrave;me de "notify-type" dans UnrealIRCd qui est en même
temps plus rapide et moins gourmant en ressources du r&eacute;seau qu'aucun autre ancien
syst&egrave;me de notify. Le serveur vous envoye un message lorsqu'un pseudo de votre
watch list se connecte ou se d&eacute;connecte. La watch list NE RESTE PAS ENTRE 2
SESSIONS - vous (ou votre script ou client) devez ajouter les pseudos dans la watch
list &agrave; chaque fois que vous vous connectez sur un serveur IRC.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">helpop ?&lt;topic&gt; ou !&lt;topic&gt;<br></td>
<td>HelpOp est un nouveau syst&egrave;me pour avoir l'aide d'un serveur IRC.
Vous tapez soit /HELPOP ? &lt;sujet du syst&egrave;me d'aide&gt; ou /HELPOP ! &lt;question&gt;
Le "?" dans /HELPOP veut dire interroger le syst&egrave;me d'aide et si vous n'avez pas de r&eacute;ponse,
"!" enverra la question &agrave; un Op&eacute;rateur connect&eacute;. Utiliser ? et ! signifie que la question
sera d'abord envoy&eacute;e au syst&egrave;me d'aide et que si aucune r&eacute;ponse n'est trouv&eacute;e, elle sera
envoy&eacute;e &agrave; un Op&eacute;rateur.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">list &lt;&eacute;l&eacute;ment recherch&eacute;&gt;</td>
<td>
Si vous ne sp&eacute;cifiez pas d'&eacute;l&eacute;ment recherch&eacute;, par d&eacute;faut toute la liste des salons vous serra envoy&eacute;e.
Ci-dessous, les options que vous pouvez utiliser, et ce que la liste des salons vous reverra lorsque
vous les utiliserez.<br>
&gt;nombre affichera la liste des salons comptant plus de &lt;nombre&gt; utilisateurs.<br>
&lt;nombre affichera la liste des salons comptant moins de &lt;nombre&gt; utilisateurs.<br>
C&gt;nombre affichera les salons cr&eacute;&eacute;s depuis &lt;nombre&gt; minutes<br>
C&lt;nombre affichera les salons cr&eacute;&eacute;s avant &lt;nombre&gt; minutes.<br>
T&gt;nombre affichera les salons dont le topic n'a plus &eacute;t&eacute; chang&eacute; depuis au moins &lt;nombre&gt; minutes
(Ie., ils n'ont pas chnag&eacute;s dans les derni&egrave;res &lt;nombre&gt; minutes.<br>
T&lt;nombre affichera les salons dont le topic a &eacute;t&eacute; chang&eacute; depuis moins de &lt;nombre&gt; minutes.<br>
*mask* affichera les salons comprennant *mask*<br>
!*mask* affichera les salons ne comprennant pas *mask*<br> </td>
<td>Tous</td>
</tr>
<tr>
<td height="39">Knock &lt;salon&gt; &lt;message&gt;<br></td>
<td>Vous permet de &#8216;frapper &agrave; la porte&#8217; d'un salon sous
invitation pour demander le droit de le rejoindre. Ne fonctionnera
pas sur les salons ayant les modes suivants : +K +V. Ne fonctionnera
pas non plus si vous êtes banni. <br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">setname</td>
<td>Permet aux utilisateurs de changer leur &#8216;Real Name&#8217; sans avoir &agrave; se reconnecter.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">vhost &lt;login&gt; &lt;mot de passe&gt;</td>
<td>Cache votre host en utilisant une vhost fournie par le serveur.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">mode &lt;salon/pseudo&gt; &lt;mode&gt;<br></td>
<td>Vous permet de changer les modes des salons et des utilisateurs. Voir
<a href="#userchannelmodes">Modes des salons et des utilisateurs</a> pour avoir la liste.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">credits</td>
<td>Affiche la liste de toutes les personnes ayant aider &agrave; cr&eacute;er UnrealIRCd.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">license</td>
<td>Affiche la licence GNU.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">time &lt;server&gt;</td>
<td>Affiche la date et l'heure du serveur. Sp&eacute;cifier un nom de serveur
vous permet d'interroger un autre serveur.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">botmotd &lt;server&gt;<br></td>
<td>Affiche le motd du serveur de bot. Sp&eacute;cifier un nom de serveur
vous permet d'interroger un autre serveur.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">identify &lt;mot de passe&gt;</td>
<td>Envoie votre mot de passe aux services pour identifier votre pseudo.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">identify &lt;salon&gt; &lt;mot de passe&gt;</td>
<td>Envoie votre mot de passe aux services pour vous identifier en tant
que "founder" (fondateur) d'un salon.<br></td>
<td>Tous</td>
</tr>
<tr>
<td height="39">dns &lt;option&gt;</td>
<td>Renvoie les informations concernant les DNS cache du serveur IRC.
Notez que depuis, certains clients ont leur propre commande DNS, vous pourrez
alors utiliser /raw DNS. Les Op&eacute;rateurs peuvent sp&eacute;cifier un "l" comme premier
param&egrave;tre dans la commande pour recevoir une liste d'entr&eacute;e dans le DNS cache.</td>
<td>Tous</td>
</tr>
<tr>
<td height="39">oper &lt;login&gt; &lt;mot de passe&gt;<br></td>
<td>Commande pour donner le status d'Op&eacute;rateur &agrave; un utilisateur si les sp&eacute;cifications correspondent &agrave; un Oper Block.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">wallops &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les utilisateurs +w</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">globops &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les IRCops</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">chatops &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les IRCops ayant le mode +c</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">locops &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les IRCops locaux</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">adchat &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les Admins</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">nachat &lt;message&gt;</td>
<td>Envoie un message &agrave; tous les Net Admins</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">kill &lt;nick&gt; &lt;raison&gt;</td>
<td>Kill l'utilisateur du r&eacute;seau</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">kline [+|-]&lt;user@host | nick&gt; [&lt;dur&eacute;e du ban&gt; &lt;raison&gt;]</td>
<td>Bannir le hostmask du serveur sur lequel la commande a &eacute;t&eacute; utilis&eacute;e. Une kline n'est pas un ban global.<br>
<b>La dur&eacute;e du ban</b> peut être: a) une valeur en seconde, b) une dur&eacute;e, comme "1d" pour un jour (day) c) "0" pour permanent.
Le temps et la raison son optionnels, si rien n'est sp&eacute;cifi&eacute;, ce sera set::default-bantime (d&eacute;faut : 0 / permanent) et "no reason" qui seront utilis&eacute;s.<br>
Pour enlever une kline, utilisez /kline -user@host.</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">zline [+|-]&lt;*@ip&gt; [&lt;dur&eacute;e du ban&gt; &lt;raison&gt;]</td>
<td>Banni une adresse ip du serveur locals sur lequel la commande a &eacute;t&eacute; utilis&eacute;e (pas global). Regardez kline pour plus d'informations.
Utilisez /zline -*@ip pour l'enlever.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">gline [+|-]&lt;user@host | nick&gt; [&lt;dur&eacute;e du ban&gt; &lt;raison&gt;]<br></td>
<td>Ajoute un ban global sur l'utilisateur sp&eacute;cifi&eacute;. Regardez kline pour plus d'informations.
Utilisez /gline -user@host pour l'enlever.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">shun [+|-]&lt;user@host | nick&gt; [&lt;dur&eacute;e du shun&gt; &lt;raison&gt;]<br></td>
<td>Empêche un utilisateur d'utiliser n'importe quelle commande et de parler. Les shuns sont globaux (comme les glines).
Regardez kline pour plus d'informations.
Utilisez /shun -user@host pour l'enlever.
<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">gzline [+|-]&lt;ip&gt; &lt;dur&eacute;e du ban&gt; :&lt;raison&gt;<br></td>
<td>Ajoute une zline globale. Regardez kline pour plus d'informations.
Utilisez /gzline -*@ip pour l'enlever.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">rehash &lt;server&gt; &#8211;&lt;flags&gt;</td>
<td>Rehash le fichier de configuration des serveurs. Sp&eacute;cifier un nom de serveur, vous permet de
rehasher le fichier de configuration d'un serveur distant.
De nombreux flags sont disponibles. Ils incluent :<br>
-motd - rehash uniquement les fichiers MOTD et RULES (incluant tld {})<br>
-opermotd - rehash uniquement le fichier OPERMOTD<br>
-botmotd - rehash uniquement le fichier BOTMOTD<br>
-garbage - Force garbage collection<br>
</td><td>IRCop</td>
</tr>
<tr>
<td height="39">restart &lt;server&gt; &lt;mots de passe&gt;<br></td>
<td>Relance l'IRCD Process. Le mot de passe est requis. Vous devez aussi
sp&eacute;cifier un nom de serveur pour relancer un serveur distant.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">die &lt;mots de passe&gt;<br></td>
<td>Arrête un IRCD Process. Le mot de passe est requis.</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">lag &lt;server&gt; <br></td>
<td>Cette commande est comme un Sonar ou un Traceur pour serveur IRC.
Vous tapez /LAG irc.rs2i.net et il a mis pour trouver un serveur et donc
le fait qu'il fonctionne. Utile lorsque vous cherchez d'ou viens le lag et
en option les TS futurs et pass&eacute;s.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">sethost &lt;nouveau host&gt;</td>
<td>Vous permet de changer votre vhost.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">setident &lt;nouvel ident&gt;<br></td>
<td>Vous permet de changer votre ident.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">chghost &lt;nick&gt; &lt;nouvel host&gt;<br></td>
<td>Vous permet de changer votre l'hostname d'un utilisateur connect&eacute;.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">chgident &lt;nick&gt; &lt;nouvel ident&gt;<br></td>
<td>Vous permet de changer votre l'ident d'un utilisateur connect&eacute;.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">chgname &lt;nick&gt; &lt;nouveau nom&gt;<br></td>
<td>Vous permet de changer votre le realname d'un utilisateur connect&eacute;.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">squit &lt;server&gt;<br></td>
<td>D&eacute;connecte un serveur du r&eacute;seau.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">connect &lt;server&gt; &lt;port&gt; &lt;server&gt;</td>
<td>Si un seul serveur est pr&eacute;cis&eacute;, le serveur sur lequel vous êtes va tenter de se connecter
au serveur sp&eacute;cifi&eacute;. Si 2 serveurs sont pr&eacute;cis&eacute;s, ils vont tenter de se connecter l'un &agrave; l'autre.
Mettre le hub en deuxi&egrave;me position.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">dccdeny &lt;filemask&gt; &lt;reason&gt;<br></td>
<td>Ajoute un DCCDENY pour ce filemask. Empêche ce fichier d'être envoy&eacute;.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">undccdeny &lt;filemask&gt;<br></td>
<td>Enl&egrave;ve un DCCDENY</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">sajoin &lt;nick&gt; &lt;channel&gt;, &lt;channel&gt;<br></td>
<td>Force l'utilisateur &agrave; joindre le, les salons. Accessible par les services et network
admins seulement.</td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">sapart &lt;nick&gt; &lt;channel&gt;, &lt;channel&gt;<br></td>
<td>Force l'utilisateur &agrave; partir du, des salons. Accessible par les services et network
admins seulement.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">samode &lt;channel&gt; &lt;mode&gt;<br></td>
<td>Permet aux services et network admins de changer les modes d'un salon sans
en être ChanOp.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">rping &lt;servermask&gt;<br></td>
<td>Calcule en millisecondes le lag entre les serveurs.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">trace &lt;servermask|nickname&gt;<br></td>
<td>Quand elle est utilis&eacute;e sur un utilisateur, elle vous donnera les informations sur la classe et le lag.
Si elle est utilis&eacute;e sur un serveur, elle vous donnera les informations sur le classe, la version et le link.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">opermotd <br></td>
<td>Affiche le fichier OperMotd des serveurs.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="39">addmotd :&lt;text&gt;<br></td>
<td>Ajoute le texte donn&eacute; &agrave; la fin du Motd<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">addomotd :&lt;text&gt;<br></td>
<td>Ajoute le texte donn&eacute; &agrave; la fin du OperMotd<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">sdesc &lt;nouvelle description&gt;<br></td>
<td>Permet aux server admins de changer la description de leur serveur
sans avoir a le relancer.<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">addline &lt;texte&gt;<br></td>
<td>Vous permet d'ajouter des lignes &agrave; unrealircd.conf<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">mkpasswd &lt;mots de passe&gt;<br></td>
<td>Va encrypter un mot de passe pour l'ajouter dans le unrealircd.conf<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">tsctl offset +/- &lt;time&gt;<br></td>
<td>Ajuste l'horloge interne de l'IRCD (NE PAS utiliser si vous ne savez pas exactement
ce que vous faites).<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">tsctl time<br></td>
<td>Donnera un TS Report.</td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">tsctl alltime</td>
<td>Donnera un TS Report de tous les serveurs.</td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">tsctl svstime &lt;timestamp&gt;<br></td>
<td>Applique le temps TS &agrave; tous les serveurs (NE PAS utiliser si vous ne savez pas
exactement ce que vous faites).<br></td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">htm &lt;option&gt;<br></td>
<td>R&eacute;glages relatifs au mode "high traffic". Le mode "high traffic" (HTM)
d&eacute;sactive certaines commandes comme : list, whois, who, etc. en r&eacute;ponse &agrave; un
traffic important sur le serveur. Les options sont :<br>
-ON Force le passage du serveur en HTM <br>
-OFF Force la sortie du serveur du HTM <br>
-NOISY Active l'avertissement des utilisateurs / admins lorsque le serveur entre / sort du HTM<br>
-QUIT D&eacute;sactive l'avertissement des utilisateurs / admins lorsque le serveur entre / sort du HTM<br>
-TO &lt;valeur&gt; Dis au HTM, &agrave; quel taux il doit s'activer<br> </td>
<td>IRCop</td>
</tr>
<tr>
<td height="36">stats &lt;option&gt;<br></td>
<td>
B - banversion - envoie la liste des versions de ban<br>
b - badword - envoie la liste des mots censur&eacute;s<br>
C - link - envoie la liste des link block <br>
d - denylinkauto - envoie la liste des links block (auto) interdits<br>
D - denylinkall - envoie la liste des links block (tous) interdits<br>
e - exceptthrottle - envoie la liste des except throttle block <br>
E - exceptban - envoie des except ban block<br>
f - spamfilter - envoie la liste des spamfilter<br>
F - denydcc - envoie la liste des deny dcc block<br>
G - gline - envoie la liste des gline <br>
&nbsp;&nbsp;Flags secondaires: [+/-mrs] [masque] [raison] [mis par]<br>
&nbsp;&nbsp;&nbsp;&nbsp;m Renvoie les glines contenant / ne contenant pas la mask sp&eacute;cifi&eacute; <br>
&nbsp;&nbsp;&nbsp;&nbsp;r Renvoie les glines dont la raison est / n'est pas celle sp&eacute;cifi&eacute;e<br>
&nbsp;&nbsp;&nbsp;&nbsp;s Renvoie les glines mis / n'ont mis par la personne sp&eacute;cifi&eacute;e<br>
I - allow - envoie la liste des allow block<br>
j - officialchans - envoie la liste des salons officiels<br>
K - kline - envoie la liste des ban user / ban ip / except ban<br>
l - linkinfo - envoie les informations sur le link<br>
L - linkinfoall - envoie les informations sur les links<br>
M - command - envoie le nombre de fois que les commandes ont &eacute;t&eacute; utilis&eacute;es<br>
n - banrealname - envoie la liste des ban realname block<br>
O - oper - envoie la liste des oper block<br>
S - set - envoie la liste des set block<br>
s - shun - envoie la liste des shuns<br>
&nbsp;&nbsp;Flags secondaires: [+/-mrs] [masque] [raison] [mis par]<br>
&nbsp;&nbsp;&nbsp;&nbsp;m Renvoie les glines contenant / ne contenant pas la mask sp&eacute;cifi&eacute; <br>
&nbsp;&nbsp;&nbsp;&nbsp;r Renvoie les glines dont la raison est / n'est pas celle sp&eacute;cifi&eacute;e<br>
&nbsp;&nbsp;&nbsp;&nbsp;s Renvoie les glines mis / n'ont mis par la personne sp&eacute;cifi&eacute;e<br>
P - port - envoie les informations concernant les ports<br>
q - sqline - envoie la liste des SQLINE<br>
Q - bannick - envoie la liste des ban nick block <br>
r - chanrestrict - envoie la liste des chans deny / allow block<br>
R - usage - envoie les informations d'usage<br>
t - tld - envoie la liste des tld block<br>
T - traffic - envoie les informations sur le traffic<br>
u - uptime - envoie l'uptime du serveur et le nombre de connections<br>
U - uline - envoie la liste des ulines block<br>
v - denyver - envoie la liste des deny version block<br>
V - vhost - envoie la liste des vhost block<br>
X - notlink - envoie le liste des serveurs qui ne sont pas actuellement link&eacute;s<br>
Y - class - envoie la liste des class block<br>
z - zip - envoie les informations sur la compression des serveurs ziplinked (si ils ont &eacute;t&eacute; compil&eacute;s avec le support ziplink)<br>
Z - mem - envoie les informations sur la m&eacute;moire utilis&eacute;e<br>
</td>
<td>Tous</td>
</tr>
<tr>
<td height="36">module<br></td>
<td>
Liste tous les modules charg&eacute;s
</td>
<td>Tous</td>
</tr>
<tr>
<td height="36">close<br></td>
<td>
Cette commande d&eacute;connectera toutes les connections inconnues du serveur IRC.
</td>
<td>IRCOp</td>
</tr>
</tbody></table>
<p></p></div>
<p><font size="+2"><b>8 &#8211; Conseils de s&eacute;curit&eacute;/checklist<a name="security"></a></b></font></p>
<div class="desc">
<p>Si vous êtes concern&eacute;s par la s&eacute;curit&eacute;, et vous le devriez, cette section vous donnera un aper&ccedil;u
des risques possibles et leurs niveaux de sensibilit&eacute;. Vous pouvez &eacute;galement utiliser celle-ci
comme une checklist pour parcourir la configuration de votre r&eacute;seau et le rendre plus s&eacute;curis&eacute;.</p>
<p>Cette liste est ordonn&eacute;e suivant la popularit&eacute;, le niveau de risque et les m&eacute;thodes les plus souvent utilis&eacute;es :</p>
</div><p></p>
<p><b><font size="+2">8.1 Mots de passe</font></b><a name="secpasswords"></a><br></p><div class="desc">
Choisissez de bons mots de passe oper, link, etc. :<br>
- m&eacute;langez les lettres (majuscules et minuscules) et les chiffres ("Whbviwf5") et/ou quelque chose de long ("blaheatsafish", "AlphaBeta555").<br>
- N'UTILISEZ PAS vos mots de passe oper, link pour autre chose comme votre compte mail, bot, forums, etc ...<br>
</div><p></p>
<p><b><font size="+2">8.2 Vuln&eacute;rabilit&eacute;s non li&egrave;es &agrave; l'IRCd</font></b><a name="secnonircd"></a><br></p><div class="desc">
Il y a beaucoup plus de chance qu'un serveur se fasse pirater &agrave; cause d'une vuln&eacute;rabilit&eacute; non-ircd qu'&agrave; cause
d'un bug UnrealIRCd. Si vous faites tourner sur la même machine des serveurs http, dns, smpt ou ftp par exemple,
vous avez de plus grands risques. Aussi, si vous êtes sur une machine Multi-Utilisateurs (ex. : vous louez un shell)
il y a des risques de failles locales ou mauvaises permissions (voir plus loin). Le risque est grand donc soyez prudent
lors du choix de votre loueur de shell.
</div><p></p>
<p><b><font size="+2">8.3 Permissions et fichier de configuration</font></b><a name="secpermissions"></a><br></p><div class="desc">
Soyez toujours sur que vos dossiers home et UnrealIRCd ont des permissions correctes,
les autres groupes ne doivent pas avoir la permission de les lire. Sinon un utilisateur local pourra
ouvrir votre configfile (fichier de configuration) et chercher les mots de passe ...
Vous pouvez faire : <i>chmod -R go-rwx /path/to/Unreal3.2</i> si vous n'en êtes pas sûr.<br>
Autres choses dans le même style : ne mettez jamais votre UnrealIRCd dans un webroot ou un autre type de fichier partag&eacute;.
Et pour les backups (sauvegardes), assurez vous qu'elles aient les bonnes permissions &eacute;galement (il arrive assez souvent
que tout est bien s&eacute;curis&eacute; mais qu'il y a un backup.tar.gz quelque part lisible par tout le monde).<br>
<br>
Vous voulez probablement &eacute;galement crypter les mots de passe lorsque ce sera possible, si vous compilez avec le support de OpenSSL
(Ce que vous faites depuis que vous êtes interess&eacute; par les probl&agrave;mes de s&eacute;curit&eacute;, n'est-ce pas ?)
je vous sugg&agrave;re donc d'utiliser l'encrytion des mots de passe en <i>sha1</i> ou <i>ripemd160</i>, ou encore <i>md5</i>.
Si il vous reste encore des oper block encrypté avec Unreal3.2.1 ou avant, je vous sugg&agrave;re de r&eacute;-encrypter ceux-ci
(r&eacute;utilisez juste /mkpasswd), car 3.2.1 introduit certaines caract&eacute;ristiques anti-cracks int&eacute;r&eacute;ssantes
(basiquement une diminution de 14x la vitesse de crack et rend impossible le crack par stored-plain-ciphertext)<br>
Notez que même si ceci n'est "qu'une autre couche de s&eacute;curit&eacute;", beaucoup de mots de passe faibles
peuvent être craqu&eacute;s facilement, et si quelqu'un s'empare de votre fichier de configuration, il pourra y trouver des
choses int&eacute;r&eacute;ssante pour planifier une attaque comme link::password-connect.
</div><p></p>
<p><b><font size="+2">8.4 Probl&egrave;mes li&eacute;s aux utilisateurs</font></b><a name="secuser"></a><br></p><div class="desc">
Tout comme beaucoup des choses dites ici, ceci n'est pas sp&eacute;cifique &agrave; UnrealIRCd, mais ...<br>
Choisissez toujours bien vos opers et admins. Et rappelez-vous le concept du maillon faible.
Même si vous êtes prudents et suivez la documentation, peut-être qu'un de vos amis oper fera quelque chose de stupide.
Comme partager son disque dur via netbios/kazaa/morpheus/..., avoir un trojan, utiliser un mauvais mot de passe, etc etc ...
Malheureusement, ce n'est pas toujours sous votre contrôle.<br>
Une chause que vous pouvez tout de fois faire est choisir soigneusement quels privilèges dont chacun a besoin (oper::flags).
</div></p>
<p><b><font size="+2">8.5 SSL/SSH &amp; sniffing</font></b><a name="secsnif"></a><br></p><div class="desc">
Utilisez des connections SSL entre les serveurs et pour les opers, cela vous prot&egrave;gera cointre le "sniffing".
Le sniffing est possible si quelqu'un attaque un serveur entre vous et votre serveur ircd, il pourra voir
tout votre traffic qui passe par ce serveur; lire les conversations, r&eacute;cup&eacute;rer les mots de passe
(les logins oper, nickserv, etc ...) ... Pour les mêmes raisons, utilisez toujours ssh &agrave; la place de telnet.
</div><p></p>
<p><b><font size="+2">8.6 Denial of Service attacks (DoS) [ou: comment prot&eacute;ger mon hub]</font></b><a name="secDoS"></a><br></p><div class="desc">
Beaucoup de r&eacute;seaux ont exp&eacute;riment&eacute; combien &eacute;tait "fun" un flood ou une (D)DoS attaque, vous pouvez
toutes fois faire certaines choses permettant d'en r&eacute;duire les dommages. La plupart des r&eacute;seaux ont
un serveur hub, ce que certaines personnes oublient, c'est qu'il est assez facile de prot&egrave;ger le hub contre des attaques.<br>
Je vais l'expliquer ici :<br>
1. Choissisez pour le hub un hostname qui n'existe pas (ex. : hub.yournet.com), mais n'ajoutez<br>
&nbsp;&nbsp;&nbsp; pas un enregistrement de dns pour lui.<br>
&nbsp;&nbsp;&nbsp; De cette mani&egrave;re, un attaquant ne pourra r&eacute;soudre ni resoudre son host, ni le flooder.<br>
&nbsp;&nbsp;&nbsp; Ensuite, linkez vos serveurs au hub en sp&eacute;cifiant l'ip ou un hostname non publique<br>
&nbsp;&nbsp;&nbsp; Exemple 1: <i>link visibiblename.yournet.com { hostname 194.15.123.16; [etc] };</i>.<br>
&nbsp;&nbsp;&nbsp; Exemple 2: <i>link visibiblename.yournet.com { hostname thehostnamethatworks.yournet.com; [etc] };</i>.<br>
&nbsp;&nbsp;&nbsp; Remarque : pour le dernier exemple, vous devez être sûr que votre nom de serveur ne permet pas de zones de transfert, mais ceci nous &eacute;loigne du sujet.<br>
2. Une autre &eacute;tape importante est alors de cacher "/stats c" et autres informations "stats" sinon les attaquants<br>
&nbsp;&nbsp;&nbsp; pourront simplement lister vos links blocks. Si vous êtes paranoyaque,vous pouvez simplement faire :<br>
&nbsp;&nbsp;&nbsp; set { oper-only-stats "*"; }; pour restreindre l'utulisation de tous les /stats.<br>
&nbsp;&nbsp;&nbsp; Si vous ne voulez pas cela, cachez seulement "CdDlLXz". Vous en verrez plus sur ce sujet dans la section suivante.<br>
<br>
Évidemment, ces &eacute;tapes sont moins utiles si elles sont appliqu&eacute;es ult&eacute;rieurement (ex.: apr&egrave;s quelques mois)<br>
Au lieux de d&egrave;s le d&eacute;but puisque l'IP peut d&eacute;j&agrave; être connu de quelqu'un de malveillant, jusqu'&agrave; ... Ça vaut la peine de le faire.<br>
Notez aussi que les attaquants peuvent toujours flooder les serveurs qui ne sont pas des Hubs,<br>
mais cela demande plus d'efforts que juste attaquer 1 ou 2 points faibles (les hubs), aussi de cette mani&egrave;re vos hubs et
services resteront saufs :).<br>
</div><p></p>
<p><b><font size="+2">8.7 Conseil sur la divulgation d'informations</font></b><a name="secinformation"></a><br></p><div class="desc">
<b>STATS</b><br>
La commande /stats fournit beaucoup d'informations, vous voulez probablement restreindre son usage le plus possible.
Une question que vous devez vous poser est "Qu'est ce que je veux que mes utilisateurs voient ?".
La plupart des gros r&eacute;seaux choisissent "rien", lorsque d'autres pr&eacute;f&egrave;rent que leurs clients puisse faire "/stats g" et "/stats k".<br>
Je vous sugg&egrave;re d'utiliser <i>set { oper-only-stats "*"; };</i> pour empêcher tous /stats pour les non-opers,
mais si vous ne voulez pas cela, inspectez la liste des "/stats" et emp&egrave;chez l'acc&egrave;s &agrave; tous ce que vous voulez...
(en cas de doute, emp&egrave;cher... Pourquoi auraient-ils besoin de savoir cela ?<br>
Pour vous donner quelques exemples :<br>
- /stats o: vous donne le noms des opers (avec la 'case' correcte) et leurs hostmasks.<br>
- /stats c: vous donne une id&eacute;e des links et qui peut être utilis&eacute;e comme backup, etc ...<br>
- /stats g, /stats k: en g&eacute;n&eacute;ral utilis&eacute;s pour bannir les proxys ... donc cela donnera juste aux attaquants
une liste de proxys qu'ils peuvent utiliser.<br>
- /stats E, /stats e: informations plut sensibles, sp&eacute;cialement si un attaquant peut utiliser ces adresses.<br>
- /stats i, /stats y: peut aider un attaquant &agrave; trouver des hosts permettant beaucoup de connections.<br>
- /stats P: aide &agrave; trouver des ports serveronly<br>
etc etc...<br>
<br>
<b>MAP / LINKS</b><br>
Beaucoup de personnes ont demand&eacute; si il &eacute;tait possible de d&eacute;sactiver /map ou /links.
Notre position sur ce sujet est que c'est bête et donne un mauvais sens &agrave; la s&eacute;curit&eacute;, laissez moi vous expliquer...
Cacher les serveurs sur lesquels les utilisateurs sont connect&eacute;s est inutile vu qu'ils les connaissent d&eacute;j&agrave;
(sinon comment s'y seraient-ils connect&eacute;s ?).
Pour les serveurs sur lesquels vous ne voulez aucuns utilisateurs, reportez vous &agrave; la section 8.6.<br>
Maintenez, que POUVEZ vous faire ? Depuis la version 3.2.1, il existe une option appel&eacute;e 'flat map' (set::options::flat-map),
cela fera apparaître tous les serveurs comme 'directement connect&eacute;s' dans /map et /links, comme cela les utilisateurs
ne sauront plus voir quel serveur est li&eacute; au quel... Ca peut être une bonne couche suppl&eacute;mentaire de protection car
ainsi une personne ne pourra pas rep&eacute;rer les 'points faibles' avec /map ou /links.
Donc, utiliser cela est recommand&eacute;. Notez que cela n'&eacute;limine pas totalement les risques...
Si un split arrive, quelqu'un peut toujours voir quel serveur est link&eacute; auquel, et ceci est aussi valable pour d'autres choses.<br>
<br>
<b>UTILISATEURS NORMAUX ET SNOMASKS</b><br>
Une chose qui n'est pas toujours connues est que les utilisateurs normaux peuvent &eacute;galement s'appliquer certains snomask limit&eacute;s,
appel&eacute; +s +sk. Grâce &agrave; cela, ils peuvent voir des choses comme les rehashes, les kills et d'autres messages vari&eacute;s.<br>
Pour d&eacute;sactiver cela, vous pouvez utiliser set::restrict-usermodes comme ceci : <i>set { restrict-usermodes "s"; };</i>.<br>
<br>
Évidement tout ceci n'est que de la "dissimulation d'informations", ce n'est pas de la "vraie" s&eacute;curit&eacute;.
Cela rendra plus difficiles / importants les efforts requis pour attaquer / pirater.<br>
</div><p></p>
<p><b><font size="+2">8.8 Se prot&eacute;ger des exploits</font></b><a name="secantiexploit"></a><br></p><div class="desc">
Il y a des patches de kernel qui rendent plus difficiles les stack- et heap-based exploits. Cela ne devrait pas être votre principal point d'inqui&eacute;tude,
vous avez des risques de loin plus importants d'être attaqu&eacute; par d'autres points que celui-ci... Pour des raisons vari&eacute;es.<br>
<br>
Il y a en tout cas une chose que vous devez faire, qui est TOUJOURS UTILISER LA DERNIÈRE VERSION,
inscrivez vous &agrave; la <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank">unreal-notify mailinglist</a>
tout de suite et vous recevrez les annonces de release (la unreal-notify est pour les annonces de release uniquement,
d'où seulement 1 mail tout les X mois). En g&eacute;n&eacute;ral il est explicitement mentionn&eacute; dans l'annonce si la release permet
de fixer (de hauts risques) de s&eacute;curit&eacute;, mais il est malgré tout bon d'upgrader.<br>
</div><p></p>
<p><b><font size="+2">8.9 Conclusion</font></b><a name="secsummary"></a><br></p><div class="desc">
Comme vous l'aurez je l'esp&egrave;re maintenant compris, vous ne pouvez jamais être 100% s&eacute;curis&eacute;.
Vous (et nous) devons trouver et &eacute;liminer toutes les failles car un attaquant a juste besoin de trouver une
faille sur un serveur. Tout ce qui a &eacute;t&eacute; expliqu&eacute; ici DOIT de toutes fa&ccedil;ons aider &agrave; minimiser les risques
consid&eacute;rablement. Prenez le temps de s&eacute;curiser votre r&eacute;seau et &eacute;duquer vos opers.
Beaucoup de personne ne prennent pas attention &agrave; la s&eacute;curit&eacute;, jusqu'&agrave; ce qu'ils se fassent attaquer, essayez d'&eacute;viter ca :).
</div><p></p>
<p><font size="+2"><b>9 &#8211; Foire aux Questions (FAQ)<a name="faq"></a></b></font></p>
<div class="desc"><p>La FAQ est disponible en ligne <a href="http://www.vulnscan.org/UnrealIrcd/faq/" target="_blank">ici</a></p></div>
<p></p>
<p><font size="+2"><b>A Expressions Régulières<a name="regex"></a></b></font></p>
<div class="desc"><p>Les expressions régulières sont utilisées à beaucoup d'endroits dans Unreal,
dont les badwords, spamfilter, et aliases. Les expressions régulières sont un outil très complexe
utilisé comme modèle de comparaison. Elles sont parfois appellées "regexp" ou "regex".
Unreal utilise la librairie d'expressions régulières TRE pour ses regex. Cette librairie supporte
quelques expressions très complexes et avancées pouvant être confuses. Les informations suivantes
vous aiderons à comprendre comment les regexps fonctionnent. Si vous êtes intéressé par des
informationsin plus techniques et détaillées au sujet de la syntaxe des regexp utilisés par Unreal,
visitez la <a href="http://www.laurikari.net/tre/syntax.html" target="_new">homepage de TRE</a>.</p></div>
<p><font size="+2"><b>A.1 Literals<a name="regexlit"></a></b></font></p>
<div class="desc"><p>Les Literals sont les composents les plus basiques d'un regexp. Fondamentalement,
ce sont des caractères qui sont traités comme du texte simple. Par exemple, le modèle "test" correspond
aux quatres lettres, "t", "e", "s", et "t". Dans Unreal, les literals sont traités sans respect de la case,
donc le regex précédent correspondra aussi bien à "test" qu'à "TEST". Chaque caractère n'étant pas un
"méta caractère" (expliquez dans les sections suivantes) est traité comme un literal. Vous pouvez également
rendre explicitement un caratère litéral en utilisant un backslash (\). Par exemple, le point (.) est un
métacaractère. Si vous voulez inclure le literal ., utilisez simplement \. et Unreal le traitera comme une
période. Il est également possible que vous vouliez rechercher un caractère qui n'est pas facilement écrivable,
comme la caractère ASCII 3 (coloré). Plutôt que de devoir vous débattre avec un client IRC pour créer ce caractère,
vous pouvez utiliser une séquence spéciale, le \x. Si vous tappez \x3, alors il sera interprété comme étant le
caractère ASCII 3. Le nombre après le \x est représenté par un hexidécimal et peut être dans l'interval de \x0
à \xFF.</p></div>
<p><font size="+2"><b>A.2 L'opérateur Point<a name="regexdot"></a></b></font></p>
<div class="desc"><p>L'opérateur point (.) est utilisé pour correspondra à "n'importe quel caractère".
Il correspond à un caractère simple qui n'a pas de valeur particulière. Par exemple, le regex "a.c"
correspondra à "abc," "adc," etc. Cependant, il ne correspondra pas à "abd" car "a" et "c" sont des literals
devant correspondre exactement.</p></div>
<p><font size="+2"><b>A.3 Les opérateurs de Répétition<a name="regexrep"></a></b></font></p>
<div class="desc"><p>L'une des erreurs communes faites par les personnes utilisant les regex est de présumer
qu'ils fonctionnent juste comme des wildcards. Ce sont, les caractères * et ? qui fonctionnent juste comme une
wildcard. Alors que ces caractères ont une signification similaire dans un regex, ils ne sont pas exactement
identiques. De plus, les expressions régulières supportent également d'autres méthodes plus avancées de répétition.
<p>
L'opérateur de répétition le plus basique est le ?. Cet opérateur correspond à 0 ou 1 fois le caractère précédent.
Ce, "caractère précédent", correspond à l'endroit où le ? dans le regex diffère d'une wildcard. Dans une wildcard,
l'expression, "a?c" correspond à un "a" suivi par n'importe quel caractère (ou aucun caractère), suivi par un "c".
Dans regex, cela a différentes significations. Il correspond à 0 ou 1 fois la lettre "a" suivi par la lettre "c".
Basiquement, le ? modifie le a en spécifiant combien de a doivent être présents. Pour émuler le ? dans une wildcard,
l'opérateur point . est utilisé. Le regex "a.?c" est équivalent à la wildcard préalablement mentionnée. Il correspond
à la lettre "a" suivi par 0 ou 1 fois n'importe quel caractère (le ? modifie le .), suivi par un "c".
<p>
L'opérateur de répétition suivant est le *. A nouveau, cet opérateur est similaire à une wildcard. Il correspond à
0 ou plusieurs fois le caractère précédent. Notez que ce "caractère précédent" est caractéristique à tous les
opérateurs de répétition. Le regex "a*c" correspond à 0 ou plusieurs a suivi par un "c". Par exemple, "aaaaaac"
correspond. Encore une fois, pour que ceci fonctionne comme une wildcard, vous devrez utiliser "a.*c" ce qui forcera
la * a modifier le . (n'importe quel caractère) plutôt que le "a".
<p>
L'opérateur + est très similaire au *. Cependant, au lieu de correspondre à 0 ou plus, il correspond à 1 ou plus.
Basiquement, "a*c" correspondra à "c" (0 a suivi par un c), là où "a+c" ne le fera pas. Le "a+" signifie qu'il doit
y avoir "au moins" 1 a. Donc "c" ne correspond pas mais "ac" et "aaaaaaaaac" bien.
<p>
L'opérateur de répétition le plus avancé est connu comme une "borne". Une borne vous laisse définir des contraintes
exactes sur le nombre de fois que le caractère précédent doit être présent. Par exemple, Vous pouvez vouloir rechercher
exactement 8 a, ou au moins 8 a, ou entre 3 et 5 a. La borne vous permet de réaliser tout cela. La syntaxe basique est
{M,N} où M est la borne inférieure, et N est la borne suppérieure. Par exemple, pour rechercher de 3 à 5 a, vous devrez
mettre "a{3,5}". Cependant, vous êtes pas obligés de spécifier les 2 nombres. Si vous mettez "a{8}" cela signifie qu'il
doit y avoir exactement 8 a. Ainsi, "a{8}" est équivalent à "aaaaaaaa". Pour spécifier l'exemple "au moins", vous créez
simplement un interval qui a uniquement une borne inférieure. Donc pour au moins 8 a, vous devrez mettre "a{8,}".
<p>
Par défaut, tous les opérateurs de répétition sont "gourmands". La gourmandise est une idée quelque peu complexe.
Basiquement, cela signifie qu'un opérateur correspondra à autant de caractères qu'il pourra. Il est plus simple
d'expliquer avec un exemple.
<p>
Disons que nous avons le texte suivant :<br>
HELLO<br>
Et le regex suivant :<br>
.+L<p>
Dans cet exemple, vous pourriez penser que le .+ correspond à "HE". Cependant, ceci est incorrect. Car le + est gourmand,
il correspond à "HEL". La raison est qu'il choisi la plus large portion du texte entré pouvant correspondre au regex.
Dans cet exemple, il choisi "HEL" car la seule autre condition est que le caractère après le texte correspondant au .+
doit être un "L". Etant donné que le texte est "HELLO", "HEL" est suivi par un "L", et donc ca correspond. Parfois, cependant,
il est utile d'utiliser un opérateur non 'gourmand'. Ceci peut être effectué en ajoutant un caractère ? après l'opérateur de
répétition. Modifiant ce que nous avions ci-avant en ".+?L" le .+? correspondra maintenant à "HE" plutôt qu'à "HEL" étant donné
qu'il a été rendu 'non gourmand'. Le ? peut être ajouté à n'importe quel caractère de répétition : ??, *?, +?, {M,N}?.</p></div>
<p><font size="+2"><b>A.4 Bracket Expressions<a name="regexbracket"></a></b></font></p>
<div class="desc">Bracket expressions provide a convenient way to do an "or" operator. For example, if you want to say "match an a or a b." The bracket expression gets its name from the fact that it is enclosed in brackets ([]). The basic syntax is that the expression includes a series of characters. These characters are then treated as though there were an "or" between them. As an example, the expression "[abc]" correspond an "a," a "b," or a "c." Therefore, the regexp "a[bd]c" correspond "abc" and "adc" but not "acc."
<p>
One very common thing to do is to check for things such as, a letter, or a digit. Rather than having to do, for example, "[0123456789]", the bracket operator supports ranges. Ranges work by specifying the beginning and ending point with a - between them. Therefore, a more simplistic way to test for a digit is to simply do "[0-9]". The same thing can be used on letters, or in fact, any range of ASCII values. If you want to match a letter, simply do "[a-z]" since Unreal is case insensitive, this will match all letters. You can also include multiple ranges in the same expression. To match a letter or a number, "[0-9a-z]". One complication that this creates is that the - is a special character in a bracket expression. To have it match a literal -, the easiest way is to place it as either the first or last character in the expression. For example, "[0-9-]" correspond a digit or a -.
<p>
To make things even more simple, there are several "character classes" that may be used within a bracket expression. These character classes eliminate the need to define certain ranges. Character classes are written by enclosing their name in :'s. For example, "[0-9]" could also be written as "[:isdigit:]". The list below shows all of the available character classes and what they do:
<ul>
<li><tt>alnum</tt> - alphanumeric characters</li>
<li><tt>alpha</tt> - alphabetic characters</li>
<li><tt>blank</tt> - blank characters</li>
<li><tt>cntrl</tt> - control characters</li>
<li><tt>digit</tt> - decimal digits (0 through 9)</li>
<li><tt>graph</tt> - all printable characters except space</li>
<li><tt>lower</tt> - lower-case letters</li>
<li><tt>print</tt> - printable characters including space</li>
<li><tt>punct</tt> - printable characters not space or alphanumeric</li>
<li><tt>space</tt> - white-space characters</li>
<li><tt>upper</tt> - upper case letters</li>
<li><tt>xdigit</tt> - hexadecimal digits</li>
</ul>
One important note about character classes is that they MUST be the only element in the expression. For example, [:isdigit:-] is NOT legal. Instead, you can accomplish this same goal by nesting the expressions, for example, to do the same thing as "[0-9-]" using a character class, you could do "[[:isdigit:]-]".
<p>
The last feature of the bracket expression is negation. Sometimes it is useful to say "anything except these characters." For example, if you want to check if the character is "not a letter," it is easier to list a-z and say "not these," than it is to list all the non-letters. Bracket expressions allow you to handle this through negation. You negate the expression by specifying a "^" as the first character. For example, "[^a-z]" would match any non-letter. As with the -, if you want to include a literal ^, do not place it in the first position, "[a-z^]". Also, to negate a character class, you must once again use nesting, "[^[:isdigit:]]" would match any non-digit.</p></div>
<p><font size="+2"><b>A.5 Assertions<a name="regexassert"></a></b></font></p>
<div class="desc">Assertions allow you to test for certain conditions that are not representable by character strings, as well as providing shortcuts for some common bracket expressions.
<p>
The ^ character is referred to as the "left anchor." This character correspond the beginning of a string. If you simply specify a regex such as "test", it will match, for example "this is a test" since that string contains "test." But, sometimes it is useful to ensure that the string actually starts with the pattern. This can be done with ^. For example "^test" means that the text must start with "test." Additionally, the $ character is the "right anchor." This character correspond the end of the string. So if you were to do "^test$", then the string must be exactly the word "test."
<p>
Similar tests also exist for words. All of the other assertions are specified using a \ followed by a specific character. For example, to test for the beginning and ending of a word, you can use \< and \> respectively.
<p>
The remaining assertions all come with two forms, a positive and a negative. These assertions are listed below:
<ul>
<li><tt>\b</tt> - Word boundary
<li><tt>\B</tt> - Non-word boundary
<li><tt>\d</tt> - Digit character (equivalent to <tt>[[:digit:]]</tt>)</li>
<li><tt>\D</tt> - Non-digit character (equivalent to <tt>[^[:digit:]]</tt>)</li>
<li><tt>\s</tt> - Space character (equivalent to <tt>[[:space:]]</tt>)</li>
<li><tt>\S</tt> - Non-space character (equivalent to <tt>[^[:space:]]</tt>)</li>
<li><tt>\w</tt> - Word character (equivalent to <tt>[[:alnum:]_]</tt>)</li>
<li><tt>\W</tt> - Non-word character (equivalent to <tt>[^[:alnum:]_]</tt>)</li>
</ul>
</div>
<p><font size="+2"><b>A.6 Alternation<a name="regexalt"></a></b></font></p>
<div class="desc">Alternation is a method of saying "or." The alternation operator is the vertical bar (|). For example, if you wanted to say "a or b" you could do "a|b". For normal letters, this could be replaced by a bracket expression, but alternation can also be used with subexpressions (discussed in the next section).
</div>
<p><font size="+2"><b>A.7 Subexpressions<a name="regexsub"></a></b></font></p>
<div class="desc">Subexpressions are a portion of of a regex that is treated as a single entity. There are two ways to create a subexpression. The two methods differ with regard to "back references," which will be explained later. To declare a subexpression that uses back references, simply enclose it in parentheses (). To create a subexpression that does not use back references, replace the open-parenthesis with, "(?:". For example, "([a-z])" and "(?:[a-z])". The reason subexpressions are useful is you can then apply operators to the expression. All of the repetition operators, for example, that were mentioned as "X or more of the previous character," can also be used for "X or more of the previous subexpression." For example, if you have a regex of "[0-9][a-z][0-9]", to match a digit, followed by a letter, followed by a digit, and then you decided you wanted to match this sequence twice. Normally, you would do, "[0-9][a-z][0-9][0-9][a-z][0-9]". With subexpressions, however, you can simply do "([0-9][a-z][0-9]){2}".</div>
<p><font size="+2"><b>A.8 Back References<a name="regexbackref"></a></b></font></p>
<div class="desc">Back references allow you to reference the string that matched one of the subexpressions of the regexp. You use a back reference by specifying a backslash (\) followed by a number, 0-9, for example \1. \0 is a special back reference that refers to the entire regexp, rather than a subexpression. Back references are useful when you want to match something that contains the same string twice. For example, say you have a nick!user@host. You know that there is a trojan that uses a nickname and username that correspond "[0-9][a-z]{5}", and both the nickname and username are the same. Using "[0-9][a-z]{5}![0-9][a-z]{5}@.+" will not work because it would allow the nickname and username to be different. For example, the nickname could be 1abcde and the username 2fghij. Back references allow you to overcome this limitation. Using, "([0-9][a-z]{5})!\1@.+" will work exactly as expected. This searches for the nickname matching the given subexpressions, then it uses a back reference to say that the username must be the same text.
<p>
Since you can only have 9 back references, this is the reason why the (?:) notation is useful. It allows you to create a subexpression without wasting a back reference. Additionally, since back reference information does not need to be saved, it is also faster. Because of this, non-back reference subexpressions should be used whenever back references are not needed.</div>
<p><font size="+2"><b>A.9 Case Sensitivity<a name="regexcase"></a></b></font></p>
<div class="desc">As was already mentioned, Unreal makes all regexps case insensitive by default. The main reason for this is, there seem to be many more instances where you want case insensitive searching rather than sensitive, for example, if you block the text "www.test.com," you presumably want to block "WWW.TEST.COM" as well. However, there are instances where you may want case sensitivity, for example, matching for certain trojans. Because of this, a method is provided to dynamically turn case insensitivity on/off. To turn it off, simply use "(?-i)" and to turn it on, "(?i)". For example, "(?-i)[a-z](?i)[a-z]" will match a lowercase letter (case insensitivity is off) followed by either an uppercase or lowercase letter (case insensitivity is on). Additionally, rather than having to always remember to turn the flag back on when you are finished, you can also specify that the flag change should only apply to a subexpression, for example, "(?-i:[a-z])[a-z]" is equivilent to the previous regexp because the -i only applies to the given subexpression.
</body></html>