IRCOp guide/fr

This is a guide for everyone who has their IRC server up and running and now needs to understand how to do server administration. Or, as we call it on IRC: how to do IRCOp tasks.

Avant-propos
Ce guide suppose que vous avez une compréhension basique de l'IRC. Vous devez être familiers des concepts de pseudos, salons, modes utilisateurs, modes des salons.

Qu'est-ce qu'un IRCop ?
Sur IRC les personnes avec des privilèges spéciaux sur le serveur sont appelés "IRC Opérateur", souvent raccourcis en "IRCops" ou "opers".

Comment devenir IRCop
Quand vous avez configuré votre serveur vous avez du ajouter un Bloc oper. Une fois sur IRC, vous pouvez écrire /oper pseudo pass pour devenir IRCop. A noter que le pseudo et le mot de pass sont sensibles à la casse (A est différent de a).

Il existe de nombreux niveaux parmi les IRCops. La directive operclass dans le bloc oper servira à définir ce niveau. Le plus élevé est netadmin ou le netadmin-with-override (nous en parlerons plus loin).

Pour de plus amples informations ou si vous avez des soucis avec la commande /OPER, jetez un oeil sur FAQ: Comment devenir IRCOp / administrateur

NOTE: Les sections suivantes supposent que vous savez comment devenir IRCOp.

Principes
Les IRCOps ont beaucoup de pouvoir. Il y a plusieurs façon de composer avec ces pouvoirs. Nous allons maintenant vous proposer les deux principes les plus connus, les deux codes de conduite. C'est à vous de décider lequel vous souhaiter mettre en oeuvre. Bien entendu, rien n'est tout noir ou tout blanc, à vous de choisir.

Les IRCOps contrôlent tout
Les IRCOps ont les droits pour joindre n'importe quel salon, devenir opérateur n'importe où et peuvent se réserver le droit de le faire. Les IRCops sont "au-delà" des modérateurs/founders des salons et ils sont parfaitement libres d'user de leur pouvoir sans la moindre restriction.

C'est généralement l'idée que les personnes ayant leur premier serveur IRC ont. C'est alors une gestion centralisée du serveur ou ce sont les membres du serveur qui gèrent les salons.

Les IRCops n'interfèrent pas sur les salons
Cette vision des choses diffère un peu de la précédente : Quand il y a un problème sur un salon et qu'il peut être résolu par les founders ou modérateurs du salon, alors ce sont à eux de le faire. Les modérateurs/founders peuvent kicker ou bannir un utilisateur, alors les IRCops n'ont pas à intervenir. Les IRCops n'interviennent quand cela touche la sécurité du serveur ou des utilisateurs ou qu'un utilisateur est harcelé ou spammé en PV.

C'est le code de conduite utilisé par la plupart des serveurs. Il offre plus de liberté aux utilisateurs.

Déconnecter un user (KILL)
Vous pouvez forcer un user à être déconnecté en utilisant un KILL. Vous pouvez le faire en écrivant /KILL pseudo raison. L'user peut toujours revenir.

Vous pouvez aussi bannir un user pour une durée précise (ou de façon permanente). Pour se faire :

Bannir un user d'un serveur (KLINE)
Pour bannir un user d'un serveur vous pouvez faire /KLINE ident@host durée raison. La durée est en secondes ou avec une expression de temps tel que 1h ou 1d. Définir la durée à 0 pour que le ban soit permanent. Exemple :

Cela bannira tous les utilisateurs avec l'host idiot.unicorn-land.org pour 3600 secondes (une heure).

Notez que si vous possédez un réseau avec de multiples serveurs liés (linkés) le KLINE n'est généralement pas conseillé car il suffit à l'user de se reconnecter à un autre serveur du réseau. Dans ce cas, vous devrez utiliser la commande GLINE, que nous allons voir ensuite.

Bannir un user du réseau (GLINE)
Pour bannir un user d'un réseau IRC (et donc de tous les serveurs linkés), utilisez /GLINE ident@host durée raison.

Exemple :

ZLINE, GZLINE
En plus du KLINE (ban local) et du GLINE (ban global) il existe aussi ZLINE et GZLINE. Ils sont assez particuliers dans le sens où les users correspondants aux (G)ZLINE sont déconnectés immédiatement lorsqu'ils essaient de se connecter au serveur. A l'inverse, KLINE/GLINE laissent l'user faire un handshake (négociation de connexion). Il y a donc les pour et les contres.

Parce que les bans du (G)ZLINE sont appliqués immédiatement (avant le handshake) ils peuvent être causer une très légère charge supplémentaire sur le serveur. En d'autres termes, il n'y a pas de résolution des DNS, pas de résolution de l'ident, aucun pseudo n'est connu, les connexions SSL/TLS ne sont ainsi jamais établies. Pour résumer : il y a quelques mauvais côtés, mais il peut être utilisé en cas d'attaque massive de clônes sur le votre serveur.

Généralement nous conseillons d'utiliser KLINE/GLINE à la place des (G)ZLINE.

Si vous souhaitez néanmoins utiliser les (G)ZLINE, la syntaxe est : /GZLINE *@ip durée raison. A noter que le ZLINE est un ban local alors que le GZLINE est global. Exemple :

Comme précisé auparavant, vous devez spécifier une adresse IP et vous ne pouvez pas utiliser un host car la résolution du DNS n'a pas lieu.

OS AKILL
Si vous faites tourner des Anope (nous en parlerons plus loin) alors vous pouvez utiliser la commande AKILL d'OperServ (/os help akill). Cela permet de stocker tous les klines et glines dans une base de données et permet de les conserver entre deux redémarrages du serveur.

Exceptions de bans
Une fois que vous commencez à bannir des users vous pouvez accidentellement vous bannir vous-même.

Si vous avez une IP statique alors vous pouvez ajouter votre IP en exception. Pour se faire, vous devez vous ajouter dans le Bloc des exceptions TKL ET dans le Bloc des exceptions de bans. Ajoutez cela à votre fichier unrealircd.conf (et faites un /rehash) : execpt tkl { mask *@1.2.3.4; type gline; }; except ban { mask *@1.2.3.4; }; En toute logique vous devez remplacer 1.2.3.4 par votre adresse IP. (Un simple /WHOIS sur vous-même vous la donnera).

Avoir l'information
Comme tous les IRCops vous pouvez connaître bon nombre d'informations sur le serveur, les users et les salons. Voyons les exemples les plus courants :

Notices serveur (Snomasks)
Comme tous les IRCops vous pouvez voir les notices dans votre fenêtres des status comme les connexions/déconnexions des users : *** Client connecting: The_User (~test@unicorn-land.org) [192.168.0.1] {clients} [secure ECDHE-RSA-AES256-GCM-SHA384] Ce genre de messages que vous recevez est contrôlé via les Snomasks.

List des users (WHO)
Comme tous les IRCops vous pouvez faire /WHO sans le moindre paramêtre pour voir la liste de tous les users du réseau. A l'inverse, un user normal peut utiliser /WHO mais ne peut voir que les users qui sont visibles pour lui-même (comme ceux qui sont sur le même salon).

Il existe quelques paramètres pratiques qu'un IRCop peut utiliser tel que /WHO +R pour voir tous les vrais hosts, et /WHO +I pour voir toutes les adresses IPs.

Détail d'un user (WHOIS)
Vous êtes (espérons-le) déjà familier avec /WHOIS pseudo. Comme tous les IRCops vous pouvez utiliser cette commande mais avec quelques informations supplémentaires, tel que : L'adresse IP de l'user et tous les salons sur lesquels il est présent (même s'ils sont secrets).

Liste des salons (LIST)
Tous les users peuvent faire un /LIST mais si vous le faîtes en étant IRCop vous verrez alors tous les salons, même ceux qui sont secrets.

Requête des modes salons (MODE)
Vous pouvez voir les modes d'un salon sans même être dessus via /MODE #salon. De la même façon, vous pouvez voir la liste des personnes bannies via /MODE #salon b.

Requête topic (TOPIC)
Vous pouvez voir le topic d'un salon sans même être dessus, en utilisant /TOPIC #salon.

Afficher les membres d'un salon (NAMES, WHO)
Comme tous les IRCops vous pouvez voir les personnes étant sur un salon, sans même être présent. Il suffit de faire /NAMES #salon ou /WHO #salon

Prendre le contrôle des salons (Override)
Comme tous les IRCops vous pouvez (avec les privilèges suffisants) rejoindre un salon et faire les mêmes choses qu'un opérateur de ce salon. A noter que cela a largement été débattu comme pouvant être les 'bonnes' ou 'mauvaises' choses. Voir.

Sur UnrealIRCd nous appelons ça "overriding', cela signifie que vous pouvez outrepasser les règles classiques d'un salon et agir comme un modérateur.

IMPORTANT : Si vous souhaitez faire cela, vous devez avoir la direction -with-override. Par exemple si dans votre Bloc oper vous avez operclass netadmin vous ne pouvez pas outrepasser les droits, vous devez utilisez operclass netadmin-with-override (et faire un /rehash, bien entendu).

Rejoindre un salon auquel vous n'auriez pas accès
Imaginons, vous avez un salon #drones que vous souhaitez rejoindre parce que vous pensez qu'il y a des fauteurs de trouble. Si vous faîtes /JOIN vous verrez un message comme Channel is invite only (+).

Vous pouvez néanmoins rejoindre le salon (=override) en vous invitant vous-même et en tentant de le rejoindre à nouveau : /INVITE moi #drones /JOIN #drones Note : Si cela ne fonctionne pas merci de lire le paragraphe précédent sur les operclass.

Une alternative est d'utiliser SAJOIN. Mais ce n'est pas valable pour tous les niveaux d'oper mais cela fonctionne pour les netadmin-with-override : /SAJOIN moi #drones

Ensemble le INVITE+JOIN et SAJOIN vous autorise à outrepasser tous les bans et tous les modes des salons.

Modifier les modes (MODE, SAMODE)
Si vous avez les privilèges d'override vous pouvez simplement utiliser la commande /MODE #salon -i. Vous pouvez le faire même sans être opérateur du salon.

Sinon, il existe la commande /SAMODE #salon -i. Cela apparaît comme un mode du serveur ; *** irc.unicorn-land.org sets mode : -i

Kicker les users (KICK, SAPART)
Si vous avez les privilèges d'override vous pouvez simplement faire /KICK #salon pseudo raison

Il existe sinon une commande pour forcer un user à partir d'un salon, et dans ce cas la plupart des clients n'ont pas d'auto-join. Pour se faire /SAPART pseudo #salon

Vous rendre insensible au kick
Si vous avez les privilèges nécessaires vous pouvez appliquer le mode user +q de cette façon : /MODE moi +q Cela vous rendra insensible au kick sur tous les salons et par n'importe qui.

C'est bien évidemment un abus de pouvoir mais cela peut être nécessaire si vous allez sur un salon avec des fauteurs de troubles qui vous kick sans cesse et refusent toute forme de dialogue.

Services
Most networks will run "Services". These are usually visible via the (pseudo) users "NickServ" and "ChanServ". Users can register their nick names and channels at services to claim "ownership" of their nicks/channels. This also helps with preserving settings between server restarts. If you want this you will have to install additional software. See Services.

Note: Setting up services takes at least an hour for most people. It's worth the effort, but be prepared to take some time for it. If you only just set up your first IRC server, then play around a little first before you setup Services another day.

Linking servers
If you want to run a multi-server IRC network then you will have to "link" multiple servers. Basically you set up 2 or more servers first and then "link" them together. The users on server A will then also be visible on server B and vice-versa. The same is true for channels and global bans such as GLINES. See Tutorial: Linking servers.

NOTE: Linking is by many beginners considered to be a complex topic so if you are just setting up your first server you may want to hold off until you have at least a couple of users before you set up a 2nd server and try to link them together.

Fighting spam and drones
Once your servers gets (more) popular you will eventually be hit by users spamming other users/channels and possibly a drone attack as well.

Use blacklists
To fight troublemakers you should add one or more Blacklist blocks. The blacklists under Example in that article are a good start.

What this does is query an external service for each and every connecting user. If the user is on the blacklist, the user is banned.

Use antirandom
Antirandom is a module that will automatically ban users that have a nickname/username/realname that looks "too random". Note that this may not work very well for non-English/non-Western languages.

To use this, have a look at conf/modules.optional.conf and copy-paste the entire section involving antirandom to your unrealircd.conf.

Use spamfilter
UnrealIRCd has a very effective, but also slightly complex, tool called Spamfilter. It allows you for example to automatically GLINE anyone saying "Hi plz download: www.virus.com/this.exe" in a channel. It can react on private messages, channel messages, dcc's and more. It can use simple matching but also regular expressions. See the Spamfilter article for full information.

Other measures
A very effective anti-flood feature that you should definitely deploy is Channel Mode +f.

Preserving settings between restarts
If your server dies or is restarted then all settings are lost. And this will happen eventually because you will have to upgrade the software.

With "all settings" we mean everything set on IRC, such as: channels, channel memberships, KLINE/GLINE's, SPAMFILTER's, and so on. The only thing that is preserved is everything in your configuration files (such as unrealircd.conf).

To fix this you will have to run Services.

What also helps is if you have a multi-server network. Once the servers "link" all channel settings (and KLINEs, GLINEs, SPAMFILTERs, etc) are synchronized. So, as long as a channel exists on 1 of the servers on the network, the settings will be preserved (even without services). Still, you should really run Services.