:: IRCd ::
Bahamut ed Epona Service
Installazione di Bahamut ed Epona Services
Premessa
In questo documento spiegherò come realizzare un server IRC dotato dei servizi come NickServ ChanServ grazie al software Epona, Un esempio di configurazione reale come questa che effettueremo e la rete IRC di AzzurraNET che è oggi la prima IRC community Italiana. Questo tipo di server così configurato è indispensabile se vogliamo crearci un nostro server IRC pubblico magari abbinato al nostro sito Web per far chattare i notri utenti, oppure interno alla LAN. C'è da dire che da sempre i server IRC sono obbiettivo dei cracker di tutto il modo che si divertono a bucarli per metterci su dei bot da gestire in remoto. Oltre che da cracker, i server IRC sono preda di numerosi virus informatici, quindi se vogliamo rendere visibile il nostro server alla Rete dobbiamo prendere in considerazione la sicurezza sia del server e magari della rete annessa ad esso.
Risorse Hardware e Software
Per il mio scopo ho utilizzato un vecchio pc , composto da un processore Pentium 166MMX, 32MB di RAM, Hard Disk da 2GB ide, scheda di rete pci 3Com 905-b 10/100Mbit., dal lato software ho utilizzato Slackware 9.1, Bahamut e Epona Services
Procuriamoci i pacchetti necessari
Per facilitarvi nell'impresa vi ho messo a disposizione il mio spazio web, da dove potere prelevare i pacchetti necessari senza andare in giro per la rete magari non trovando le versioni utilizzate in questo documento. Di seguito trovate i link per scaricare i pacchetti:
http://www.webalice.it/alepensato/epona-1.4.14.tar.gz http://www.webalice.it/alepensato/bahamut-1.8.1-release.tar.gz
Compilazione e installazione dei software sorgenti (come root)
Installazione del server IRC Bahamut
Il primo software che installeremo è Bahamut che è il server vero è proprio a cui si connetteranno gli utenti. Per prima cosa occorre scompattare i sorgenti e solo dopo potremmo avviare la configurazione seguita dalla compilazione e l'installazione. Una volta completati queste prime fasi, modificheremo il file ircd.conf che contiene le informazioni che consentono al server di funzionare. Eseguite questi comandi passo passo:
| cd /tar |
# entra nella directory dove ci sono i sorgenti |
| tar zxvf bahamut* |
# scompatta i file |
| cd bahamut* |
# entra nella directory di installazione |
| ./configure --prefix=/usr/local/ircd |
# prepara all’installazione nella directory specificata |
| make && make install |
# compila ed installa MySQL |
| cd / usr/local/ircd |
# entra nella directory dov’è installato Bahamut |
| cp template.conf ircd.conf |
# copia il file di configurazione |
| vi ircd.conf |
# apre il file ircd.conf che modificheremo |
Adesso vedremo come personalizzare il file ircd.conf secondo le nostre esigenze
/* Nome del server ed informazioni amministrative */
global {
name irc.home.local; # Nome del Server
info "porkyHTTP Intranet IRC Server"; # Breve descrizione
admin {
"Alessandro Pensato"; # Informazioni sull’Admin
"porky2000@home.local";
};
};
/* Opzioni del server */
options {
services_name services.home.local; # Nome del server dei servizi (NS/CS/MS/RS)
stats_name services.home.local; # Nome del server delle statistiche (OS/SS/HS)
network_kline services@home.local; # Indirizzo di provenienza delle mail di un ban
// Se intendi linkare più di 1 server, togli il “#” dalla prossima riga
# servtype hub;
network_name irc.home.local # Il nome e necessario se non s’intende linkare il server
local_kline kill@home.local; # Email per informazioni sui ban subiti
};
/* Porta TCP utilizzata dal server */
port {
port 6667; # Porta di default
bind 192.168.0.7; # Indirizzo IP del server
};
/* Ulteriori porte utlizzabili dal server */
port { port 6664; bind 192.168.0.7; };
port { port 6668; bind 192.168.0.7; };
port { port 6665; bind 192.168.0.7; };
port { port 6666; bind 192.168.0.7; };
port { port 6668; bind 192.168.0.7; };
port { port 6669; bind 192.168.0.7; };
port { port 7000; bind 192.168.0.7; };
/* Consenti connessioni da host */
allow {
host *; # Consente di connettersi da qualsiasi host
class users; # Associa le connessioni alla classe users
};
/* Specifiche delle connessioni users */
class {
name users; # Nome della classe
maxusers 100; # Connessioni massime
pingfreq 90; # requenza con cui il server effettuerà dei ping sul client
maxsendq 100000; # Buffer limite per i send espresso in byte
};
/* Specifiche per le connessioni degli operatori */
class {
name opers;
pingfreq 90;
maxsendq 500000; # Buffer limite per i send espresso in byte
};
/* Informazioni sull’amministratore del server */
oper {
name nick; # Nickname
passwd pass; # Password
access oARD; # Flag assegnate all’amministratore
host *@192.168.0.*; # Informazioni sulla provenienza delle connessioni
host *@*intebusiness*; # Altri host
class opers; # Classe assegnata
};
super {
"services.home.local"; # nomi dei server (in caso di link o per i servizi)
};
/* Nickname riservati ai servizi */
restrict { type nick; mask "NickServ"; reason "reserved for services"; };
restrict { type nick; mask "ChanServ"; reason "reserved for services"; };
restrict { type nick; mask "MemoServ"; reason "reserved for services"; };
restrict { type nick; mask "RootServ"; reason "reserved for services"; };
restrict { type nick; mask "OperServ"; reason "reserved for services"; };
restrict { type nick; mask "StatServ"; reason "reserved for services"; };
restrict { type nick; mask "HelpServ"; reason "reserved for services"; };
/* Specifiche per le connessioni ad altri server */
class {
name hub;
pingfreq 120; # Frequenza dei ping
connfreq 300; # Prova l’autoconnessione ogni 5 minuti
maxsendq 1000000; # Buffer linite per i send
maxlinks 1; # Nummero Massimo di link contemporanei
};
/* Specifiche per I servizi */
class {
name services;
pingfreq 60; # Frequenza dei ping
maxsendq 5000000; # Buffer linite per i send
};
/* Specifiche per I link ad altri server */
#connect {
# name hub.name;
# host 172.16.4.2; # Indirizzo IP
# port 7325; # Porta di connessione 7325
# bind 127.0.0.1; # Indirizzo IP di provenienza della connessione
# apasswd secret; # Password per la connessione del server hub
# cpasswd secret; # Password di risposta del server principale
# flags H; # Impostato come Hub
# class hub; # Tipologia di classe
#};
/* Specifiche per I servizi */
connect {
name services.home.local;
host 192.168.0.7;
apasswd marpiune;
cpasswd marpiune;
class services;
};
Installazione dei servizi Epona
Questo pacchetto, una volta installato, si occuperà della gestione dei nick e canali, della registrazione degli stessi ed anche le specifiche riguardanti gli utenti come i ban i topic ed i modi dei canali. Appena lanciato il comando ./configure ci verrà richiesto di impostare la cartella dove verranno installati i file di programma e quella per i file di configurazione. Eseguite questi comandi passo passo:
| cd /tar |
# /tar è la directory dove tengo i sources |
| tar zxvf epona |
# scompatta i file |
| cd epona* |
# entra nella directory di installazione |
| ./configure |
# avvia la configurazione, compilazione ed installazione |
In what directory do you want the binaries to be installed? Press Return for the default, or enter a new value. [/usr/local/ircd/epona]
Where do you want the data files to be installed? [/usr/local/ircd/epona/etc]
Which group should all Services data files be owned by? (If Services should not force files to be owned by a particular group, just press Return.) []
What should the default umask for data files be (in octal)? (077 = only accessible by owner; 007 = accessible by owner and group) [077]
Which of the following is closest to the type of server on your IRC network?
1) DreamForge 4.6.7 [this is an old IRCd, you should upgrade to Bahamut]
2) Bahamut 1.4.27 or later
3) UnrealIRCd 3.1.1 or later
4) UltimateIRCd 2.8.2 or later
5) Sequana 0.3.0 or later
[] 2
Do you want to use the MD5 message-digest algorithm to encrypt passwords? (Selecting "yes" protects your passwords from being stolen if someone gains access to the Services databases, but makes it impossible to recover forgotten passwords.) NOTICE: this should be considered an EXPERIMENTAL feature.
[no]
If you are switching from another services package that is listed there, enter its associated number to be able to convert your old databases using the given parameter on the command line the first time you launch Epona. If no conversion is needed, type no. 1) ircservices 4.4.x (using -is44)
[no]
Do you want to compile Epona with threading support? If you want to use the proxy detector, you MUST have this. If you encounter problems during compilation, you should disable it anyways.
[no] yes
| make && make install |
# compila ed installa Epona |
| cd / usr/local/ircd/epona/etc |
# entra nella directory dov'è installato Bahamut |
| cp example.conf services.conf |
# copia il file di configurazione |
| vi services.conf |
# apre il file services.conf che modificheremo |
Adesso vedremo come personalizzare il file ircd.conf secondo le nostre esigenze. Non lo riporterò per intero come quello per Bahamut, riporterò solo le righe che ci interessano strettamente per funzionare con Bahamut
| RemoteServer 192.168.0.7 7000 "pass" |
# Indirizzo ip_server porta password di connessione |
| ServerName "services.home.local" |
# nome del server dei servizi |
| ServerDesc "Services for IRC Networks" |
# breve descrizione ServiceUser |
| services@home.local |
# e-mail di riferimento dei servizi NetworkDomain |
| "home.local" |
# dominio di rete NetworkName |
| "porkyHTTP Network" |
# breve descrizione della rete ServicesRoot |
| "porkyHTTP" |
# utente principale amministratore dei servizi |
Avvio diBahamut ed Epona Services Adesso è tutto pronto alla prima esecuzione del server IRC e dei servizi. I relativi eseguibili sono ircd nella cartella /usr/local/ircd e services nella cartella /usr/local/ircd/epona, quindi lanciamoli e con il nostro client irc connettiamoci al nostro server locale e cominciamo ad usarlo proprio come se fossimo connessi, per esempio, ad Azzurra, i comandi sono proprio gli stessi :-)
Da AreaNetworking
Autore: Alessandro Pensato