Opsætning af en InspIRCd IRC-server på Ubuntu 16.04 LTS

Internet Relay Chat (IRC) er noget, der har eksisteret siden internettets tidlige dage. I denne guide vil jeg vise dig, hvordan du opsætter en IRC-server med InspIRCd med Atheme for yderligere IRC-tjenester. InspIRCd er en af ​​de få IRC-servere, der er skrevet fra bunden og en af ​​kun få IRC-servere, der giver et indstilleligt antal funktioner gennem brug af et avanceret modulsystem.

Forudsætninger

InspIRCd bør fungere med enhver instansstørrelse. Dets mindste systemkrav er en 700MHz CPU og 300MB RAM.

Opdater systemet

Når du logger ind som sudo-bruger, kan du opdatere systemet til den seneste stabile status som følger:

apt-get update && apt-get upgrade 

Konfiguration af firewall

Lad os først hærde VPS en lille smule. Vi vil aktivere ufwog tilføje nogle få regler. Lad os starte med at konfigurere porte:

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

Firewallen vil bede en dialogboks om at acceptere ændringer. Bare tryk Yfor ja.

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

Installer og konfigurer InspIRCd

Dernæst kan vi installere InspIRCd, til Ubuntu 16.04 er denne pakke tilgængelig via hovedlageret.

apt-get install inspircd 

Når installationen er færdig, kan vi begynde at konfigurere tjenesten. Hovedkonfigurationen kan findes i /etc/inspircd/inspircd.conffilen og har layoutet som en XML-fil.

nano /etc/inspircd/inspircd.conf

Søg først efter servertagget. Dette tag er hvor du indtaster detaljerne for din server/netværk, de fleste af disse indstillinger er synlige for dine brugere.

  • name: Værtsnavn på din server. Det behøver ikke at løses, men det skal være den korrekte syntaks (f.eks.: sub.example.net).
  • description: Serverbeskrivelse.
  • id: Det SID, der skal bruges til denne server. Dette bør ikke være ukommenteret, medmindre der er en SID-konflikt. Dette skal være tre tegn langt. Det første tegn skal være et ciffer [0-9], de resterende to tegn kan være bogstaver [AZ] eller cifre.
  • network: Netværksnavn givet ved forbindelse til klienter. Bør være ens på alle servere på netværket og ikke indeholde mellemrum.

I vores guide vil vi bruge følgende:

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

Udskift det originale tag med det ovenfor.

Søg derefter efter admintagget. Disse indstillinger er de administrative detaljer for din server. De vises, når du skriver /ADMINkommandoen.

  • name: Rigtige navn
  • nick: Kaldenavn (helst det du bruger på netværket).
  • email: email adresse. Behøver ikke at være gyldig, men denne adresse vil være den, dine brugere skal kontakte dig i tilfælde af problemer.

Lad os bruge administratoren Xenial:

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

Flyt nu til bind address. Dette tag bruges til at åbne tjenesten. Som standard vil du se den lokale værts IP ( 127.0.0.1). Det betyder, at tjenesten ikke kan kontaktes af omverdenen. Lad os åbne vores service uden at bruge nogen adresse overhovedet. Dette vil få tjenesten til at binde sig til enhver Ethernet-grænseflade, som maskinen ejer:

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

Det næste tag bliver powertagget. Dette tag definerer to adgangskoder.

  • diepass: Adgangskode for operatører at bruge, hvis de ønsker at lukke en server.
  • restartpass: Adgangskode, som operatører skal bruge, hvis de skal genstarte en server.

Det er bedst at ændre disse standardadgangskoder:

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

De sidste indstillinger, vi vil ændre, er operindstillingerne. Disse definerer operatørens logins.

  • name: operatørlogin, der bruges til at åbne (Eksempel: /oper name password).
  • password: uhashed og almindelig tekst
  • host: Hvilke værtsnavne/IP'er har tilladelse til at fungere. Flere muligheder kan adskilles med mellemrum, og CIDR'er er tilladt. Du kan bare bruge *eller @til denne sektion.
  • type: Hvilken operationstype er dette. Blokken ovenfor skal have tre klasser allerede defineret: NetAdmin, GlobalOpog Helper. Det NetAdminer den, vi skal bruge.

