Nastavenie servera InspIRCd IRC na Ubuntu 16.04 LTS

Internet Relay Chat (IRC) je niečo, čo existuje už od počiatkov internetu. V tejto príručke vám ukážem, ako nastaviť IRC server s InspIRCd s Atheme pre ďalšie IRC služby. InspIRCd je jeden z mála IRC serverov napísaných od začiatku a jeden z mála IRC serverov, ktorý poskytuje laditeľný počet funkcií pomocou pokročilého modulového systému.

Predpoklady

InspIRCd by mal fungovať s akoukoľvek veľkosťou inštancie. Minimálne systémové požiadavky sú 700 MHz CPU a 300 MB RAM.

Aktualizujte systém

Keď sa prihlásite ako používateľ sudo, môžete aktualizovať systém na najnovší stabilný stav takto:

apt-get update && apt-get upgrade 

Konfigurácia brány firewall

Najprv trochu pritvrdíme VPS. Povolíme ufwa pridáme niekoľko pravidiel. Začnime s konfiguráciou portov:

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

Firewall zobrazí dialógové okno na prijatie zmien. Stačí stlačiť Ypre áno.

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

Nainštalujte a nakonfigurujte InspIRCd

Ďalej môžeme nainštalovať InspIRCd, pre Ubuntu 16.04 je tento balík dostupný cez hlavné úložisko.

apt-get install inspircd 

Po dokončení inštalácie môžeme začať s konfiguráciou služby. Hlavná konfigurácia sa nachádza v /etc/inspircd/inspircd.confsúbore a má vzhľad súboru XML.

nano /etc/inspircd/inspircd.conf

Najprv vyhľadajte serverznačku. Táto značka je miesto, kde zadávate podrobnosti o vašom serveri/sieti. Väčšina týchto nastavení je viditeľná pre vašich používateľov.

  • name: Názov hostiteľa vášho servera. Nemusí sa to riešiť, ale musí mať správnu syntax (napr.: sub.example.net).
  • description: Popis servera.
  • id: SID, ktoré sa má použiť pre tento server. Toto by nemalo byť odkomentované, pokiaľ neexistuje konflikt SID. Musí mať tri znaky. Prvý znak musí byť číslica [0-9], zvyšné dva znaky môžu byť písmená [AZ] alebo číslice.
  • network: Názov siete uvedený pri pripojení ku klientom. Mal by byť rovnaký na všetkých serveroch v sieti a nemal by obsahovať medzery.

V našom návode budeme používať nasledovné:

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

Nahraďte pôvodný štítok štítkom uvedeným vyššie.

Ďalej vyhľadajte adminznačku. Tieto nastavenia sú administratívne detaily vášho servera. Zobrazia sa, keď zadáte /ADMINpríkaz.

  • name: Skutočné meno
  • nick: Prezývka (najlepšie taká, akú používate v sieti).
  • email: emailová adresa. Nemusí byť platná, ale táto adresa bude tá, na ktorú by vás používatelia mali kontaktovať v prípade problémov.

Využime správcu Xenial:

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

Teraz prejdite na bind address. Táto značka sa používa na otvorenie služby. V predvolenom nastavení uvidíte IP localhost ( 127.0.0.1). To znamená, že službu nemôže kontaktovať vonkajší svet. Otvorme našu službu bez použitia adresy. To spôsobí, že sa služba naviaže na akékoľvek ethernetové rozhranie, ktoré stroj vlastní:

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

Ďalšia značka bude powerznačka. Táto značka definuje dve heslá.

  • diepass: Heslo pre operátorov, ktoré môžu použiť, ak chcú vypnúť server.
  • restartpass: Heslo pre operátorov, ktoré môžu použiť, ak potrebujú reštartovať server.

Najlepšie je zmeniť tieto predvolené heslá:

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

Posledné nastavenia, ktoré budeme meniť, sú opernastavenia. Tieto definujú prihlasovacie údaje operátora.

  • name: prihlásenie operátora, ktoré sa používa na prevádzku (Príklad: /oper name password).
  • password: nehašovaný a obyčajný text
  • host: Aké názvy hostiteľov/IP môžu fungovať. Viaceré možnosti môžu byť oddelené medzerami a CIDR sú povolené. Pre túto sekciu môžete použiť *alebo @.
  • type: O aký typ opery ide. Vyššie uvedený blok by mal mať už definované tri triedy: NetAdmin, GlobalOpa Helper. To NetAdminje ten, ktorý budeme používať.

Zmeňte operznačku pomocou nasledujúceho obsahu. Všimnite si, že v našom príklade budeme @pre hostiteľa používať " ". V produkčnom prostredí nie je žiaduce používať toto:

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

