4.3 ircd.conf

La configurazione del file ircd.conf a prima vista può sembrare un pochino complessa, ma appena presa la mano assicuro che è molto semplice e grazie al notro example-it.conf riusciremo a configurare al meglio il nostro demone irc in tutte le sue parti. Qua di seguito spiegheremo dettagliatamente i vari blocchi a fondo pagina trovere un file ircd-it.conf già editato e pronto a l'uso comunque prima di procedere con il download vi pregherei di leggere attentamente la spiegazione qui riportata.

Iniziamo ad analizzare i primi blocchi dell'ircd.conf proprio dalle informazioni del server.

Nota: è possibile scaricare direttamente questo file da qui. example-it.conf

/*
* serverinfo {}: Contiene le informazioni riguardanti al server IRC. (Vecchio M:)
*/
serverinfo {
/*
* name: Il nome del tuo server. Questo non può essere cambiato in Runtime.
*/
name = "irc.ircd-hybrid.it";

/*
* sid: ID univoco del server. Questo è composto da tre caratteri e
* deve essere in questa forma [0-9][A-Z0-9][A-Z0-9]. Il primo carattere
* deve essere un numero e dopo almeno due lettere esempio "1AB"
* NOTA: Le lettere devono essere maiuscole.
*/
sid = "1AB";

/*
* descrizione: La descrizione del tuo Server IRC ricordati che deve
* essere compatibile con le altre descrizioni dei server IRC della rete
* dove sei connesso.
*/
description = "IPv6 Server - www.ircd-hybrid.it";

/*
* Informazioni sul Network: la descrizione del network a cui il tuo server
* è connesso per una migliore usabilità consiglio di utilizzare un parametro
* uguale per tutti i server.
*/
network_name = "HybridNET-it";
network_desc = "Italian Support Hybrid Network";

/*
* hub: questa flag rende o meno il tuo server irc come hub quindi consente
* connessioni multiple da parte di altri server se il parametro immesso invece è
* "no" il server sarà denominato come "leaf" e quindi accetterà solamente una connessione
* verso un server denominato "hub"
*/
hub = no;

/*
* vhost: questo parametro consente di bindare il proprio demone irc su un indirizzo
* specifico della vostra shell ad esempio se voi avete una subnet /126 specificate
* l'indirizzo IP dove bindare il demone, potrete anche usare il carattere jolly "*"
* il quale metterà in ascolto il vostro ircd-hybrid su tutti gli IPv4 della vostra
* shell.
*/
vhost = "irc4.ircd-hybrid.it";

/*
* vhost6: questo parametro consente di bindare il proprio demone irc su un indirizzo
* specifico della vostra shell ad esempio se voi avete una subnet /126 specificate
* l'indirizzo IP dove bindare il demone, potrete anche usare il carattere jolly "*"
* il quale metterà in ascolto il vostro ircd-hybrid su tutti gli IPv6 della vostra
* shell.
*/
vhost6 = "irc6.ircd-hybrid.it";

/*
* max_clients: numero massimo di connessioni da parte dei clien accettate
*/
max_clients = 512;

/*
* rsa key: il path che contiene il file della chiave rsa per il cryptlink
*
* Esempio dper creare una chiave RSA privata a 2048 bit
* rsa.key, e una chiave pubblica in rsa.pub:
*
* openssl genrsa -out rsa.key 2048
* openssl rsa -in rsa.key -pubout -out rsa.pub
* chown <ircd-user>.<ircd.group> rsa.key rsa.pub
* chmod 0600 rsa.key
* chmod 0644 rsa.pub
*/
rsa_private_key_file = "/usr/local/ircd/etc/rsa.key";

/*
* Certificato ssl: per creare il file certificato per le connessioni
* SSL sul vostro Server IRC
*
* openssl req -new -days 365 -x509 -key rsa.key -out cert.pem
*
* vedi anche http://www.openssl.org/docs/HOWTO/certificates.txt
*
* Per creare il tuo certificato riempi i campi come segue:
*
* Organization Name: Italian Support Hybrid Network
* Organization Unit Name: www.ircd-hybrid.it
* Common Name: irc.ircd-hybrid.it
* E-mail: Afaa@ircd-hybrid.it
*/
ssl_certificate_file = "/usr/local/ircd/etc/cert.pem";
};

/*
* admin {}: Contiene le informazioni dedicate dell'amministratore del server (Vecchia A:)
*/
admin {
name = "Federico <Afaa> Giovannini";
description = "Amministratore del Server";
email = "<Afaa@ircd-hybrid.it>";
};

/*
* log {}: Contiene le informazioni riguardo i file di log.
*/
log {
/* Vuoi abilitare il sistema di loggatura di hybrid su ircd.log? */
use_logging = yes;

/*
* logfiles: Questi paramentri loggano le azioni principali degli utenti
* e degli amministratori dei server IRC ad esempio su i comandi:
* /oper /kill /kline /gline
*/
fname_userlog = "logs/userlog";
fname_operlog = "logs/operlog";
fname_killlog = "logs/kill";
fname_klinelog = "logs/kline";
fname_glinelog = "logs/gline";

/*
* log_level: serve per vedere dettagliatmanete il tuo file di log
* ad esempio se vuoi vedere i log piu critici o alcuni comandi.
* puoi utilizzare questo comando cosi:/quote SET LOG. altri parametri:
* L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
*/
log_level = L_INFO;
};

/*
* class {}: contiene le informazioni riguardati le classi di un ircd (Vecchia Y:)
*/
class {
/* name: Il nome della classe ( deve essere immesso solo del testo) */
name = "users";

/*
* ping_time: questo parametro serve al server per controllare se un utente
* è attivo oppure non è più presente alla rete il classico messaggio (pingtimeout)
*/
ping_time = 90 seconds;

/*
* number_per_ip: Quanti utenti possono connettersi al server con un unico IP
* (opzionale).
*/
number_per_ip = 2;

/*
* max_local: quanti utenti locali possono connetteri al server utilizzando
* una maschera uguale ident@host (opzionale)
*/
max_local = 2;

/*
* max_global: quanti utenti globali possono connettersi al network utilizzando
* una maschera uguale ident@host (opzionale)
*/
max_global = 10;

/*
* max_number: il numero massimo di connessioni accettare dal server per questa classe (opzionale)
*/
max_number = 100;

/*
* Questo parametro definisce le connessioni alle subnet
* quando si connettono puoi settare questo parametro direttamente
* dal server con il comando. /NN subnet
*/
cidr_bitlen_ipv4 = 24;
cidr_bitlen_ipv6 = 120;
number_per_cidr = 16;

/*
* sendq: il traffico inviato a l'utente prima di sconnetterlo dal server
* con il messaggio ti ping time out
*/
sendq = 100 kbytes;
};

class {

/*
* Cambia solamente il nome della classe da USER ad OPERS
*/
name = "opers";
ping_time = 90 seconds;
number_per_ip = 10;
max_number = 100;
sendq = 100kbytes;
};

class {

/*
* Cambia solamente il nome della classe da USER ad SERVER
*/
name = "server";
ping_time = 90 seconds;

/*
* ping_warning: deve essere breve in quanto un opers può
* accorgersi in tempo reale di uno split di un server.
*/
ping_warning = 15 seconds;

/*
* connectfreq: questa opzione può essere utilizzata solamente
* nella classe "server" in quanto permette una auto connessione
* ogni un determinato tempo di default useremo 5 minuti.
*/
connectfreq = 5 minutes;

/*
* max number: qui definiamo il numero massimo di autoconnessioni
* da parte di un server se un server è in modalità "leaf" lasciare
* 1 mentre se è il modalità "hub" o "leaf-hub" consiglio di mettere l'autoconnect
* su più server.
*/
max_number = 1;

/*
* sendq: inviamo al server connesso al nostro dei pacchetti per vedere
* se il server è ancora attivo e non fosse down la quantità di pacchetti
* è personalizzata ma consiglierei di non scendere al di sotto di 1 MByte
*/
sendq = 2 megabytes;
};

/*
* listen {}: contiene le informazioni relative alle porte in ascolto di
* Server IRC (Vecchia P:)
*/
listen {
/*
* port: specifica una porta da mettere in ascolto su un ipv4/6
* se dovete mettere in ascolto porte consecutive potete usare il
* il separatore ".." in questo modo "port = 6660 .. 6669;"
*/

/* port: porte in ascolto su tutti gli IP della shell dalla 6660 alla 6669 */

host = "2001:6b8:0:400::2ce";
port = 6660 .. 6669;
flags = hidden, ssl;
host = "2001:6b8:0:400::2ce";
port = 9999;
};

/*
* auth {}: questo comando permette a gli utenti di connettersi al nostro server ircd (Vecchia I:)
*/

auth {
/*
* user: questa opzione permette ad i seguenti host con relative subnet
* di connettersi al nostro ircd.
*/
user = "*@192.168.1/12";
user = "*Afaa@2002:*";

/* password: è opzionale ma è richiesta se si intende utilizzare questo blocco */
password = "password-vhost";

/*
* encrypted: questo paramentro permette di utilizzare password criptate o in chiaro
* per la criptatura della password dobbiamo utilizzare mkpasswdnel seguente modo:
* ./mkpasswd -p [vostra-password]
*/
encrypted = no;

/*
*spoof: falso vhost permesso ad gli utenti che si identificano in questo box
* per visualizzare la lista digitare(/stats I)
*/
spoof = "spoofing.ircd-hybrid.it";

/* class: Classe degli operatori. */
class = "opers";

/*
* need_password: non permette la connessione ad altri utenti che non
si abbiamo eseguito correttamente il loggin durante
la connessione al nostro Server IRC, o diversamente
specificati in altri blocchi.
* need_ident: Richiedi un identità al momento della connessione
è possibile visualizzare le identità (prefisso "+"/stats I)
* spoof_notice: abilità la possbilità di notifica all'admin durante lo
spoofing.
* exceed_limit: Accetta gli utenti che non rientrano nelle classi e possono essere
visualizzati (prefisso su ">" /stats I)
* kline_exempt: questo utente è esente da k/glines (prefisso su "^" /stats I)
* gline_exempt: questo utente è esente da g/lines (prefisso su "_" /stats I)
* resv_exempt: questo utente è esente da resvs (prefisso su "$" /stats I)
* no_tilde: rimuove ~ fagli utenti senza identità (prefisso su "-" /stats I)
* can_flood: accetta questo utente che ha un eccesso di flood (prefisso su "|" /stats I)
* can_idle: questo utente è esente darestrizione idle (prefisso su "<" /stats I)
*/
flags = need_password, spoof_notice, exceed_limit, kline_exempt,
gline_exempt, resv_exempt, no_tilde, can_flood, can_idle;
};

auth {
/*
* redirect: questo parametro permette agli utenti non italiano di connettersi
* al loro server di provenienza ad esempio nel nostro caso gli utenti Americani
* dovranno connettersi ad us.ircd-hybrid.it
*/
redirserv = "us.ircd-hybrid.it";
redirport = 6667;
user = "*.us";

/* e la classe di apparteneza di questa utenza */
class = "users";
};

/*
* con questo blocco accettiamo tutti gli utenti purchè abbiamo un ident attivo.
*/

auth {
user = "*@*";
class = "users";
};

/*
* operator {}: definisce i paramentri degli operatori di IRC. (Vecchia O:)
*
* ircd-hybrid non supporta gli Operatori IRC locali ma si possono manipolare
* con la riduzione di flag dell'Operatore Globale.
*/
operator {
/* name: nominativo dell'Operatore di IRC */
name = "Afaa";

/*
* user: hostname con il quale deve connettersi per utilizzare la flag
* questo blocco supporta anche i Multi-hostname, ed è possibile utilizzare
* anche in questo caso il valore jolly "*" perpermette ad un operatore
* di connettersi da qualsiasi hostname.
*/
user = "*Afaa@192.168.1.*";
#user = "*Afaa@3ffe:*";
#user = "*@*";

/*
* password: La password degli operatori come abbiamo settato prima
* nelle classi deve essere o criptata con MD5 oppure non criptata
*./mkpasswd -p afaa
*/

password = "L52GdlQCzaXrI";

/*
* encrypted: se questo paramentro è settato su no ricordarsi di mettere la
* password in chiaro e non cripata.
*/

encrypted = yes;

/*
* rsa_public_key_file: la chiave pubblica che ad un operatore serve
* per usare Challenge, per maggiori informazioni consultare:
* doc/challenge.txt
*/
# rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";

/* class: la classe di un operatore che ha eseguito correttamente il
* login con il comando "/oper"
*/
class = "opers";

/*
* umodes: default usermodes di un operatore /oper. se vuoi definire
* la flag override oper_umodes settta in general {}.
* Questi sono i comandi disponibili:
*
* +b - bots - Visualizza flood di notizie di bot e drone
* +c - cconn - Notizie di connessioni e sconnessioni client.
* +D - deaf - Non ricevere messaggi dal canale
* +d - debug - Visualizza notizie di debug
* +f - full - Visualizza notizie complete su I: line
* +G - softcallerid - Lato Server Side ignora gli utenti che non sono nei canali
* +g - callerid - Lato Server Ignora (messaggi, notizie, ecc)
* +i - invisible - Non permette la visualizzazione dei
* NAMES o WHO dell'utente.
* +k - skill - Visualizza messaggi di kill generati dal server
* +l - locops - Visualizza messaggi /LOCOPS
* +n - nchange - Visualizza gli utenti che cambiano nickname
* +r - rej - Visualizza le note di rifiuto dei client
* +s - servnotice - Visualizza le notizie del server
* +u - unauth - Visualizza le note non autorizzate
* +w - wallop - Visualizza i WALLOPS del server
* +x - external - Visualizza le connessioni e gli split tra server
* +y - spy - Visualizza notizie di LINKS, STATS, TRACE ecc.
* +z - operwall - Visualizza WALLOPS inviati dai tecnici.
*/

/*
* Per rendere un operatore globale locale rimuovere i seguenti modi.
*/
#umodes = locops, servnotice, operwall, wallop;

/*
* privileges: controlla se i seguenti comandi sono sttivi sul server
* per gli altri operatori.
*
* Comandi disponibili:
*
* global_kill: Permette di killare un utente su un server remoto (OLD 'O' flag)
* remote: Permette da remoto di scollegare e ricollegare il server (OLD 'R' flag)
* remoteban: Permette da remoto di usare KLINE/UNKLINE
* kline: Accetta KILL, KLINE e DLINE (OLD 'K' flag)
* unkline: Accetta UNKLINE e UNDLINE (OLD 'U' flag)
* gline: Accetta GLINE (OLD 'G' flag)
* xline: Accetta XLINE (OLD 'X' flag)
* operwall: Accetta OPERWALL
* nick_changes: Permette ad un operatore di vedere il cambionick (OLD 'N' flag)
* rehash: Permette ad un operatore di eseguire un rehash (OLD 'H' flag)
* die: Permette ad un operatore di terminare o riavviare l'ircd (OLD 'D' flag)
* admin: Prendere i privilegi di admin. admins
* hidden_admin: sei 'admin', ma non vuoi far vedere che sei un admin.
* hidden_oper: non visualizzarti nella lista /stats p
*/

/* Tu puoi usare
* die = yes;
* rehash = yes;
*
* o messe direttamente nelle flag.
* flags = die, rehash;
*
* Puoi anche non permettere il comando remoto. ~ i.e.
* flags = ~remote;
*
*/
flags = global_kill, remote, kline, unkline, xline,
die, rehash, nick_changes, admin, operwall;
};

/*
* connect {}: controls servers we connect to (OLD C:, N:, H:, L:)
*/
connect {
/* name: Nome del server a cui connettersi */
name = "irc6.ircd-hybrid.it";

/*
* host: puoi settare l'indirizzo IP oppure anche l'hostmask
* purche sul server sia presente un servizio DNS funzionante.
*/
host = "192.168.1.251";

/*
* vhost: l'ip da bindare per permettere la connessione con un altro
* server IRC
*/
vhost = "192.168.1.250";

/*
* passwords: la password da inviare (Vecchia C:) e da accettare (Vecchia N:).
* sull'altro server le password devono essere naturlamente scambiate.
*/
send_password = "LinKversoServer";
accept_password = "LinKdaServer";

/*
* encrypted: controllo della password per il criptaggio.
*/
encrypted = no;

/* port: porta per eseguire il link */
port = 6666;

/*
* hub_mask: la maschera del server "Hub" questa flag permette maschere multiple
*/
hub_mask = "*";

/*
* leaf_mask: la maschera per i server leaf ne può essere inserita solamente una.
*/
# leaf_mask = "*.uk";

/* fakename: una falsa maschera che pretende il server per connettersi.*/
# fakename = "*.arpa";

/* class: the class this server is in */
class = "server";

/*
* autoconn: questo controllo e dipendente dalla classe "server"
* di default e disabilitato.
* compressed: questo controllo permette di inviare pacchetti compressi
* sempre sulla classe "server" di default e disabilitato.
* lazylink: controllo di lazylink non e permesso su un server hub
* per maggiori informazioni controllare in /doc.
* cryptlink: abilita l'opzione di critografia forzata sul server.
* burst_away: questra stringa invia il messaggio /away su tutti i server
* di cui questa opzione è attivata.
* topicburst: invia il topic dei canali durante la modalità topicburst
*/
# flags = autoconn, lazylink, compressed, cryptlink, burst_away, topicburst;
};

/*
* cluster {}: servers that share klines/unkline/xline/unxline/resv/unresv/locops
* automatically (OLD hyb6 SLAVE_SERVERS)
*/
cluster {
name = "*.arpa";
/*
* Tipo: lista di file condivisi fra server
* kline - condividi klines
* tkline - condividi klines temporanee
* unkline - condividi unklines
* xline - condividi xlines
* txline - condividi xlines temporanee
* unxline - condividi unxlines
* resv - condividi resvs
* tresv - condividi resvs temporanee
* unresv - condividi unresvs
* locops - condividi locops
* all - condividi tutto (default)
*/
type = all;
};

shared {
/*
* name:specifica il server su cui condividere
*/
name = "irc2.some.server";

/*
* user: setta l'operatore di IRC che posso aggiungere
* le flag globali
*/
user = "Afaa@admin.ircd-hybrid.it";

/*
* Tipo: lista di file condivisi fra server
* kline - condividi klines
* tkline - condividi klines temporanee
* unkline - condividi unklines
* xline - condividi xlines
* txline - condividi xlines temporanee
* unxline - condividi unxlines
* resv - condividi resvs
* tresv - condividi resvs temporanee
* unresv - condividi unresvs
* locops - condividi locops
* all - condividi tutto (default)
*/

type = kline, unkline, resv;
};

/*
* Banner per il Server IRC impostate dal Root Administrator direttamente
* sul file ircd.conf
*/

/*
* kill {}: kill del server (Vecchie K:)
*/
kill {
user = "*muhstik@*";
reason = "mirkforce";
};
kill {
user = "*mirkforce@*";
reason = "mirkforce";
};
kill {
user = "*root@*";
reason = "Non è sicuro venire su IRC come root";
};

/*
* deny {}: Ip che non possono connettersi.
*/
deny {
ip = "192.168.1/24";
reason = "Riconnetti il bot con il VHOST";
};

/*
* exempt {}: esenti dal comando deny. (Vecchio d:)
*/
exempt {
ip = "192.168.0.0/16";
};

/*
* resv {}: nickname e canali riservati /join #IRChelp (OLD Q:)
*/
resv {
reason = "In questo network non sono presenti i servizzi";
nick = "nickserv";
nick = "chanserv";
nick = "botserv";
nick = "memoserv";
channel = "#services";

reason = "In questo Netwok sono vietati i cloni";
nick = "clone*";
nick = "muhstik*";
nick = "mirkforce*";
};

/*
* gecos {}: The X: mettere Ban sul realname
*/
gecos {
name = "*nazi*";
reason = "No nazi";
};

gecos {
name = "sub7server";
reason = "Trojan drone";
};

gecos {
name = "*http*";
reason = "Spambot";
};

gecos {
name = "^\[J[0o]hn Do[3e]\]-[0-9]{2,5}$";
type = regex;
};

/*
* channel {}: Questo blocco del canale contiene le informazioni e limitazioni
* di un canale.
*/
channel {
disable_fake_channels = yes;
restrict_channels = no;
disable_local_channels = no;
use_invex = yes;
use_except = yes;
use_knock = yes;
knock_delay = 1 minutes;
knock_delay_channel = 1 minute;
burst_topicwho = yes;
max_chans_per_user = 25;
quiet_on_ban = yes;
max_bans = 25;
join_flood_count = 16;
join_flood_time = 8 seconds;
default_split_user_count = 0;
default_split_server_count = 0;
no_create_on_split = yes;
no_join_on_split = no;
};

/*
* serverhide {}: questo blocco permette di settare i valori di visualizzazione
* del proprio Server IRC.
*/

serverhide {
flatten_links = no;
links_delay = 5 minutes;
hidden = no;
disable_hidden = no;
hide_servers = no;
hidden_name = "*.hidden.com";
hide_server_ips = no;
};

/*
* general {}: opzioni generali di configurazione del nostro demone
* ircd-hybrid.
*/

general {
gline_min_cidr = 16;
gline_min_cidr6 = 48;
invisible_on_connect = yes;
burst_away = no;
use_whois_actually = yes;
kill_chase_time_limit = 90;
hide_spoof_ips = yes;
ignore_bogus_ts = no;
disable_auth = no;
disable_remote_commands = no;
tkline_expire_notices = no;
default_floodcount = 10;
failed_oper_notice = yes;
dots_in_ident = 2;
dot_in_ip6_addr = no;
min_nonwildcard = 4;
min_nonwildcard_simple = 3;
max_accept = 20;
anti_nick_flood = yes;
max_nick_time = 20 seconds;
max_nick_changes = 5;
anti_spam_exit_message_time = 5 minutes;
ts_warn_delta = 30 seconds;
ts_max_delta = 5 minutes;
kline_with_reason = yes;
kline_reason = "Connection closed";
reject_hold_time = 0;
warn_no_nline = yes;
stats_e_disabled = no;
stats_o_oper_only = yes;
stats_P_oper_only = yes;
stats_i_oper_only = yes;
stats_k_oper_only = yes;
caller_id_wait = 1 minute;
opers_bypass_callerid = no;
pace_wait_simple = 1 second;
pace_wait = 10 seconds;
short_motd = no;
ping_cookie = no;
no_oper_flood = yes;
true_no_oper_flood = yes;
oper_pass_resv = yes;
idletime = 0;
max_targets = 4;
client_flood = 2560 bytes;
message_locale = "standard";
oper_only_umodes = bots, cconn, debug, full, skill, nchange,
rej, spy, external, operwall, locops, unauth;
oper_umodes = bots, locops, servnotice, operwall, wallop;
#servlink_path = "/usr/local/ircd/bin/servlink";
#default_cipher_preference = "BF/168";
#use_egd = yes;
#egdpool_path = "/var/run/egd-pool";
#compression_level = 6;
throttle_time = 10;
};

/*
* glines {}: configurazione della glines sul server
*/

glines {
enable = yes;
duration = 1 day;
logging = reject, block;
user = "root@*hack*";
name = "hades.arpa";
action = reject, block;
user = "root@*";
name = "*";
action = block;
};

modules {
/*
* module path: caricare automaticamente dei moduli per il nostro ircd-hybrid
* se caricate un modulo manualmente ricordatevi di rehashare l'ircd.
*/
path = "/usr/local/ircd/modules";
path = "/usr/local/ircd/modules/autoload";
#module = "some_module.so";
};



Indietro Partenza Avanti
SSL   Directory contrib

Questo, ed altri documenti, possono essere scaricati da http://doc.ircd-hybrid.it.

Per domande su ircd-hyrbid, leggi la documentazione prima di contattare <doc@ircd-hybrid.it>.
Per domande su questa documentazione, invia una e-mail a <doc@ircd-hybrid.it>.