45187a16b1788650bd8f673e59ef11b1d7dc3240
Utilisateurs/IRC.md
... | ... | @@ -12,13 +12,25 @@ Cet article décrit le fonctionnement du serveur IRC, sa configuration, ainsi qu |
12 | 12 | |
13 | 13 | ## Le petit rappel |
14 | 14 | |
15 | +Un serveur IRC fonctionne généralement dans un ensemble de serveur IRC interconnectés entre eux qu'on appelle un réseau. Cette approche décentralisée permet à chaque de séparer les clients pour décharger le travail uniformément sur tout les serveurs du réseau. |
|
16 | + |
|
17 | +Tout les clients connectés au serveur IRC A peuvent discuter entre eux via des canaux (ou channel) de communication sur lequels tout leurs messages seront retransmis à tout les clients des autres serveurs IRCs interconnectés et présent sur le même canal. IRC permet aussi l'envoi de fichier (par des requètes directe). La connexion peut-être établie en clair, ou chiffrée en SSL. |
|
18 | + |
|
19 | +Le serveur IRC offre tout une palette de fonctionnalités, comme des bots qui permettent de gérer un compte (enregistrement d'un pseudo, de préférences, authentification par mot de passe ou par clé cryptographique), de gérer un channel (enregistrement et sécurisation du channel, lock de préférences, d'autorisations,...). |
|
20 | + |
|
21 | +Les différents serveurs IRC d'un même réseau fonctionne en graphe. Un serveur peut être une **LEAF**, ou un **HUB**. Une *LEAF* est simplement connectée à un seul autre serveur, tandis qu'un *HUB* est un point d'interconnexion de plusieurs serveurs, *hub* ou *leaf*. |
|
22 | + |
|
23 | + |
|
15 | 24 | ## Au ResEl |
16 | 25 | |
17 | 26 | Au ResEl, le serveur IRC est installé sur [Neko](/Serveurs/Neko). |
18 | 27 | |
19 | -Le serveur IRC est [Inspircd](http://www.inspircd.org/), il est installé via les dépôts Debian. |
|
28 | +Le serveur IRC est [Inspircd](http://www.inspircd.org/), il est installé via les dépôts Debian. |
|
29 | +Le serveur est un daemon controlable via `service inspircd <start|stop|status`. |
|
30 | + |
|
31 | +Notre serveur est configurée est *leaf* qui s'interconnecte au [*hub* IRC de Télécom Paritech](https://www.rezosup.net/liste.php) : `hub.enst.rezosup.org` (`137.194.15.138:7000`, fingerprint md5 `b9a94c65a63fae932e6926bdfb09f2f0`), ainsi qu'au [*hub IRC de l'ENS Cachan](https://www.rezosup.net/liste.php) : `hub.ensc.rezosup.org` (`138.231.141.150:7000`, fingerprint md5 `676973c137fe4380301973685088e8eb`). |
|
20 | 32 | |
21 | -Notre serveur est configurée est *leaf* qui s'interconnecte au [*hub* IRC de Télécom Paritech](https://www.rezosup.net/liste.php). |
|
33 | +Le serveur s'autoconnecte sur ces deux hubs. |
|
22 | 34 | |
23 | 35 | # Utilisation |
24 | 36 | |
... | ... | @@ -47,12 +59,113 @@ Le moyen le plus simple de *bouncer* est simplement de se connecter à IRC sur u |
47 | 59 | |
48 | 60 | Une méthode plus *user-friendly* est de configurer son client IRC (s'il le peut) à un bouncer prévu à cet effet. |
49 | 61 | Le ResEl en [héberge un](/Utilisateurs/BouncerIRC). |
62 | + |
|
63 | +### Divers |
|
64 | + |
|
65 | +Voici une petite *cheatsheet* des commandes d'IRC, pour plus de détails allez voir [sur google](https://encrypted.google.com/search?hl=en&q=commande%20irc) ou [sur wikipedia](https://fr.wikipedia.org/wiki/Aide:IRC/commandes). |
|
66 | + |
|
67 | +* /join #<channel> : pour rejoindre un canal |
|
68 | +* /me <msg> : pour envoyer un message "d'action" sans votre pseudo |
|
69 | +* /whois <nickname> : pour obtenir des informations sur une personne |
|
70 | + |
|
50 | 71 | ## Côté administrateur |
51 | 72 | |
73 | +En tant qu'IRCop du serveur, votre travail est d'administrer localement le réseau, et de coopérer avec les autres admins des serveurs du réseau. |
|
74 | + |
|
75 | +### Ajouter un IRCop |
|
76 | + |
|
77 | +Pour ajouter un IRCop, il suffit d'ajouter une entrée dans le fichier de configuration `opers.conf` sous la forme : |
|
78 | + |
|
79 | +```xml |
|
80 | +<oper |
|
81 | + name="<nickname>" |
|
82 | + hash="<algo:sha256|hmac-sha256>" |
|
83 | + password="<hash>" |
|
84 | + host="*@*" |
|
85 | + sslonly="yes" |
|
86 | + vhost="staff.telecom-bretagne.rezosup.net" |
|
87 | + type="ServerAdmin"> |
|
88 | +``` |
|
89 | + |
|
90 | +Le `name` est le pseudo de l'ircop, il est distinct du compte *NickServ* de l'IRCop, de même que le `password`. Le `password` précisé est par ailleurs le hash chiffrée par la méthode indiquée dans `hash`. `sslonly` doit être définit à *true* pour authentifier un IRCop uniquement s'il utilise une connexion SSL (pour sécuriser son authentification par mot de passe). Le `host` peut être définit plus précisement si souhaité. |
|
91 | + |
|
92 | +Il faut ensuite valider la configuration en effectuant un REHASH du serveur. |
|
93 | + |
|
94 | +### REHASH |
|
95 | + |
|
96 | +Le REHASH permet de mettre à jour la configuration d'inspircd sans *downtime*. |
|
97 | +Il suffit qu'un IRCop depuis son client utilise la commande `/REHASH`. |
|
98 | + |
|
99 | +### Taper des commandes IRCop |
|
100 | + |
|
101 | +Les clients IRCs ne connaissent généralement pas les commandes IRCop (`/rehash`, ...). Il faut utiliser une commande pour leur dire d'effectuer cette commande côté serveur. |
|
102 | + |
|
103 | +* Sur *irssi* : `/quote <commande ircop>` |
|
104 | + |
|
105 | +#### Divers |
|
106 | + |
|
107 | +Pour d'autres actions administrateurs, allez voir la [liste des commandes IRCops d'inspricd](https://wiki.inspircd.org/InspIRCd_Oper_Commands), renseignez vous sur la [mailing-liste Rezosup [mailto:/](rezosup@rezosup.net) (envoyez un mail pour vous déclarez nouvel IRCop et qu'il vous y ajoute), ou regardez sur le site des opérateurs de Rézosup ou sur le [wiki de Rezosup](https://wheequi.rezosup.net/). |
|
108 | + |
|
52 | 109 | # Configuration |
53 | 110 | |
111 | +La configuration de inspircd se trouve dans le dossier `/etc/inspircd` et est séparée dans plusieurs fichiers. La configuration est décrite au format XML. |
|
112 | + |
|
113 | +* `inspircd.conf` : fichier de configuration principal, il inclut tout les autres fichiers de configuration. |
|
114 | +* `server.conf` : fichier de conf générale. |
|
115 | +Ici sont définit les paramètres généraux : ndd, description, nom et amil des admins, paramètres d'écoutes (port, adresse, type de serveur (clients ou serveurs)), paramètres réseaux (timeout, tailles des buffers, etc...), divers (nombres maximum de chan) et hôtes bannis en dur. |
|
116 | +Extrait utile : |
|
117 | +```xml |
|
118 | +<bind |
|
119 | + address="" #IP to bind to. |
|
120 | + port="6697,6767" |
|
121 | + type="clients" |
|
122 | + ssl="gnutls" |
|
123 | +> |
|
124 | +<bind address="" port="6667" type="clients"> |
|
125 | +<bind address="" port="7000" type="servers" ssl="gnutls"> |
|
126 | +``` |
|
127 | + |
|
128 | +On définit ici 3 interfaces d'écoute, `address=""` signifie qu'on écoute sur toutes les interfaces de la machine, on écoute donc sur le port 6697 et 6767 pour les clients en sécurisé, sur le port 6667 en non sécurisé, et sur le port 7000 pour l'interconnexion avec les autres serveurs du réseau. |
|
129 | + |
|
130 | +* opers.conf : définit les IRCops locaux au serveur. La configuration est plutôt claire, voir ##Ajouter un ircop |
|
131 | + |
|
132 | +* links.conf : définit les connexions que le serveur va établir avec les autres serveurs de réseau. |
|
133 | +Un lient se définit de la manière suivante : |
|
134 | +```xml |
|
135 | +<link |
|
136 | + name="<ndd du serveur auxquel on veut se connecter>" |
|
137 | + ipaddr="<ip publique du serveur auxquel on veut se connecter>" |
|
138 | + port="<port, en général : 700>" |
|
139 | + allowmask="<masque autorisé, en général : ipaddr/32>" |
|
140 | + ssl="gnutls" # ou openssl |
|
141 | + sendpass="<pass, doit correspondre au recvpass du serveur auxquel on veut se connecter>" |
|
142 | + recvpass="<pass, doit correspondre au sendpass du serveur auxquel on veut se connecter>" |
|
143 | + fingerprint="<fingerprint du certificat du serveur auxquel on veut se connecter>" |
|
144 | + hidden="no" |
|
145 | +> |
|
146 | +``` |
|
147 | + |
|
148 | +Il définit aussi le block d'autoconnect, qui précise quel lien va être monté automatiquement. On peut en mettre plusieurs et ils seront testés en *roud-robin* : |
|
149 | +```xml |
|
150 | +<autoconnect period="120" |
|
151 | + server="<name1> ... <nameN>"> |
|
152 | +``` |
|
153 | + |
|
154 | +* `log.conf` : configuration des logs, ils vont dans `/var/log/ircd.log`. |
|
155 | +* `hubs.conf` : configuration nécéssaire sur le serveur IRC fonctionne en HUB, ce qui n'est pas le cas au ResEl. (Ça pourrait être utile si un jour l'Ensta ou d'autres petites écoles bretonnes souhaite avoir un serveur irc reliés à Rezosup). |
|
156 | +* `globalconf/` : contient la configuration de tout les modules, et la configuration par défaut, et divers paramètres. C'est celle du serveur inspircd par défaut, il n'est pas nécéssaire d'y toucher. |
|
157 | +* `ssl/` : Ce dossier contient les certificats SSL nécéssaires à l'établissement des connexions sécurisées. |
|
158 | +* `rules.txt` : texte des règles du serveur, affiché aux utilisateurs à leur connexion |
|
159 | +* `motd.txt` : *message of the day*, affiché aux utilisateurs à leur connexion |
|
160 | + |
|
54 | 161 | # Liens utiles |
55 | 162 | |
56 | 163 | ## Articles connexes |
57 | 164 | |
165 | +* [Neko](/Serveurs/Neko) |
|
166 | +* [Bouncer IRC](/Utilisateurs/BouncerIRC) |
|
167 | + |
|
58 | 168 | ## Ressources externes |
169 | + |
|
170 | +* [Wiki de Rezosup](https://wheequi.rezosup.net/) |
|
171 | +* [Configuration d'inspircd](https://wiki.inspircd.org/Configuration) |
|
... | ... | \ No newline at end of file |