Preduvjeti
Ažurirajte sustav
Konfiguriranje vatrozida
Instalirajte i konfigurirajte InspIRCd
Instaliranje IRC servisa - Atheme
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)?
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