Skift opertag ved hjælp af følgende indhold. Bemærk, at for vores eksempel vil vi bruge " @" til værten. I et produktionsmiljø er det ikke ønskeligt at bruge dette:

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

Før vi genstarte tjenesten, redigere den motdog rulesfiler:

nano /etc/inspircd/inspircd.motd

Erstat den med din egen, for eksempel:

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

Rediger endelig regelfilerne.

nano /etc/inspircd/inspircd.rules

Tilføj dine egne regler, for eksempel:

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! 

Nu hvor alt er sat op, genstart IRC-tjenesten:

service inspircd restart

For at bekræfte, at alt kører, skal du spørge netstatværktøjet:

netstat -tulpn | grep -i inspircd

Det skulle vise programmet inspircd, lytte på port 6666:

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

For at teste serveren kan vi installere en terminal IRC-klient. På Windows kan du bruge et program som f.eks. mIRC. I vores eksempel vil vi bruge weechat. Dette er en tekstbaseret IRC-klient, der kan bruges i en terminalsession.

Installer weechat-applikationen gennem arkiverne:

apt-get install weechat 

Når denne applikation er installeret, skal du køre denne IRC-klient:

weechat

For at se alle kommandoer weechat har at tilbyde, kan du anmode om hjælpekommandoen:

/help

For at afslutte weechat kan du skrive følgende kommando:

/quit    

Tilføj vores lokale server til en forbindelse i weechat:

/server add local localhost

Nu kan vi oprette forbindelse til forbindelsesprofilen kaldet 'lokal':

/connect local

Du vil se vores modd og regler poppe op i terminalvinduet.

For at promovere dig selv til en operatør skal du skrive følgende:

/oper xenial mypassword

Dette vil vise os en bekræftelse på succes:

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

Det er det for vores IRC-server.

Installation af IRC-tjenester - Atheme

Atheme er et sæt tjenester til IRC-netværk designet til store IRC-netværk med høje krav til skalerbarhed. Det tilføjer yderligere tjenester såsom NickServ (Kaldenavnsregistrering) til dit IRC-netværk.

Atheme kan findes i Ubuntu-depotet:

apt-get install atheme-services

Når de binære filer er installeret, skal du udpakke eksempelkonfigurationsfilen og kopiere den til athememappen:

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

Rediger derefter denne konfigurationsfil:

nano /etc/atheme/atheme.conf

Søg først efter loadmoduleprotokolkommandoen. Dette bør defineres som følger:

loadmodule "modules/protocol/charybdis";

Erstat charybdismed protokollen for inspircd:

loadmodule "modules/protocol/inspircd12";

Næste søgning efter tjenesten name:

name = "services.int";

Skift for services.intat matche domænenavnet eller IP-adressen på din IRC-server:

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

Når dette er gjort, søg efter det numeriske:

numeric = "00A";

Now change it to a value different than the numeric used in the server tag used before.

numeric = "77C";

Once this is done, let's configure the network name. Search for netname:

netname = "misconfigured network";

Change this value to the network parameter in the server tag.

netname = "ExampleNET";

Change the value of the hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Remove the .misconfigured:

hidehostsuffix = "users";

Next change the admin name to the one we used before:

adminname = "xenial";

Match the adminemail to the associated email used before:

adminemail = "[email protected]";

Now that this is done, we need to create an uplink for our services. Find the two uplink code blocks and comment them all out. Add /* before the uplink{ command and */ at the end of the closing brace.

It will look like the following:

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

Tilføj derefter vores eget uplink. Dette uplink vil kun køre på vores lokale værts IP og på port 7001. Angiv en superhemmelig adgangskode (vi bruger den senere):

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

Søg endelig efter vores servicedefinitioner. Start med nickservblokken først.

I nickserv-blokken skal du søge efter hosttagget og ændre det til 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>>...

Skift også hostname tagfor alle de andre tjenester:

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

Når dette er gjort, skal du gemme og afslutte konfigurationsfilen.

For at teste det hele, kør det atheme-servicesbinære:

atheme-services

Dette skulle fortælle dig præcist, om det virker eller ej. Hvis du ikke modtager output som det, der er vist nedenfor, skal du gå tilbage og tjekke for eventuelle fejl i konfigurationsfilen:

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

Aktiver nu tjenesten ved at redigere servicefilen:

nano /etc/default/atheme-services

Skift ENABLEDværdien:

DAEMON_OPTS=""
ENABLED=1

Nu kan vi starte tjenesten:

service atheme-services restart

Tjek dens status:

service atheme-services status

Dette vil returnere lignende resultater:

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

Før vi er færdige, skal vi tilføje vores Atheme-tjenester til InspIRCd:

nano /etc/inspircd/inspircd.conf

Tilføj disse linjer i slutningen af ​​filen:

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

Genstart nu InspIRCd-tjenesten:

service inspircd restart

Sørg for, at alt kører fint:

service inspircd status

Start nu vores weechat-klient igen:

weechat

Opret forbindelse til vores lokale server:

/connect local

Du vil se en af ​​vores Atheme-tjenester dukke op med det samme: NickServ. Den vil byde dig velkommen med information om sig selv.

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.

Du kan forespørge NickServ og finde ud af dens tilgængelige kommandoer med følgende:

/msg NickServ help

Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Bruger du et andet system? Hvis du køber en Debian-server, bør du altid have de nyeste sikkerhedsrettelser og opdateringer, uanset om du sover eller ej

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Opsæt din egen DNS-server på Debian/Ubuntu

Opsæt din egen DNS-server på Debian/Ubuntu

Denne vejledning forklarer, hvordan man opsætter en DNS-server ved hjælp af Bind9 på Debian eller Ubuntu. Gennem hele artiklen skal du erstatte dit-domænenavn.com i overensstemmelse hermed. Ved th

Konfigurer Red5 Media Server på Ubuntu 16.04

Konfigurer Red5 Media Server på Ubuntu 16.04

Bruger du et andet system? Red5 er en open source medieserver implementeret i Java, der giver dig mulighed for at køre Flash multi-bruger applikationer såsom live streamin

Sådan installeres Vanilla Forum på Ubuntu 16.04

Sådan installeres Vanilla Forum på Ubuntu 16.04

Bruger du et andet system? Vanilla forum er en open source forumapplikation skrevet i PHP. Det er en fuldt tilpasselig, nem at bruge og understøtter ekstern

Installer Lynis på Debian 8

Installer Lynis på Debian 8

Introduktion Lynis er et gratis, open source-systemrevisionsværktøj, der bruges af mange systemadministratorer til at verificere integriteten og hærde deres systemer. jeg

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Installation af Microweber på Ubuntu 16.04

Installation af Microweber på Ubuntu 16.04

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Sådan installeres dotCMS på Ubuntu 16.04

Sådan installeres dotCMS på Ubuntu 16.04

Bruger du et andet system? DotCMS er et open source, enterprise-grade content management system skrevet i Java. Den indeholder næsten alle nødvendige funktioner

Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? BigTree CMS 4.2 er et hurtigt og let, gratis og open source, enterprise-grade content management system (CMS) med omfattende

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Installation af Docker CE på Ubuntu 16.04

Installation af Docker CE på Ubuntu 16.04

Bruger du et andet system? Docker er et program, der gør det muligt at implementere programmer, der køres som containere. Det blev skrevet i det populære Go-programmin

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Golang er et programmeringssprog udviklet af Google. Takket være sin alsidighed, enkelhed og pålidelighed er Golang blevet en af ​​de mest populære

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Nulstil MySQL Root Password på Debian/Ubuntu

Nulstil MySQL Root Password på Debian/Ubuntu

Hvis du har glemt din MySQL root-adgangskode, kan du nulstille den ved at følge trinene i denne artikel. Processen er ret enkel og fungerer på disse

Sådan installeres GoAccess på Ubuntu 16.04

Sådan installeres GoAccess på Ubuntu 16.04

Bruger du et andet system? GoAccess er en open source weblog-analysator. Du kan bruge det til analyse af logs på realtidsbasis i enten terminalen eller

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere