Sette opp en InspIRCd IRC-server på Ubuntu 16.04 LTS

Internet Relay Chat (IRC) er noe som har eksistert siden de første dagene av internett. I denne guiden vil jeg vise deg hvordan du setter opp en IRC-server med InspIRCd med Atheme for ytterligere IRC-tjenester. InspIRCd er en av få IRC-servere skrevet fra bunnen av og en av bare noen få IRC-servere som tilbyr et avstemt antall funksjoner gjennom bruk av et avansert modulsystem.

Forutsetninger

InspIRCd skal fungere med alle forekomststørrelser. Minimum systemkrav er en 700MHz CPU og 300MB RAM.

Oppdater systemet

Når du logger inn som sudo-bruker, kan du oppdatere systemet til siste stabile status som følger:

apt-get update && apt-get upgrade 

Konfigurere brannmuren

La oss først herde VPS-en litt. Vi vil aktivere ufwog legge til noen få regler. La oss starte med å konfigurere porter:

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

Brannmuren vil be en dialogboks for å godta endringer. Bare trykk Yfor ja.

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

Installer og konfigurer InspIRCd

Deretter kan vi installere InspIRCd, for Ubuntu 16.04 er denne pakken tilgjengelig gjennom hovedlageret.

apt-get install inspircd 

Når installasjonen er fullført, kan vi begynne å konfigurere tjenesten. Hovedkonfigurasjonen finnes i /etc/inspircd/inspircd.conffilen og har utformingen av en XML-fil.

nano /etc/inspircd/inspircd.conf

Søk først etter servertaggen. Denne taggen er der du skriver inn detaljene for serveren/nettverket, de fleste av disse innstillingene er synlige for brukerne dine.

  • name: Vertsnavn på serveren din. Det trenger ikke løses, men det må være riktig syntaks (f.eks.: sub.example.net).
  • description: Serverbeskrivelse.
  • id: SID-en som skal brukes for denne serveren. Dette skal ikke være ukommentert med mindre det er en SID-konflikt. Dette må være tre tegn langt. Det første tegnet må være et siffer [0-9], de resterende to tegnene kan være bokstaver [AZ] eller sifre.
  • network: Nettverksnavn gitt ved tilkobling til klienter. Bør være lik på alle servere på nettverket og ikke inneholde mellomrom.

I vår guide vil vi bruke følgende:

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

Bytt ut den originale taggen med den ovenfor.

Søk deretter etter admintaggen. Disse innstillingene er de administrative detaljene til serveren din. De vises når du skriver /ADMINkommandoen.

  • name: Virkelige navn
  • nick: Kallenavn (helst det du bruker på nettverket).
  • email: epostadresse. Trenger ikke å være gyldig, men denne adressen vil være den brukerne dine bør kontakte deg i tilfelle problemer.

La oss bruke administratoren Xenial:

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

Gå nå til bind address. Denne taggen brukes til å åpne tjenesten. Som standard vil du se localhost IP ( 127.0.0.1). Det betyr at tjenesten ikke kan kontaktes av omverdenen. La oss åpne opp tjenesten vår ved å ikke bruke noen adresse i det hele tatt. Dette vil føre til at tjenesten binder seg til ethvert Ethernet-grensesnitt maskinen eier:

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

Den neste taggen vil være powertaggen. Denne taggen definerer to passord.

  • diepass: Passord for operatører å bruke hvis de ønsker å stenge en server.
  • restartpass: Passord som operatører kan bruke hvis de trenger å starte en server på nytt.

Det er best å endre disse standardpassordene:

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

De siste innstillingene vi skal endre er operinnstillingene. Disse definerer operatørpåloggingene.

  • name: operatørpålogging som brukes til å åpne (eksempel: /oper name password).
  • password: uhashed og ren tekst
  • host: Hvilke vertsnavn/IP-er har lov til å fungere. Flere alternativer kan skilles med mellomrom, og CIDR-er er tillatt. Du kan bare bruke *eller @for denne delen.
  • type: Hvilken operasjonstype er dette. Blokken ovenfor bør ha tre klasser allerede definert: NetAdmin, GlobalOpog Helper. Det NetAdminer den vi skal bruke.

Endre opertaggen ved å bruke følgende innhold. Merk at for vårt eksempel vil vi bruke " @" for verten. I et produksjonsmiljø er det ikke ønskelig å bruke dette:

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

Før vi starter tjenesten, redigere motdog rulesfiler:

nano /etc/inspircd/inspircd.motd

Erstatt 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 til slutt regelfilene.

nano /etc/inspircd/inspircd.rules

Legg til 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! 

Nå som alt er satt opp, start IRC-tjenesten på nytt:

service inspircd restart

For å bekrefte at alt kjører, spør netstatverktøyet:

netstat -tulpn | grep -i inspircd

Den skal liste programmet inspircd, lytter 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 å teste serveren kan vi installere en terminal IRC-klient. På Windows kan du bruke et program som mIRC. I vårt eksempel vil vi bruke weechat. Dette er en tekstbasert IRC-klient som kan brukes i en terminaløkt.

Installer weechat-applikasjonen gjennom repositoriene:

apt-get install weechat 

Når denne applikasjonen er installert, kjør denne IRC-klienten:

weechat

For å se alle kommandoene weechat har å tilby, kan du be om hjelpekommandoen:

/help

For å avslutte weechat kan du skrive inn følgende kommando:

