Настройване на InspIRCd IRC сървър на Ubuntu 16.04 LTS

Интернет реле чат (IRC) е нещо, което съществува от първите дни на интернет. В това ръководство ще ви покажа как да настроите IRC сървър с InspIRCd с Atheme за допълнителни IRC услуги. InspIRCd е един от малкото IRC сървъри, написани от нулата и един от малкото IRC сървъри, които предоставят регулируем брой функции чрез използването на усъвършенствана модулна система.

Предпоставки

InspIRCd трябва да работи с всеки размер на екземпляра. Минималните му системни изисквания са 700MHz CPU и 300MB RAM.

Актуализирайте системата

Когато влезете като потребител на sudo, можете да актуализирате системата до последното стабилно състояние, както следва:

apt-get update && apt-get upgrade 

Конфигуриране на защитната стена

Първо нека втвърдим малко VPS. Ще активираме ufwи ще добавим няколко правила. Нека започнем с конфигурирането на портове:

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

Защитната стена ще изведе диалогов прозорец за приемане на промените. Просто натиснете Yза да.

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

Инсталирайте и конфигурирайте InspIRCd

След това можем да инсталираме InspIRCd, за Ubuntu 16.04 този пакет е достъпен през основното хранилище.

apt-get install inspircd 

След като инсталацията приключи, можем да започнем да конфигурираме услугата. Основната конфигурация може да се намери във /etc/inspircd/inspircd.confфайла и има оформлението на XML файл.

nano /etc/inspircd/inspircd.conf

Първо потърсете serverетикета. Този маркер е мястото, където въвеждате подробностите за вашия сървър/мрежа, повечето от тези настройки са видими за вашите потребители.

  • name: Име на хост на вашия сървър. Не е необходимо да се разрешава, но трябва да е правилният синтаксис (напр.: sub.example.net).
  • description: Описание на сървъра.
  • id: SID, който да се използва за този сървър. Това не трябва да бъде разкоментирано, освен ако няма конфликт на SID. Това трябва да е три знака. Първият знак трябва да бъде цифра [0-9], останалите два знака могат да бъдат букви [AZ] или цифри.
  • 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="[email protected]">

Сега преминете към bind address. Този таг се използва за отваряне на услугата. По подразбиране ще видите IP адреса на локалния хост ( 127.0.0.1). Това означава, че външният свят не може да се свърже с услугата. Нека отворим нашата услуга, като изобщо не използваме адрес. Това ще накара услугата да се свърже с всеки Ethernet интерфейс, който машината притежава:

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

Следващият етикет ще бъде powerетикетът. Този маркер дефинира две пароли.

  • diepass: Парола, която операторите да използват, ако искат да изключат сървър.
  • restartpass: Парола, която операторите да използват, ако трябва да рестартират сървър.

Най-добре е да промените тези пароли по подразбиране:

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

Последните настройки, които ще променим, са operнастройките. Те определят влизанията на оператора.

  • name: вход на оператор, който се използва за работа (Пример: /oper name password).
  • password: нехеширан и обикновен текст
  • host: Какви имена на хостове/IP адреси могат да работят. Множество опции могат да бъдат разделени с интервали и CIDR са разрешени. Можете просто да използвате *или @за този раздел.
  • 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! 

Сега, когато всичко е настроено, рестартирайте IRC услугата:

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

За да тестваме сървъра, можем да инсталираме терминален IRC клиент. В Windows можете да използвате програма като mIRC. В нашия пример ще използваме weechat. Това е текстов IRC клиент, който може да се използва в терминална сесия.

Инсталирайте приложението weechat чрез хранилищата:

apt-get install weechat 

След като това приложение е инсталирано, стартирайте този IRC клиент:

weechat

За да видите всички команди, които weechat може да предложи, можете да поискате командата за помощ:

/help

За да излезете от weechat, можете да въведете следната команда:

/quit    

Добавете нашия локален сървър към връзка в weechat:

/server add local localhost

Сега можем да се свържем с профила за връзка с име "local":

/connect local

Ще видите нашите motd и правила да изскачат в прозореца на терминала.

За да се повишите до оператор, въведете следното:

/oper xenial mypassword

Това ще ни покаже потвърждение за успеха:

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

Това е всичко за нашия IRC сървър.

Инсталиране на IRC услуги - Atheme

Atheme е набор от услуги за IRC мрежи, предназначени за големи IRC мрежи с високи изисквания за мащабируемост. Той добавя допълнителни услуги като NickServ (Регистрация на псевдоним) към вашата IRC мрежа.

Atheme може да се намери в хранилището на Ubuntu:

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да съответства на името на домейна или IP адреса на вашия IRC сървър:

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

След това добавете нашата собствена връзка нагоре. Тази връзка нагоре ще работи само на IP адреса на нашия локален хост и на порт 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блока.

В блока 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.

Преди да приключим, трябва да добавим нашите Atheme услуги към InspIRCd:

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

Сега рестартирайте услугата InspIRCd:

service inspircd restart

Уверете се, че всичко работи добре:

service inspircd status

Сега стартирайте отново нашия weechat клиент:

weechat

Свържете се с нашия локален сървър:

/connect local

Веднага ще видите една от нашите услуги на Atheme: NickServ. Ще ви посрещне с информация за себе си.

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 и да разберете наличните му команди със следното:

/msg NickServ help

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване

Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Как да настроите надстройки без надзор на Debian 9 (разтягане)

Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

Как да инсталирате и конфигурирате PHP 7.0 или PHP 7.1 на Ubuntu 16.04

PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Три безплатни контролни панела на сървъра (бърза инсталация)

Три безплатни контролни панела на сървъра (бърза инсталация)

1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код

Настройване на приложение Yii на Ubuntu 14.04

Настройване на приложение Yii на Ubuntu 14.04

Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l

Настройте свой собствен DNS сървър на Debian/Ubuntu

Настройте свой собствен DNS сървър на Debian/Ubuntu

Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th

Използване на Logrotate за управление на регистрационни файлове

Използване на Logrotate за управление на регистрационни файлове

Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Настройте Red5 Media Server на Ubuntu 16.04

Настройте Red5 Media Server на Ubuntu 16.04

Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

Компилирайте и инсталирайте Nginx с модула PageSpeed ​​на Debian 8

В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Как да инсталирате Apache Cassandra 3.11.x на Ubuntu 16.04 LTS

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Как да инсталирате Vanilla Forum на Ubuntu 16.04

Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Как да инсталирате Kanboard на Ubuntu 18.04 LTS

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Kanboard на Debian 9

Как да инсталирате Kanboard на Debian 9

Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира

Как да инсталирате Gitea на Debian 9

Как да инсталирате Gitea на Debian 9

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е

Как да инсталирате Gitea на Ubuntu 18.04

Как да инсталирате Gitea на Ubuntu 18.04

Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е

Инсталирайте Lynis на Debian 8

Инсталирайте Lynis на Debian 8

Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз

Как да инсталирате Thelia 2.3 на Debian 9

Как да инсталирате Thelia 2.3 на Debian 9

Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече