Konfigurowanie serwera IRC InspIRCd na Ubuntu 16.04 LTS

Internet Relay Chat (IRC) to coś, co istnieje od pierwszych dni Internetu. W tym przewodniku pokażę, jak skonfigurować serwer IRC z InspIRCd z Atheme dla dodatkowych usług IRC. InspIRCd jest jednym z niewielu serwerów IRC napisanych od podstaw i jednym z niewielu serwerów IRC, które zapewniają dostrojoną liczbę funkcji dzięki zastosowaniu zaawansowanego systemu modułów.

Wymagania wstępne

  • Instancja serwera Ubuntu 16.04 LTS x64.
  • Użytkownik sudo (lub konto root) .
  • (Opcjonalnie) Nazwa DNS Twojej instancji.

InspIRCd powinien działać z dowolnym rozmiarem instancji. Minimalne wymagania systemowe to procesor 700 MHz i 300 MB pamięci RAM.

Zaktualizuj system

Logując się jako użytkownik sudo, możesz zaktualizować system do najnowszej stabilnej wersji w następujący sposób:

apt-get update && apt-get upgrade 

Konfigurowanie zapory ogniowej

Najpierw trochę zahartujmy VPS. Włączymy ufwi dodamy kilka reguł. Zacznijmy od konfiguracji portów:

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

Zapora wyświetli okno dialogowe z prośbą o zaakceptowanie zmian. Naciśnij po prostu Ytak.

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

Zainstaluj i skonfiguruj InspIRCd

Następnie możemy zainstalować InspIRCd, dla Ubuntu 16.04 pakiet ten jest dostępny za pośrednictwem głównego repozytorium.

apt-get install inspircd 

Po zakończeniu instalacji możemy rozpocząć konfigurowanie usługi. Główna konfiguracja znajduje się w /etc/inspircd/inspircd.confpliku i ma układ pliku XML.

nano /etc/inspircd/inspircd.conf

Najpierw wyszukaj servertag. W tym tagu wpisujesz szczegóły swojego serwera / sieci, większość z tych ustawień jest widoczna dla użytkowników.

  • name: Nazwa hosta twojego serwera. Nie trzeba go rozstrzygać, ale musi mieć poprawną składnię (np sub.example.net.:).
  • description: Opis serwera.
  • id: SID do użycia dla tego serwera. Nie należy tego lekceważyć, chyba że wystąpi konflikt SID. Musi to być trzy znaki. Pierwszy znak musi być cyfrą [0–9], pozostałe dwa znaki mogą być literami [AZ] lub cyframi.
  • network: Nazwa sieci podana przy połączeniu z klientami. Powinien być taki sam na wszystkich serwerach w sieci i nie może zawierać spacji.

W naszym przewodniku będziemy używać następujących elementów:

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

Zastąp oryginalny tag powyższym.

Następnie wyszukaj admintag. Te ustawienia są danymi administracyjnymi twojego serwera. Są wyświetlane po wpisaniu /ADMINpolecenia.

  • name: Prawdziwe imię
  • nick: Pseudonim (najlepiej to, czego używasz w sieci).
  • email: adres e-mail. Nie musi być prawidłowy, ale ten adres będzie adresem, pod którym użytkownicy powinni się z Tobą skontaktować w razie problemów.

Użyjmy administratora Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="[email protected]">

Teraz przejdź do bind address. Ten tag służy do otwierania usługi. Domyślnie zobaczysz adres IP hosta lokalnego ( 127.0.0.1). Oznacza to, że świat nie może skontaktować się z usługą. Otwórzmy naszą usługę, nie używając w ogóle żadnego adresu. Spowoduje to powiązanie usługi z dowolnym interfejsem Ethernet posiadanym przez maszynę:

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

Następnym tagiem będzie powertag. Ten znacznik definiuje dwa hasła.

  • diepass: Hasło dla operatorów do użycia, jeśli chcą zamknąć serwer.
  • restartpass: Hasło dla operatorów, których należy użyć, jeśli muszą zrestartować serwer.

Najlepiej zmienić te domyślne hasła:

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

Ostatnie ustawienia, które zmienimy, to operustawienia. Definiują one loginy operatora.

  • name: login operatora używany do uruchomienia (Przykład:) /oper name password.
  • password: nieszyfrowany i zwykły tekst
  • host: Jakie nazwy hostów / adresy IP mogą działać. Wiele opcji można oddzielić spacjami, a CIDR są dozwolone. Możesz po prostu użyć *lub @do tej sekcji.
  • type: Jaki to typ operacji. Blok powinien mieć trzy klasy wyżej już zdefiniowane: NetAdmin, GlobalOpi Helper. Tego NetAdminużyjemy.

Zmień opertag, używając następującej treści. Pamiętaj, że w naszym przykładzie użyjemy „ @” dla hosta. W środowisku produkcyjnym nie jest pożądane użycie tego:

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

Przed ponownym uruchomieniem usługi dokonaj edycji plików motdi rules:

nano /etc/inspircd/inspircd.motd

Zamień go na własny, na przykład:

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 koniec edytuj pliki reguł.

nano /etc/inspircd/inspircd.rules

Dodaj własne reguły, na przykład:

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! 

Teraz, gdy wszystko jest skonfigurowane, uruchom ponownie usługę IRC:

service inspircd restart

Aby sprawdzić, czy wszystko działa, przeszukaj netstatnarzędzie:

netstat -tulpn | grep -i inspircd

Powinien wyświetlić program inspircd, nasłuchując na porcie 6666:

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

Aby przetestować serwer, możemy zainstalować terminalowego klienta IRC. W systemie Windows możesz użyć programu takiego jak mIRC. W naszym przykładzie użyjemy weechat. Jest to klient IRC oparty na tekście, którego można używać w sesji terminalowej.

Zainstaluj aplikację weechat poprzez repozytoria:

apt-get install weechat 

Po zainstalowaniu tej aplikacji uruchom tego klienta IRC:

weechat

Aby wyświetlić wszystkie polecenia oferowane przez Weechat, możesz poprosić o polecenie pomocy:

/help

Aby wyjść z Weechat, możesz wpisać następujące polecenie:

/quit    

Dodaj nasz lokalny serwer do połączenia weechat:

/server add local localhost

Teraz możemy połączyć się z profilem połączenia o nazwie „lokalny”:

/connect local

Zobaczysz nasze motd i zasady wyskakujące w oknie terminala.

Aby awansować na operatora, wpisz następujące polecenie:

/oper xenial mypassword

To pokaże nam potwierdzenie sukcesu:

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

To wszystko dla naszego serwera IRC.

Instalowanie usług IRC - Atheme

Atheme to zestaw usług dla sieci IRC przeznaczony dla dużych sieci IRC o wysokich wymaganiach dotyczących skalowalności. Dodaje dodatkowe usługi, takie jak NickServ (Rejestracja pseudonimów) do sieci IRC.

Atheme można znaleźć w repozytorium Ubuntu:

apt-get install atheme-services

Po zainstalowaniu plików binarnych wyodrębnij przykładowy plik konfiguracyjny i skopiuj go do athemefolderu:

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

Następnie edytuj ten plik konfiguracyjny:

nano /etc/atheme/atheme.conf

Najpierw wyszukaj loadmodulepolecenie protokołu. Należy to zdefiniować w następujący sposób:

loadmodule "modules/protocol/charybdis";

Zamień charybdisna protokół inspircd:

loadmodule "modules/protocol/inspircd12";

Następnie wyszukaj usługę name:

name = "services.int";

Zmień, services.intaby pasowała do nazwy domeny lub adresu IP serwera IRC:

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

Po wykonaniu tej czynności wyszukaj numer:

numeric = "00A";

Teraz zmień wartość na inną niż wartość liczbowa używana w znaczniku serwera używanym wcześniej.

numeric = "77C";

Po wykonaniu tej czynności skonfigurujmy nazwę sieci. Wyszukaj netname:

netname = "misconfigured network";

Zmień tę wartość na parametr sieci w znaczniku serwera.

netname = "ExampleNET";

Zmień wartość hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Usuń .misconfigured:

hidehostsuffix = "users";

Następnie zmień nazwę administratora na poprzednią:

adminname = "xenial";

Dopasuj adminemaildo powiązanego adresu e-mail używanego wcześniej:

adminemail = "[email protected]";

Po wykonaniu tej czynności musimy utworzyć łącze zwrotne dla naszych usług. Znajdź dwa uplinkbloki kodu i skomentuj je wszystkie. Dodaj /*przed uplink{poleceniem i */na końcu zamykającego nawiasu klamrowego.

Będzie to wyglądać następująco:

/* this is an example for using an IPv6 address as an uplink */
/*
uplink "irc6.example.net" {
        host = "::1";
        password = "linkage";
        port = 6667;
};
*/

Następnie dodaj własne łącze ładujące. To łącze w górę będzie działać tylko na adresie IP naszego lokalnego hosta i na porcie 7001. Podaj super tajne hasło (będziemy go później używać):

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

Na koniec wyszukaj nasze definicje usług. nickservNajpierw zacznij od bloku.

W bloku nickserv wyszukaj hosttag i zmień go na 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>>...

Zmień również hostname tagdla wszystkich innych usług:

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

Po zakończeniu zapisz i zamknij plik konfiguracyjny.

Aby to przetestować, uruchom atheme-servicesplik binarny:

atheme-services

To powinno ci powiedzieć dokładnie, czy to działa, czy nie. Jeśli nie otrzymujesz danych wyjściowych, jak pokazano poniżej, wróć i sprawdź, czy nie ma błędów w pliku konfiguracyjnym:

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

Teraz włącz usługę, edytując plik usług:

nano /etc/default/atheme-services

Zmień ENABLEDwartość:

DAEMON_OPTS=""
ENABLED=1

Teraz możemy uruchomić usługę:

service atheme-services restart

Sprawdź jego status:

service atheme-services status

Zwróci to podobne wyniki:

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

Zanim skończymy, musimy dodać nasze usługi Atheme do InspIRCd:

nano /etc/inspircd/inspircd.conf

Na końcu pliku dodaj następujące wiersze:

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

Teraz uruchom ponownie usługę InspIRCd:

service inspircd restart

Upewnij się, że wszystko działa poprawnie:

service inspircd status

Teraz uruchom ponownie naszego klienta Weechat:

weechat

Połącz się z naszym lokalnym serwerem:

/connect local

Natychmiast zobaczysz jedną z naszych usług Atheme: NickServ. Powita Cię informacjami o sobie.

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.

Możesz wysłać zapytanie do NickServ i znaleźć dostępne polecenia za pomocą:

/msg NickServ help


Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.