/quit    

Legg til vår lokale server til en tilkobling i weechat:

/server add local localhost

Nå kan vi koble til tilkoblingsprofilen kalt 'lokal':

/connect local

Du vil se vår motd og regler dukker opp i terminalvinduet.

For å markedsføre deg selv til en operatør, skriv inn følgende:

/oper xenial mypassword

Dette vil vise oss en bekreftelse på suksess:

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

Det er det for vår IRC-server.

Installere IRC-tjenester - Atheme

Atheme er et sett med tjenester for IRC-nettverk designet for store IRC-nettverk med høye skalerbarhetskrav. Den legger til tilleggstjenester som NickServ (Kallenavnregistrering) til ditt IRC-nettverk.

Atheme kan bli funnet i Ubuntu-depotet:

apt-get install atheme-services

Når binærfilene er installert, pakk ut eksempelkonfigurasjonsfilen og kopier 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

Deretter redigerer du denne konfigurasjonsfilen:

nano /etc/atheme/atheme.conf

Søk først etter loadmoduleprotokollkommandoen. Dette bør defineres som følger:

loadmodule "modules/protocol/charybdis";

Erstatt charybdismed protokollen til inspircd:

loadmodule "modules/protocol/inspircd12";

Neste søk etter tjenesten name:

name = "services.int";

Endre for services.intå matche domenenavnet eller IP-adressen til IRC-serveren din:

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

Når dette er gjort, søk etter 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;
};
*/

Deretter legger du til vår egen oppkobling. Denne oppkoblingen vil bare kjøre på vår lokale verts IP og på port 7001. Angi et superhemmelig passord (vi vil bruke det 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øk til slutt etter tjenestedefinisjonene våre. Start med nickservblokken først.

I nickserv-blokken, søk etter hosttaggen og endre den 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>>...

Endre hostname tagfor alle de andre tjenestene også:

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, lagre og avslutt konfigurasjonsfilen.

For å teste alt ut, kjør atheme-servicesbinæren:

atheme-services

Dette bør fortelle deg nøyaktig om det fungerer eller ikke. Hvis du ikke mottar utdata som det som er vist nedenfor, gå tilbake og se etter eventuelle feil i konfigurasjonsfilen:

[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 nå tjenesten ved å redigere tjenestefilen:

nano /etc/default/atheme-services

Endre ENABLEDverdien:

DAEMON_OPTS=""
ENABLED=1

Nå kan vi starte tjenesten:

service atheme-services restart

Sjekk statusen:

service atheme-services status

Dette vil gi 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 ferdige, må vi legge til Atheme-tjenestene våre til InspIRCd:

nano /etc/inspircd/inspircd.conf

På slutten av filen legger du til disse linjene:

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

Start nå InspIRCd-tjenesten på nytt:

service inspircd restart

Sørg for at alt fungerer som det skal:

service inspircd status

Start nå vår weechat-klient igjen:

weechat

Koble til vår lokale server:

/connect local

Du vil se en av våre Atheme-tjenester dukke opp umiddelbart: NickServ. Den vil hilse deg med informasjon om seg 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 spørre NickServ og finne ut tilgjengelige kommandoer med følgende:

/msg NickServ help

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Bruker du et annet system? Hva er Tekkit Classic? Tekkit Classic er en modpack for spillet alle kjenner og elsker; Minecraft. Den inneholder noe av ver

Opprette en Jekyll-blogg på Ubuntu 16.04

Opprette en Jekyll-blogg på Ubuntu 16.04

Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP og relaterte pakker er de mest brukte komponentene når du distribuerer en webserver. I denne artikkelen vil vi lære hvordan du setter opp PHP 7.0 eller PHP 7.1 o

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Sette opp en Yii-applikasjon på Ubuntu 14.04

Sette opp en Yii-applikasjon på Ubuntu 14.04

Yii er et PHP-rammeverk som lar deg utvikle applikasjoner raskere og enklere. Det er enkelt å installere Yii på Ubuntu, som du vil lære nøyaktig

Sett opp din egen DNS-server på Debian/Ubuntu

Sett opp din egen DNS-server på Debian/Ubuntu

Denne opplæringen forklarer hvordan du setter opp en DNS-server ved å bruke Bind9 på Debian eller Ubuntu. Bytt ut ditt-domenenavn.com gjennom hele artikkelen. På th

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Sett opp Red5 Media Server på Ubuntu 16.04

Sett opp Red5 Media Server på Ubuntu 16.04

Bruker du et annet system? Red5 er en åpen kildekode medieserver implementert i Java som lar deg kjøre Flash flerbrukerapplikasjoner som live streamin

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

I denne artikkelen vil vi se hvordan du kompilerer og installerer Nginx mainline fra de offisielle kildene til Nginx med PageSpeed-modulen, som lar deg t

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Hvordan installere Vanilla Forum på Ubuntu 16.04

Hvordan installere Vanilla Forum på Ubuntu 16.04

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Kanboard på Debian 9

Hvordan installere Kanboard på Debian 9

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Gitea på Debian 9

Hvordan installere Gitea på Debian 9

Bruker du et annet system? Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er

Hvordan installere Gitea på Ubuntu 18.04

Hvordan installere Gitea på Ubuntu 18.04

Bruker du et annet system? Gitea er et alternativt, selvdrevet versjonskontrollsystem med åpen kildekode drevet av git. Gitea er skrevet på Golang og er

Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer