Cette fois, nous allons parler de l'Internet Relay Chat, ou simplement IRC. Dans la première partie de cet article, nous passerons en revue ce protocole, comment utiliser Irssi ou XChat pour se connecter sur Freenode et d'autres réseaux IRC, entrer sur des canaux et parler aux gens. Après cela, vous verrez comment démarrer votre propre service IRC avec UnrealIRCd.
Table des matières
- Présentation
- Connexion sur IRC
- Commandes IRC de base
- Servir IRC avec UnrealIRCd
Présentation
Vous vous souvenez peut-être des chats IRC, quand il n'y avait pas Facebook, Google+ ou LinkedIn et que nos réseaux sociaux étaient des canaux de chat IRC. Aujourd'hui, nous avons beaucoup d'alternatives pour parler à quelqu'un sur Internet, en plus des réseaux sociaux, nous avons de nombreux services de messagerie populaires, tels que Whatsapp, Skype, Hangouts, etc.
Cependant, bien qu'IRC ne soit pas le principal programme de communication sur Internet, il est toujours vivant et constitue un excellent outil. Il s'agit d'un protocole léger, largement déployé et standardisé, créé à l'origine en 1988 par les utilisateurs de BBS en remplacement et en amélioration du programme de conversation et qui, de par ses caractéristiques, a vu la naissance et la mort de nombreux autres systèmes de messagerie.
Connexion sur IRC
Pour vous connecter à un réseau IRC, vous aurez besoin d'un logiciel client. Voici quelques bons clients pour Linux.
Irssi
Irssi est un client IRC basé sur curses, il est assez génial, personnalisable, permet l'utilisation de scripts et élimine le besoin d'un serveur X.
Installer
yum install irssi
Connectez-vous à un réseau avec le drapeau -c,
irssi -c irc.freenode.org
Basculer entre les fenêtres Irssi peut être un peu délicat au début, vous pouvez utiliser [Ctrl+n] pour passer à la fenêtre suivante et [Ctrl+p] pour le précédent. la commande /window.
/window [ next | previous ]
Utilisez le paramètre list pour afficher une liste avec les fenêtres ouvertes
/window list
Vous pouvez ensuite accéder au numéro de fenêtre répertorié avec [Alt+#] , où # est le numéro de fenêtre entre 1 et 9. Une autre façon de le faire est d'utiliser le paramètre goto
Vous pouvez également trouver de bons conseils sur la façon d'utiliser Irssi sur le site Web de quadpoint.
/window goto [1-9]
XChat
XChat simplifie le processus pour les nouveaux arrivants en vous offrant des options pointer-cliquer sur les commandes et la plupart des actions.
Vous pouvez installer XChat avec yum
yum install xchat
Connectez-vous aux réseaux IRC, en utilisant la boîte de dialogue qui vous est présentée lorsque vous venez de démarrer XChat, également accessible depuis le menu XChat->Liste des réseaux [Ctrl+s]
Lorsque vous vous connectez avec succès au réseau, vous pouvez sélectionner l'une des options pour rejoindre les canaux. Vous pouvez également utiliser le menu Serveur->Liste des chaînes.
Commandes IRC de base
Maintenant que vous avez un client, voici quelques commandes que vous pouvez utiliser sur IRC. Lorsque vous vous connectez pour la première fois sur un réseau, le client vous donnera un surnom basé sur votre connexion système, et pour changer votre surnom en Tuxman par exemple, essayez ceci.
/nick Tuxman
Avec un nouveau, vous voudrez peut-être entrer sur un canal. Pour lister canaux liés à l'essai de développement
/list #devel*
Une fois que vous avez trouvé la chaîne qui vous intéresse, essayez de rejoindre avec /join #channelname.
/join #linux
OK, vous êtes sur une chaîne, vous pouvez commencer à parler maintenant, pour savoir qui est sur la chaîne, faites-le avec des noms
/names
Peut-être que vous voulez en savoir plus sur qui est quelqu'un sur le réseau, essayez whois.
/whois MrRobot
Vous voulez une fenêtre de chat avec quelqu'un? requête.
/query MrRobot
Enregistrez votre pseudo
Vous n'avez pas besoin de créer un compte pour discuter sur les réseaux IRC. Cependant, si vous souhaitez empêcher que votre pseudo ne soit utilisé par quelqu'un d'autre, vous devez enregistrer votre pseudo sur le réseau. Cela vous donnera également accès à des ressources qui nécessitent des surnoms enregistrés, comme le cloaking et l'accès à plus de canaux.
Supposons que vous souhaitiez enregistrer le pseudo Tuxman sur Freenode. Demandez au NickServ d'ENREGISTRER votre pseudo
/msg NickServ REGISTER password [email protected]
Après cela, vous devez obtenir votre code de vérification qui a été envoyé à l'e-mail que vous avez fourni et l'envoyer à NickServ
/msg NickServ VERIFY REGISTER nickname verifycode
Vous avez enregistré votre pseudo, vous pouvez maintenant vous identifier sur le réseau
/msg NickServ IDENTIFY password
Connectez-vous et identifiez-vous au démarrage d'Irssi avec les drapeaux -n et -w.
irssi -c irc.freenode.net -n nickname -w password
Vous devez également changer votre mot de passe de temps en temps, utilisez la commande suivante
/msg nickserv set password newpassword
Installer UnrealIRCd
Parmi les autres implémentations d'Ircd, il y a l'UnrealIRCd. Il est complet, modulaire et hautement documenté, également le serveur IRC le plus implémenté de nos jours, correspondant à plus de 50 % des serveurs IRC actuellement en cours d'exécution.
Exigences supplémentaires
Voici quelques exigences pour tirer le meilleur parti de votre UnrealIRCd, même si ce n'est pas obligatoire, c'est fortement recommandé comme vous le verrez.
NTP - Vous devez avoir l'heure et la date correctes, ntp est votre meilleur choix pour maintenir l'heure et la date correctes.
Installer ntp
yum install ntp
Activer ntpd
chkconfig ntpd on
OpenSSL - Ceci est également facultatif, il sera utilisé si vous souhaitez une prise en charge SSL/TLS.
yum install openssl
Zlib - Cela vous permettra de compresser les paquets réseau et de réduire la charge sur les liens.
yum install zlib
Obtenir UnrealIRCd
Télécharger Unrealircd.
wget --no-check-certificate https://www.unrealircd.org/downloads/Unreal3.2.10.5.tar.gz
Extraire l'archive
tar zxvf Unreal3.2.10.5.tar.gz
Entrer dans l'arborescence des sources
cd Unreal*
Activer l'utilisateur chroot irc et le groupe irc (recommandé)
Cette étape est facultative mais fortement recommandée car elle vous permettra de supprimer les droits de superutilisateur et d'exécuter UnreadIRCd sous un compte utilisateur non privilégié, dans un environnement chrooté, et rendra ainsi l'ensemble de la configuration beaucoup plus sûr.
Pour ce faire, vous devez modifier include/config.h fichier dans le répertoire des sources.
La fonctionnalité d'environnement chroot est définie par la directive suivante
/* #define CHROOTDIR */
Définir la constante IRC_USER
/* #define IRC_USER "<user name>" */
Définir la constante IRC_GROUP
/* #define IRC_GROUP "<group name>" */
Créer un groupe pour ircd
groupadd ircd
Créez un utilisateur ircd et ajoutez-le au groupe ircd.
useradd ircd -s /bin/false -g ircd
Définissez le mot de passe de l'utilisateur ircd pour vous assurer que personne ne peut entrer.
passwd ircd
Configurer la compilation
À ce stade, vous suivez les questions à l'écran et vous pouvez utiliser les paramètres par défaut la plupart du temps, cependant, je vous conseille de répondre Oui lorsqu'on vous demande d'activer le support ssl.
./config
Construire les sources
make
Installer les fichiers
make install
Si vous avez activé les fonctionnalités d'utilisateur, de groupe et de chroot ircd, vous devez maintenant modifier la propriété du répertoire UnrealIRCd.
chown -R ircd:ircd /home/ircd/UnrealIRCd
Configurer
Il est temps de faire fonctionner votre démon IRC. Pour cette modification, le unrealircd.conf , le fichier de configuration pour UnrealIRCd. Vous pouvez trouver le fichier bien documenté doc/sample.conf sous votre arborescence de répertoires UnrealIRCD, il peut vous aider dans votre cheminement. J'ai créé ces extraits de travail avec une brève description.
moi - Ce bloc définit certains paramètres de base du serveur, nom , informations de base et le numérique valeur qui doit être unique sur l'ensemble du serveur sur le même réseau.
me {
nom "irc.localhost" ; info "Mon serveur" ; numérique 1 ;
} ;
administrateur - Ici, vous définissez qui est l'administrateur du serveur, son nom, son surnom et son e-mail.
admin {
"Georges Jedi" ; /* Nom */ "geroge";/* Surnom */ "[email protected]"; /* Courriel */
} ;
clients/serveurs de classe - Cela définit la manière dont les clients et les autres serveurs sont respectivement gérés par notre serveur. fréquence de ping, nombre maximum de connexions clients, fréquence des tentatives de reconnexion, files d'attente de réception et d'envoi.
class clients {
fréquence ping 90 ; maxclients 500 ; envoyerq 100000 ; recvq 8000 ;
} ;' serveurs de classe {
fréquence ping 90 ; maxclients 10 ; /* Nombre maximum de serveurs que nous pouvons avoir liés à la fois */ sendq 1000000; connfreq 100 ; /* Combien de secondes entre chaque tentative de connexion */
} ;
autoriser - Définir qui peut se connecter au serveur et comment. Le premier bloc autorise les connexions utilisateur à partir de n'importe quelle adresse IP ou nom d'hôte et limite les connexions à 5 par adresse IP. Le deuxième bloc n'autorise qu'une seule connexion authentifiée aux personnes de ugly.people.com
allow {
ip *; nom d'hôte * ; clients de classe ; maxpérip 5 ;
} ; autoriser {
IP *@* ; nom d'hôte *@*.ugly.people.com ; clients de classe ; mot de passe "jayajaya" ; maxpérip 1 ;
} ;
écouter - Quels ports écouter les connexions. Sur le bloc, nous écoutons au port 6697 les clients utilisateurs se connectant via Secure Socket Layer (SSL). Notez également l'instruction simple en ligne pour les connexions en clair sur le port 6667
listen *:6697 {
choix {
SSL ; clients uniquement ;
} ;
} ; #écouter *:8067; écouter *:6667; #écouter *:6660-6669;
opération - Attributs de l'opérateur, dans cet exemple nous utilisons un opérateur surnommé george qui peut se connecter de n'importe où avec le mot de passe "fuba"
oper george { clients de classe ; de { hôte utilisateur *@* ; } ;
mot de passe "fuba" ; drapeaux {
administrateur réseau ; can_gkline; can_kline; can_unkline; can_gzline; can_zline; can_restart ; peut_mourir ; can_rehash; global ;
} ;
swhois "Exemple de masque whois" ; snomask cFfkoSsqNG;
} ;
module de chargement - Charge les modules, ce sont le minimum recommandé
loadmodule "modules/commands.so";
loadmodule "modules/cloak.so";
journal - Comment les fichiers journaux seront écrits, sur l'exemple, nous enregistrons les événements signalés comme des erreurs, des éliminations, etc.
log ircd.log {
taille maximale 5 Mo ; drapeaux {
les erreurs; tue; opéra; tkl;
} ;
} ;
définir - Vous pouvez définir beaucoup d'autres choses ici, dans notre exemple, nous avons un réseau sur le domaine gaia.net appelé gaianet, qui connecte les gens au canal #welcome, nous définissons 3 clés de cape alphanumériques différentes, définissons les hôtes sur le réseau, créons un #canal d'aide et autres options détaillées sur nrealircd.org.
set {
kline-address [email protected] ; rejoindre automatiquement #bienvenue ; op
choix {
hide-ulines ;
} ;
maxchannelsperuser 10 ; services-serveur "services.gaia.net" ; serveur par défaut "localhost" ; nom-réseau "gaianet" ; canal d'aide "#help" ; préfixe d'hôte caché "gaia" ;
cape-clés {
"aoAr1O6fh3Q6w4Hnl3J7hVz4Zb7x4YwpW" ; "andaoAr1HnR6gl3sJ7uhVzO6fh3Q6w4oN3" ; "a2Ja2JO6fh3Q6w4oNs7O6fh3Q6w4oN3s7" ;
} ;
hôtes {
"locop.gaia.net" local ; global « ircop.gaia.net »; coadmin "coadmin.gaia.net" ; administrateur "admin.gaia.net" ; servicesadmin "csops.gaia.net" ; netadmin "netadmin.gaia.net" ; host-on-oper-up "non" ;
} ;
} ;
Démarrer UnrealIRCd
Avec toutes les choses en place, vous pouvez démarrer votre démon IRC maintenant. Ajoutez la commande suivante sur rc.local pour lancer UnrealIRCd au démarrage de votre système.
/home/ircd/UnrealIRCd/unreal start
Il devrait fonctionner sans problème, mais si vous rencontrez un problème lors du démarrage, lisez les messages d'erreur sur le terminal et également sur le fichier ircd.log pour déterminer ce qui ne va pas.
Conclusion
Vous avez terminé pour le moment, votre client et votre serveur devraient fonctionner maintenant, vous pouvez parler à des personnes du monde entier en utilisant certains des réseaux mondiaux ou en utilisant votre propre réseau. Cependant, c'est une bonne idée d'en savoir plus sur le protocole IRC, comment gérer les réseaux, les canaux et les utilisateurs, etc. Les documents suivants devraient vous aider.
Documents RFC
La RFC suivante définit les normes du protocole IRC. Vous devriez lire ceci avant de pouvoir tirer le meilleur parti d'IRC.
RFC-1459, RFC-2810, RFC-2811, RFC-2812, RFC-2813, RFC-7194
Support et documentation UnrealIRCd
Reportez-vous à la documentation officielle d'UnrealIRCd pour obtenir plus d'informations. Il contient tous les détails qui ne sont pas décrits dans ce document. Vous pouvez également obtenir de l'aide d'IRC en vous connectant sur irc.unrealircd.org:6667 sur le canal #unreal-support. Merci d'avoir lu !