Configurare un server IRC InspIRCd su Ubuntu 16.04 LTS

Internet Relay Chat (IRC) è qualcosa che esiste sin dai primi giorni di Internet. In questa guida, ti mostrerò come configurare un server IRC con InspIRCd con Atheme per servizi IRC aggiuntivi. InspIRCd è uno dei pochi server IRC scritti da zero e uno dei pochi server IRC a fornire un numero sintonizzabile di funzionalità attraverso l'uso di un sistema di moduli avanzato.

Prerequisiti

  • Un'istanza del server x64 LTS Ubuntu 16.04.
  • Un utente sudo (o account root) .
  • (Facoltativo) Un nome DNS per la tua istanza.

InspIRCd dovrebbe funzionare con qualsiasi dimensione di istanza. I requisiti minimi di sistema sono una CPU da 700 MHz e 300 MB di RAM.

Aggiorna il sistema

Quando si accede come utente sudo, è possibile aggiornare il sistema all'ultimo stato stabile come segue:

apt-get update && apt-get upgrade 

Configurazione del firewall

Prima di tutto induriamo un po 'il VPS. Abiliteremo ufwe aggiungeremo alcune regole. Iniziamo con la configurazione delle porte:

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

Il firewall richiederà una finestra di dialogo per accettare le modifiche. Premi Yper si.

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

Installa e configura InspIRCd

Successivamente possiamo installare InspIRCd, per Ubuntu 16.04 questo pacchetto è disponibile attraverso il repository principale.

apt-get install inspircd 

Al termine dell'installazione, possiamo iniziare a configurare il servizio. La configurazione principale si trova nel /etc/inspircd/inspircd.conffile e ha il layout di un file XML.

nano /etc/inspircd/inspircd.conf

Prima cerca il servertag. Questo tag è dove inserisci i dettagli del tuo server / rete, la maggior parte di queste impostazioni sono visibili ai tuoi utenti.

  • name: Nome host del tuo server. Non deve essere risolto, ma deve essere la sintassi corretta (ad es sub.example.net.:).
  • description: Descrizione del server.
  • id: Il SID da utilizzare per questo server. Questo non dovrebbe essere decommentato a meno che non ci sia un conflitto SID. Deve essere lungo tre caratteri. Il primo carattere deve essere una cifra [0-9], i restanti due caratteri possono essere lettere [AZ] o cifre.
  • network: Nome di rete fornito al momento della connessione ai client. Dovrebbe essere lo stesso su tutti i server della rete e non contenere spazi.

Nella nostra guida utilizzeremo quanto segue:

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

Sostituisci il tag originale con quello sopra.

Quindi, cerca il admintag. Queste impostazioni sono i dettagli amministrativi del tuo server. Vengono visualizzati quando si digita il /ADMINcomando.

  • name: Vero nome
  • nick: Soprannome (preferibilmente quello che usi in rete).
  • email: indirizzo email. Non deve essere valido ma questo indirizzo sarà quello che i tuoi utenti dovrebbero contattare in caso di problemi.

Usiamo l'amministratore Xenial:

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

Ora passa a bind address. Questo tag viene utilizzato per aprire il servizio. Per impostazione predefinita, vedrai l'IP localhost ( 127.0.0.1). Ciò significa che il servizio non può essere contattato dal mondo esterno. Apriamo il nostro servizio senza usare alcun indirizzo. Ciò farà sì che il servizio si associ a qualsiasi interfaccia Ethernet di proprietà della macchina:

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

Il prossimo tag sarà il powertag. Questo tag definisce due password.

  • diepass: Password da utilizzare per gli operatori se desiderano arrestare un server.
  • restartpass: Password che gli operatori possono utilizzare se devono riavviare un server.

È meglio cambiare queste password predefinite:

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

Le ultime impostazioni che cambieremo sono le operimpostazioni. Questi definiscono gli accessi dell'operatore.

  • name: login operatore utilizzato per operare (Esempio:) /oper name password.
  • password: unhashed e testo semplice
  • host: Quali nomi host / IP sono autorizzati ad operare. Più opzioni possono essere separate da spazi e sono consentiti i CIDR. Puoi semplicemente usare *o @per questa sezione.
  • type: Che tipo di oper è questo. Il blocco sopra dovrebbe avere tre classi già definite: NetAdmin, GlobalOpe Helper. È NetAdminquello che useremo.

Cambia il opertag usando il seguente contenuto. Nota che per il nostro esempio useremo " @" per l'host. In un ambiente di produzione, non è consigliabile utilizzare questo:

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

Prima di riavviare il servizio, modificare i file motde rules:

nano /etc/inspircd/inspircd.motd

Sostituiscilo con il tuo, ad esempio:

This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.

Infine modifica i file delle regole.

nano /etc/inspircd/inspircd.rules

Aggiungi le tue regole, ad esempio:

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! 

Ora che tutto è impostato, riavvia il servizio IRC:

service inspircd restart

Per verificare che tutto sia in esecuzione, eseguire una query sullo netstatstrumento:

netstat -tulpn | grep -i inspircd

Dovrebbe elencare il programma inspircd, ascoltando sulla porta 6666:

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

Per testare il server possiamo installare un client IRC terminale. Su Windows puoi usare un programma come mIRC. Nel nostro esempio useremo weechat. Questo è un client IRC basato su testo che può essere utilizzato in una sessione terminale.

Installa l'applicazione weechat attraverso i repository:

apt-get install weechat 

Una volta installata questa applicazione, eseguire questo client IRC:

weechat

Per visualizzare tutti i comandi che Weechat ha da offrire, puoi richiedere il comando help:

/help

Per uscire da weechat puoi digitare il seguente comando:

/quit    

Aggiungi il nostro server locale a una connessione in weechat:

/server add local localhost

Ora possiamo connetterci al profilo di connessione denominato 'local':

/connect local

Vedrai il nostro motd e le regole apparire nella finestra del terminale.

Per promuoverti da un operatore, digita quanto segue:

/oper xenial mypassword

Questo ci mostrerà una conferma del successo:

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

Questo è tutto per il nostro server IRC.

Installazione dei servizi IRC - Atheme

Atheme è un insieme di servizi per reti IRC progettato per reti IRC di grandi dimensioni con requisiti di alta scalabilità. Aggiunge servizi aggiuntivi come NickServ (Nickname Registration) alla tua rete IRC.

Atheme può essere trovato nel repository Ubuntu:

apt-get install atheme-services

Una volta installati i binari, estrarre il file di configurazione di esempio e copiarlo nella athemecartella:

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

Quindi, modifica questo file di configurazione:

nano /etc/atheme/atheme.conf

Prima cerca il loadmodulecomando protocollo. Questo dovrebbe essere definito come segue:

loadmodule "modules/protocol/charybdis";

Sostituisci charybdiscon il protocollo di inspircd:

loadmodule "modules/protocol/inspircd12";

Prossima ricerca del servizio name:

name = "services.int";

Modifica services.intin modo che corrisponda al nome di dominio o all'indirizzo IP del tuo server IRC:

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

Una volta fatto, cerca il numerico:

numeric = "00A";

Ora cambiarlo con un valore diverso da quello numerico utilizzato nel tag server utilizzato in precedenza.

numeric = "77C";

Fatto ciò, configuriamo il nome della rete. Cerca netname:

netname = "misconfigured network";

Modificare questo valore nel parametro di rete nel tag del server.

netname = "ExampleNET";

Modifica il valore di hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Rimuovi il .misconfigured:

hidehostsuffix = "users";

Successivamente cambia il nome dell'amministratore in quello che abbiamo usato prima:

adminname = "xenial";

Abbina il adminemailmessaggio di posta elettronica associato utilizzato prima:

adminemail = "[email protected]";

Ora che questo è fatto, dobbiamo creare un collegamento verso monte per i nostri servizi. Trova i due uplinkblocchi di codice e commentali tutti. Aggiungi /*prima del uplink{comando e */alla fine della parentesi graffa di chiusura.

Sarà simile al seguente:

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

Quindi, aggiungi il nostro uplink. Questo uplink verrà eseguito solo sull'IP del nostro host locale e sulla porta 7001. Specifica una password super segreta (la useremo più avanti):

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

Cerca infine le definizioni dei nostri servizi. Inizia prima con il nickservblocco.

Nel blocco nickserv, cerca il hosttag e modificalo in 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>>...

Cambia anche hostname tagper tutti gli altri servizi:

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

Fatto ciò, salva ed esci dal file di configurazione.

Per testare tutto, esegui il atheme-servicesbinario:

atheme-services

Questo dovrebbe dirti esattamente se funziona o no. Se non si riceve un output simile a quello mostrato di seguito, tornare indietro e verificare la presenza di errori nel file di configurazione:

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

Ora abilita il servizio modificando il file dei servizi:

nano /etc/default/atheme-services

Modifica il ENABLEDvalore:

DAEMON_OPTS=""
ENABLED=1

Ora possiamo avviare il servizio:

service atheme-services restart

Controlla il suo stato:

service atheme-services status

Ciò restituirà risultati simili:

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

Prima di terminare, dobbiamo aggiungere i nostri servizi Atheme a InspIRCd:

nano /etc/inspircd/inspircd.conf

Alla fine del file aggiungi queste righe:

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

Ora riavvia il servizio InspIRCd:

service inspircd restart

Assicurarsi che tutto funzioni correttamente:

service inspircd status

Ora riavvia il nostro client weechat:

weechat

Connettiti al nostro server locale:

/connect local

Vedrai immediatamente uno dei nostri servizi Atheme: NickServ. Ti accoglierà con informazioni su se stesso.

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.

Puoi interrogare NickServ e scoprire i suoi comandi disponibili con i seguenti:

/msg NickServ help


Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.