Nastavení serveru InspIRCd IRC na Ubuntu 16.04 LTS

Internet Relay Chat (IRC) je něco, co existuje od počátků internetu. V této příručce vám ukážu, jak nastavit IRC server s InspIRCd s Atheme pro další služby IRC. InspIRCd je jedním z mála IRC serverů napsaných od nuly a jedním z mála IRC serverů, které poskytují laditelný počet funkcí pomocí pokročilého modulového systému.

Předpoklady

  • Instance serveru Ubuntu 16.04 LTS x64.
  • Uživatel sudo (nebo účet root) .
  • (Volitelné) Název DNS pro vaši instanci.

InspIRCd by měl fungovat s libovolnou velikostí instance. Jeho minimální systémové požadavky jsou 700 MHz CPU a 300 MB RAM.

Aktualizujte systém

Když se přihlásíte jako uživatel sudo, můžete aktualizovat systém na nejnovější stabilní stav následovně:

apt-get update && apt-get upgrade 

Konfigurace firewallu

Nejprve trochu přitvrdíme VPS. Povolíme ufwa přidáme několik pravidel. Začněme konfigurací portů:

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

Firewall vyzve dialogové okno k přijetí změn. Stačí stisknout Yano.

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

Nainstalujte a nakonfigurujte InspIRCd

Dále můžeme nainstalovat InspIRCd, pro Ubuntu 16.04 je tento balíček dostupný prostřednictvím hlavního úložiště.

apt-get install inspircd 

Po dokončení instalace můžeme začít s konfigurací služby. Hlavní konfigurace se nachází v /etc/inspircd/inspircd.confsouboru a má vzhled souboru XML.

nano /etc/inspircd/inspircd.conf

Nejprve vyhledejte serverznačku. Tato značka je místo, kde zadáváte podrobnosti o vašem serveru/síti, většina těchto nastavení je viditelná pro vaše uživatele.

  • name: Název hostitele vašeho serveru. Nemusí to řešit, ale musí mít správnou syntaxi (např.: sub.example.net).
  • description: Popis serveru.
  • id: SID, které se má použít pro tento server. Toto by nemělo být bez komentáře, pokud nedojde ke konfliktu SID. Musí mít tři znaky. První znak musí být číslice [0-9], zbývající dva znaky mohou být písmena [AZ] nebo číslice.
  • network: Název sítě zadaný při připojení ke klientům. Měl by být stejný na všech serverech v síti a neměl by obsahovat mezery.

V našem průvodci budeme používat následující:

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

Nahraďte původní štítek výše uvedeným.

Dále vyhledejte adminznačku. Tato nastavení jsou administrativní detaily vašeho serveru. Zobrazí se, když zadáte /ADMINpříkaz.

  • name: Skutečné jméno
  • nick: Přezdívka (nejlépe taková, jakou používáte v síti).
  • email: emailová adresa. Nemusí být platná, ale tato adresa bude ta, na kterou by vás měli vaši uživatelé kontaktovat v případě problémů.

Použijeme správce Xenial:

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

Nyní přejděte na bind address. Tato značka se používá pro otevření služby. Ve výchozím nastavení uvidíte IP localhost ( 127.0.0.1). To znamená, že službu nemůže kontaktovat vnější svět. Pojďme otevřít naši službu tím, že nebudeme používat žádnou adresu. To způsobí, že se služba naváže na jakékoli ethernetové rozhraní, které stroj vlastní:

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

Další tag bude powertag. Tato značka definuje dvě hesla.

  • diepass: Heslo pro operátory, které mohou použít, pokud chtějí vypnout server.
  • restartpass: Heslo pro operátory, které mohou použít, pokud potřebují restartovat server.

Nejlepší je změnit tato výchozí hesla:

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

Poslední nastavení, které budeme měnit, jsou opernastavení. Ty definují přihlášení operátora.

  • name: přihlášení operátora, které se používá k provozu (Příklad: /oper name password).
  • password: nehašovaný a prostý text
  • host: Jaké názvy hostitelů/IP mohou fungovat. Více možností lze oddělit mezerami a CIDR jsou povoleny. Pro tuto sekci můžete použít *nebo @.
  • type: Co je to za typ opery. Výše uvedený blok by měl mít již definované tři třídy: NetAdmin, GlobalOpa Helper. To NetAdminje ten, který budeme používat.

Změňte operznačku pomocí následujícího obsahu. Všimněte si, že v našem příkladu budeme @pro hostitele používat " ". V produkčním prostředí není žádoucí používat toto:

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

Než službu restartujeme, upravte soubory motda rules:

nano /etc/inspircd/inspircd.motd

Nahraďte jej vlastním, například:

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

