Guida Eggdrop
GUIDA DETTAGLIATA ALLA COMPILAZIONE
COME OTTENERE LA FONTE DI UN EGGDROP
Ci sono molte versioni differenti di Eggdrop disponibili
per il download da vari siti FTP.
DOWNLOAD
In primo luogo Eggdrop è distribuito sui server
FTP in formato tarball (con l'estensione del file .tar.gz), con
il nome della versione nel nome del file. La sorgente dell'Eggdrop 1.3.18,
per esempio, dovrebbe essere chiamata eggdrop1.3.18.tar.gz.
INSTALLAZIONE
Installare l'Eggdrop è un'operazione relativamente semplice
purchè la propria shell sia dotata degli strumenti richiesti per la compilazione.
Si riporta di seguito una guida passo passo sul
procedimento di installazione. Le istruzioni riportate si riferiscono
al bot 1.3.
1) Si carichi la fonte dell'Eggdrop sulla shell usando
uno degli indirizzi per il download sopra
specificati. Sia che si scarichi sul proprio sistema il file eggdrop1.4.4.tar.gz
attraverso FTP (raccomandato), sia che lo si scarichi direttamente
sulla shell usando l'FTP della shell non c'è bisogno di colocare
il file .tar.gz nella sua directory (verrà fatto automaticamente
nel successivo passo).
|
HANDLE |
PASS |
NOTES |
FLAGS |
LAST |
|
ProprioNick |
yes |
0 |
fjmnoptx |
19:57 (partyline ) |
|
#donkeys |
|
|
fjmno |
18:44 fmno 14 Apr |
|
#horses |
|
|
fjmno |
14 Apr |
|
HOSTS: *!mynick@*.nice.net, *!mynick@207.324.333.* |
Le informazioni qui sopra mostrano l'handle dell'utente (l'handle è semplicemente il nickname dell'utente sul bot, quello con cui il bot lo ha conosciuto e da cui lo riconosce), se ha o no la password impostata, quanti messaggi ha, tutti i suoi canali e flags, quando e dove è stati visti dal bot l'ultima volta e le proprie hostmasks. Di seguito si apprenderà come modificare l'userfile.
Per vedere tutti gli utenti nell'userfile
del bot, si scriva .match * 9999.
Si avrà modo di vedere qualcosa di simile
a quanto mostrato sopra per ogni utente. Aggiungere/rimuovere utenti
Ci sono tre modi in cui un utente può venire aggiunto al bot.
Se learn-users è abilitato nel file di configurazione, ognuno può
mandare il messaggio col comando hello al bot e il bot lo aggiungerà con
la flag di default (come impostata nel file di configurazione alla voce
default-flags).
Comunque si può aggiungere un utente usando anche il comando .adduser
o .+user nella console.
Se l'utente che si vuol aggiungere è in uno dei canali del bot, allora
il comando .adduser è il più conveniente.
Ci si assicuri che che il canale dell'utente sia il canale corrente sulla
console (si veda di nuovo Uso della console),
poi si scriva .adduser <nick>
Il comando .+user può essere usato quando una persona che vuol
aggiungere non è in IRC.
Si scriva .+user
E' possibile anche impostare la password
al posto suo con il comando .chpass (spiegato di seguito). Per
rimuovere un utente dal bot, scrivere semplicemente .-user
Per impostare la password di un utente o
cambiarla, si scriva .chpass
Si può non impostareaffatto la password, scrivendo .chpass
Le flag determinano quali privilegi
ha un utente, se può diventare o no op su un canale, quali comandi del
bot può usare, ecc.
Tutte le flag sono lettere minuscole dell'alfabeto. Si puòvisualizzare
la lista di tutte le flags scrivendo .help whois, ma per ora basti
conoscere la flags più importanti:
v - voice
o - op
m - master
n - owner
f - friend
p - accesso alla partyline
Molte delle flag utente sono divise in due categorie - global e channel
- mentre alcune flag sono solo global. Le flags v, o, m, n, e f sono esempi
di flag che possono essere global o channel-specific, invece la flag p
è solo global.
Le channel flag si applicano ad un canale specifico: se si dà a
qualcuno la flag +o su #donkeys, l'utente potrà ottenere l'op solo su
#donkeys, ma se dsi dà all'utente la flag global +o, potrà essere
oppato su qualsiasi canale si trovi il bot. Le global flags sono anche
molto potenti, in quanto danno accesso all'utente ai più potenti comandi
del bot che l'equivalante channel flag.
Le flag sono aggiunte o rimosse ad un utente grazie al comando .chattr.
Per aggiungere una flag global o , si scriverà .chattr<nick>
+o
Per aggiungere un channel-specific o devi scrivere .chattr
Rimuovere una flag è semplice: per rimuovere un global o il comando è
.chattr
E' possibile inoltre aggiungere/rimuovere più flag con un solo comando,
x es .chattr
Si consiglia cautela nel dare una flag global n (=owner), questa
darà accesso all'utente a tutti i comandi del bot e, se si è configurato
il bot in un certo modo, può dare accesso alla propria shell attraverso
il comando .tcl.
Il comando .+host
Per rimuovere una hostmask di un utente usa .-host
La ban list è una parte dell'userfile specificamente
riservata per immagazzinare i ban.
I ban sono aggiunti ad una ban list interna al bot (chiamata anche enforced
o permanent ban list) usando il comando .+ban seguito da <nick>
o <host> e 0 se il ban è permanente.
Possono anche venir aggiunti automaticamente dal bot (ad esempio in risposta
ad un flood) o da uno script Tcl.
I ban interni possono anche essere global (sono applicati su tutti i canali
su cui è il bot) o channel-specific.
Un ban può essere permanente o estinguersi automaticamente dopo un certo
periodo impostato, e può essere 'sticky' (il bot si assicurerà che il
ban sia sempre attivo sul canale).
Nota che se si sta usando +dynamicbans nei settaggi di un canale, un ban
settato nella lista interna dei ban del bot, verrà rimosso dopo i minuti
di ban-time (come settato nel file di configurazione), ma rimarrà nella
lista interna dei ban e verrà riattivato tutte le volte che qualcuno corrispondente
al ban entra sul canale.
Se si sta utilizzando +dynamicbans e si vuole che il ban sia sempre attivo
sul canale, si deve rendere il ban sticky.
VISUALIZZAZIONE DELLA LISTA DEI BAN
Per vedere tutti i global ban correnti e i channel ban
(per il canale corrente della console) attivi,
si scriva .bans. Per vedere sia i ban attivi che quelli inattivi
si scriva .bans all.
La lista mostra anche i ban che sono attivi su un canale, ma non nella
lista dei ban interna del bot (questo genere di ban sono preceduti da
un asterisco).
I ban global sono aggiunti con .+ban
I ban aggiunti usando questi comandi saranno permanenti (rimarranno nella
lista dei ban interna del bot finchè qualcuno non li rimuoverà manualmente).
Per rimuovere un ban esistono due modi: utilizzare la banmask o il numero
di riferimento.
La lista che esce con .bans all mostrerà infatti un numero di riferimento
prima di ogni ban per cui, se si volesse rimuovere il ban numero 4, si
scriverà dovrai scrivere .- ban 4.
Si tenga a mente che i numeri di riferimento dei ban cambiano in base
al canale settato sulla console (per es se si scrive .console #horses
e poi .bans all, poi .console #donkey, poi .bans all, i numeri di riferimento
dei bans potrebbero essere diversi nelle due liste mostrate).
Per rimuovere un ban con la banmask, si scriva semplicemente .-ban
Puoi fare un ban sticky usando il comando
.stick con il numero di riferimento o la banmask. Un ban sticky
verrà riattivato dal bot se qualcuno lo rimuove dal canale. Si ricordi
di usare l'aiuto interno dell'Eggdrop (.help) per imparare di più sui
comandi.
Una volta che hai preso confidenza con le funzioni e i comandi di base
dell'Eggdrop guarda come potenziare il tuo Eggdrop.
Il modo in cui l'Eggdrop agisce e risponde
a ciò che accade sul canale dipende dalle impostazioni del canale.Eggdrop
ha molte impostazioni di canale già settati, si possono settare differenti
impostazioni per ogni canale, permettendo estrema flessibilità.
Una volta creato il file di configurazione dell'Eggdrop e aggiunte le
entrate per ogni canale in cui il bot risiederà, dci si dovrebbe imbattere
per la prima volta nelle impostazioni dei canali.
Nella guida all'impostazione si
ricordi ricordare di aver visto il seguente:
channel add #horses {
options
}
channel set #horses +option -option
Ci sono 2 battute di settaggio dei canali. La prima battuta,quella tra
le parentesi graffe come un settaggio idle-kick e flood protection (x
es flood-join, ecc.).
La seconda battuta è un' attivazione/disattivazione di un comando channel.
Queste opzioni riguardano comandi come autoop, dynamicbans, revenge, ecc.
Tali impostazioni sono precedute da un segno + o - per specificare rispettivamente
se si vuole o no che l'impostazione sia attiva o inattiva. Per ogni ulteriore
informazione su ciascuna impostazione channel e la sua funzione si faccia
riferimento al file eggdrop.conf.dist
del bot.
Se si vuol aggiungere un canale al tuo bot o cambiare un'
impostazione di un canale, non è necessario modificare il file
di configurazione. L'Eggdrop ha dei comandi DCC preimpostati che permettono
di aggiungere/rimuovere un canale e di cambiarne le impostazioni attraverso
la console.
Per aggiungere un canale si scriva semplicemente .+chan <#channel>
Per rimuoverlo .-chan <#channel>
Le impostazioni di un canale vengono modificate usando il comando .chanset
il quale funziona differentemente a secondache si stia impostando comandi
come autoop, dynamicbans, ecc, o cambiando una opzione di canale come
idle-kick.
Sotto ci sono alcuni esempi di utilizzo del comando .chanset:
.chanset <#channel> +enforcebans
attiva l'opzione enforceban
.chanset <#channel> -dynamicbans +autoop
disattiva l'enforceban e attiva l'autoop
.chanset <#channel> chanmode +sntk green
cambia le impostazione del canale in "+sntk green"
.chanset <#channel> idle-kick 60
imposterà il settaggio idle-kick a 60
Dal momento che il bot non può modificare da solo il file
di configurazione, i canali aggiunti col comando .+chan e i settaggi
di canale modificati con .chanset hanno bisogno di essere immagazzinati
in un file speciale chiamato chanfile.
Si dovrebbe ricordare di aver determinato il chanfile nel file di configurazione
del file (per es set chanfile "mybot.chan").
Il chanfile assicura che ogni cambiamento che impostato usando comandi
in DCC verranno ricordati anche se il bot viene disattivato e riavviato.
Un inconveniente nell'avere il chanfile è dato dal fatto che, quando
il bot parte, per prima cosa legge dal file di configurazione, poi dall
chanfile.Ogni impostazione di canale settata nel file di configurazione
verrà sovrascritta da quelli del chanfile-se si fanno cambiamenti nel
file di configurazione, questi non avranno effetto.
Per cambiare le impostazioni di un canale si dovranno usare i settaggi
in DCC. Per questo può accadere spesso nelle impostazioni di un canale
che esse non corrispondano a quelle specificate nel file di configurazione.
Per tale motivo alcuni scelgono di non aggiungere canali nel file di configurazione,
usando invece esclusivamente i comandi in DCC per aggiungere canali e
modificare le loro impostazioni.
Si può decidere di non avere chanfile scrivendo "" nel file di
configurazione del bot (set chanfile ""). Questo permetterà di fare tutti
i cambiamenti delle impostazioni di un canale sul file di configurazione,
ma ogni cambiamento fatto usando comandi DCC non verrà ricordato dal bot.
Una delle caratteristiche più interessanti
dell'Eggdrop è l'interconnessione dei bot, che permette di creare una'botnet'.
Una botnet può consistere in due bot connessi tra loro quanto in centinaia
di bot interconnessi.
Se si sta usando un Eggdrop per la gestione di un canale, la caratteristica
più importante dei bot interconnessi è la condivisione dell'userfile.
Con la condivisione dell'userfile i bot possono tenere la propria user
list, ban list e ignore list sincronizzata l'uno con l'altro.
Una botnet ha altre capacità, come permettere ai bot di opparne un altro
in sicurezza e far entrare tutti i bot in un canale con un solo comando.
Interconnettere i bot può essere difficile la prima volta, ma è abbastanza
semplice se si sa come fare.
La prima cosa da fare è scegliere un bot hub.
L'hub è il bot principale al quale gli altri bot nella botnet (che diventeranno
bot leaf) si connetteranno.
Se si stanno usando solo due bot, è meglio usarne uno come hub e l'altro
come leaf.
Il bot hub dovrebbe essere il bot più affidabile della botnet, che giri
su una shell veloce, affidabile, sicura.
Una volta scelto l'hub, è il momento di impostare il link.
Una tipica botnet con pochi bots avrà la struttura mostrata sotto.
BigBoy |
|
|
|--Camelback |
|
`--Mallard |
Qua sopra è mostrata una botnet di tre
bots interconnessi.
BigBoy è il bot hub, mentre Camelblack e Mallard sono bot leaf.
Per impostare una botnet come questa bisogna aggiungere ogni bot allo
userfile degli altri, poi impostare delle flag sicure per ciascuno di
questi bot.
Nel procedimento seguente ci si riferirà ai nickname dei bot sopra
- sostituire i nomi dei propri bot nel seguire il procedimento.
1) Per prima cosa nel file di configurazione,
assicurarsi che ogni canale in cui sincronizzare le informazioni del bot
(x es flags degli utenti, bans, etc.) sia impostato +shared nel file di
configurazione di ciascun bot e che le modalità share e transfer siano
caricati (loadmodule transfer e loadmodule share).
2) Su BigBoy (il bot hub), si deve aggiungere i bot leaf nello
userfile.Per aggiungere Camelblack e Mallard si scriva .+bot Camelback
e .+bot Mallard
3) Impostare ogni consueta flag utente per i bot.Generalmente ai bot
vengono date le flags f global (friend) e o (op). Per farlo scrivere .chattr
Camelback +fo e .chattr Mallard +fo
4) Dare ai bot la flag s. Digitare: .botattr Camelback +s
e .botattr Mallard +s
Questo fa condividere forzatamente il proprio userfile ai bot leaf. Se
non si deisdera che i bot condividano gli utenti, saltare questo passaggio.
5) Dare ai bot la flag s per i canali in cui si vuole che
sincronizzino le loro informazioni, x es se i tre bot sono su #railroad
e #train, scrivere .botattr Camelback |+s #railroad e .botattr
Camelback |+s #trains, poi fare lo stesso con Mallard.
In alternativa si può usare la flag g scrivendo .botattr
Camelback +g, invece di impostare la flag s per ogni canale. La flag
g fa semplicemente condividere le informazioni su ogni canale. Nota che
se non sivuole condividere gli utenti i può saltare questo passaggio.
6) Ripetere i punti dal 2 al 5 per gli altri bots.
7) Ora è giunto il momento di impostare i bot leaf.
Iniziamo con Camelblack, perciò lasciamo BigBoy e passiamo alla console
di Camelblack.
Per prima cosa è necessario conoscere l'indirizzo telnet del
proprio bot hub (BigBoy), che consiste nell'host e nella porta del
bot (la porta sarà quella settata nell'impostazione listen
nel file di configurazione di Bigboy).
Se l'hostname di BigBoy è bigboy@steam.trains.com e la porta 11941
il suo indirizzo telnet è steam.trains.com:11941.
Ora si può aggiungere BigBoy scrivendo .+bot BigBoy steam.trains.com:11941
8) Impostare le consuete flag per BigBoy come già fatto
per i bot leaf, x es .chattr BigBoy +f
9) Dare a BigBoy la flag s per ciascun canale in cui si
vuole che sincronizzi le informazioni, x es se i tre bot sono su #railroad
e #trains, scrivere .botattr BigBoy |+s #railroad e .botattr
BigBoy |+s #trains
In alternativa si può utilizzare la flag g scrivendo .botattr
BigBoy +g, invece che impostare la flag s su ciascun canale. La flag
g fa semplicemente condividere le informazioni su ogni canale.Se
non si desiderai che il bot condivida gli utenti saltare questo passaggio.
10) Assegnare a BogBoy le flag bot h e p scrivendo .botattr
BigBoy +hp.
La flag p permette al bot di condividere passivamente il proprio
userfile con il bot hub (x es il bot scarica lo userfile da BigBoy), mentre
la flag h permette al bot di provare automaticamente a connettersi
all'hub.
Se non si vuole che il bot condivida gli utenti saltare questo passaggio.
11) Entro qualche minuto Camelbalck dovrebbe tentare di collegarsi
a BigBoy e (se ovviamente si è impostata la flag di condivisione
s) scaricare lo userfile.
12) Ripetere i punti dal 7 al 10 per ogni bot leaf.
I punti qua sopra collegheranno i tuoi bot leaf al tuo bot hub e (se hai settato la flag di condivisione) la condivisione dell'userfile sarà attivata.
Gli script Tcl (pronuncia 'tickle')
rappresentano la via più semplice per le funzioni extra da attribuire
al proprio Eggdrop.
Ci sono centinaia di scripts Tcl che aggiungono ogni sorta di capacità
come funzioni avanzate di saluti all'ingresso del canale, aumentano la
protezione del canale, comandi pubblici addizionali, quiz e altri giochi…la
lista continua.
Gli script Tcl sono spesso compressi con gzip e hanno l'estensione
del file .gz. Possono essere scompattati sotto Windows usando WinZip
o sulla shell usando il comando 'gunzip', x es gunzip scritptname.tcl.gz
(scriptname=il nome dello script da scompattare).
Molti script richiedono la configurazione prima di essere usati, perciò
è una buona idea aprire lo script e leggere la documentazione e le impostazioni
prima di aggiungere lo script al bot.
Alcuni script sono in formato Unix e non vengono visualizzati correttamente
con alcuni editor di testo di Windows (come Notepad) ma vengono visualizzati
bene con altri (tipo WordPad).
Per aggiungere uno script Tcl, copiare il file Tcl nella directory
/script del proprio Eggdrop.
Bisogna inoltre aggiungere una linea per caricare lo script alla fine
del file di configurazione del bot. Verso la fine del file di configurazione
vi sono righe come queste:
source scripts/alltools.tcl
source scripts/action.fix.tcl
Se lo script da aggiungere si chiama fun.tcl si inserirà una riga
come la seguente:
source scripts/fun.tcl
Una volta sistemato lo script nella directory /script e aggiunto un riferimento
a questo alla fine del file di configurazione, scrivere .rehash
sulla console di comando.
Questo caricherà lo script e lo attiverà per l'uso (nota: alcuni
script necessitano di spegnere e riavviare il bot).
si consulti a sezione script
Tcl per i migliori script e la sezione
Links che contiene molti altri siti con grossi archivi
di script Tcl.
Se si ha un po' di esperienza di script Tcl e si vuole scrivere personalmente
delle Tcl per il proprio Eggdrop, si legga di seguito la Guida
per principianti di TCL e ci si assicuri di assicurati di guardare
tcl-commands.doc nella directory /doc che contiene tutte le informazioni
su tutti i comandi preimpostati Tcl dell' Eggdrop.
Le patches modificano direttamente
il codice del proprio Eggdrop.
Sono usate principalmente per correggere bugs e in alcuni casi per aggiungere
nuove proprietà o cambiare il modo in cui una determinata proprietà lavora.
Anche gli upgrades a nuove versioni di Eggdrop sono offerti sotto forma
di patch.
Le patches sono più complicate da installare che uno script Tcl, e sono
usate molto meno frequentemente.
Si possono trovare patches per Eggdrop nel grande archivio di script Tcl
nella sezione Links.
Di solito i file patch sono distribuiti con l'estensione .patch.
E' possibile installare il file patch solo nella fonte originale dell'Eggdrop
(non su quella di installazione dell' Eggdrop che è stata copiata usando
make install).
Per applicare la patch bisogna copiarla nella directory da cui si è
estratta la fonte dell'Eggdrop (x es /eggdrop1.3.27 directory).
Poi bisogna lanciare il programma patch - se la patch da applicare è chiamata
eggdrop1.3.27+thefix.patch, scrivere questo in telnet:
patch -p1 < eggdrop1.3.27+thefix.patch
Ciò farà compiere ogni modifica necessaria al codice sorgente dell'Eggdrop.
Una volta patchato il bot dovrà essere ricompilato usando make
e installarlo usando make install.
Molte funzioni dell'Eggdrop possono essere
mostrate in una lingua diversa dall'inglese.
Questo è possibile grazie al file language.
Le informazioni seguenti si applicano alla serie 1.4 di Eggdrop che ha
un miglior supporto dei linguaggi delle precedenti versioni.
L'Eggdrop 1.3 e precedenti non hanno il comando addlang, +lang
e -lang di cui si parla di seguito.
I file per lelingue sono posti nella directory /language del bot.
Ci sono tre tipi di file language:
· Il file core language, core.french.lang, contiene il testo di
molte funzioni centrali dell'Eggdrop.
· Il file filesys language, filesys.french.lang, contiene il testo
di file system module.
· Il file wire language, wire.french.lang, contiene il testo di
wire module.
Per cambiare il testo mostrato dal bot nella propria lingua, c'èbisogno
del file core language.
Per il file system e il wire module per mostrare le propria lingua, c'è
bisogno di un filesys aggiuntivo e del file wire language.
I file language Inglese, Tedesco e Francese sono inclusi in Eggdrop.
Si possono trovare language files per altre lingue nella sezione
Eggdrop files.
Sspesso i file language variano tra versioni di bot, perciò è una buona
norma prendere il language file della versione del bot che si sta usando.
I language file più vecchi generalmente funzioneranno nelle versioni più
nuove di bot, ma il testo per alcune funzioni può andare perso.
Una volta ottenuto il file language, posizionarlo nella directory /language.
Se si intende usare per sempre una lingua particolare si può usare
il comando addlang
Per esempio, per caricare il file french.lang so può aggiungere
addlang "french" in cima alla sezione del file di configurazione del bot
(si veda eggdrop.conf.dist
per un esempio).
Si possono anche aggiungere/rimuovere lingue dalla console usando i comandi
.+lang e .-lang, ma le lingue aggiunte con questi comandi saranno
attive finchè il bot non viene spento.
Per ulteriori informazioni sul file language in uso sul tuo bot, usare
il comando .lstat
Il bot Eggdrop ha alcuni potenziali punti
deboli che possono essere utilizzati se non si difende il proprio bot
accuratamente.
Di seguito ci sono alcuni suggerimenti per rendere il proprio Eggdrop
più sicuro.
Disabilitare l'opzione learn-user
Permettere agli utenti di aggiungersi da soli al bot può essere conveniente,
ma finche è permesso a ciascuno di aggiungersi da solo non c'è molta sicurezza
(specialmente se gli utenti ottengono accesso alla party line quando si
presentano al bot). L'ultima cosa si vuole, è trovare qualcuno che abbia
floddato di messaggi il proprio bot e abbia aggiunto 1000 nuovi utenti.
Bisognerebbe considerare l'opportunità di disabilitare l'opzione learn-user
e aggiungere manualmente gli utenti al bot usando i comandi .adduser
e .+user
Se davvero si vuol permettere agli utenti di presentarsi da soli al bot
bisognerebbe cambiare il comando con qualcosa di diverso da 'hello'.
Scegliere gli owners accuratamente
Stare molto attenti a dare lo stato global owner (+n) sul bot.
Si dovrebbe considerare di non dare a nessun utente lo stato +n, altrimenti
assicurarsi di darlo a gente che conosciuta su IRC da molto tempo e di
cui ci si possa fidare.
Lo status di owner permette ad un utente di fare praticamente qualunque
cosa col bot- l'ultima cosa di cui si ha bisogno è che un utente +n traditore
usi il bot per scopi illeciti facendo cacciare il legittimo proprietario
fuori dalla shell.
Sicurezza delle password
Non usare una password facilmente individuabile - fare una combinazione
casuale di lettere maiuscole e minuscole e numeri, o due parole combinate
con un numero - qualcosa che non sia una parola reale.
Stare attenti anche quando si mandaun messaggio al bot contenente la password
(x es msg botnick op
Cambiare o disabilitare i comandi ident
e addhost
E' una buona idea cambiare i comandi 'ident' e 'addhost' per far riconoscere
al bot una nuova hostmask.Cambiare questi comandi con qualcosa di diverso
(come spiegato nella guida al Setup).
Per una miglior sicurezza disabilitare questi comandi senza cambiarli,
sebbene questo richieda master e owner per aggiungere manualmente un nuovo
hosts per gli utenti.
Usare hostmask precise
Se il proprio hostname è, per esempio cool@modem36.ppp.yourisp.net, Eggdrop
trasformerà la hostmask in *!cool@*.yourisp.net. Se si è
un owner o un master del bot, è importante limitare ulteriormente l'accesso
facendo hostmasks ancora più specifiche- x es *!cool@*.ppp.yourisp.net
o probabilmente *!cool@modem*.ppp.yourisp.net.
Abilitare protect-telnet
Per default chiunque può fare un telnet albot e tentare di individuare
la password di un utente durante il prompt di registrazione. Usando protect-telnet
sarà permesso di restringere l'accesso a utenti particolari. Per dare
accesso telnet ad un utente quando protect-telnet è abilitato, bisogna
aggiungere una speciale hostmask telnet alla registrazione dell'utente
nel formato telnet!*@their.hostname.com. Esempio- se la hostmask dell'utente
è *!cool@*.dudes.net, si deve aggiungere telnet!*@*.dudes.net
alla lista delle sue hostmask.
Questo permette al dominio *.dudes.net di fare un telnet al bot e provare
a registrarsi come utente. Nota che per default Eggdrop da all'owner la
hostmask telnet!*@* hostmask. Assicurarsi di rimuovere questa hostmask
e fanne una più precisa (x es telnet!*@*.ppp.yourisp.net).
Disabilitare i comandi tcl, set e binds
Usando i comandi DCC .tcl e . set, hiunque con lo stato di global owner
sul bot può accedere alla shell attraverso il bot. Ovviamente questa è
una brutta cosa, perciò è consigliabile che questi comandi siano
slegati nel file di configurazione. Il comando .binds in alcuni casi può
essere usato per fare danno, dovrebbe essere disabilitato se utilizzato.
Disabilitare il comando chanset
Un difetto dell'Eggdrop nelle versioni precedenti alla 1.3.25 permetteva
agli utenti di utlizzare il comando .chanset per far compiere al
bot qualunque funzione.
Bisognerebbe disabilitare il comando chanset o aggiornare la versione
1.3.25 o precedenti e assicurarsi che must-be-owner sia abilitato.
Abilitare must be owner
Questa caratteristica è presente nel 1.3.24 e successive.Permette solo
ai permanent owner (come impostato nei settaggi 'owner' del file
di configurazione) di usare i comandi .tcl e .set (se abilitati). Nella
1.3.25 e seguenti è anche aumentata la sicurezza del comando chanset,
e nella 1.3.26 si può settare must-be-owner a 2 per permettere
solamente ai permanent owner di usare il comando .dump.
Usare private-user
Se si ha una botnet con i bot che condividono i file utente, bisognerebbe
considerare la possibilità di usare l'opzione private-user. Ciò
può aumentare significativamente la sicurezza del bot, ma tutti i cambiamenti
dell'utente (aggiungere un utente, ident/host, cambiamenti di password
e flags) devono essere fatti dal bot hub. Considera che solo la versione
1.3.27 e successive hanno un private-user regolarmente funzionante- questo
non è a disposizione nelle versioni precedenti- perciò se si vuol trarre
vantaggio dal private-user il bot hub deve essere l'1.3.27 o successivo.
Tenere d'occhio le cose
Quando si èonline, bisognerebbe tener aperta una sessione di chat
in DCC con il bot e sedersi alla console.
Assicurarsi i che siano abilitati i modi console m, b, s, c, o, e x (scrivere
.console +mcobxs), così è possibile vedere qualsiasi cosa
succede sul bot. Si potrebbe voler togliere le flag di console j e k se
queste creano disordine, oppure anche che il bot invii per mail il log
del giorno precedente, che permetta di vedere tutta l'attività che si
è svolta sul bot.
Per far ciò bisogna che aggiungere una linea al crontab (se non si sa
come fare leggere quella sezione della guida alle
impostazioni per un esempio).
Se si vuole che il bot invii il log del giorno precedente alle 5:30am,
inserire la riga
30 5 * * * mail your@email.address.com < /home/username/botdir/botlog.log.yesterday
Sostituire l'indirizzo e-mail e il percorso per il log del bot con i propri.
Usare una buona protezione flood
Molta gente crede che gli Eggdrop siano a prova di proiettile, ma la realtà
è che, di default, sono abbastanza vulnerabili ai basilari tipi di flood.
Punti deboli come flood CTCP, flood a valanga, e utenti con username finti
sono stati corretti nelle versioni 1.3 più nuove- ma bisogna usare i settaggi
giusti.
La versione 1.3.21 e successive hanno la funzione kick-bogus che
dovrebbe essere impostata su 0 per prevenire kick flood da username fittizi,
mentre le versioni 1.3.24 e successive hanno la flag kick-fun che
dovrebbe essere impostata a 0 per eliminare la vulnerabilità al flood
a valanga.
Le versioni 1.3.26 e successive hanno l'opzione ctcp-mode che si
dovrebbe impostare a 2, usando un settaggio appropriato global-flood-ctcp
come quello di default 5:30.
Per maggior protezione contro i flood, dovresti considerare l'opportunità
di usare uno script antiflood come sentinel.tcl,
combinato come un limitatore di utenti nel canale tipo chanlimit.tcl.
Attacchi DoS
Gli attacchi Denial of Service sono diretti alla shell su cui è il bot.
Come ogni attacco è un flood di qualunque genere che causi alla shell
un forte rallantamento ed eventualmente il bot potrebbe essere disconnesso
da IRC.
Sfortunatamente c'è poco da fare per proteggere il bot da un serio attacco
DoS, dipende dall'abilità della shell di resistere ad ogni attacco.
Scegliere una shell con un'ampia banda di connessione e un buon firewall
può aiutare ad evitare che gli attacchi meno seri abbiano qualche effetto
significativo sul bot, ma ci sono poche shell che sono totalmente invulnerabili.
Gli attacchi DoS, come il più noto attacco 'smurf', sono il motivo principale
per cui molti canali IRC hanno un gran numero di bot su shell diverse
per aiutare a proteggere il canale dal takeover che è il risultato di
un attacco di questo tipo.
Sicurezza della shell
Dal momento che il numero di nuovi buchi nella sicurezza è apparentemente
infinito e gli exploit appaiono nei componenti di vario gusto di Linux
e FreeBSD e i servizi che sono usciti su di loro, la shell box Unix di
uno fornitore commerciale di shell è sempre sotto alto rischio di essere
'hackata'.
Dal momento che la natura 'pubblica' di un account di una shel commerciale-virtualmente
chiunque con poche migliaia di lire o col numero di carta di credito di
qualcun altro può ottenere un account, e ci può essere poca cura da parte
degli utenti che danno la propria password di accont a hacker malevoli-può
accadere che poche uova marce su un sistema tentino di compromettere la
sicurezza della shell e guadagnare il controllo di tutti gli account.
In alcuni casi la shell può anche venir messa in pericolo dall'esterno
da un utente senza account.
Se ciò accade l'utente può ottenere anche il controllo dell'Eggdrop (ed
eventualmente di tutti i bot della botnet, dipende da comesono stati settati)
e controllare tutti i canali su cui risiede l'Eggdrop. Sfortunatamente,
una volta che la shell è 'hackata' c'è poco che puoi fare per salvare
il proprio bot e i propri canali.
Le shell private sono meno vulnerabili dagli hackers, ma a meno che si
abbiano amici con lapropria shell box non si ha altra soluzione che usare
un fornitore di shell commerciale.
Perciò quando si scegle un fornitore di shell ci si assicuri di sceglierne
uno con una buona reputazione in fatto di sicurezza e metodi di controllo.
Un errore comune è quello di pensare che se il bot che viene hackato è
un bot leaf, si possa stare tranquilli finchè il bot hub sovrascrive lo
userfile del bot leaf.
In realtà l'utente può ancora controllare il bot leaf e, se si sta usando
l'opzione tipica di condivisione, l'utente può ottenere il controllo di
tutti i bot condivisi sulla botnet.
Inoltre, se i comandi .tcl, .set, or .chanset sono stati abilitati su
questi bot, l'utente può accedere a tutte le shell attraverso i bot e
fare grossi guai.
Usare private-user può essere utile ad impedire che una botnet venga danneggiata
in questo modo.
Translated with permission from egghelp.org (http://www.egghelp.org ) - Tradotto con il permesso di egghelp.org (http://www.egghelp.org )
- Home - IRC - Storia - Regole - Meetings - Download e Links - Giochi - Mail - Guida Eggdrop-