Postavljanje InspIRCd IRC poslužitelja na Ubuntu 16.04 LTS

Internet Relay Chat (IRC) je nešto što postoji od ranih dana interneta. U ovom vodiču pokazat ću vam kako postaviti IRC poslužitelj s InspIRCd s Athemeom za dodatne IRC usluge. InspIRCd je jedan od rijetkih IRC poslužitelja napisanih od nule i jedan od samo nekoliko IRC poslužitelja koji pružaju podesivi broj značajki korištenjem naprednog sustava modula.

Preduvjeti

  • Instanca poslužitelja Ubuntu 16.04 LTS x64.
  • Korisnik sudo (ili root račun) .
  • (Neobavezno) DNS naziv za vašu instancu.

InspIRCd bi trebao raditi s bilo kojom veličinom instance. Minimalni zahtjevi sustava su 700MHz CPU i 300MB RAM-a.

Ažurirajte sustav

Kada se prijavite kao sudo korisnik, možete ažurirati sustav na najnoviji stabilan status na sljedeći način:

apt-get update && apt-get upgrade 

Konfiguriranje vatrozida

Prvo malo učvrstimo VPS. Omogućit ćemo ufwi dodati nekoliko pravila. Počnimo s konfiguriranjem portova:

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

Vatrozid će zatražiti dijaloški okvir za prihvaćanje promjena. Samo pritisnite Yza da.

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

Instalirajte i konfigurirajte InspIRCd

Zatim možemo instalirati InspIRCd, za Ubuntu 16.04 ovaj paket je dostupan preko glavnog spremišta.

apt-get install inspircd 

Nakon što je instalacija gotova, možemo početi konfigurirati uslugu. Glavna konfiguracija se može pronaći u /etc/inspircd/inspircd.confdatoteci i ima izgled XML datoteke.

nano /etc/inspircd/inspircd.conf

Prvo potražite serveroznaku. Ova oznaka je mjesto gdje unosite detalje vašeg poslužitelja/mreže, većina ovih postavki vidljiva je vašim korisnicima.

  • name: Ime hosta vašeg poslužitelja. Ne mora se riješiti, ali mora biti ispravna sintaksa (npr.: sub.example.net).
  • description: Opis poslužitelja.
  • id: SID koji se koristi za ovaj poslužitelj. Ovo se ne smije ukloniti iz komentara osim ako postoji sukob SID-a. Ovo mora imati tri znaka. Prvi znak mora biti znamenka [0-9], preostala dva znaka mogu biti slova [AZ] ili znamenke.
  • network: Ime mreže dano pri povezivanju s klijentima. Trebao bi biti isti na svim poslužiteljima na mreži i ne bi trebao sadržavati razmake.

U našem vodiču koristit ćemo sljedeće:

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

Zamijenite izvornu oznaku gornjom.

Zatim potražite adminoznaku. Ove postavke su administrativni detalji vašeg poslužitelja. Prikazuju se kada upišete /ADMINnaredbu.

  • name: Pravo ime
  • nick: Nadimak (po mogućnosti ono što koristite na mreži).
  • email: email adresa. Ne mora biti valjana, ali ova adresa će biti ona koja će vas korisnici kontaktirati u slučaju problema.

Koristimo administratora Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="admin@irc.example.net">

Sada prijeđite na bind address. Ova oznaka se koristi za otvaranje usluge. Prema zadanim postavkama vidjet ćete IP lokalnog hosta ( 127.0.0.1). To znači da vanjski svijet ne može kontaktirati uslugu. Otvorimo našu uslugu tako da uopće ne koristimo adresu. To će uzrokovati da se usluga veže na bilo koje ethernet sučelje koje posjeduje stroj:

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

Sljedeća oznaka bit će poweroznaka. Ova oznaka definira dvije lozinke.

  • diepass: Lozinka koju operateri koriste ako žele isključiti poslužitelj.
  • restartpass: Lozinka koju će operateri koristiti ako trebaju ponovno pokrenuti poslužitelj.

Najbolje je promijeniti ove zadane lozinke:

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

Posljednje postavke koje ćemo mijenjati su operpostavke. Oni definiraju prijave operatera.

  • name: prijava operatora koja se koristi za rad (Primjer: /oper name password).
  • password: nehaširani i običan tekst
  • host: Koja imena hostova/IP-ovi smiju raditi. Više opcija može se odvojiti razmacima, a CIDR-ovi su dopušteni. Možete koristiti samo *ili @za ovaj odjeljak.
  • type: Koja je ovo vrsta opere. Gornji blok trebao bi imati tri već definirane klase: NetAdmin, GlobalOpi Helper. To NetAdminje onaj koji ćemo koristiti.

Promijenite operoznaku pomoću sljedećeg sadržaja. Imajte na umu da ćemo za naš primjer koristiti " @" za host. U proizvodnom okruženju nije poželjno koristiti ovo:

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

Prije nego što smo pokrenuli servis, uredite motdi rulesdatoteke:

nano /etc/inspircd/inspircd.motd

Zamijenite ga svojim, na primjer:

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

Na kraju uredite datoteke s pravilima.

nano /etc/inspircd/inspircd.rules

Dodajte svoja pravila, na primjer:

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! 

Sada kada je sve postavljeno, ponovno pokrenite IRC uslugu:

service inspircd restart

Da biste provjerili radi li sve, postavite upit netstatalatu:

netstat -tulpn | grep -i inspircd

Trebao bi navesti program koji inspircdsluša na portu 6666:

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

Za testiranje poslužitelja možemo instalirati terminalski IRC klijent. U sustavu Windows možete koristiti program kao što je mIRC. U našem primjeru koristit ćemo weechat. Ovo je IRC klijent baziran na tekstu koji se može koristiti u terminalskoj sesiji.

Instalirajte weechat aplikaciju kroz spremišta:

apt-get install weechat 

Nakon što je ova aplikacija instalirana, pokrenite ovaj IRC klijent:

weechat

Za pregled svih naredbi koje weechat nudi, možete zatražiti naredbu za pomoć:

/help

Za izlaz iz weechata možete upisati sljedeću naredbu:

/quit    

Dodajte naš lokalni poslužitelj na vezu u weechatu:

/server add local localhost

Sada se možemo povezati s profilom veze pod nazivom 'local':

/connect local

Vidjet ćete naše motd i pravila iskačući u prozoru terminala.

Da biste se promovirali u operatera, upišite sljedeće:

/oper xenial mypassword

Ovo će nam pokazati potvrdu uspjeha:

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

To je to za naš IRC poslužitelj.

Instaliranje IRC servisa - Atheme

Atheme je skup usluga za IRC mreže dizajniran za velike IRC mreže s visokim zahtjevima za skalabilnost. Dodaje dodatne usluge kao što je NickServ (registracija nadimka) vašoj IRC mreži.

Atheme se može naći u Ubuntu repozitoriju:

apt-get install atheme-services

Nakon što su binarne datoteke instalirane, izvucite primjer konfiguracijske datoteke i kopirajte je u athememapu:

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

Zatim uredite ovu konfiguracijsku datoteku:

nano /etc/atheme/atheme.conf

Prvo potražite loadmodulenaredbu protokola. To bi trebalo definirati na sljedeći način:

loadmodule "modules/protocol/charybdis";

Zamijenite charybdiss protokolom inspircd:

loadmodule "modules/protocol/inspircd12";

Sljedeća pretraga usluge name:

name = "services.int";

Promijenite tako services.intda odgovara nazivu domene ili IP adresi vašeg IRC poslužitelja:

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

Nakon što je to gotovo, potražite broj:

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 = "admin@irc.example.net";

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

Zatim dodajte našu vlastitu vezu. Ova uplink će se izvoditi samo na IP-u našeg lokalnog hosta i na portu 7001. Navedite super tajnu lozinku (koristit ćemo je kasnije):

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

Konačno potražite definicije naših usluga. nickservPrvo počnite s blokom.

U bloku nickserva potražite hostoznaku i promijenite je u 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>>...

Promijenite i hostname tagza sve ostale usluge:

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

Kada to učinite, spremite i zatvorite konfiguracijsku datoteku.

Da biste sve testirali, pokrenite atheme-servicesbinarni program:

atheme-services

Ovo bi vam trebalo točno reći radi li ili ne. Ako ne primate izlaz kao što je prikazano u nastavku, vratite se i provjerite ima li grešaka u konfiguracijskoj datoteci:

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

Sada omogućite uslugu uređivanjem datoteke usluga:

nano /etc/default/atheme-services

Promijenite ENABLEDvrijednost:

DAEMON_OPTS=""
ENABLED=1

Sada možemo pokrenuti uslugu:

service atheme-services restart

Provjerite njegov status:

service atheme-services status

Ovo će vratiti slične rezultate:

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

Prije nego što završimo, moramo dodati naše Atheme usluge u InspIRCd:

nano /etc/inspircd/inspircd.conf

Na kraju datoteke dodajte ove retke:

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

Sada ponovo pokrenite uslugu InspIRCd:

service inspircd restart

Uvjerite se da sve radi dobro:

service inspircd status

Sada ponovno pokrenite naš weechat klijent:

weechat

Povežite se s našim lokalnim poslužiteljem:

/connect local

Vidjet ćete da se odmah pojavljuje jedna od naših Atheme usluga: NickServ. Dočekat će vas informacijama o sebi.

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.

NickServ možete postaviti upit i saznati njegove dostupne naredbe na sljedeći način:

/msg NickServ help

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više