PROJET - SERVER IRC

Transcription

PROJET - SERVER IRC
PROJET - SERVER IRC
novembre 16
PROJET
Serveur Internet Real Chat
Server IRC
REALISATION 2009
CEDRIC BEAUDIER
Cédric Beaudier – Reproduction interdite
Page 1
PROJET - SERVER IRC
novembre 16
Sommaire
1.
LOGICIEL SERVEUR ............................................................................................................................................... 3
A.
a.
b.
2.
3.
4.
FONCTIONNALITES SUPPORTEES .......................................................................................................................... 4
CARACTERES, LONGUEURS DES NOMS, LIMITES SUPPORTES ............................................................................... 5
MODES DES SALONS............................................................................................................................................. 6
A.
B.
C.
5.
INTERFACE GRAPHIQUE LEGERE ........................................................................................................................................ 3
Aperçu sur le client .............................................................................................................................................. 4
Paramétrage interne ........................................................................................................................................... 4
LISTE DE BAN ............................................................................................................................................................... 6
MODE DU SALON .......................................................................................................................................................... 6
MODE DES UTILISATEURS ............................................................................................................................................... 7
CHANSERV............................................................................................................................................................ 7
Cédric Beaudier – Reproduction interdite
Page 2
PROJET - SERVER IRC
novembre 16
1. Logiciel serveur
A. Interface graphique légère
-
-
Démarrer le serveur immédiatement
Voir la charge dans une barre de progression (utilisateurs * nombre de salons)
Statistiques en temps réel :
• Nombre d’utilisateurs connectés (en comptant les utilisateurs virtuels)
• Nombre de salons formés
• Nombre d’erreur socket rencontrés
• Trafic total réseau en entrée + sortie
Afficher le log en temps réel (toute entrée/sortie)
Vider le buffer du log
Sauvegarder le log en cours vers un fichier
Le serveur est isolé, il ne peut pas se joindre à un réseau de serveur IRC. Les commandes associées aux jonctions de serveurs sont donc inutilisables ici.
Cédric Beaudier – Reproduction interdite
Page 3
PROJET - SERVER IRC
a.
Aperçu sur le client
b.
Paramétrage interne
novembre 16
Pour des raisons de temps, aucun paramétrage n’est possible.
2. Fonctionnalités supportées
ADMIN : affiche des informations pour contacter l’administrateur
AWAY [raison] : vous considère comme absent/revenu, selon la raison spécifiée
GLINE <masque> [raison] : déconnecte et ban du serveur les connexions correspondant au
masque avec la raison spécifiée
INFO : affiche des informations sur le serveur
INVITE <nick> <#chan|&chan> : envoie une invitation et permet à la personne de rejoindre le
salon en mode +i
ISON <pseudo> : permet de savoir si le pseudo spécifiée est connectée
JOIN <#chan|&chan>[,<#chan|&chan>...] [mot de passe[,mot de passe
2...]] : rejoint le(s) salon(s) spécifié(s) en utilisant le(s) mot(s) de passe optionnel(s)
KICK <#chan|&chan> <nick> [raison] : éjecte le pseudo du salon selon la raison spécifiée
KILL <nick> [raison] : déconnecte la connexion du pseudo avec la raison spécifiée
LINKS : affiche les différents serveurs du réseau
Cédric Beaudier – Reproduction interdite
Page 4
PROJET - SERVER IRC
LIST : affiche la liste de tous les salons existants
LUSERS : affiche les informations sur les utilisateurs du serveur et du réseau
MODE <#chan|&chan> : affiche les modes du salon spécifié
MODE <#chan|&chan> <+|-><klntpsimr> [limite] [mot de passe]
supprime les modes spécifiés pour le salon spécifié
novembre 16
: ajoute ou
MODE <#chan|&chan> <+|-><ovh> <nick1 [nick2 …]> : élève ou révoque les droits +o
(operator), +v (voice), +h (helper). On peut utiliser la forme : +o nick1 nick2 ou bien +ooo nick1 nick2
nick3
MODE <nick> <+|->i : active ou désactive le mode invisibilité (non pris en charge)
MOTD : Message of the day (message du jour)
NAMES <#chan|&chan> : affiche les pseudos présents sur le salon spécifié
NICK <pseudo> : affecte ou change le pseudo de la connexion
NOTICE <#chan|&chan|nick> <message> : envoie la notice au(x) destinataire(s)
OPER <mot de passe> : élève le pseudo au rand d’IRC Operator. Le mot de passe par défaut de
cette commande est azerty123
PART <#chan|&chan>[,<#chan|&chan>...] : quitte le(s) salon(s) spécifié(s)
PASS <mot de passe> : non géré
PING [origine] : répond au ping demandé
PONG [origine] : désactive le timer d’inactivité de la connexion (non pris en charge)
PRIVMSG <#chan|&chan|nick> <message> : envoie le message au(x) destinataire(s)
QUIT [raison] : se déconnecte du serveur en utilisant la raison spécifiée
SILENCE <+nick|-nick> : ajoute ou supprime un pseudo de la Silence List
SILENCE : affiche la liste des pseudos bloqués
STATS : affiche des statistiques du réseau
TIME : affiche l’heure serveur
TOPIC <#chan|&chan> [message] : change le sujet du salon spécifié
USER <username> <hostname> <servername> <realname> : affecte les informations de
l’utilisateur
USERHOST <nick> : affiche l’host de connexion du pseudo
USERIP <nick> : affiche l’IP de connexion du pseudo
USERS : affiche des informations sur le serveur du réseau
VERSION : affiche la version du serveur
WATCH [l|L] : affiche les pseudos connectés de la Watch List
WATCH <+nick|-nick> : ajoute ou supprime un pseudo de la Watch List
WATCH <s|S> : affiche la liste des pseudos Watchées
WHO <pseudo> : affiche des informations sur le pseudo spécifié
WHOIS <pseudo> : affiche des informations sur le pseudo spécifié
WHOWAS <nick> : affiche des informations sur la dernière connexion d’un pseudo
3. Caractères, longueurs des noms, limites supportés
Un pseudo valide doit correspondre à l’expression régulière : ^[a-zA-Z][^+@%#&,*?/\\\\!]+$
d’une longueur comprise entre 2 et 30 caractères.
Cédric Beaudier – Reproduction interdite
Page 5
PROJET - SERVER IRC
novembre 16
Un salon valide correspondre à l’expression régulière : ^[#&][^+@%#&,*?/\\\\]+$ d’une longueur
comprise entre 2 et 30 caractères.
Les pseudos en #salon et &salon sont indépendamment supportés.
WatchList limitée à 20 pseudos par personne.
SilenceList limitée à 20 pseudos par personne.
BanList d’un salon n’est pas limitée.
La longueur du mot de passe n’est pas limité (mais il est déconseillé d’utiliser des caractères spéciaux).
Un salon n’est pas limité, la valeur de la limite (mode +l) soit être > 0.
Le mode +ovh n’est pas limité en nombre de pseudos suivants.
Une personne ne peut rejoindre que 20 salons, mais la commande JOIN n’est pas limitée.
Il ne peut créer jusqu'à 30 000 salons sur le serveur.
Il ne peut y avoir jusqu’à 10 000 utilisateurs sur le serveur.
Les messages et les topics, raison (away, kick) sont limités a 255 caractères de long.
La commande LIST n’affiche que les 1000 premiers salons.
La commande ISON n’est pas limitée en nombre de pseudos.
Les commandes et les modes sont sensibles à la casse, contrairement aux pseudos et aux salons.
4. Modes des salons
Fonctionnement des modes des salons :
On ne peut pas appliquer des droits sur les utilisateurs (ovh), sur le salon (klntpsimr) et sur la liste de
ban (b) en même temps. Il faut appeler MODE plusieurs fois.
A. Liste de ban
+b : affiche la liste de tous les masques bannis du salon.
+b <masque> [date de fin] : ajoute un ban selon le masque (date de fin non prise en compte).
-b <masque> : supprime le premier masque correspondant de la liste des bannis.
B. Mode du salon
+k <mot de passe> : ajoute un mot de passe (qui ne devrait contenir ni espace ni virgule). Tout le
monde présent verra le mot de passe. Les prochains essayant d’arriver devront saisir le mot de passe. Accéder à un salon avec un mot de passe qui n’en demande pas n’est pas gênant. Pour supprimer le mot de
passe, simplement utiliser le mode –k.
+l <limite> : ajoute une limite au nombre d’utilisateur sur le salon. La limite est toujours supérieure à 0.
Si la limite est inférieure au nombre de personne présente sur le serveur, l’imposition de la limite
n’expulsera personne, mais empêchera les nouveaux utilisateurs d’arriver. Pour retirer la limite, simplement
utiliser le mode –l.
Note pour les modes k et l, pour fixer les deux modes en même temps, le serveur va utiliser l’ordre
d’apparition des lettres dans la commande. Par exemple, MODE +kl PASS 5 ou MODE +lk 5 PASS. Il
est conseillé néanmoins d’utiliser deux commandes différentes, ou tout du moins de spécifier le mot de
passe en deuxième si celui-ci contient des espaces.
Pour enlever les modes suivants, simplement remplacer le + par un -.
+n : interdit les messages des personnes qui ne sont pas sur le salon.
+t : interdit aux non-op de modifier le topic.
+p : rend le salon privé (non pris en charge).
+s : rend le salon secret (non pris en charge).
Cédric Beaudier – Reproduction interdite
Page 6
PROJET - SERVER IRC
novembre 16
+i : rend le salon accessible seulement sur invite.
+m : modère le salon (interdit aux non voice de parler).
+r : rend le salon accessible seulement pour les personnes enregistrées (non pris en charge).
C. Mode des utilisateurs
La commande suivant fonctionne de la même façon pour +v (voice), +h (helper), ainsi que les inverses (ovh). Les trois droits peuvent être cumulés en une seule commande (MODE #chan +ovh nick).
+o [pseudo1][ pseudo2…] : Elève le(s) pseudo(s) spécifié au rang d’opérateur. Les pseudos déjà opérateurs ne sont pas affectés. Si le pseudo est déjà voice ou helper, le droit operator vient s’ajouter. Si aucun
pseudo n’est spécifié, alors celui qui lance la commande est élevé.
Ne pas utiliser la syntaxe MODE #chan +o nick +v nick +h nick.
Le serveur enverra un message pour chaque type de droit attribué avec la liste des personnes affectées.
5. Chanserv
Le serveur intègre un mini serveur Chanserv qui simule un bot. Il est compté en tant qu’utilisateur réel, mais
ne génère aucun trafic réseau entre lui et le serveur.
Le Chanserv appartient à la première personne qui le demande sur le salon, si son masque correspond au
masque du créateur du salon.
Les commandes de ChanServ se font en clair sur le salon, et commencent toutes par un « ! ». Les autres usagés du salon ne verront pas ces messages.
!chanserv : Pour activer Chanserv sur un salon, et celui-ci rapplique immédiatement. Il s’auto-op et
ajoute les modes +nt sur le salon.
!autoop [on|off] : Pour activer/désactiver l’autoop de l’utilisateur qui parle.
!op [pseudo1] [pseudo2…] : Elève au rang d’opérateur les pseudos spécifiés. Si aucun pseudo spécifié, celui qui parle sera élevé au rang d’opérateur.
!authlist : Affiche la liste des personnes ayant des droits sur Chanserv du salon courant.
!authadd <masque> <niveau> : Ajoute le masque spécifié à la liste des personnes ayant des droits.
!topic [message] : Change le topic du salon.
L’intérêt est de pouvoir récupérer le contrôle du salon en cas de takeover. Chanserv est affiché comme un
IRC Op et ne peut donc ni être dé-op, ni kické, ni banni. Second intérêt est de pouvoir oper ou changer le
topic de façon anonyme.
Cédric Beaudier – Reproduction interdite
Page 7