Nakonec upravte soubory pravidel.

nano /etc/inspircd/inspircd.rules

Přidejte vlastní pravidla, například:

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! 

Nyní, když je vše nastaveno, restartujte službu IRC:

service inspircd restart

Chcete-li ověřit, že vše běží, dotazujte se netstatnástroje:

netstat -tulpn | grep -i inspircd

Měl by vypsat program inspircdnaslouchající na portu 6666:

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

Pro testování serveru můžeme nainstalovat terminálového IRC klienta. Ve Windows můžete použít program jako je mIRC. V našem příkladu budeme používat weechat. Toto je textový IRC klient, který může být použit v terminálové relaci.

Nainstalujte aplikaci weechat prostřednictvím repozitářů:

apt-get install weechat 

Jakmile je tato aplikace nainstalována, spusťte tohoto IRC klienta:

weechat

Chcete-li zobrazit všechny příkazy, které weechat nabízí, můžete požádat o příkaz help:

/help

Chcete-li ukončit weechat, můžete zadat následující příkaz:

/quit    

Přidejte náš místní server k připojení ve weechat:

/server add local localhost

Nyní se můžeme připojit k profilu připojení s názvem 'místní':

/connect local

V okně terminálu se zobrazí naše motd a pravidla.

Chcete-li se povýšit na operátora, zadejte následující:

/oper xenial mypassword

Toto nám ukáže potvrzení úspěchu:

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

To je pro náš IRC server vše.

Instalace služeb IRC - Atheme

Atheme je sada služeb pro IRC sítě určená pro velké IRC sítě s vysokými požadavky na škálovatelnost. Do vaší sítě IRC přidává další služby, jako je NickServ (registrace přezdívky).

Atheme lze nalézt v úložišti Ubuntu:

apt-get install atheme-services

Jakmile jsou binární soubory nainstalovány, rozbalte příklad konfiguračního souboru a zkopírujte jej do athemesložky:

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

Dále upravte tento konfigurační soubor:

nano /etc/atheme/atheme.conf

Nejprve vyhledejte loadmodulepříkaz protokolu. To by mělo být definováno takto:

loadmodule "modules/protocol/charybdis";

Nahraďte charybdisprotokolem inspircd:

loadmodule "modules/protocol/inspircd12";

Další hledání služby name:

name = "services.int";

Změňte tak, services.intaby odpovídala názvu domény nebo IP adrese vašeho IRC serveru:

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

Jakmile to uděláte, vyhledejte číslo:

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

Dále přidejte náš vlastní uplink. Tento uplink poběží pouze na IP našeho localhostu a na portu 7001. Zadejte supertajné heslo (budeme ho používat později):

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

Nakonec vyhledejte naše definice služeb. Začněte nickservnejprve blokem.

V bloku nickserv vyhledejte hostznačku a změňte ji na 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>>...

Změňte také hostname tagpro všechny ostatní služby:

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

Jakmile to uděláte, uložte a ukončete konfigurační soubor.

Chcete-li to vše vyzkoušet, spusťte atheme-servicesbinární soubor:

atheme-services

To by vám mělo přesně říct, jestli to funguje nebo ne. Pokud neobdržíte výstup, jak je znázorněno níže, vraťte se a zkontrolujte, zda v konfiguračním souboru nejsou nějaké chyby:

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

Nyní povolte službu úpravou souboru služeb:

nano /etc/default/atheme-services

Změňte ENABLEDhodnotu:

DAEMON_OPTS=""
ENABLED=1

Nyní můžeme službu spustit:

service atheme-services restart

Zkontrolujte jeho stav:

service atheme-services status

To vrátí podobné výsledky:

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

Než skončíme, musíme přidat naše služby Atheme do InspIRCd:

nano /etc/inspircd/inspircd.conf

Na konec souboru přidejte tyto řádky:

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

Nyní restartujte službu InspIRCd:

service inspircd restart

Ujistěte se, že vše běží správně:

service inspircd status

Nyní znovu spusťte našeho weechatového klienta:

weechat

Připojte se k našemu místnímu serveru:

/connect local

Ihned uvidíte jednu z našich služeb Atheme: NickServ. Přivítá vás informacemi o sobě.

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.

Můžete se dotazovat NickServ a zjistit jeho dostupné příkazy pomocí následujícího:

/msg NickServ help

Nainstalujte Plesk na CentOS 7

Nainstalujte Plesk na CentOS 7

Používáte jiný systém? Plesk je proprietární ovládací panel webového hostitele, který umožňuje uživatelům spravovat jejich osobní a/nebo klientské webové stránky, databáze

Nainstalujte Lets Encrypt SSL na aplikaci WordPress One-Click

Nainstalujte Lets Encrypt SSL na aplikaci WordPress One-Click

Úvod Lets Encrypt je služba certifikační autority, která nabízí bezplatné certifikáty TLS/SSL. Proces instalace zjednodušil Certbot,

Jak nastavit klasický server Tekkit na Ubuntu 16.10

Jak nastavit klasický server Tekkit na Ubuntu 16.10

Používáte jiný systém? Co je Tekkit Classic? Tekkit Classic je modpack pro hru, kterou každý zná a miluje; Minecraft. Obsahuje některé z ver

Vytvoření blogu Jekyll na Ubuntu 16.04

Vytvoření blogu Jekyll na Ubuntu 16.04

Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i

Jak nastavit bezobslužné upgrady na Debian 9 (Stretch)

Jak nastavit bezobslužné upgrady na Debian 9 (Stretch)

Používáte jiný systém? Pokud si zakoupíte server Debian, měli byste mít vždy nejnovější bezpečnostní záplaty a aktualizace, ať už spíte nebo ne

Jak nainstalovat a nakonfigurovat PHP 7.0 nebo PHP 7.1 na Ubuntu 16.04

Jak nainstalovat a nakonfigurovat PHP 7.0 nebo PHP 7.1 na Ubuntu 16.04

PHP a související balíčky jsou nejčastěji používané komponenty při nasazování webového serveru. V tomto článku se naučíme, jak nastavit PHP 7.0 nebo PHP 7.1 o

Jak nainstalovat Squid Proxy na CentOS

Jak nainstalovat Squid Proxy na CentOS

Squid je populární bezplatný linuxový program, který vám umožňuje vytvořit webový proxy pro předávání. V této příručce uvidíte, jak nainstalovat Squid na CentOS, aby vás otočil

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Jak nainstalovat Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, jehož cílem je být mnohem méně náročný na zdroje. Je lehký, odtud jeho název, a jeho použití je docela jednoduché. Installin

Nastavení aplikace Yii na Ubuntu 14.04

Nastavení aplikace Yii na Ubuntu 14.04

Yii je PHP framework, který vám umožňuje vyvíjet aplikace rychleji a snadněji. Instalace Yii na Ubuntu je přímočará, jak se přesně dozvíte

Použití obrazovky na Ubuntu 14.04

Použití obrazovky na Ubuntu 14.04

Screen je aplikace, která umožňuje vícenásobné použití terminálových relací v rámci jednoho okna. To vám umožňuje simulovat více oken terminálu, kde to má

Nastavte si svůj vlastní DNS server na Debian/Ubuntu

Nastavte si svůj vlastní DNS server na Debian/Ubuntu

Tento tutoriál vysvětluje, jak nastavit DNS server pomocí Bind9 na Debianu nebo Ubuntu. V celém článku nahraďte odpovídajícím způsobem název-vaše-domény.com. Při čt

Konfigurace statické sítě a IPv6 na CentOS 7

Konfigurace statické sítě a IPv6 na CentOS 7

VULTR nedávno provedl změny na jejich konci a vše by nyní mělo fungovat dobře po vybalení s povoleným NetworkManagerem. Pokud si přejete deaktivovat

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Úprava Icinga2 pro použití modelu Master/Client na CentOS 6 nebo CentOS 7

Icinga2 je výkonný monitorovací systém a při použití v modelu master-client může nahradit potřebu monitorovacích kontrol založených na NRPE. Hlavní klient

Nastavte Red5 Media Server na Ubuntu 16.04

Nastavte Red5 Media Server na Ubuntu 16.04

Používáte jiný systém? Red5 je open source mediální server implementovaný v Javě, který vám umožňuje spouštět aplikace Flash pro více uživatelů, jako je živé streamování

Zkompilujte a nainstalujte Nginx pomocí modulu PageSpeed ​​na Debian 8

Zkompilujte a nainstalujte Nginx pomocí modulu PageSpeed ​​na Debian 8

V tomto článku uvidíme, jak zkompilovat a nainstalovat hlavní řadu Nginx z oficiálních zdrojů Nginx pomocí modulu PageSpeed, který vám umožňuje

Jak nainstalovat Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Jak nainstalovat Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Jak nainstalovat Apache Cassandra 3.11.x na CentOS 7

Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou

Jak nainstalovat Vanilla Forum na Ubuntu 16.04

Jak nainstalovat Vanilla Forum na Ubuntu 16.04

Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí

Jak nainstalovat Kanboard na Ubuntu 18.04 LTS

Jak nainstalovat Kanboard na Ubuntu 18.04 LTS

Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval

Jak nainstalovat Kanboard na Debian 9

Jak nainstalovat Kanboard na Debian 9

Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více