Előfeltételek
Frissítse a rendszert
A tűzfal konfigurálása
Telepítse és konfigurálja az InspIRCd-t
IRC szolgáltatások telepítése - Atheme
Az Internet Relay Chat (IRC) az internet kezdete óta létezik. Ebben az útmutatóban bemutatom, hogyan állíthat be egy IRC-kiszolgálót az InspIRCd és Atheme segítségével további IRC-szolgáltatásokhoz. Az InspIRCd egyike azon kevés IRC-szervereknek, amelyeket a semmiből írtak, és egyike azon néhány IRC-szervernek, amelyek hangolható számú szolgáltatást biztosítanak egy fejlett modulrendszer használatával.
Előfeltételek
Az InspIRCd-nek bármilyen példánymérettel működnie kell. A minimális rendszerkövetelmény egy 700 MHz-es CPU és 300 MB RAM.
Frissítse a rendszert
Ha sudo felhasználóként jelentkezik be, a következőképpen frissítheti a rendszert a legfrissebb stabil állapotra:
apt-get update && apt-get upgrade
A tűzfal konfigurálása
Először keményítsük meg egy kicsit a VPS-t. Engedélyezzük ufwés hozzáadunk néhány szabályt. Kezdjük a portok beállításával:
ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable
A tűzfal párbeszédpanelen kéri a változtatások elfogadását. Csak nyomja meg Yaz igent.
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Ezután telepíthetjük az InspIRCd-t, Ubuntu 16.04 esetén ez a csomag elérhető a fő tárolón keresztül.
apt-get install inspircd
A telepítés végeztével megkezdhetjük a szolgáltatás konfigurálását. A fő konfiguráció a /etc/inspircd/inspircd.conffájlban található, és egy XML-fájl elrendezésével rendelkezik.
nano /etc/inspircd/inspircd.conf
Először keresse meg a servercímkét. Ebben a címkében adja meg a szerver/hálózat adatait, a legtöbb ilyen beállítás látható a felhasználók számára.
name: A szerver gazdagépneve. Nem kell feloldania, de a helyes szintaxisnak kell lennie (pl.: sub.example.net).
description: Szerver leírása.
id: A szerverhez használandó SID. Ezt nem szabad megjegyzés nélkül hagyni, hacsak nincs SID-ütközés. Ennek három karakter hosszúnak kell lennie. Az első karakternek egy számjegynek [0-9] kell lennie, a fennmaradó két karakter lehet betűk [AZ] vagy számjegyek.
network: Hálózatnév, amelyet a kliensekhez való csatlakozáskor adnak meg. A hálózat összes szerverén azonosnak kell lennie, és nem tartalmazhat szóközt.
Útmutatónkban a következőket fogjuk használni:
<server name="irc.example.net"
description="My EXAMPLE.NET server"
id="5AA"
network="ExampleNET">
Cserélje ki az eredeti címkét a fentire.
Ezután keresse meg a admincímkét. Ezek a beállítások a szerver adminisztrációs adatai. A /ADMINparancs begépelésekor megjelennek.
name: Igazi neve
nick: Becenév (lehetőleg amit a hálózaton használ).
email: email cím. Nem kell érvényesnek lennie, de a felhasználóknak ezen a címen kell kapcsolatba lépniük Önnel probléma esetén.
Használjuk az adminisztrátort Xenial:
<admin name="Xenial Xerius"
nick="xenial"
email="admin@irc.example.net">
Most lépjen a bind address. Ez a címke a szolgáltatás megnyitására szolgál. Alapértelmezés szerint a localhost IP-jét fogja látni ( 127.0.0.1). Ez azt jelenti, hogy a szolgáltatást a külvilág nem tudja elérni. Nyissuk meg szolgáltatásunkat úgy, hogy egyáltalán nem használunk címet. Ez azt eredményezi, hogy a szolgáltatás a gép által birtokolt bármely ethernet interfészhez kapcsolódik:
<bind address="" port="6667" type="clients">
A következő címke a címke lesz power. Ez a címke két jelszót határoz meg.
diepass: Jelszó az operátorok számára, ha le akarnak állítani egy szervert.
restartpass: Jelszó az operátorok számára, ha újra kell indítaniuk a szervert.
A legjobb, ha megváltoztatja ezeket az alapértelmezett jelszavakat:
<power diepass="die123" restartpass="restart123" pause="2">
Az utolsó beállítások, amelyeket módosítani fogunk, azok a operbeállítások. Ezek határozzák meg a kezelői bejelentkezéseket.
name: operátor bejelentkezés, amely a működéshez használatos (Példa: /oper name password).
password: kivonat nélküli és egyszerű szöveg
host: Milyen gazdagépnevek/IP-k működhetnek. Több lehetőség szóközzel választható el, és a CIDR-ek megengedettek. Ehhez a szakaszhoz csak *vagy @használhatja.
type: Milyen operációs típus ez. A fenti blokknak három már definiált osztálynak kell lennie: NetAdmin, GlobalOpés Helper. Ez NetAdminaz, amelyet használni fogunk.
Módosítsa a opercímkét a következő tartalommal. Ne feledje, hogy példánkban a " @" értéket fogjuk használni a gazdagépként. Gyári környezetben nem kívánatos ezt használni:
<oper name="xenial"
password="mypassword"
host="*@*"
type="NetAdmin">
A szolgáltatás újraindítása előtt szerkessze a motdés rulesfájlokat:
nano /etc/inspircd/inspircd.motd
Cserélje ki a sajátjával, például:
This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.
Végül szerkessze a szabályfájlokat.
nano /etc/inspircd/inspircd.rules
Adja hozzá saját szabályait, például:
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!
Most, hogy minden be van állítva, indítsa újra az IRC szolgáltatást:
service inspircd restart
Annak ellenőrzéséhez, hogy minden fut-e, kérdezze le az netstateszközt:
netstat -tulpn | grep -i inspircd
Fel kell sorolnia a inspircdporton hallgató programot 6666:
tcp6 0 0 :::6667 :::* LISTEN 31313/inspircd
udp 0 0 0.0.0.0:39335 0.0.0.0:* 31313/inspircd
A szerver teszteléséhez telepíthetünk egy terminál IRC klienst. Windows rendszeren használhat olyan programot, mint például a mIRC. Példánkban a weechatot fogjuk használni. Ez egy szöveges IRC kliens, amely terminálmunkamenetben használható.
Telepítse a weechat alkalmazást a tárolókon keresztül:
apt-get install weechat
Az alkalmazás telepítése után futtassa ezt az IRC-klienst:
weechat
A weechat által kínált összes parancs megtekintéséhez kérheti a help parancsot:
/help
A weechat kilépéséhez írja be a következő parancsot:
/quit
Adja hozzá helyi szerverünket egy kapcsolathoz a weechatben:
/server add local localhost
Most már csatlakozhatunk a 'local' nevű kapcsolati profilhoz:
/connect local
A terminál ablakában megjelenik a motd és a szabályok.
Ha operátorrá szeretne előléptetni, írja be a következőket:
/oper xenial mypassword
Ez megerősít bennünket a sikerről:
22:40:34 local -- | User mode [+o] by irc.example.net
22:40:34 local -- | You are now a NetAdmin
Ennyi az IRC szerverünkről.
IRC szolgáltatások telepítése - Atheme
Az Atheme IRC-hálózatokhoz készült szolgáltatások készlete, amelyet nagy skálázhatósági követelményekkel rendelkező, nagy IRC-hálózatokhoz terveztek. További szolgáltatásokat, például NickServ-t (Becenév regisztráció) ad hozzá az IRC hálózatához.
Az Atheme az Ubuntu tárolójában található:
apt-get install atheme-services
A bináris fájlok telepítése után csomagolja ki a példa konfigurációs fájlt, és másolja a athememappába:
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
Ezután szerkessze ezt a konfigurációs fájlt:
nano /etc/atheme/atheme.conf
Először keresse meg a loadmoduleprotokoll parancsot. Ezt a következőképpen kell meghatározni:
loadmodule "modules/protocol/charybdis";
Cserélje charybdiski a következő protokollra inspircd:
loadmodule "modules/protocol/inspircd12";
Következő keresés a szolgáltatásra name:
name = "services.int";
Módosítsa úgy, services.inthogy megfeleljen az IRC-szerver domain nevének vagy IP-címének:
name = "services.irc.example.net";
Ha ez megtörtént, keressen rá a számokra:
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;
};
*/
Ezután adjuk hozzá a saját uplinkünket. Ez a felfelé irányuló kapcsolat csak a localhost IP-jén és a porton fut 7001. Adjon meg egy szupertitkos jelszót (a későbbiekben ezt fogjuk használni):
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;
};
Végül keresse meg szolgáltatásunk definícióit. Kezdje nickservelőször a blokkal.
A nickserv blokkban keresse meg a hostcímkét, és módosítsa a következőre 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>>...
Módosítsa az hostname tagösszes többi szolgáltatásnál is:
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
Ha ez megtörtént, mentse el, és lépjen ki a konfigurációs fájlból.
Az egész teszteléséhez futtassa a atheme-servicesbináris fájlt:
atheme-services
Ennek pontosan meg kell mondania, hogy működik-e vagy sem. Ha nem kap az alábbi kimenethez hasonló kimenetet, menjen vissza, és ellenőrizze, hogy nincs-e hiba a konfigurációs fájlban:
[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 /
Most engedélyezze a szolgáltatást a Services fájl szerkesztésével:
nano /etc/default/atheme-services
Módosítsa az ENABLEDértéket:
DAEMON_OPTS=""
ENABLED=1
Most már elindíthatjuk a szolgáltatást:
service atheme-services restart
Ellenőrizze az állapotát:
service atheme-services status
Ez hasonló eredményeket ad:
● 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.
Mielőtt befejeznénk, hozzá kell adnunk Atheme szolgáltatásainkat az InspIRCd-hez:
nano /etc/inspircd/inspircd.conf
A fájl végéhez adja hozzá a következő sorokat:
<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">
Most indítsa újra az InspIRCd szolgáltatást:
service inspircd restart
Győződjön meg arról, hogy minden jól működik:
service inspircd status
Most indítsa újra weechat kliensünket:
weechat
Csatlakozás helyi szerverünkhöz:
/connect local
Azonnal megjelenik az egyik Atheme szolgáltatásunk: NickServ. Magáról szóló információkkal üdvözli Önt.
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.
Lekérdezheti a NickServet, és megtudhatja az elérhető parancsokat a következőkkel:
/msg NickServ help