ATTENZIONE: è disponibile una versione più aggiornata, con relativa guida qui.
Su Internet, la maggior parte delle guide che tratta questo argomento, sono molto confuse o poco complete. Vi spiegherò come installare sul vostro server (vps o dedicato), con CentOS 5 o 6 (è uguale), come installare il demone IRC (IRCd).
Installazione dei pacchetti necessari
Per installare un qualsiasi software su un server 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 il comando è yum install <libreria/software>, su altre versioni di Linux (Debian ad esempio), il comando è apt-get install, o meglio sudo apt-get install. La parte di installazione di tali pacchetti è diversa per ogni sistema operativo Linux, ma la parte che tratterà l’installazione del demone sarà la stessa.
Per installare il compilatore ecc. ecc. consiglio vivamente di utilizzare il seguente comando:
yum groupinstall “Development Tools”
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 è apt-get install build-essential)
Dopo aver dato questo comando, rispondere digitando:
y
ad ogni domanda (saranno 2 quelle che vi verranno poste, per esempio, su CentOS 6).
Per installare il supporto a SSL utilizzeremo questo comando:
yum install openssl-devel
(Per Debian è apt-get install libssl-dev)
e procederemo nello stesso modo detto sopra, ovvero, rispondendo “y” alle domande poste.
Per quanto riguarda il supporto a zip-links, lo installeremo con il seguente comando:
yum install zlib-devel
(Per Debian è apt-get install zlib1g-dev)
e continueremo a rispondere con “y” alle domande.
Dopo aver compiuto queste semplici operazioni, sarete finalmente pronti all’installazione del demone IRC.
Installazione di UnrealIRCd
Per prima cosa scarichiamo l’archivio contenente UnrealIRCd (in questa guida installeremo l’ultima versione, la 3.2.10.4), con il comando:
wget http://www.unrealircd.com/downloads/Unreal3.2.10.4.tar.gz
scompattiamo poi l’archivio con il comando:
tar -xzvf Unreal3.2.10.4*
entriamo nella cartella del programma digitando:
cd Unreal3.2.10.4
Iniziamo l’installazione del demone con il comando:
./Config
Teniamo premuto Invio finché non il programma di installazione non chiederà dove installare il demone e i relativi files, dopodiché decidiamo se abilitare il supporto a SSL, IPv6 e zip-links (io consiglio di abilitare tutto, rispondendo con Yes e premendo invio, in alternativa verrà utilizzata la scelta di default premendo invio, ovvero “No“). Per il resto, consiglio di lasciare tutto com’è già, premendo ripetutamente il tasto “Invio” finché il programma non avvia la procedura “./configure“. Una volta che finirà, diamo il comando:
make
Se avete scelto di abilitare il supporto SSL, dovrete inserire dei dati in più che vi verranno richiesti, nel caso in cui siate “sfaticati” potete rispondere a tutto premendo invio, l’opzione di default verrà utilizzata (è quella indicata tra parentesi quadre []).
Dopodiché, se avete scelto una cartella diversa da quella contenente i sorgenti di UnrealIRCd digitate il comando:
make install
Installazione dei Moduli
Copiare i moduli in /home/NOMEUTENTE/Unreal3.2.10.4/src/module/
dopodiché dalla cartella Unreal3.2.10.4 aperta dalla shell, digitare:
make custommodule MODULEFILE=NOME-DEL-MODULO-SENZA-ESTENSIONE
ripetere l’operazione per ogni modulo.
Configurazione
Dopo aver inserito il file di configurazione, UnrealIRCd.conf nella cartella di installazione del demone (ne trovate una copia di esempio in questa cartella, scaricatevela via ftp con un client apposito e modificatela seconde le vostre esigenze, è molto semplice da fare, se avete problemi sul sito di UnrealIRCd è disponibile una guida CLICK QUI.
In alternativa è disponibile un file di configurazione funzionante realizzato da me, basta solo modificare dove ho scritto “TUONOME” o “TUAPASSWORD” o “TUONETWORK” e quant’altro. Eccolo qui:
//File di configurazione di UnrealIRCd 3.2.* - A cura di Dragone2 - http://www.risposteinformatiche.it //Per *NIX: (aggiungere i commenti, ovvero i // se utilizzi Windows con UnrealIRCd) loadmodule "src/modules/commands.so"; loadmodule "src/modules/cloak.so"; //Per Windows: (togli i commenti, ovvero i // e aggiungili alla parte per *NIX) //loadmodule "modules/commands.dll"; //loadmodule "modules/cloak.dll"; //Files di config aggiuntivi (quelli sotto elencati sono quelli di default) include "badwords.channel.conf"; include "badwords.message.conf"; include "badwords.quit.conf"; include "dccallow.conf"; include "help.conf"; include "spamfilter.conf"; //Nome del server me { name "irc.mioserver.it"; info "Il nome del mio Network"; numeric 1; //Numeric = numero del server, in questo caso 1, poiché abbiamo solo 1 server }; //Chi è l'admin del server? admin { "Primo Admin"; "mia@email.it"; }; //Frequenza di ping, numero massimo di clients connessi, numero massimo di dati inviati/ricevuti class clients { pingfreq 90; maxclients 100; sendq 100000; recvq 8000; }; //Frequenza di ping, numero massimo di servers connessi, numero massimo di dati inviati/ricevuti class servers { pingfreq 90; maxclients 10; /* Max servers we can have linked at a time */ sendq 1000000; connfreq 100; /* How many seconds between each connection attempt */ }; //Permetti le connessioni da: allow { ip *@*; //Qualsiasi IP hostname *@*; //Qualsiasi host class clients; //Classe clients maxperip 3; //Numero massimo di connessioni dallo stesso IP }; //NETADMIN - /oper TUONOME TUA-PASSWORD oper TUONOME { class clients; from { userhost *@*; }; password "TUA-PASSWORD"; flags { netadmin; get_host; can_restart; can_die; can_zline; can_gkline; can_gzline; get_umodew; can_override; can_addline; }; maxlogins 3; //Numero massimo di tentativi di accesso modes q; //Modi utente automatici snomask ceFfGkoqSs; //Server notices visibili }; //I blocchi oper sotto stanti sono di esempio e non sono necessari se non disponi di altri operatori nel tuo staff. //SERVICESADMIN oper TUONICK2 { class clients; from { userhost *@*; }; password "TUA-PASSWORD2"; flags { services-admin; get_host; can_restart; can_die; can_zline; can_gkline; can_gzline; can_override; get_umodew; }; maxlogins 3; snomask ceFfGkoqSs; modes q; }; //ADMIN oper TUONICK3 { class clients; from { userhost *@*; }; password "TUA-PASSWORD3"; flags { admin; can_rehash; can_die; can_restart; helpop; can_wallops; can_globops; can_localroute; can_globalroute; can_localkill; can_globalkill; can_kline; can_unkline; can_localnotice; can_globalnotice; can_zline; can_gkline; can_gzline; get_umodew; get_host; can_addline; can_dccdeny; }; maxlogins 3; snomask ceFfGkoqSs; }; //IRCOP oper TUONOME4 { class clients; from { userhost *@*; }; password "TUA-PASSWORD4"; flags { global; get_host; can_zline; can_gkline; can_gzline; get_umodew; }; maxlogins 3; }; //HELPER oper TUONICK5 { class clients; from { userhost *@*; }; password "TUA-PASSWORD5"; flags { local; get_host; get_umodew; }; maxlogins 3; }; //PORTE DISPONIBILI PER LA CONNESSIONE: listen *:6666; listen *:6667; listen *:6668; listen *:6669; /* PER SSL, non togliere il commento se non hai OpenSSL! listen *:6697 { options { ssl; }; }; */ //Blocco link per i servers: /* listen *:32001 { options { serversonly; }; }; link server.mionetworkirc.it { username *; hostname IP-DEL-SERVER; bind-ip *; port 32001; hub *; password-connect "PASSWORD-DI-CONNESSIONE"; password-receive "PASSWORD-DI-CONNESSIONE"; class servers; }; */ ulines { services.mionetworkirc.it; stats.mionetworkirc.it; }; //PASSWORD PER riavvio e spegnimento server: /die <password> e /restart <password> drpass { restart "restart"; die "die"; }; //FILE DI LOG log "ircd.log" { maxsize 2097152; flags { oper; connects; server-connects; kills; errors; sadmin-commands; chg-commands; oper-override; spamfilter; }; }; //ALIAS alias ns { target "NickServ"; type services; }; alias nickserv { target "NickServ"; type services; }; alias cs { target "ChanServ"; type services; }; alias chanserv { target "ChanServ"; type services; }; alias ms { target "MemoServ"; type services; }; alias memoserv { target "MemoServ"; type services; }; alias bs { target "Botserv"; type services; }; alias botserv { target "Botserv"; type services; }; alias os { target "OperServ"; type services; }; alias operserv { target "OperServ"; type services; }; alias vs { target "HostServ"; type services; }; alias hostserv { target "HostServ"; type services; }; alias global { target "Global"; type services; }; alias ss { target "StatServ"; type stats; }; alias statserv { target "StatServ"; type stats; }; alias hs { target "HostServ"; type services; }; //FILE DI MOTD files { motd ircd.motd; opermotd oper.motd; botmotd bot.motd; rules ircd.rules; tunefile ircd.tune; }; //NEGA LA CREAZIONE DEI SEGUENTI CANALI: deny channel { channel "*warez*"; reason "Il warez è illegale"; }; deny channel { channel "#canale"; reason "Questo è un canale di esempio"; }; deny channel { channel "#chan"; reason "Questo è un canale di esempio"; }; //INFO DEL SERVER set { kline-address "irc@mionetwork.it"; gline-address "irc@mionetwork.it"; modes-on-connect "+ixw"; modes-on-oper "+W"; snomask-on-oper "+cFfGkoqSs"; modes-on-join "+nt"; level-on-join "op"; restrict-usermodes "x"; auto-join "#CANALE1,#CANALE2"; oper-auto-join "#irchelp,#oper,#vhost"; anti-spam-quit-message-time "60s"; oper-only-stats "bCdDeEfFGIklLnOqSsUvVXYz"; maxchannelsperuser "10"; channel-command-prefix "!"; allow-userhost-change "force-rejoin"; options { hide-ulines; flat-map; show-opermotd; show-connect-info; fail-oper-warn; allow-insane-bans; }; nopost { ban-action "kline"; ban-reason "autoKline by nopost - Info at irc@mionetwork.it"; ban-time "1h"; except-hosts "localhost"; }; //NOME DEL NETWORK network-name "MIO-NETWORK-IRC"; //SERVER DI DEFAULT: default-server "irc.mionetworkirc.it"; services-server "services.mionetwork.it"; stats-server "stats.mionetwork.it"; help-channel "#irchelp"; //Prefisso per i vhost automatici degli utenti hiddenhost-prefix "MioNetwork"; watch-away-notification "yes"; //VHOST per le oper hosts { local "helper.mionetwork.it"; global "ircop.mionetwork.it"; coadmin "coadmin.mionetwork.it"; admin "admin.mionetwork.it"; servicesadmin "serviceadmin.mionetwork.it"; netadmin "netadmin.mionetwork.it"; host-on-oper-up "yes"; }; throttle { connections 3; period 60s; }; anti-flood { nick-flood 4:60; unknown-flood-bantime "12h"; unknown-flood-amount "4096"; }; default-bantime "12h"; spamfilter { ban-time "1h"; ban-reason "Spam/Advertising"; virus-help-channel "#irchelp"; }; check-target-nick-bans "yes"; ping-cookie "yes"; pingpong-warning "yes"; //DA MODIFICARE con caratteri casuali, IMPORTANTE: cloak-keys { "2UXXHAJZBWKe55IQYZTZr6yBsdfsfsfsHG1kIHtd0"; "ZzNN2GGvi9fsdfsjg3rmd3a8LpsfddfsfnRySqkt81L"; "cTXNPC9IgvhTfksMjIIFvCjMshdfghjsfgjshdgfjhsML4u"; }; }; official-channels { "#CANALE1"; "#CANALE2"; };
Nota: il file di configurazione è stato testato e funziona, non risulta nessun errore sia su Windows che su *NIX (CentOS, Ubuntu, Debian ecc.). In caso di errori provare a togliere o aggiungere i commenti in base al sistema operativo utilizzato.
Avvio
Per avviare UnrealIRCd digitare dalla cartella dove è stato installato Unreal:
./unreal start
Rehash
Per rehashare (ricaricare il config, magari modificato durante l’avvio del demone), digitare il comando:
./unreal rehash
Riavvio
Per riavviare il demone IRC, digitare:
./unreal restart
Arresto
Per arrestare UnrealIRCd, digitare:
./unreal stop
7 Commenti
DOS-678
Ma questa configurazione vale anche per il programma?
Dragone2
Questa configurazione è valida per UnrealIRCd, sia versione *NIX che per Windows.
DOS-678
Ok, grazie 🙂
DOS-678
Mi dà errore: EOF. Come risolvo?
Dragone2
Hai provato a copiare e incollare tutto il config di nuovo? Riprova, magari è un errore di copiatura.
Silver
[error] unrealircd.conf:903: unknown directive set::official-channels
Dragone2
Questa guida è valida per UnrealIRCd 3.2.X e nel file di configurazione non risultano errori. È possibile che durante la sua modifica hai dimenticato di inserire un ;. In ogni caso, da quel che noto, non stai usando il file di configurazione di esempio che ho creato io, poiché nel mio, l’ultima riga è la 408 e la direttiva per i canali ufficiali è alla riga 405. Assicurati di star utilizzando l’ultima versione di UnrealIRCd, attualmente è la 3.2.10.5 (che in sostanza è la 3.2.10.4 con un bugfix per sasl).