Configuration dun serveur IRC InspIRCd sur Ubuntu 16.04 LTS

Internet Relay Chat (IRC) est quelque chose qui existe depuis les premiers jours d'Internet. Dans ce guide, je vais vous montrer comment configurer un serveur IRC avec InspIRCd avec Atheme pour des services IRC supplémentaires. InspIRCd est l'un des rares serveurs IRC écrits à partir de zéro et l'un des rares serveurs IRC à fournir un nombre réglable de fonctionnalités grâce à l'utilisation d'un système de modules avancé.

Conditions préalables

  • Une instance de serveur Ubuntu 16.04 LTS x64.
  • Un utilisateur sudo (ou compte root) .
  • (Facultatif) Un nom DNS pour votre instance.

InspIRCd devrait fonctionner avec n'importe quelle taille d'instance. Ses exigences système minimales sont un processeur de 700 MHz et 300 Mo de RAM.

Mettre à jour le système

Lorsque vous vous connectez en tant qu'utilisateur sudo, vous pouvez mettre à jour le système vers le dernier état stable comme suit:

apt-get update && apt-get upgrade 

Configuration du pare-feu

Durcissons d'abord un peu le VPS. Nous allons activer ufwet ajouter quelques règles. Commençons par configurer les ports:

ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable

Le pare-feu demandera une boîte de dialogue pour accepter les modifications. Appuyez simplement Ypour oui.

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Installer et configurer InspIRCd

Ensuite, nous pouvons installer InspIRCd, pour Ubuntu 16.04, ce package est disponible via le référentiel principal.

apt-get install inspircd 

Une fois l'installation terminée, nous pouvons commencer à configurer le service. La configuration principale se trouve dans le /etc/inspircd/inspircd.conffichier et a la disposition d'un fichier XML.

nano /etc/inspircd/inspircd.conf

Recherchez d'abord la serverbalise. Cette balise est l'endroit où vous entrez les détails de votre serveur / réseau, la plupart de ces paramètres sont visibles par vos utilisateurs.

  • name: Nom d'hôte de votre serveur. Il n'a pas besoin d'être résolu, mais doit être la syntaxe correcte (par exemple:) sub.example.net.
  • description: Description du serveur.
  • id: Le SID à utiliser pour ce serveur. Cela ne doit pas être commenté sauf en cas de conflit SID. Cela doit comporter trois caractères. Le premier caractère doit être un chiffre [0-9], les deux caractères restants peuvent être des lettres [AZ] ou des chiffres.
  • network: Nom du réseau donné lors de la connexion aux clients. Doit être le même sur tous les serveurs du réseau et ne pas contenir d'espaces.

Dans notre guide, nous utiliserons les éléments suivants:

<server name="irc.example.net"
        description="My EXAMPLE.NET server"
        id="5AA"            
        network="ExampleNET">

Remplacez la balise d'origine par celle ci-dessus.

Ensuite, recherchez la adminbalise. Ces paramètres sont les détails administratifs de votre serveur. Ils s'affichent lorsque vous tapez la /ADMINcommande.

  • name: Vrai nom
  • nick: Pseudo (de préférence ce que vous utilisez sur le réseau).
  • email: adresse e-mail. Ne doit pas être valide mais cette adresse sera celle que vos utilisateurs devraient vous contacter en cas de problème.

Utilisons l'administrateur Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="[email protected]">

Passez maintenant au bind address. Cette balise est utilisée pour ouvrir le service. Par défaut, vous verrez l'IP localhost ( 127.0.0.1). Cela signifie que le service ne peut pas être contacté par le monde extérieur. Ouvrons notre service en n'utilisant aucune adresse. Cela entraînera la liaison du service à toute interface Ethernet que la machine possède:

<bind address="" port="6667" type="clients">

La prochaine balise sera la powerbalise. Cette balise définit deux mots de passe.

  • diepass: Mot de passe à utiliser par les opérateurs s'ils souhaitent arrêter un serveur.
  • restartpass: Mot de passe à utiliser par les opérateurs s'ils ont besoin de redémarrer un serveur.

Il est préférable de modifier ces mots de passe par défaut:

<power diepass="die123" restartpass="restart123" pause="2">

Les derniers paramètres que nous allons modifier sont les operparamètres. Ceux-ci définissent les connexions des opérateurs.

  • name: connexion opérateur utilisée pour fonctionner (exemple:) /oper name password.
  • password: texte brut et clair
  • host: Quels noms d'hôtes / IP sont autorisés à fonctionner. Plusieurs options peuvent être séparées par des espaces et les CIDR sont autorisés. Vous pouvez simplement utiliser *ou @pour cette section.
  • type: De quel type d'opérateur s'agit-il. Le bloc ci - dessus devrait avoir trois classes déjà définies: NetAdmin, GlobalOpet Helper. C'est NetAdmincelui que nous utiliserons.

Modifiez la operbalise en utilisant le contenu suivant. Notez que pour notre exemple, nous utiliserons " @" pour l'hôte. Dans un environnement de production, il n'est pas souhaitable d'utiliser ceci:

<oper name="xenial"
   password="mypassword"
   host="*@*"
   type="NetAdmin">

Avant de redémarrer le service, modifiez les fichiers motdet rules:

nano /etc/inspircd/inspircd.motd

Remplacez-le par le vôtre, par exemple:

This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.

Enfin éditez les fichiers de règles.

nano /etc/inspircd/inspircd.rules

Ajoutez vos propres règles, par exemple:

The first rule of Fight Club is: You do not talk about Fight Club. The second rule of Fight Club is: You DO NOT TALK ABOUT FIGHT CLUB! 

Maintenant que tout est configuré, redémarrez le service IRC:

service inspircd restart

Pour vérifier que tout fonctionne, interrogez l' netstatoutil:

netstat -tulpn | grep -i inspircd

Il devrait lister le programme inspircd, en écoutant sur le port 6666:

tcp6       0      0 :::6667                 :::*                    LISTEN      31313/inspircd
udp        0      0 0.0.0.0:39335           0.0.0.0:*                           31313/inspircd

Pour tester le serveur, nous pouvons installer un client IRC terminal. Sous Windows, vous pouvez utiliser un programme tel que mIRC. Dans notre exemple, nous utiliserons weechat. Il s'agit d'un client IRC basé sur du texte qui peut être utilisé dans une session de terminal.

Installez l'application weechat via les référentiels:

apt-get install weechat 

Une fois cette application installée, exécutez ce client IRC:

weechat

Pour afficher toutes les commandes que weechat a à offrir, vous pouvez demander la commande d'aide:

/help

Pour quitter weechat, vous pouvez taper la commande suivante:

/quit    

Ajoutez notre serveur local à une connexion dans weechat:

/server add local localhost

Maintenant, nous pouvons nous connecter au profil de connexion nommé «local»:

/connect local

Vous verrez notre motd et nos règles s'afficher dans la fenêtre du terminal.

Pour vous promouvoir auprès d'un opérateur, tapez ce qui suit:

/oper xenial mypassword

Cela nous montrera une confirmation du succès:

22:40:34   local  -- | User mode [+o] by irc.example.net
22:40:34   local  -- | You are now a NetAdmin

C'est tout pour notre serveur IRC.

Installation des services IRC - Atheme

Atheme est un ensemble de services pour les réseaux IRC conçus pour les grands réseaux IRC avec des exigences d'évolutivité élevées. Il ajoute des services supplémentaires tels que NickServ (Nickname Registration) à votre réseau IRC.

Atheme peut être trouvé dans le référentiel Ubuntu:

apt-get install atheme-services

Une fois les fichiers binaires installés, extrayez l'exemple de fichier de configuration et copiez-le dans le athemedossier:

gunzip /usr/share/doc/atheme-services/examples/atheme.conf.example.gz
cp /usr/share/doc/atheme-services/examples/atheme.conf.example /etc/atheme/atheme.conf

Ensuite, modifiez ce fichier de configuration:

nano /etc/atheme/atheme.conf

Recherchez d'abord la loadmodulecommande de protocole. Cela devrait être défini comme suit:

loadmodule "modules/protocol/charybdis";

Remplacez charybdispar le protocole de inspircd:

loadmodule "modules/protocol/inspircd12";

Prochaine recherche du service name:

name = "services.int";

Modifiez services.intpour faire correspondre le nom de domaine ou l'adresse IP de votre serveur IRC:

name = "services.irc.example.net";

Une fois cela fait, recherchez le numérique:

numeric = "00A";

Maintenant, changez-le en une valeur différente de la valeur numérique utilisée dans la balise de serveur utilisée auparavant.

numeric = "77C";

Une fois cela fait, configurons le nom du réseau. Rechercher netname:

netname = "misconfigured network";

Remplacez cette valeur par le paramètre réseau dans la balise de serveur.

netname = "ExampleNET";

Modifiez la valeur de hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Retirez le .misconfigured:

hidehostsuffix = "users";

Remplacez ensuite le nom d'administrateur par celui que nous avons utilisé auparavant:

adminname = "xenial";

Faites correspondre le adminemailà l'e-mail associé utilisé avant:

adminemail = "[email protected]";

Maintenant que cela est fait, nous devons créer une liaison montante pour nos services. Trouvez les deux uplinkblocs de code et commentez-les tous. Ajoutez /*avant la uplink{commande et */à la fin de l'accolade fermante.

Il ressemblera à ceci:

/* this is an example for using an IPv6 address as an uplink */
/*
uplink "irc6.example.net" {
        host = "::1";
        password = "linkage";
        port = 6667;
};
*/

Ensuite, ajoutez notre propre liaison montante. Cette liaison montante ne fonctionnera que sur l'IP de notre hôte local et sur le port 7001. Spécifiez un mot de passe super secret (nous l'utiliserons plus tard):

uplink "services.irc.example.net" {
    host = "127.0.0.1";

    // password
    // If you want to have same send_password and accept_password, you
    // can specify both using 'password' instead of individually.
    password = "SuperSecret123456";

    port = 7001;
 };

Enfin, recherchez nos définitions de services. Commencez par le nickservbloc en premier.

Dans le bloc nickserv, recherchez la hostbalise et changez-la en ExampleNet/services/NickServ:

nickserv {

    ...<<truncated>>...

    /* (*)host
     * The hostname we want NickServ to have.
     */
    host = "ExampleNet/services/NickServ";

    /* (*)real
     * The realname (gecos) information we want NickServ to have.
     */
    real = "Nickname Services";

    ...<<truncated>>...

Modifiez également le hostname tagpour tous les autres services:

nickserv:  ExampleNet/services/NickServ
chanserv:  ExampleNet/services/ChanServ
global:    ExampleNet/services/Global
infoserv:  ExampleNet/services/InfoServ
operserv:  ExampleNet/services/OperServ
saslserv:  ExampleNet/services/SaslServ
memoserv:  ExampleNet/services/MemoServ
gameserv:  ExampleNet/services/GameServ
botserv:   ExampleNet/services/BotServ
groupserv: ExampleNet/services/GroupServ
hostserv:  ExampleNet/services/HostServ
helpserv:  ExampleNet/services/HelpServ
alis:      ExampleNet/services/ALIS

Une fois cela fait, enregistrez et quittez le fichier de configuration.

Pour tout tester, exécutez le atheme-servicesbinaire:

atheme-services

Cela devrait vous dire exactement si cela fonctionne ou non. Si vous ne recevez pas de sortie comme celle illustrée ci-dessous, revenez en arrière et vérifiez les erreurs dans le fichier de configuration:

[19/02/2018 23:06:24] db-open-read: database '/var/lib/atheme/services.db' does not yet exist; a new one will be created.
[19/02/2018 23:06:24] pid 1929
[19/02/2018 23:06:24] running in background mode from /

Activez maintenant le service en éditant le fichier des services:

nano /etc/default/atheme-services

Modifiez la ENABLEDvaleur:

DAEMON_OPTS=""
ENABLED=1

Nous pouvons maintenant démarrer le service:

service atheme-services restart

Vérifiez son statut:

service atheme-services status

Cela renverra des résultats similaires:

● atheme-services.service - LSB: Atheme-services daemon init.d script
   Loaded: loaded (/etc/init.d/atheme-services; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-02-19 23:45:05 UTC; 8s ago
     Docs: man:systemd-sysv-generator(8)

Feb 19 23:45:05 vultr.guest atheme-services[2810]: Starting Atheme IRC Services: atheme-service
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] atheme 6.0.11 is start
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] Module operserv/sgline
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] module_load(): module
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] /etc/atheme/atheme.con
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] db-open-read: database
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] pid 2824
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] running in background
Feb 19 23:45:05 vultr.guest atheme-services[2810]: .
Feb 19 23:45:05 vultr.guest systemd[1]: Started LSB: Atheme-services daemon init.d script.

Avant de terminer, nous devons ajouter nos services Atheme à InspIRCd:

nano /etc/inspircd/inspircd.conf

À la fin du fichier, ajoutez ces lignes:

<bind address="127.0.0.1" port="7001" type="servers">

<uline server="services.irc.example.net">

<link name="services.irc.example.net"
  ipaddr="127.0.0.1"
  port="7001"
  allowmask="127.0.0.1"
  sendpass="SuperSecret123456"
  recvpass="SuperSecret123456">

<chanprotect noservices="no"
         qprefix="~"
         aprefix="&">

# Modules needed for services to function
<module name="m_chanprotect.so">
<module name="m_halfop.so">
<module name="m_services_account.so">
<module name="m_deaf.so">
<module name="m_spanningtree.so">
<module name="m_globops.so">
<module name="m_cban.so">
<module name="m_svshold.so">
<module name="m_hidechans.so">
<module name="m_servprotect.so">
<module name="m_chghost.so">
<module name="m_namesx.so">
<module name="m_uhnames.so">    

Redémarrez maintenant le service InspIRCd:

service inspircd restart

Assurez-vous que tout fonctionne bien:

service inspircd status

Maintenant, redémarrez notre client weechat:

weechat

Connectez-vous à notre serveur local:

/connect local

Vous verrez immédiatement apparaître l'un de nos services Atheme: NickServ. Il vous accueillera avec des informations sur lui-même.

23:12:48   local  -- | NickServ (NickServ@ExampleNet/services/NickServ): Welcome to ExampleNet,
                 | root! Here on ExampleNet, we provide services to enable the registration of
                 | nicknames and channels! For details, type /msg NickServ help and /msg
                 | ChanServ help.

Vous pouvez interroger NickServ et découvrir ses commandes disponibles avec les éléments suivants:

/msg NickServ help


Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.