Предуслови
Ажурирајте систем
Конфигурисање заштитног зида
Инсталирајте и конфигуришите ИнспИРЦд
Инсталирање ИРЦ сервиса - Атхеме
Интернет Релаи Цхат (ИРЦ) је нешто што постоји од раних дана интернета. У овом водичу ћу вам показати како да подесите ИРЦ сервер са ИнспИРЦд са Атхемеом за додатне ИРЦ услуге. ИнспИРЦд је један од ретких ИРЦ сервера написаних од нуле и један од само неколико ИРЦ сервера који пружају подесиви број функција коришћењем напредног система модула.
Предуслови
ИнспИРЦд би требало да ради са било којом величином инстанце. Минимални системски захтеви су 700МХз ЦПУ и 300МБ РАМ-а.
Ажурирајте систем
Када се пријавите као судо корисник, можете ажурирати систем на најновији стабилан статус на следећи начин:
apt-get update && apt-get upgrade
Конфигурисање заштитног зида
Прво да мало ојачамо ВПС. Омогућићемо ufwи додати неколико правила. Почнимо са конфигурисањем портова:
ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable
Заштитни зид ће затражити дијалог за прихватање промена. Само притисните Yза да.
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Затим можемо да инсталирамо ИнспИРЦд, за Убунту 16.04 овај пакет је доступан преко главног спремишта.
apt-get install inspircd
Када се инсталација заврши, можемо да почнемо да конфигуришемо услугу. Главна конфигурација се може наћи у /etc/inspircd/inspircd.confдатотеци и има изглед КСМЛ датотеке.
nano /etc/inspircd/inspircd.conf
Прво потражите serverознаку. Ова ознака је место где уносите детаље вашег сервера/мреже, већина ових подешавања је видљива вашим корисницима.
name: Име хоста вашег сервера. Не мора да се решава, али мора да буде исправна синтакса (нпр.: sub.example.net).
description: Опис сервера.
id: СИД који ће се користити за овај сервер. Ово не би требало да буде остављено без коментара осим ако не постоји СИД конфликт. Ово мора да има три знака. Први знак мора бити цифра [0-9], преостала два знака могу бити слова [АЗ] или цифре.
network: Име мреже дато при повезивању са клијентима. Требало би да буде исто на свим серверима на мрежи и да не садржи размаке.
У нашем водичу ћемо користити следеће:
<server name="irc.example.net"
description="My EXAMPLE.NET server"
id="5AA"
network="ExampleNET">
Замените оригиналну ознаку оном изнад.
Затим потражите adminознаку. Ова подешавања су административни детаљи вашег сервера. Они се приказују када унесете /ADMINкоманду.
name: Право име
nick: Надимак (по могућности оно што користите на мрежи).
email: адреса Е-поште. Не мора да буде валидна, али ова адреса ће бити она која би корисници требали да вас контактирају у случају проблема.
Хајде да користимо администратора Xenial:
<admin name="Xenial Xerius"
nick="xenial"
email="admin@irc.example.net">
Сада пређите на bind address. Ова ознака се користи за отварање сервиса. Подразумевано ћете видети ИП локалног хоста ( 127.0.0.1). То значи да спољни свет не може да контактира сервис. Хајде да отворимо нашу услугу тако што уопште не користимо адресу. Ово ће довести до тога да се услуга повеже са било којим етернет интерфејсом који машина поседује:
<bind address="" port="6667" type="clients">
Следећа ознака ће бити powerознака. Ова ознака дефинише две лозинке.
diepass: Лозинка коју оператери користе ако желе да искључе сервер.
restartpass: Лозинка коју оператери користе ако треба да поново покрену сервер.
Најбоље је да промените ове подразумеване лозинке:
<power diepass="die123" restartpass="restart123" pause="2">
Последња подешавања која ћемо променити су operподешавања. Они дефинишу пријаве оператера.
name: пријава оператера која се користи за рад (Пример: /oper name password).
password: нехеширан и обичан текст
host: Која имена хостова/ИП-ови смеју да раде. Више опција може бити одвојено размацима, а ЦИДР-ови су дозвољени. Можете само користити *или @за овај одељак.
type: Који је ово тип опера. Горњи блок треба да има три већ дефинисане класе: NetAdmin, GlobalOpи Helper. То NetAdminје онај који ћемо користити.
Промените operознаку користећи следећи садржај. Имајте на уму да ћемо за наш пример користити " @" за хост. У производном окружењу није пожељно користити ово:
<oper name="xenial"
password="mypassword"
host="*@*"
type="NetAdmin">
Пре него што поново услугу, измените motdи rulesфајлова:
nano /etc/inspircd/inspircd.motd
Замените га својим, на пример:
This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.
На крају уредите датотеке правила.
nano /etc/inspircd/inspircd.rules
Додајте своја правила, на пример:
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!
Сада када је све подешено, поново покрените ИРЦ услугу:
service inspircd restart
Да бисте проверили да ли све ради, поставите упит за netstatалатку:
netstat -tulpn | grep -i inspircd
Требало би да наведе програм који inspircdслуша на порту 6666:
tcp6 0 0 :::6667 :::* LISTEN 31313/inspircd
udp 0 0 0.0.0.0:39335 0.0.0.0:* 31313/inspircd
Да бисмо тестирали сервер, можемо да инсталирамо терминални ИРЦ клијент. На Виндовс-у можете користити програм као што је мИРЦ. У нашем примеру користићемо веецхат. Ово је ИРЦ клијент заснован на тексту који се може користити у терминалској сесији.
Инсталирајте веецхат апликацију преко спремишта:
apt-get install weechat
Када се ова апликација инсталира, покрените овај ИРЦ клијент:
weechat
Да бисте видели све команде које веецхат може да понуди, можете затражити команду за помоћ:
/help
Да бисте изашли из веецхата, можете укуцати следећу команду:
/quit
Додајте наш локални сервер у везу у веецхат-у:
/server add local localhost
Сада се можемо повезати са профилом везе под називом 'лоцал':
/connect local
Видећете да се наша мотд и правила појављују у прозору терминала.
Да бисте се промовисали у оператера, откуцајте следеће:
/oper xenial mypassword
Ово ће нам показати потврду успеха:
22:40:34 local -- | User mode [+o] by irc.example.net
22:40:34 local -- | You are now a NetAdmin
То је то за наш ИРЦ сервер.
Инсталирање ИРЦ сервиса - Атхеме
Атхеме је скуп услуга за ИРЦ мреже дизајниран за велике ИРЦ мреже са високим захтевима за скалабилност. Додаје додатне услуге као што је НицкСерв (регистрација надимка) вашој ИРЦ мрежи.
Атхеме се може наћи у Убунту спремишту:
apt-get install atheme-services
Када се бинарни фајлови инсталирају, извуците пример конфигурационе датотеке и копирајте је у athemeфасциклу:
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
Затим уредите ову конфигурациону датотеку:
nano /etc/atheme/atheme.conf
Прво потражите loadmoduleнаредбу протокола. Ово треба дефинисати на следећи начин:
loadmodule "modules/protocol/charybdis";
Замените charybdisпротоколом inspircd:
loadmodule "modules/protocol/inspircd12";
Следећа претрага услуге name:
name = "services.int";
Промените тако services.intда се подудара са именом домена или ИП адресом вашег ИРЦ сервера:
name = "services.irc.example.net";
Када се ово заврши, потражите број:
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;
};
*/
Затим додајте нашу сопствену везу. Ова уплинк ће радити само на ИП-у нашег локалног хоста и на порту 7001. Наведите супер тајну лозинку (ми ћемо је користити касније):
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;
};
Коначно потражите наше дефиниције услуга. nickservПрво почните са блоком.
У блоку ницксерв, потражите hostознаку и промените је у 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>>...
Промените и hostname tagза све друге услуге:
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
Када то учините, сачувајте и затворите конфигурациону датотеку.
Да бисте све тестирали, покрените atheme-servicesбинарни програм:
atheme-services
Ово би требало да вам тачно каже да ли ради или не. Ако не добијате излаз као што је приказано испод, вратите се и проверите да ли постоје грешке у конфигурационој датотеци:
[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 /
Сада омогућите услугу тако што ћете уредити датотеку услуга:
nano /etc/default/atheme-services
Промените ENABLEDвредност:
DAEMON_OPTS=""
ENABLED=1
Сада можемо да покренемо услугу:
service atheme-services restart
Проверите његов статус:
service atheme-services status
Ово ће вратити сличне резултате:
● 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.
Пре него што завршимо, морамо да додамо наше Атхеме услуге у ИнспИРЦд:
nano /etc/inspircd/inspircd.conf
На крају датотеке додајте ове редове:
<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">
Сада поново покрените ИнспИРЦд услугу:
service inspircd restart
Уверите се да све ради добро:
service inspircd status
Сада поново покрените наш Веецхат клијент:
weechat
Повежите се на наш локални сервер:
/connect local
Видећете да се одмах појављује једна од наших Атхеме услуга: НицкСерв. Дочекаће вас информацијама о себи.
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.
Можете поставити упит НицкСерв-у и сазнати његове доступне команде на следећи начин:
/msg NickServ help