A proposito dell'autore

Ciao a tutti, sono Alessandro, sono nato a Palermo il 24/01/1983 e vivo a qualche chilometro dalla città. Da anni coltivo la passione per i computer e tutto quello che ci sta attorno, con un occhio di riguardo per il mondo delle reti. Nel 2000 mi avvicino al mondo di Linux e ne resto impressionato da ciò che consente di fare, nonchè alla filosofia dell’opensource. Nel Aprile 2005 ho conseguito la certificazione Cisco CCNA. Da Novembre 2006 sono membro del CUG. Ho completato il corso HP IT Essential I e II e Cisco Network Security. Ho svolto uno stage presso Jump2Future dove mi sono occupato di redigere una ralazione per la realizzazione di un cluster basato su RedHat GFS (Global File System). Lavoro per l’IBIM-CNR di Palermo dal 2002 come tecnico informatico e gestione rete. Sto cominciando ad acquisire conoscenze nel campo del VoIP con software quali Trixbox e Elastix, realizzazione e uso di macchine virtuali basate su VMWare.

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 di Bahamut 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 :-)

Post correlati

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: