Einrichten eines InspIRCd IRC-Servers unter Ubuntu 16.04 LTS

Internet Relay Chat (IRC) gibt es schon seit den Anfängen des Internets. In diesem Handbuch werde ich Ihnen zeigen, wie Sie einen IRC-Server mit InspIRCd mit Atheme für zusätzliche IRC-Dienste einrichten. InspIRCd ist einer der wenigen IRC-Server, die von Grund auf neu geschrieben wurden, und einer der wenigen IRC-Server, die mithilfe eines fortschrittlichen Modulsystems eine einstellbare Anzahl von Funktionen bieten.

Voraussetzungen

InspIRCd sollte mit jeder Instanzgröße funktionieren. Die Mindestsystemanforderungen sind eine 700-MHz-CPU und 300 MB RAM.

Aktualisieren Sie das System

Wenn Sie sich als Sudo-Benutzer anmelden, können Sie das System wie folgt auf den neuesten stabilen Status aktualisieren:

apt-get update && apt-get upgrade 

Firewall konfigurieren

Lassen Sie uns zuerst den VPS ein wenig härten. Wir werden ufweinige Regeln aktivieren und hinzufügen. Beginnen wir mit der Konfiguration der Ports:

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

Die Firewall fordert einen Dialog auf, Änderungen zu akzeptieren. Drücken Sie einfach Yauf Ja.

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

Installieren und konfigurieren Sie InspIRCd

Als nächstes können wir InspIRCd installieren. Für Ubuntu 16.04 ist dieses Paket über das Haupt-Repository verfügbar.

apt-get install inspircd 

Sobald die Installation abgeschlossen ist, können wir mit der Konfiguration des Dienstes beginnen. Die Hauptkonfiguration befindet sich in der /etc/inspircd/inspircd.confDatei und hat das Layout einer XML-Datei.

nano /etc/inspircd/inspircd.conf

Suchen Sie zuerst nach dem serverTag. In diesem Tag geben Sie die Details Ihres Servers / Netzwerks ein. Die meisten dieser Einstellungen sind für Ihre Benutzer sichtbar.

  • name: Hostname Ihres Servers. Es muss nicht aufgelöst werden, muss aber die richtige Syntax haben (zB :) sub.example.net.
  • description: Serverbeschreibung.
  • id: Die für diesen Server zu verwendende SID. Dies sollte nicht kommentiert werden, es sei denn, es liegt ein SID-Konflikt vor. Dies muss drei Zeichen lang sein. Das erste Zeichen muss eine Ziffer [0-9] sein, die verbleibenden zwei Zeichen können Buchstaben [AZ] oder Ziffern sein.
  • network: Netzwerkname bei Verbindung mit Clients. Sollte auf allen Servern im Netzwerk gleich sein und keine Leerzeichen enthalten.

In unserem Leitfaden werden wir Folgendes verwenden:

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

Ersetzen Sie das Originaletikett durch das obige.

Suchen Sie als Nächstes nach dem adminTag. Diese Einstellungen sind die administrativen Details Ihres Servers. Sie werden angezeigt, wenn Sie den /ADMINBefehl eingeben.

  • name: Echter Name
  • nick: Spitzname (vorzugsweise was Sie im Netzwerk verwenden).
  • email: E-Mail-Addresse. Muss nicht gültig sein, aber diese Adresse ist diejenige, die Ihre Benutzer bei Problemen mit Ihnen kontaktieren sollten.

Verwenden wir den Administrator Xenial:

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

Gehen Sie jetzt zum bind address. Dieses Tag wird zum Öffnen des Dienstes verwendet. Standardmäßig wird die localhost IP ( 127.0.0.1) angezeigt . Dies bedeutet, dass der Dienst von der Außenwelt nicht kontaktiert werden kann. Öffnen wir unseren Service, indem wir überhaupt keine Adresse verwenden. Dadurch wird der Dienst an eine Ethernet-Schnittstelle gebunden, die der Computer besitzt:

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

Das nächste Tag ist das powerTag. Dieses Tag definiert zwei Passwörter.

  • diepass: Kennwort, das Betreiber verwenden können, wenn sie einen Server herunterfahren möchten.
  • restartpass: Kennwort, das Bediener verwenden müssen, wenn sie einen Server neu starten müssen.

Es ist am besten, diese Standardkennwörter zu ändern:

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

Die letzten Einstellungen, die wir ändern werden, sind die operEinstellungen. Diese definieren die Bedieneranmeldungen.

  • name: Operator-Login, mit dem gearbeitet wird (Beispiel :) /oper name password.
  • password: ungehackter und einfacher Text
  • host: Welche Hostnamen / IPs dürfen funktionieren? Mehrere Optionen können durch Leerzeichen getrennt werden, und CIDRs sind zulässig. Sie können nur *oder @für diesen Abschnitt verwenden.
  • type: Welcher Operntyp ist das? Der Block sollte über drei Klassen bereits definiert: NetAdmin, GlobalOpund Helper. Das NetAdminist das, was wir verwenden werden.

Ändern Sie das operTag mit dem folgenden Inhalt. Beachten Sie, dass wir in unserem Beispiel " @" für den Host verwenden. In einer Produktionsumgebung ist es nicht wünschenswert, Folgendes zu verwenden:

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

Bearbeiten Sie die Dateien motdund, bevor Sie den Dienst neu starten rules:

nano /etc/inspircd/inspircd.motd

Ersetzen Sie es durch Ihr eigenes, zum Beispiel:

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

Bearbeiten Sie abschließend die Regeldateien.

nano /etc/inspircd/inspircd.rules

Fügen Sie Ihre eigenen Regeln hinzu, zum Beispiel:

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! 

Nachdem alles eingerichtet ist, starten Sie den IRC-Dienst neu:

service inspircd restart

Fragen Sie das netstatTool ab , um zu überprüfen, ob alles ausgeführt wird :

netstat -tulpn | grep -i inspircd

Es sollte das Programm inspircdauflisten und den Port abhören 6666:

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

Um den Server zu testen, können wir einen Terminal-IRC-Client installieren. Unter Windows können Sie ein Programm wie mIRC verwenden. In unserem Beispiel verwenden wir Weechat. Dies ist ein textbasierter IRC-Client, der in einer Terminalsitzung verwendet werden kann.

Installieren Sie die Weechat-Anwendung über die Repositorys:

apt-get install weechat 

Führen Sie nach der Installation dieser Anwendung diesen IRC-Client aus:

weechat

Um alle von weechat angebotenen Befehle anzuzeigen, können Sie den Hilfebefehl anfordern:

/help

Um weechat zu beenden, können Sie den folgenden Befehl eingeben:

/quit    

Fügen Sie unseren lokalen Server zu einer Verbindung in weechat hinzu:

/server add local localhost

Jetzt können wir uns mit dem Verbindungsprofil 'local' verbinden:

/connect local

Sie sehen unser Motiv und unsere Regeln im Terminalfenster.

Geben Sie Folgendes ein, um sich zu einem Operator zu befördern:

/oper xenial mypassword

Dies zeigt uns eine Bestätigung über den Erfolg:

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

Das war's für unseren IRC-Server.

IRC-Dienste installieren - Atheme

Atheme ist eine Reihe von Diensten für IRC-Netzwerke, die für große IRC-Netzwerke mit hohen Skalierbarkeitsanforderungen entwickelt wurden. Es fügt Ihrem IRC-Netzwerk zusätzliche Dienste wie NickServ (Nickname Registration) hinzu.

Atheme befindet sich im Ubuntu-Repository:

apt-get install atheme-services

Extrahieren Sie nach der Installation der Binärdateien die Beispielkonfigurationsdatei und kopieren Sie sie in den athemeOrdner:

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

Bearbeiten Sie als Nächstes diese Konfigurationsdatei:

nano /etc/atheme/atheme.conf

Suchen Sie zuerst nach dem loadmoduleProtokollbefehl. Dies sollte wie folgt definiert werden:

loadmodule "modules/protocol/charybdis";

Ersetzen Sie charybdisdurch das Protokoll von inspircd:

loadmodule "modules/protocol/inspircd12";

Nächste Suche nach dem Dienst name:

name = "services.int";

Ändern Sie services.intdiese entsprechend dem Domainnamen oder der IP-Adresse Ihres IRC-Servers:

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

Sobald dies erledigt ist, suchen Sie nach der Zahl:

numeric = "00A";

Ändern Sie ihn nun in einen anderen Wert als den zuvor verwendeten Server-Tag.

numeric = "77C";

Sobald dies erledigt ist, konfigurieren wir den Netzwerknamen. Suche nach netname:

netname = "misconfigured network";

Ändern Sie diesen Wert in den Netzwerkparameter im Server-Tag.

netname = "ExampleNET";

Ändern Sie den Wert von hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Entfernen Sie die .misconfigured:

hidehostsuffix = "users";

Ändern Sie als Nächstes den Admin-Namen in den zuvor verwendeten:

adminname = "xenial";

Ordnen Sie die adminemailder zuvor verwendeten zugeordneten E-Mail zu:

adminemail = "[email protected]";

Nachdem dies erledigt ist, müssen wir einen Uplink für unsere Dienste erstellen. Finden Sie die beiden uplinkCodeblöcke und kommentieren Sie sie alle aus. Fügen Sie /*vor dem uplink{Befehl und */am Ende der schließenden Klammer hinzu.

Es wird wie folgt aussehen:

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

Als nächstes fügen Sie unseren eigenen Uplink hinzu. Dieser Uplink wird nur auf der IP unseres lokalen Hosts und auf dem Port ausgeführt 7001. Geben Sie ein supergeheimes Passwort an (wir werden es später verwenden):

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;
 };

Suchen Sie abschließend nach unseren Service-Definitionen. Beginnen Sie zuerst mit dem nickservBlock.

Suchen Sie im Nickserv-Block nach dem hostTag und ändern Sie es in 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>>...

Ändern Sie das auch hostname tagfür alle anderen Dienste:

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

Speichern und beenden Sie anschließend die Konfigurationsdatei.

Führen Sie die atheme-servicesBinärdatei aus, um alles zu testen :

atheme-services

Dies sollte Ihnen genau sagen, ob es funktioniert oder nicht. Wenn Sie keine Ausgabe wie die unten gezeigte erhalten, gehen Sie zurück und überprüfen Sie die Konfigurationsdatei auf Fehler:

[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 /

Aktivieren Sie nun den Dienst, indem Sie die Dienstedatei bearbeiten:

nano /etc/default/atheme-services

Ändern Sie den ENABLEDWert:

DAEMON_OPTS=""
ENABLED=1

Jetzt können wir den Dienst starten:

service atheme-services restart

Überprüfen Sie den Status:

service atheme-services status

Dies führt zu ähnlichen Ergebnissen:

● 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.

Bevor wir fertig sind, müssen wir unsere Atheme-Dienste zu InspIRCd hinzufügen:

nano /etc/inspircd/inspircd.conf

Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:

<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">    

Starten Sie nun den InspIRCd-Dienst neu:

service inspircd restart

Stellen Sie sicher, dass alles gut läuft:

service inspircd status

Starten Sie jetzt unseren Weechat-Client erneut:

weechat

Stellen Sie eine Verbindung zu unserem lokalen Server her:

/connect local

Sie werden sofort einen unserer Atheme-Dienste sehen: NickServ. Es wird Sie mit Informationen über sich selbst begrüßen.

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.

Sie können NickServ abfragen und die verfügbaren Befehle wie folgt herausfinden:

/msg NickServ help


Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.