Pred reštartovaním služby upravte súbory motda rules:

nano /etc/inspircd/inspircd.motd

Nahraďte ho vlastným, naprí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.

Nakoniec upravte súbory pravidiel.

nano /etc/inspircd/inspircd.rules

Pridajte svoje vlastné pravidlá, naprí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! 

Teraz, keď je všetko nastavené, reštartujte službu IRC:

service inspircd restart

Ak chcete overiť, či všetko beží, požiadajte netstatnástroj:

netstat -tulpn | grep -i inspircd

Mal by obsahovať zoznam programu inspircd, ktorý počúva na porte 6666:

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

Na otestovanie servera môžeme nainštalovať terminálového IRC klienta. V systéme Windows môžete použiť program ako mIRC. V našom príklade budeme používať weechat. Toto je textový IRC klient, ktorý sa dá použiť v terminálovej relácii.

Nainštalujte si aplikáciu weechat cez úložiská:

apt-get install weechat 

Po nainštalovaní tejto aplikácie spustite tohto IRC klienta:

weechat

Ak chcete zobraziť všetky príkazy, ktoré weechat ponúka, môžete požiadať o príkaz help:

/help

Ak chcete ukončiť weechat, môžete zadať nasledujúci príkaz:

/quit    

Pridajte náš lokálny server k pripojeniu vo weechate:

/server add local localhost

Teraz sa môžeme pripojiť k profilu pripojenia s názvom „lokálny“:

/connect local

V okne terminálu sa zobrazí náš motd a pravidlá.

Ak sa chcete povýšiť na operátora, zadajte nasledovné:

/oper xenial mypassword

This will show us a confirmation on success:

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

That's it for our IRC server.

Installing IRC services - Atheme

Atheme is a set of services for IRC networks designed for large IRC networks with high scalability requirements. It adds additional services such as NickServ (Nickname Registration) to your IRC network.

Atheme can be found in the Ubuntu repository:

apt-get install atheme-services

Once the binaries are installed, extract the example configuration file and copy it to the atheme folder:

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

Next, edit this configuration file:

nano /etc/atheme/atheme.conf

First search for the loadmodule protocol command. This should be defined as follows:

loadmodule "modules/protocol/charybdis";

Replace charybdis with the protocol of inspircd:

loadmodule "modules/protocol/inspircd12";

Next search for the service name:

name = "services.int";

Change services.int to match the domain name or IP address of your IRC server:

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

Once this is done search for the numeric:

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

Next, add our own uplink. This uplink will only run on our localhost's IP, and on port 7001. Specify a super secret password (we will be using it later on):

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

Finally search for our service definitions. Start with the nickserv block first.

In the nickserv block, search for the host tag and change it to 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>>...

Change the hostname tag for all of the other services as well:

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

Once this is done, save and quit the configuration file.

To test it all out, run the atheme-services binary:

atheme-services

This should tell you exactly if it works or not. If you are not receiving output like what is shown below, go back and check for any errors in the configuration file:

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

Now enable the service by editing the services file:

nano /etc/default/atheme-services

Change the ENABLED value:

DAEMON_OPTS=""
ENABLED=1

Now we can start the service:

service atheme-services restart

Check its status:

service atheme-services status

Toto vráti 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 pridať naše služby Atheme do InspIRCd:

nano /etc/inspircd/inspircd.conf

Na koniec súboru pridajte tieto riadky:

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

Teraz reštartujte službu InspIRCd:

service inspircd restart

Uistite sa, že všetko beží správne:

service inspircd status

Teraz znova spustite nášho weechatového klienta:

weechat

Pripojte sa k nášmu lokálnemu serveru:

/connect local

Okamžite sa zobrazí jedna z našich služieb Atheme: NickServ. Privíta vás informáciami o sebe.

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 sa opýtať NickServ a zistiť dostupné príkazy pomocou nasledujúceho:

/msg NickServ help

Install Plesk on CentOS 7

Install Plesk on CentOS 7

Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases

Install Lets Encrypt SSL on One-Click WordPress App

Install Lets Encrypt SSL on One-Click WordPress App

Introduction Lets Encrypt is a certificate authority service that offers free TLS/SSL certificates. The process of installation is simplified by Certbot,

Ako nastaviť klasický server Tekkit na Ubuntu 16.10

Ako nastaviť klasický server Tekkit na Ubuntu 16.10

Používate iný systém? Čo je Tekkit Classic? Tekkit Classic je modpack pre hru, ktorú každý pozná a miluje; Minecraft. Obsahuje niektoré z ver

Creating a Jekyll Blog on Ubuntu 16.04

Creating a Jekyll Blog on Ubuntu 16.04

Using a Different System? Jekyll is a great alternative to WordPress for blogging or sharing content. It doesnt require any databases and it is very easy i

Ako nastaviť bezobslužné aktualizácie na Debian 9 (Stretch)

Ako nastaviť bezobslužné aktualizácie na Debian 9 (Stretch)

Používate iný systém? Ak si zakúpite server Debian, mali by ste mať vždy najnovšie bezpečnostné záplaty a aktualizácie, či už spíte alebo nie

Ako nainštalovať a nakonfigurovať PHP 7.0 alebo PHP 7.1 na Ubuntu 16.04

Ako nainštalovať a nakonfigurovať PHP 7.0 alebo PHP 7.1 na Ubuntu 16.04

PHP a súvisiace balíky sú najčastejšie používané komponenty pri nasadzovaní webového servera. V tomto článku sa naučíme, ako nastaviť PHP 7.0 alebo PHP 7.1 o

Ako nainštalovať Squid Proxy na CentOS

Ako nainštalovať Squid Proxy na CentOS

Squid je populárny bezplatný linuxový program, ktorý vám umožňuje vytvoriť webový proxy server na presmerovanie. V tejto príručke uvidíte, ako nainštalovať Squid na CentOS, aby vás zmenil

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, ktorého cieľom je byť oveľa menej náročný na zdroje. Je ľahký, odtiaľ jeho názov, a jeho použitie je celkom jednoduché. Installin

Tri bezplatné ovládacie panely servera (rýchla inštalácia)

Tri bezplatné ovládacie panely servera (rýchla inštalácia)

1. Virtualmin/Webmin Virtualmin je výkonný a flexibilný ovládací panel webhostingu pre systémy Linux a UNIX založený na známej webovej základni Open Source

Nastavenie aplikácie Yii na Ubuntu 14.04

Nastavenie aplikácie Yii na Ubuntu 14.04

Yii je rámec PHP, ktorý vám umožňuje rýchlejšie a jednoduchšie vyvíjať aplikácie. Inštalácia Yii na Ubuntu je jednoduchá, ako sa presne dozviete

Používanie obrazovky na Ubuntu 14.04

Používanie obrazovky na Ubuntu 14.04

Screen je aplikácia, ktorá umožňuje viacnásobné použitie terminálových relácií v rámci jedného okna. To vám umožňuje simulovať viacero okien terminálu, kde je to možné

Nastavte si svoj vlastný DNS server na Debian/Ubuntu

Nastavte si svoj vlastný DNS server na Debian/Ubuntu

Tento tutoriál vysvetľuje, ako nastaviť server DNS pomocou Bind9 na Debiane alebo Ubuntu. V celom článku podľa toho nahraďte názov vašej-domény.com. Pri th

Používanie Logrotate na správu protokolových súborov

Používanie Logrotate na správu protokolových súborov

Úvod Logrotate je nástroj pre Linux, ktorý zjednodušuje správu protokolových súborov. Zvyčajne beží raz denne prostredníctvom úlohy cron a spravuje základňu protokolov

Konfigurácia statickej siete a IPv6 na CentOS 7

Konfigurácia statickej siete a IPv6 na CentOS 7

VULTR nedávno vykonal zmeny na ich konci a všetko by teraz malo fungovať dobre po vybalení so zapnutým NetworkManagerom. Ak chcete deaktivovať

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Icinga2 je výkonný monitorovací systém a pri použití v modeli master-client môže nahradiť potrebu 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žívate iný systém? Red5 je mediálny server s otvoreným zdrojom implementovaný v jazyku Java, ktorý vám umožňuje spúšťať aplikácie Flash pre viacerých používateľov, ako napríklad živé vysielanie

Ako nainštalovať Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Ako nainštalovať Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Používate iný systém? Apache Cassandra je bezplatný a otvorený systém správy databáz NoSQL, ktorý je navrhnutý tak, aby poskytoval škálovateľnosť, vysokú

Ako nainštalovať Vanilla Forum na Ubuntu 16.04

Ako nainštalovať Vanilla Forum na Ubuntu 16.04

Používate iný systém? Vanilla forum je open source aplikácia fóra napísaná v PHP. Je plne prispôsobiteľný, ľahko použiteľný a podporuje externé

Ako nainštalovať Kanboard na Ubuntu 18.04 LTS

Ako nainštalovať Kanboard na Ubuntu 18.04 LTS

Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval

Ako nainštalovať Kanboard na Debian 9

Ako nainštalovať Kanboard na Debian 9

Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac