In questa guida tratteremo l’installazione e la configurazione di Anope IRC Services, software che consente di avere una serie di bot (detti services) utilizzati per svolgere diverse operazioni sull’IRCd quali registrare un nickname o un canale, memorizzare memo o amministrare il network IRC.

Installazione dei pacchetti necessari

Per installare un qualsiasi software su un server GNU/Linux, devono esserci un compilatore e delle librerie apposite. Tali librerie spesso non sono incluse nel sistema operativo di default, quindi devono essere reperite manualmente. Su CentOS (e altre distro basate su RHEL o che comunque utilizzano yum) il comando è yum install <libreria/software>, su altre versioni di Linux (Debian e Ubuntu ad esempio), il comando è apt install, o meglio sudo apt install. La parte di installazione di tali pacchetti è diversa per ogni distribuzione GNU/Linux, ma la parte che tratterà l’installazione del demone sarà la stessa.
Per installare il compilatore ecc. consiglio vivamente di utilizzare il seguente comando, se state usando CentOS:

sudo yum groupinstall "Development Tools" -y && sudo yum install make cmake openssl openssl-devel cmake -y

perché esso installerà tutti i compilatori e le librerie necessarie per compilare qualsiasi sorgente, che sia scritto in C/C++, Perl, Python o altro.
Per Debian / Ubuntu e derivate è:

sudo apt install wget make gcc build-essential openssl libcurl4-openssl-dev zlib1g zlib1g-dev libgcrypt20 libgcrypt20-dev libssl-dev cmake -y

Per le traduzioni in italiano ecc.

Su Debian / Ubuntu bisogna installare i seguenti pacchetti aggiuntivi:

sudo apt install gettext locales-all

Dopo aver compiuto queste semplici operazioni, sarete finalmente pronti all’installazione di Anope IRC Services.

Installazione di Anope IRC Services

Dopo aver seguito le istruzioni descritte già nell’articolo precedente (ovvero installare le dipendenze necessarie per compilare Anope IRC Services), procediamo scaricando l’archivio contenente i sorgenti di Anope (recuperate il link dal sito ufficiale) da compilare, grazie al comando:

wget --no-check-certificate --trust-server-names https://github.com/anope/anope/archive/2.0.11.tar.gz

Il seguente comando, con il parametro “–no-check-certificate” evita che si verifichino problemi a causa del certificato SSL utilizzato dal sito web.
Fatto ciò estraiamo l’archivio:

tar -xvf 2.*.tar.gz

E procediamo entrando nella directory appena creata:

cd anope-*

Dopodiché avviamo il processo di installazione con:

./Config

E premere sempre Invio, perché tanto non c’è niente da cambiare, i parametri che ci suggerisce sono perfetti così come sono.

In caso si verifichino errori verremo informati in questo processo, ad esempio potreste aver dimenticato di installare alcuni pacchetti, in quel caso, tramite una ricerca su Google sarete in grado di trovare qual è il pacchetto corretto da installare per la vostra distribuzione GNU/Linux.

A questo punto, se tutto è andato a buon fine, procediamo con la compilazione:

cd build
make && make install

Questo farà partire il processo di compilazione con relativa installazione nella cartella di destinazione, ad esempio in /home/vostro_utente/services.

Nota: In realtà, prima di procedere con questi comandi, vi potrebbe interessare la compilazione di alcune funzionalità extra che tuttavia richiedono dei pacchetti aggiuntivi e non staremo a coprire in questi guida.

Se siete interessati agli extra (es: statistiche, connessione a un database con SQL e altro ancora) potete impartire, subito dopo il comando ./Config, il seguente comando:

./extras

E procedere digitando il nome esatto del modulo che vi interessa attivare, dopodiché premere invio e una volta attivati i vari moduli che vi interessano, digitare q e premere invio.

Configurazione

La configurazione di Anope si compone di diversi files, situati nella directory di installazione dentro alla cartella ‘conf‘, se avete lasciato il percorso predefinito, saranno in:

cd ~/services/conf

Qui dentro vi basterà rinominare il file principale della configurazioneexample.conf‘ in ‘services.conf‘ e apportare le modifiche che vi interessano:

mv example.conf services.conf
nano services.conf

Vi sarà richiesto di configurare diverse variabili, comprese quelle che permettono di collegare i services al vostro IRCd. Anope supporta infatti svariati IRCd e per ognuno di essi è previsto un modulo specifico da caricare, bisognerà poi indicare un host (se è tutto sulla stessa macchina sarà 127.0.0.1) e una porta su cui l’IRCd si metterà in ascolto per connessioni da altri server (e quindi da i services) e la password per effettuare il link.

In maniera predefinita i services si mettono in ascolto con il protocollo di inspircd3, se utilizzate UnrealIRCd dalle 4.0 in poi, dovrete specificare ‘unreal4‘.

In ogni caso gran parte delle voci disponibili nei file di configurazione sono facilmente comprensibili ed è possibile approfondirle sia sul Wiki di Anope che nei files di configurazione stessi, poiché ogni voce è ben descritta da un commento, purtroppo solamente in lingua inglese, ma sempre meglio di nulla.

Non staremo in questa guida a indicare ogni singola modifica da apportare, ma vi invitiamo a configurare ogni impostazione che contenga “[REQUIRED]” nel commento iniziale.

Di seguito vi riportiamo una porzione di configurazione da modificare affinché i services si colleghino con successo a UnrealIRCd se avete seguito una delle guide disponibili su questo sito e avete una configurazione simile a quella preparata da noi, almeno giusto per arrivare al punto in cui si riesca ad avviare Anope con successo:
Blocco UPLINK (impostare host, port e password)

uplink
{
        /*
         * The IP or hostname of the IRC server you wish to connect Services to.
         * Usually, you will want to connect Services over 127.0.0.1 (aka localhost).
         *
         * NOTE: On some shell providers, this will not be an option.
         */
        host = "127.0.0.1"

        /*
         * Enable if Services should connect using IPv6.
         */
        ipv6 = no

        /*
         * Enable if Services should connect using SSL.
         * You must have an SSL module loaded for this to work.
         */
        ssl = no

        /*
         * The port to connect to.
         * The IRCd *MUST* be configured to listen on this port, and to accept
         * server connections.
         *
         * Refer to your IRCd documentation for how this is to be done.
         */
        port = 6669

        /*
         * The password to send to the IRC server for authentication.
         * This must match the link block on your IRCd.
         *
         * Refer to your IRCd documentation for more information on link blocks.
         */
        password = "CAMBIAMI"
}

Blocco SERVERINFO (impostare il name):

serverinfo
{
        /*
         * The hostname that Services will be seen as, it must have no conflicts with any
         * other server names on the rest of your IRC network. Note that it does not have
         * to be an existing hostname, just one that isn't on your network already.
         */
        name = "services.prova.it"
...

}

PROTOCOLLO (impostare il name):

module
{
        name = "unreal4"

...

}

NETWORKINFO (impostare il networkname):

networkinfo
{
        /*
         * This is the name of the network that Services will be running on.
         */
        networkname = "Prova"

...

}

Blocco OPTIONS (cambiare il defaultlanguage così da avere l’italiano come lingua predefinita):

options
{
        /*
         * On Linux/UNIX systems Anope can setuid and setgid to this user and group
         * after starting up. This is useful if Anope has to bind to privileged ports
         */
        #user = "anope"
        #group = "anope"
...
        /*
        * A list of languages to load on startup that will be available in /NICKSERV SET LANGUAGE.
        * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE).
        * Note that English should not be listed here because it is the base language.
        *
        * Removing .UTF-8 will instead use the default encoding for the language, e.g. iso-8859-1 for western European languages.
        */
        languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8"

        /*
        * Default language that non- and newly-registered nicks will receive messages in.
        * Set to "en" to enable English. Defaults to the language the system uses.
        */
        defaultlanguage = "it_IT.UTF-8"
}

Non ci resta quindi che avviare i services, tornando nella cartella di installazione e entrando nella cartella bin:

cd ~/services/bin

E quindi usando:

./services

È tutto! Se avete fatto tutto correttamente appariranno diverse scritte informative che vi comunicheranno l’avvio con successo in background dei services e il link con successo con l’IRCd, nel nostro caso, con UnrealIRCd.

La versione a cui abbiamo fatto riferimento è Anope 2.0.11 (aprile 2022) e UnrealIRCd 6.0.3 per questa guida. La configurazione di entrambi i software (IRCd + services) è stata fatta su una macchina virtuale con Debian 11 per verificarne l’effettivo funzionamento.