1. I server - Come funziona IRC
IRC è un acronimo e sta per Internet Relay Chat. IRC
è un insieme di server in rete, ai quali i cosiddetti
"client" possono collegarsi e quindi interagire con
gli altri client connessi allo stesso server o ad
altri. Qualunque "persona" vediate su IRC è un client
connesso a un server.
In generale, i server funzionano 24 ore al giorno,
7 giorni la settimana, aspettando che i client si
connettano. I client viceversa, vengono attivati solo
quando un utente ha intenzione di usare IRC, anche
se ci sono eccezioni a questa regola, tra cui i bot.
Quando scrivete /server irc-2.mit.edu in ircII, state
aprendo una connessione con la macchina irc-2.mit.edu.
(In genere, anche se non sempre, il client si connette
sulla porta 6667. Quando scrivete /server irc-2.mit.edu,
ircII userà quella porta. Se volete invece connettervi
sulla porta 6665, potete scrivere:/server irc-2.mit.edu
6665.
irc-2.mit.edu, da parte sua, sta facendo girare un
programma server che è connesso a un grande numero
di macchine su cui girano altri programmi server (chiamati
semplicemente server). Esso trasmette ciò che voi
scrivete agli altri server, e trasmette a voi ciò
che gli altri utenti scrivono.
Ogni server ha una lista di tutto ciò che succede
in ogni canale in cui sono presenti "suoi" utenti,
e quando un utente su qualunque server cambia qualcosa
in quella lista, il server di quell'utente notifica
il cambiamento a tutti gli altri server.
Torna all'indice
1.2. Come i server sono collegati e perchè si
scollegano (split)
I vari server sono collegati tramite Internet, e si
scambiano molte informazioni tra loro.
Quando il traffico della rete diventa pesante (non
solo il traffico di IRC, ma tutto il traffico della
rete) i collegamenti si sovraccaricano e si spezzano.
Questo si chiama "netsplit". Quando qualcuno "splitta",
si vede qualcosa come:
*** Signoff: Thoth (eff.org dewey.cc.utexas.edu)
Questo indica che la connessione tra eff.org e dewey.cc.utexas.edu
si è interrotta, e che voi siete dalla stessa parte
dello split del server eff.org, mentre Thoth era dalla
parte di dewey.cc.utexas.edu. Questo NON significa
necessariamente che Thoth era sul server dewey o voi
su eff.org; solo che che Thoth era da quella parte
dello split e voi da questa.
Quando il collegamento tra il vostro server e un altro
si interrompe, qualunque cosa fatta sul vostro server
non sarà trasmessa all'altro e viceversa -- almeno
finchè questi non si ricollegano (rejoin).
Torna all'indice
1.3. Cose che possono succedere quando un server
splitta
Quando un server splitta, non sa più cosa succede
agli altri, nè gli altri server sanno che cos'è successo
su di esso mentre erano splittati.
In questo modo, il server splittato potrebbe avere
nuovi operatori mentre era splittato, o nuovi ban
o nuovi utenti.
Quando il server si ricollega (rejoin), aggiorna tutti
su ciò che è accaduto, questo è il motivo per cui
vedrete qualcosa come:
*** Mode change "+o Thoth" on channel
#bdsm by dewey.cc.utexas.edu
che significa che il server dewey.cc.utexas.edu sta
"sincronizzando" le proprie informazioni con quelle
di tutti gli altri, e sta annunciando a tutti che
ha un nuovo op.
Qualche volta l'aggiornamento non funziona, e i server
continuano ad avere la propria visione della realtà.
Immaginatevi una situazione del genere:
*** Mode change "+o Thoth" on channel
#bdsm by dewey.cc.utexas.edu
*** Mode change "-o Thoth" on channel #bdsm by SilverOz
Un server, in questo caso dewey, ha oppato Thoth.
In seguito SilverOz l'ha immediatamente deoppato.
SilverOz lo ha probabilmente deoppato prima che il
suo server avesse la possibilità di dire al server
di Thoth che SilverOz era op. Se anche Thoth avesse
provato a deoppare SilverOz, dal punto di vista di
Thoth, l'incidente sarebbe apparso molto differente:
*** Mode change "+o SilverOz" on channel
#bdsm by eff.org
*** Mode change "-o SilverOz" on channel #bdsm by
Thoth
I server che stanno dalla parte di eff.org vedono
SilverOz oppata e Thoth deoppato; dalla parte di dewey
si vede l'esatto contrario. Il server dewey d'ora
in poi ignorerà qualunque cosa SilverOz faccia che
richieda lo status di op, e così farà anche eff.org
nei confronti di Thoth. Il messaggio che riceverete
sarà qualcosa come:
(Thoth scrive:)
/mode * +b *!*zjohnsto*@*scu.edu.au
/kick * silveroz Go away
(Thoth vede:)
*** Mode change "+b *!*zjohnsto*@*scu.edu.au"
on channel #bdsm by Thoth
*** Not channel operator (from eff.org)
*** SilverOz has been kicked off channel #bdsm by
Thoth (Go away)
*** Not channel operator (from eff.org)
SilverOz non vedrà nè il ban nè il kick, dal momento
che il suo server non accetta l'op di Thoth come legittimo.
In questo modo può accadere che gli utenti connessi
ad un server vedano ban e op che utenti connessi ad
un altro server non vedono, anche se queste persone
possono comunque vedersi e parlarsi. Quando questo
accade, il server di dice "desynch" (desincronizzato).
Nota: SilverOz SARà ANCORA IN GRADO DI VEDERE
QUALUNQUE COSA THOTH DICA SUL CANALE, ANCHE SE THOTH
PENSA DI AVERLA KICKATA. Dal momento che lui l'ha
effettivamente kickata, quando SilverOz cercherà di
scrivere qualcosa sul canale, riceverà il messaggio:
*** Can't send to channel (from dewey.cc.utexas.edu)
Dato che il server di Thoth crede che SilverOz non
sia sul canale, non trasmetterà ciò che lei dice a
Thoth. Ma, visto che invece il server di SilverOz
crede che lei sia sul canale, esso le trasmetterà
qualunque cosa Thoth scriva.
Nota: SilverOz può lasciare il canale e rientrare.
Dal punto di vista di Thoth, lei entrerà nel canale
anche se bannata, in quanto il suo server informerà
tutti gli altri che lei è entrata. Il server di Thoth
semplicemente accetterà questo fatto senza controllare
la lista dei ban.
Maggiori dettagli sulle conseguenze degli split si
trovano alla
sezione 3.
Come gli hacker si impadroniscono dei canali (e cosa
fare in questo caso)
Torna all'indice
2.Una guida al comando Mode
Torna all'indice
2.1. Cosa sono i mode?
I mode sono i parametri di un canale. Essi definiscono
cosa può e cosa non può essere fatto. Sia gli utenti
che i canali possono avere dei mode, ma gli effetti
di un particolare mode (es. +i) sono differenti. Questo
documento si occupa solo dei mode dei canali, per
maggiori informazioni consultate i file elencati alla
fine di questo documento.
Torna all'indice
2.2 I mode principali
Ci sono 7 mode. Decidere quali mode assegnare al vostro
canale dipende da cosa volete fare.
Potete impostare i mode singolarmente o a gruppi:
/mode * +nt
equivale a:
/mode * +n
/mode * +t
Nota: potete anche usare il nome del canale,
es.
/mode #channel +nt
ma scrivere * è più veloce (Ndt - credo che il '*'
in Pirch e mIRC sia sostituito da '#'). Comunque alcuni
client richiedono il nome completo.
Torna all'indice
2.2.1. +n
+n significa "no notices" (niente notice). Questo
impedisce agli utenti di mandare dei notice o dei
messaggi al canale da fuori. Il vostro canale dovrebbe
*sempre* essere +n, per prevenire il flood.
Torna all'indice
2.2.2. +t
+t sta per "topic". Se questo è impostato, solo gli
operatori possono cambiare il topic. Non è necessario
usare questo mode, ma la mia esperienza mi ha insegnato
che se non lo fate sarete floodati con cambi di topic.
Non so perchè, sembra solo che sia così.
Torna all'indice
2.2.3. +i
+i significa "invite only" (solo a inviti). Chiunque
voglia entrare nel canale deve essere "invitato" da
un operatore. Utile se non volete essere disturbati
o come parte di un'azione difensiva verso chi sta
cercando di impadronirsi del canale, ma altrimenti
solo fastidioso.
Torna all'indice
2.2.4. +p
+p sta per "private" (privato). Se il vostro canale
è +p, quando qualcuno fa un /whois su chiunque stia
su quel canale, non verrà rivelato su quale canale
l'interessato sta. In ogni caso risulterà evidente
che costui sta su *qualche* canale. Il risultato del
/whois sarà qualcosa come (ammesso che non siate voi
stessi su quel canale):
*** Thoth is ~thoth@disco.intercon.com
(Far and Away)
*** on channels: *private*
*** on IRC via server dewey.cc.utexas.edu (UT's
"I Repeat Class" server)
Torna all'indice
2.2.5. +s
+s vuol dire "secret" (segreto). Se il vostro canale
è segreto, allora non riceverà alcuna risposta chi
proverà a fare un /names #canale. (Ovviamente se chi
dà questo comando *sta* sul canale in questione, allora
vedrà tutte le persone presenti). Un /whois su qualcuno
che sta su un canale segreto sarà (ammesso che non
siate su quel canale voi stessi):
*** Thoth is ~thoth@disco.intercon.com
(Far and Away)
*** on IRC via server dewey.cc.utexas.edu (UT's
"I Repeat Class" server)
Nota: Un canale non può essere contemporaneamente
+p e +s
Torna all'indice
2.2.6. +k
Un canale con il mode +k richiede una parola d'ordine
(keyword) per entrare. Su EFnet (la più grande rete
IRC) questa keyword può contenere caratteri "non-stampabili"
(cioè che non sono caratteri numeri o comunque quelli
che stanno sulla tastiera). Su UnderNet, sono ammessi
solo i caratteri stampabili.
Per impostare la keyword sul canale #silveroz a mykey:
/mode #silveroz +k mykey
oppure
/mode * +k mykey
Inoltre dovete conoscere la chiave anche per poterla
togliere... se la sapete,
/mode * -k mykey
Il caso in cui la chiave non sia nota è discusso più
avanti.
Torna all'indice
2.2.7. +m
Se il vostro canale è +m, allora possono parlare sul
canale solo gli operatori o coloro ai quali un operatore
abbia dato il mode +v. Questo è un'utile protezione
in caso di attacco di bot fatti per floodare il canale.
Torna all'indice
2.2.8. +o <nickname>
Il mode +o è impostato o meno per particolari utenti.
Dare a un utente il mode +o, concede a questi lo stato
di operatore del canale. Rendere un utente -o significa
togliergli i privilegi di operatore.
Torna all'indice
2.2.9. +v <nickname>
Il +v dà semplicemente la possibilità di parlare in
un canale +m anche a chi non è operatore. (Tutti gli
operatori hanno automaticamente il permesso di parlare.)
Torna all'indice
2.2.10 +l <number>
Questo stabilisce un limite al numero di utenti che
possono entrare nel canale. Questo mode in realtà
non garantisce che sul canale non entrerà un numero
di utenti maggiore di quello definito. Per esempio,
impostare questo mode non butta fuori nessuno anche
se il limite è superato. Inoltre gli utenti che rientrano
da uno split ignorano totalmente il +l (esattamente
come ignorano tutte le altre limitazioni del canale).
Torna all'indice
2.2.11. +b <pattern>
Questo modo "banna" qualunque utente corrisponda a
<pattern> impedendogli così di entrare. Questo
punto è discusso meglio nella sezione 2.6.
Torna all'indice
2.3. Eliminare i mode del canale
I mode sono generalmente impostati e rimossi con il
comando mode in questa maniera:
/mode * -n
/mode * -nt
Potete anche combinare i comandi mode. Supponiamo
che il canale sia al momento +i +n +t (solitamente
scritto +int)
Potete rimuovere il +i con
/mode * -i
ma supponendo che voi lo vogliate -i ma +s?
/mode * -i+s
Potete rimuovere tutti i mode (inclusa una chiave
che non conoscete...) con il comando:
/eval mode * -$M
Nota: eval e $M sono entrambi comandi specifici
del client ircII. Se non state usando ircII, questo
comando probabilmente non funzionerà.
Torna all'indice
2.4. Oppare e deoppare
Per oppare qualcuno usate ancora il comando mode:
/mode * +o SilverOz
per deopparlo:
/mode * -o SilverOz
potete oppare e deoppare fino a 3 persone per volta:
/mode * +ooo SilverOz Tangent Agatha
/mode * -ooo SilverOz Tangent Agatha
notare che il numero di 'ò deve corrispondere al numero
di persone.
Torna all'indice
2.5. Kickare
Per kickare qualcuno fuori dal canale, si usa il comando
/kick
/kick * SilverOz
Potete anche aggiungere un commento che la persona
vedrà quando sarà espulsa:
/kick * SilverOz Good bye and good
riddance!
Si può kickare solo una persona per volta.
Torna all'indice
2.6. Bannare
Questo è uno di quei comandi per cui è utile avere
un alias (abbreviazione) -- vedere la sezione sugli
script per sapere come scrivere un alias. Notare anche
che è spesso consigliabile bannare un utente *prima*
di kickarlo -- in questo modo costui non può rientrare
nel breve intervallo tra il ban e il kick. Ulteriori
dettagli si trovano alla
sezione
2.6.1.5.
Quando si fa un ban, il nick l'utente e le informazioni
sul suo indirizzo sono scritte così:
nick!user@host1.host2.suffix
es. SilverOz!zjohnsto@angus.scu.edu.au oppure: felix!f-t-cat@whack.cartoon.org
Cioè qualunque cosa stia a sinistra del '!' è il nick,
ciò che sta tra il '!' e la '@' è l'utente (username)
e la parte alla destra della '@' è l'indirizzo (host).
Potete usare dei caratteri speciali (wildcards) nei
ban; questi servono come sostituti per un carattere
o un gruppo di caratteri:
? sta per "qualunque singolo carattere"
* sta per "qualunque gruppo di caratteri"
In questo modo "S?lverOz" corrisponderà a "SilverOz",
"SolverOz" e "SklverOz", ma non a "SiilverOz".
"*Oz" corrisponderà a "SilverOz", "AgOz" e "SilverOOz",
ma non a "Silver" o "SilverOzz".
Allo stesso modo "*.hacker.com" corrisponderà a "bozo.hacker.com"
e "luser.hacker.com", ma non a "hacker.com".
Notare che alcuni utenti (utenti di client windows
principalmente, ndt) possono cambiare il nome utente
con la stessa facilità con cui cambiano il proprio
nick. Questo significa che dovrete bannare il loro
host o anche il loro dominio, per tenerli fuori dal
canale
(ricordo che gli indirizzi sono così fatti: nick!user@host.dominio.suffisso
oppure nick!user@host.sottodominio.dominio.suffisso,
ndt).
Torna all'indice
2.6.1. Tipi di ban e quando usarli
Ci sono alcuni tipi di ban, ognuno dei quali è utile
per particolari situazioni, anche se ce ne sono un
paio (soprattutto i cosiddetti "screwban", quelli
pieni di singoli '?') che sembrano proprio essere
completamente inutili.
Torna all'indice
2.6.1.1. Ban sul nick
Il formato corretto per un nick ban è:
/mode * +b nick!*@*
Questo banna chiunque usi il nick "nick". Per esempio
/mode * +b SilverOz!*@* bannerà chiunque usi il nick
SilverOz. Naturalmente in questo caso è possibile
cambiare nick ed entrare nel canale nonostante il
ban.
Questo ban è praticamente inutile contro le persone,
ma può essere usato per liberarsi dei bot, che in
genere non cambiano il proprio nick. (Alcuni lo cambiano
comunque. Inoltre, su EFnet, potete vedere i ban impostati
su qualunque canale, indipendentemente dal fatto che
siate o meno su quel canale, scrivendo /mode #canale
b.) Può anche essere usato per tenere fuori un utente
inattivo da tempo (idle) che ha una funzione di auto-rejoin
(rientra automaticamente nel canale dopo un kick).
In questo caso bannatelo e sbannatelo poi dopo 5 minuti.
Torna all'indice
2.6.1.2. Ban del tipo user@host
Il formato corretto per un ban del tipo user@host
è il seguente:
/mode * *!*user*@*host.suffix
Questo è il tipo di ban standard. Esso banna tutti
i nick (*! significa "qualunque nick") che abbiano
il dato nome utente (*user* indica il nome utente;
il '*' all'inizio serve nel caso sia presente il carattere
'~' che potete vedere in alcuni casi, il '*' alla
fine serve per assicurarsi che il nome utente dato
stia nello spazio previsto -- lo spazio massimo è
di 9 caratteri), da qualunque macchina all'interno
del dominio dato.
Es. per bannare SilverOz che è zjohnsto@scu.edu.au
scriverete:
/mode * +b *!*zjohnsto*@*scu.edu.au
per bannare Luser che è lame@mm.elcheepo.edu scriverete:
/mode * +b *!*lame*@*elcheepo.edu
Notare che per l'indirizzo non USA (.au sta per Australia)
lasciate 3 parti del nome del host, per quello USA
solo 2.
La maggior parte degli script scrivono il ban così:
/mode * +b *!*lame*@*.elcheepo.edu
che va bene a meno che troviate qualcuno che abbia
un indirizzo composto da 2 sole parti; ad esempio
se luser ha un altro account, joe@hacker.com e ha
accesso anche a joe@phreak.hacker.com:
/mode *!*joe*@*.hacker.com
bannerà solo il secondo account e non il primo.
Torna all'indice
2.6.1.3. Ban su un sito
Il formato per un 'site ban' efficace è:
/mode * +b *!*@*host.suffix
Questo banna chiunque da una particolare macchina
o da un dominio, chiunque sia e qualunque sia il suo
nick.
Per esempio, se voleste bannare SilverOz e chiunque
altro da SCU, dovreste scrivere:
/mode * +b *!*@*scu.edu.au
A questo punto non importa più chi è la persona, se
sta su una macchina di SCU sarà bannata.
Potete anche bannare gli utenti di una particolare
macchina, così se volete bannare gli utenti di alsvid.scu.edu.au,
ma non quelli di angus.scu.edu.au, dovete scrivere:
/mode * +b *!*@alsvid.scu.edu.au
Torna all'indice
2.6.1.4. Ban sugli indirizzi IP
Alcuni server non restituiscono il nome della macchina
quando fate un whois ma vi danno solo una serie di
numeri che identifica l'indirizzo IP (Internet Protocol).
(Ndt - Questo capita anche perchè ad alcune macchine
non viene effettivamente assegnato un nome, ma vengono
identificate solo col loro indirizzo IP)
Un indirizzo numerico è in realtà l'indirizzo "IP"
di quella persona e alcune volte bannare semplicemente
l'intero indirizzo IP è sufficiente. Esempio:
/mode #bdsm +b *!*zjohnsto*@203.2.20.1
Se la persona bannata ha accesso ad altre macchine
sulla propria rete o può cambiare il proprio indirizzo
IP, la situazione è un pò più complicata. Ci sono
3 tipi di indirizzi che potete ottenere registrando
un network (rete): classe A, classe B e classe C.
Un network di classe C è una piccola rete che contiene
non più di 255 host, ed è il più comune. In un network
di classe C solo l'ultimo numero può cambiare. Se
so che SilverOz sta su una rete di classe C, posso
fare un site ban su di lei così:
/mode #bdsm +b *!*zjohnsto@203.2.20.*
Un dominio di classe B è più grande, fino a 65535
host, e i numeri che possono cambiare sono gli ultimi
2. Per un dominio di classe B dovrete usare:
/mode #bdsm +b *!*zjohnsto@203.2.*
Un dominio di classe A contiene 16777215 host e tutte
le ultime 3 componenti dell'indirizzo possono cambiare.
Ci sono solo 255 network di classe A - tutti di proprietà
di grosse corporazioni. Molti network, specialmente
quelli grandi, sono suddivisi in reti più piccole,
il che vuol dire che anche se l'utente in questione
sta su una grande rete, la sottorete che lui usa può
essere bannata semplicemente mettendo un '*' nell'ultima
parte dell'indirizzo.
I network da 128-191 sono di classe B
I network da 192-223 sono di classe C
Tutto il resto dev'essere considerato classe A.
Potete fare un ban tipo /mode * +b *!*zjohnsto*@203.2.20*
ma questo bannerebbe gli utenti che hanno l'indirizzo
203.2.202.4 per esempio, ma anche quelli provienienti
da un dominio completamente differente. Morale: includete
sempre il punto '.' alla fine quando usate i ban sugli
IP address.
Ora sapete più di quanto avreste mai voluto sapere
sugli indirizzi IP.
Torna all'indice
2.6.1.5. Efficienza
è possibile nonchè consigliabile rendere i vostri
kick e ban più efficienti. Per esempio dovreste sempre
deoppare un utente prima di bannarlo. Perchè? Perchè
se non lo fate, può deopparvi o kickarvi prima che
lo facciate voi.
Questa operazione può essere fatta semplicemente combinando
i mode. Ad esempio, per cacciare Thoth dal canale
dovrete fare così:
/mode * -o+b thoth *!*thoth*@*intercon.com
/kick * thoth Get out you wanker
e sullo schermo si vede:
*** Mode change "-o+b thoth *!*thoth*@*intercon.com"
on channel #bdsm by SilverOz
*** Thoth has been kicked off channel #bdsm by SilverOz
(Get out you wanker)
Questo mode change ha prima deoppato Thoth e poi l'ha
immediatamente bannato.
Torna all'indice
2.6.2. Rimuovere i ban
Per vedere quali ban sono presenti sul canale, scrivete:
/mode * b
Nota: questo funziona indipendentemente dal
fatto che voi siate o meno sul canale, ma ovviamente
se siete fuori dovete specificare il nome del canale,
/mode #canale b.
Per rimuovere i ban, dovete scriverli *esattamente*
come sono - un terminale senza taglia e incolla è
sconsigliato per questo. Se fate un errore, il sistema
non vi avvertirà, vi dirà semplicemente che il ban
è stato tolto, anche se non è mai esistito. Dovete
scrivere il ban esattamente com'era.
Per rimuovere un ban:
/mode * -b <ban pattern>
es. per rimuovere il ban *!*zjohnsto*@*scu.edu.au
/mode * -b *!*zjohnsto*@*scu.edu.au
Torna all'indice
2.6.3 Perchè un ban può non funzionare
Qualche volta bannate un utente e questo rientra lo
stesso sul canale. Può essere che l'abbiate bannato
male. Ma se il ban sembra corretto, ci sono altre
spiegazioni.
Torna all'indice
2.6.3.1 Troppi ban
Un canale può contenere al massimo 20 ban contemporaneamente.
Se provate a mettere un nuovo ban e già ce ne sono
20, non otterrete nessun cambiamento di mode, non
otterrete nessuna risposta.
Torna all'indice
2.6.3.2. Ban simili
Se è già presente un ban simile a quello che state
cercando di mettere, allora il vostro non funzionerà.
Rimuovete il ban inesatto o inutile e riprovate.
Che cosa vuol dire 'similè? Un ban è definito 'troppo
similè se il nick, lo user o l'host del ban coincidono
con quelli di un ban già esistente.
Torna all'indice
2.6.3.3. Server 'desynch'
Questo è un brutto problema. Se un server diventa
desynch, allora un hacker (pirata) può entrare nel
canale su quel server dal momento che il ban che avete
messo non sarà nella memoria di quel server. In questo
modo, l'hacker può uscire e rientrare quando vuole
e, dal vostro punto di vista, potrà farlo nonostante
la presenza di un ban. Vedere la sezione 1.3 per ciò
che succede in caso di split.
Torna all'indice
2.6.2.4. Server splittati
Quando un server splittato si ricollega (rejoin),
tutte le persone che stanno su quel server entrano
sul canale. I ban non contano. Ovviamente potete kickarli
una volta entrati, ma ricordate che questa non è sempre
una buona idea, soprattutto durante un tentativo di
takeover, visto che loro continueranno a vedere ciò
che voi dite, ma voi non potrete vedere ciò che dicono
loro!
Inoltre non c'è modo di capire che una persone è entrata
in seguito ad uno split -- appare esattamente come
un join normale.
Torna all'indice
3. Come gli hacker si impadroniscono dei canali
(e cosa fare in questo caso)
Questo è un piccolo sermone sui takeover e sulle contromosse
da adottare.
I takeover di canali IRC succedono. Perchè? Casinisti
annoiati con molto, troppo tempo libero che cercano
"azione". Persone che ritengono che gli operatori
di un canale li abbiano infastiditi o insultati. Gente
che vuole solo vedere se ne è capace.
Che fare? Sostanzialmente potete scegliere tra tre
opzioni:
- Assecondarli.
- Ignorarli.
- Difendere il canale.
Il problema di assecondare gli hacker è che questo
spesso li porta a credere che impadronirsi del vostro
canale o minacciare di farlo sia un buon metodo per
intimidirvi o manipolarvi. L'esperienza mostra che
assecondare un hacker, spesso risulta in continue
molestie e continui takeover. In generale, se volete
provare la tecnica dell'assecondamento, dovete assicurarvi
che l'hacker non si faccia l'idea che il takeover
sia una cosa che vale la pena di fare. Altrimenti
potete scartare l'assecondamento.
Ignorare gli hacker è un'opzione valida, specialmente
nel caso di piccoli canali. Se non volete il fastidio
di cercare di riprendervi il canale -- il che da qualunque
parte lo guardiate è una discreta rottura -- allora
la cosa migliore che potete fare è semplicemente creare
un altro canale e aspettare che l'hacker se ne vada.
La maggior parte degli hacker non hanno alcun interesse
al topic del canale, nè hanno alcun desiderio a mantenere
un canale, e se ne andranno dopo un giorno o una settimana
o un mese di casino. In altre parole, il senso di
questo comportamento è evitare di buttare benzina
sul fuoco, lasciare morire le cose per disinteresse.
/ignorare completamente un hacker è probabilmente
una buona mossa.
La terza scelta è cercare di difendere il vostro canale.
Quelle che seguono sono suggerimenti difensivi molto
basilari. Se volete veramente combattere, avete bisogno
di una buona abilità con IRC, capacità di programmazione,
ottimi bot e un casino di tempo.
Alcune regole generali:
- Non ci sono regole generali. Ogni regola richiede
un pò di buonsenso. Usatele a vostra discrezione
-- ma siate prudenti. Pensate a ciò che state
facendo.
- Prendetevi del tempo per pensarci bene -- ma
fatelo in fretta :)
- Non oppate nessuno a meno che non siate assolutamente
sicuri che si tratti di chi voi pensate. Non oppate
mai qualcuno basandovi solo sul user@host
- Deoppate sempre chi ottenesse l'op da un server
splittato. Potete sempre riopparlo in seguito.
- Se pensate che il canale sia sottoposto a un
attacco molto pesante, mettete un +i. Assicuratevi
che tutti gli operatori siano +i anch'essi (/mode
<proprio_nick> +i) e fate loro cambiare
nick. Inoltre bannate tutti gli account o gli
host che ritenete pericolosi. Questo impedisce
a chiunque, tranne a chi entra in seguito a un
rejoin, di sapere chi sono gli op sul canale (a
meno che non ci sia una spia). Perchè tutto questa
fatica per impedire alla gente di scoprire i nick
degli operatori? Per prevenire 'nick collisions'
(sezione 3.2).
Naturalmente rendere il canale +i significa che nessuno
può entrare a meno che non sappia i nick degli operatori,
e questo disturba molto la normale vita del canale.
Torna all'indice
3.1. Fingersi un amico
Cosa significa:
uno dei metodi più semplici è prendere il nick di
qualcuno che sapete essere abitualmente operatore
su un canale. In questo modo entrate e fate finta
di essere quella persona. Chiedete l'op dicendo che
siete su un altro account, oppure semplicemente aspettate
che qualcuno vi oppi.
Cosa fare:
Già, sembra incredibile, ma un *sacco* di persone
danno l'op guardando solo il nick. La morale è fare
*sempre* un /whois prima di dare un op.
Molti script oppano in base allo user@host. State
attenti perchè gli username possono essere falsificati.
Torna all'indice
3.2. Nick collision
Cos'è:
se state usando il nick Fred e qualcuno su un server
splittato sceglie questo stesso nick, quando il server
si ricollega, venite entrambi automaticamente killati
(cacciati fuori da IRC), ognuno dal server dell'altro.
Agli hacker questo va bene perchè ciò che vi sta prendendo
il nick è semplicemente un bot. Loro non vengono killati
perchè voi non ve lo aspettavate e non avete un bot
con il loro nick. Ovviamente una volta killati, perdete
l'op su qualunque canale foste e così non siete più
nella posizione di poterlo difendere.
Se l'hacker riesce a 'colliderè con successo tutti
gli operatori di un canale, allora non c'è più nessuno
in giro che lo possa deoppare quando ottiene l'op
dal server splittato. Dal momento che è l'unico op,
vince... più o meno.
Perchè più o meno? Beh questo genere di cose succede
sempre quando la rete è instabile. In questo modo
l'hacker può collidere tutti e poi splittare ancora.
Se voi potete recuperare l'op durante questo periodo
e cambiate il vostro nick, avete la possibilità di
non essere killati ancora. Gli hacker più abili, comunque,
hanno spesso delle 'spiè -- sia client propri o di
altri -- che stanno su un server dalla vostra parte
dello split, le quali svelano chi sono gli operatori.
Come comportarsi:
- Distribuite l'op a tutte le persone di cui vi
fidate. Fate in modo che l'hacker perda tempo
nel creare molti bot.
- Rendetevi +i (invisibili). Non fate in modo
che sia facile per l'hacker scoprire i nick degli
operatori.
- Sempre, sempre deoppate chi ottiene l'op da
un server splittato. L'op può essere ridato; un
hacker che diventa il solo operatore è un problema
molto meno risolvibile.
- Cambiate spesso il vostro nick.
- Kickate tutti gli account sospetti. Mettete
un +i al canale se necessario.
- Mettete un client sul server splittato se possibile,
o almeno su un server che ste dalla stessa parte
dello split. Avere un client sul canale da quella
parte vi terrà informati su ciò che sta accadendo
là. è meglio se usate un account che l'hacker
non saprà essere vostro.
- Create bot per collidere l'hacker. Portate una
tonnellata di bot sul canale e oppateli tutti.
- Ricordate: SE KICKATE L'HACKER CON L'IDEA SBAGLIATA
CHE COSì NON POTRà VEDERE CIò CHE DITE O I NICK
CHE USATE PER VOI O PER I BOT, PENSATECI DUE VOLTE!
Non solo questo non avrà l'effetto voluto, ma
non sarete più in grado di vedere quando l'hacker
splitterà ancora, almeno non facilmente. Il solo
momento in cui il vostro nick conta è quando c'è
lo split, quindi cambiate i nick vostri e dei
bot DOPO che l'hacker è splittato.
- Siate creativi e pensate. Un buon hacker sa
già che voi farete queste cose. Cercate di pensare
come lui. Cosa fareste VOI per impadronirvi di
un canale?
- Tenete duro. Se resistete abbastanza a lungo,
probabilmente riotterrete il canale. Nel frattempo
cartoline, lettere, e-mail e telefonate al provider
dell'hacker, al suo server e ogni altra cosa vi
venga in mente che possa rendere difficile la
sua vita, sono strumenti ragionevoli da usare.
Non avete chiesto voi queste complicazioni e non
dovete sottostare alle 'regole del giocò dell'hacker.
Torna all'indice
3.3. Server splittati
Cosa significa:
Un server può splittare quando nessuno sul vostro
canale sta su quel server. Se qualcuno entra nel canale
mentre il server è splittato, allora ottiene l'op
(questo perchè per quanto ne sa il server, il canale
era vuoto).
Quando i server si ricollegano, questo dirà a tutti
gli altri server che questo utente era op.
Cosa fare:
Deoppate sempre chi ottiene l'op dal server. Potete
sempre eventualmente riopparlo. Se vi interessa veramente
un canale, dovreste avere un bot che faccia questo,
altrimenti potete usare degli script.
Se qualcuno entra con l'op, voi lo deoppate, questo
esce e rientra dopo poco ancora con l'op... bannatelo.
Una volta è casuale, due volte è intenzionale. Per
essere oppato due volte in questo modo, deve avervi
deoppato sul proprio server, il che è male, oppure
deve aver lasciato il canale ed essere rientrato durante
lo split -- un sacco di fatica per niente altro se
non ottenere un op. (Ovviamente se lo conoscete, con
un pò di discrezione, provate a mandargli un messaggio
per vedere cosa succede.)
Torna all'indice
3.4. Server desynch
Cosa significa:
questo si traduce in parole povere nel fatto che voi
avete l'op in una parte di IRC, mentre l'hacker ce
l'ha nell'altra parte (oppure nessuno ce l'ha dall'altra
parte).
Cosa fare:
La soluzione è semplice (in teoria): se avete l'op
dalla vostra parte, rendete il canale +i. Kickate
tutti fuori. Infine uscite e rientrate (rientrate
VELOCEMENTE). Sarete rioppati su tutti i server, perchè
il vostro server riterrà che voi siate l'unica persona
sul canale (per quanto ne sa lui tutti gli altri sono
stati kickati). La parte dove voi non siete op vedrà:
*** Thoth has left channel #bdsm
*** Thoth (~thoth@disco.intercon.com) has joined
channel #bdsm
*** Mode change "+o Thoth" on channel #bdsm by dewey.cc.utexas.edu
Può andare storto? Certo che può. Se qualcuno -- chiunque
su qualunque server -- entra sul canale tra il momento
in cui voi uscite e quello in cui rientrate, avrà
LUI l'op dal server e non voi. Quando entrate vedrete:
*** Thoth (~thoth@disco.intercon.com)
has joined channel #bdsm
*** Users on #bdsm: Thoth @SomeDude
Questo significa sicuramente che avete sbagliato il
tempismo. Se l'altra persona è l'hacker, allora i
guai sono seri. Se invece è un normale utente potete
provare a convincerlo ad andarsene (o a opparvi).
Inoltre tenete presente che questa non è una tattica
particolarmente efficace contro hacker ragionevolmente
competenti. Questi hacker semplicemente metteranno
un bot che toglie automaticamente i server-op. Quando
vedranno il vostro server opparvi, vi deopperanno
e sarete esattamente da capo.
Torna all'indice
4. Alcuni script utili
Ci sono parecchi grossi script in giro per la rete.
Personalmente non mi piacciono molto perchè:
- sono ingombranti e occupano memoria
- sono fin troppo pieni di funzioni, la maggior
parte delle quali non vi serviranno
- le persone che li usano raramente li capiscono
e vengono colti di sorpresa quando lo script entra
in azione (kick automatici per cose come flood
sono chiari esempi)
- molte delle versioni che si trovano in giro
sono manipolate e a meno che non sappiate leggere
uno script IRC e avete voglia di esaminarlo tutto,
non sarete certi di non avere una copia manipolata
- alcuni di questi sono pieni di cose inutili
come screwban o splatterkick, oppure hanno un
sacco di comandi di attacco che non altro che
incasinare la rete
Torna all'indice
5. Note del traduttore
Questo documento (come già detto) è basato sui comandi
e sui messaggi di risposta di un client ircII per
piattaforme Unix. I concetti di funzionamento di IRC
e i suggerimenti sui comportamenti da tenere in casi
particolari sono comunque indipendenti dalla piattaforma.
Ho tralasciato nella parte finale un approfondimento
sugli script basilari dei clienti ircII che sono parecchio
superati e che non so quanta gente abbia mai usato.
Tutto quanto è stato detto, soprattutto riguardo la
difesa da un takeover, non si adatta necessariamente
a qualunque canale; in casi di canali *veramente*
affollati la situazione è molto complicata e può essere
che la cura sia peggiore del male. Personalmente consiglio
di preoccuparsi più di impedire un takeover piuttosto
che adoperarsi per rimettere le cose a posto dopo
che è stato fatto; per questo uno script (se fatto
bene e soprattutto BEN CONFIGURATO) è molto utile.
Uno script di cui non conoscete il funzionamento può
invece creare molti danni.
Commenti, consigli, correzioni e roba del genere sono
ben accetti.
Matteo Riva - te0 on IRCnet #italia -
m.riva@mi.flashnet.it
Torna all'indice