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