Konfigurera en InspIRCd IRC-server på Ubuntu 16.04 LTS

Internet Relay Chat (IRC) är något som har funnits sedan internets tidiga dagar. I den här guiden kommer jag att visa dig hur du ställer in en IRC-server med InspIRCd med Atheme för ytterligare IRC-tjänster. InspIRCd är en av få IRC-servrar som är skrivna från grunden och en av endast ett fåtal IRC-servrar som tillhandahåller ett inställbart antal funktioner genom att använda ett avancerat modulsystem.

Förutsättningar

InspIRCd bör fungera med vilken instansstorlek som helst. De minsta systemkraven är en 700MHz CPU och 300MB RAM.

Uppdatera systemet

När du loggar in som sudo-användare kan du uppdatera systemet till den senaste stabila statusen enligt följande:

apt-get update && apt-get upgrade 

Konfigurera brandväggen

Låt oss först härda VPS lite. Vi kommer att aktivera ufwoch lägga till några regler. Låt oss börja med att konfigurera portar:

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

Brandväggen kommer att uppmana en dialogruta för att acceptera ändringar. Tryck bara Ypå ja.

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

Installera och konfigurera InspIRCd

Därefter kan vi installera InspIRCd, för Ubuntu 16.04 är detta paket tillgängligt via huvudförvaret.

apt-get install inspircd 

När installationen är klar kan vi börja konfigurera tjänsten. Huvudkonfigurationen finns i /etc/inspircd/inspircd.conffilen och har layouten som en XML-fil.

nano /etc/inspircd/inspircd.conf

Sök först efter servertaggen. Den här taggen är där du anger informationen om din server/nätverk, de flesta av dessa inställningar är synliga för dina användare.

  • name: Värdnamn på din server. Det behöver inte lösas, men måste vara korrekt syntax (t.ex.: sub.example.net).
  • description: Serverbeskrivning.
  • id: SID som ska användas för denna server. Detta ska inte vara okommenterat om det inte finns en SID-konflikt. Detta måste vara tre tecken långt. Det första tecknet måste vara en siffra [0-9], de återstående två tecknen kan vara bokstäver [AZ] eller siffror.
  • network: Nätverksnamn ges vid anslutning till klienter. Bör vara samma på alla servrar i nätverket och inte innehålla mellanslag.

I vår guide kommer vi att använda följande:

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

Byt ut den ursprungliga taggen med den ovan.

Sök sedan efter admintaggen. Dessa inställningar är de administrativa uppgifterna för din server. De visas när du skriver /ADMINkommandot.

  • name: Riktiga namn
  • nick: Smeknamn (helst det du använder i nätverket).
  • email: e-postadress. Behöver inte vara giltig men den här adressen kommer att vara den som dina användare ska kontakta dig i händelse av problem.

Låt oss använda administratören Xenial:

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

Gå nu till bind address. Denna tagg används för att öppna tjänsten. Som standard kommer du att se localhost IP ( 127.0.0.1). Det gör att tjänsten inte kan kontaktas av omvärlden. Låt oss öppna upp vår tjänst genom att inte använda någon adress alls. Detta kommer att få tjänsten att binda till alla Ethernet-gränssnitt som maskinen äger:

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

Nästa tagg blir powertaggen. Denna tagg definierar två lösenord.

  • diepass: Lösenord för operatörer att använda om de vill stänga av en server.
  • restartpass: Lösenord för operatörer att använda om de behöver starta om en server.

Det är bäst att ändra dessa standardlösenord:

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

De sista inställningarna vi kommer att ändra är operinställningarna. Dessa definierar operatörsinloggningarna.

  • name: operatörsinloggning som används för att aktivera (Exempel: /oper name password).
  • password: unhashad och vanlig text
  • host: Vilka värdnamn/IP:er är tillåtna att fungera. Flera alternativ kan separeras med mellanslag och CIDR är tillåtna. Du kan bara använda *eller @för det här avsnittet.
  • type: Vilken operationstyp är det här. Blocket ovan bör ha tre klasser redan definierade: NetAdmin, GlobalOpoch Helper. Det NetAdminär den vi kommer att använda.

Ändra opertaggen med följande innehåll. Observera att för vårt exempel kommer vi att använda " @" för värden. I en produktionsmiljö är det inte önskvärt att använda detta:

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

Innan vi startar om tjänsten, redigera motdoch rulesfilerna:

nano /etc/inspircd/inspircd.motd

Byt ut den mot din egen, till exempel:

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

Äntligen redigera regelfilerna.

nano /etc/inspircd/inspircd.rules

Lägg till dina egna regler, till exempel:

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 när allt är inställt, starta om IRC-tjänsten:

service inspircd restart

För att verifiera att allt körs, fråga netstatverktyget:

netstat -tulpn | grep -i inspircd

Det bör lista programmet inspircd, lyssna på port 6666:

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

För att testa servern kan vi installera en terminal IRC-klient. På Windows kan du använda ett program som mIRC. I vårt exempel kommer vi att använda weechat. Detta är en textbaserad IRC-klient som kan användas i en terminalsession.

Installera weechat-applikationen genom arkiven:

apt-get install weechat 

När denna applikation är installerad, kör denna IRC-klient:

weechat

För att se alla kommandon weechat har att erbjuda kan du begära hjälpkommandot:

/help

För att avsluta weechat kan du skriva följande kommando:

/quit    

Lägg till vår lokala server till en anslutning i weechat:

/server add local localhost

Nu kan vi ansluta till anslutningsprofilen som heter 'lokal':

/connect local

Du kommer att se våra motd och regler dyka upp i terminalfönstret.

För att marknadsföra dig själv till en operatör, skriv följande:

/oper xenial mypassword

Detta kommer att visa oss en bekräftelse på framgång:

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

Det är allt för vår IRC-server.

Installera IRC-tjänster - Atheme

Atheme är en uppsättning tjänster för IRC-nätverk designade för stora IRC-nätverk med höga krav på skalbarhet. Den lägger till ytterligare tjänster som NickServ (Smeknamnsregistrering) till ditt IRC-nätverk.

Atheme kan hittas i Ubuntu-förvaret:

apt-get install atheme-services

När binärfilerna är installerade, extrahera exemplet på konfigurationsfilen och kopiera den till 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

Redigera sedan den här konfigurationsfilen:

nano /etc/atheme/atheme.conf

Sök först efter loadmoduleprotokollkommandot. Detta bör definieras enligt följande:

loadmodule "modules/protocol/charybdis";

Ersätt charybdismed protokollet för inspircd:

loadmodule "modules/protocol/inspircd12";

Nästa sökning efter tjänsten name:

name = "services.int";

Ändra för services.intatt matcha domännamnet eller IP-adressen för din IRC-server:

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

När detta är gjort, sök efter numeriken:

numeric = "00A";

Ändra det nu till ett annat värde än det numeriska som används i servertaggen som användes tidigare.

numeric = "77C";

När detta är gjort, låt oss konfigurera nätverksnamnet. Sök efter netname:

netname = "misconfigured network";

Ändra detta värde till nätverksparametern i servertaggen.

netname = "ExampleNET";

Ändra värdet på hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Ta bort .misconfigured:

hidehostsuffix = "users";

Ändra sedan administratörsnamnet till det vi använde tidigare:

adminname = "xenial";

Matcha adminemailmed den associerade e-postadressen som användes tidigare:

adminemail = "[email protected]";

Nu när detta är gjort måste vi skapa en upplänk för våra tjänster. Hitta de två uplinkkodblocken och kommentera dem alla. Lägg till /*före uplink{kommandot och */i slutet av den avslutande parentesen.

Det kommer att se ut som följande:

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

Lägg sedan till vår egen upplänk. Denna upplänk kommer bara att köras på vår lokala värds IP och på port 7001. Ange ett superhemligt lösenord (vi kommer att använda det senare):

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 slutligen efter våra tjänstedefinitioner. Börja med nickservblocket först.

I nickserv-blocket, sök efter hosttaggen och ändra den till 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>>...

Ändra även hostname tagför alla andra tjänster:

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 detta är gjort, spara och avsluta konfigurationsfilen.

För att testa allt, kör atheme-servicesbinär:

atheme-services

Detta bör berätta exakt om det fungerar eller inte. Om du inte får utdata som det som visas nedan, gå tillbaka och kontrollera om det finns några fel 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 /

Aktivera nu tjänsten genom att redigera tjänstefilen:

nano /etc/default/atheme-services

Ändra ENABLEDvärdet:

DAEMON_OPTS=""
ENABLED=1

Nu kan vi starta tjänsten:

service atheme-services restart

Kontrollera dess status:

service atheme-services status

Detta ger liknande resultat:

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

Innan vi är klara måste vi lägga till våra Atheme-tjänster till InspIRCd:

nano /etc/inspircd/inspircd.conf

Lägg till dessa rader i slutet av 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">    

Starta nu om InspIRCd-tjänsten:

service inspircd restart

Se till att allt fungerar som det ska:

service inspircd status

Starta nu vår weechat-klient igen:

weechat

Anslut till vår lokala server:

/connect local

Du kommer att se en av våra Atheme-tjänster dyka upp omedelbart: NickServ. Det kommer att hälsa dig med information om sig själv.

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 fråga NickServ och ta reda på dess tillgängliga kommandon med följande:

/msg NickServ help

Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Installera Lets Encrypt SSL på One-Click WordPress-appen

Installera Lets Encrypt SSL på One-Click WordPress-appen

Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Tre gratis serverkontrollpaneler (snabbinstallation)

Tre gratis serverkontrollpaneler (snabbinstallation)

1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen

Konfigurera en Yii-applikation på Ubuntu 14.04

Konfigurera en Yii-applikation på Ubuntu 14.04

Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt

Använder skärmen på Ubuntu 14.04

Använder skärmen på Ubuntu 14.04

Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Använda Logrotate för att hantera loggfiler

Använda Logrotate för att hantera loggfiler

Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Konfigurera Red5 Media Server på Ubuntu 16.04

Konfigurera Red5 Media Server på Ubuntu 16.04

Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Vanilla Forum på Ubuntu 16.04

Hur man installerar Vanilla Forum på Ubuntu 16.04

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer