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:
equivale a:
Nota: potete anche usare il nome del canale, es.
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:
oppure
Inoltre dovete conoscere la chiave anche per poterla togliere... se la
sapete,
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:
Potete anche combinare i comandi mode. Supponiamo che il canale sia al
momento +i +n +t (solitamente scritto +int)
Potete rimuovere il +i con
ma supponendo che voi lo vogliate -i ma +s?
Potete rimuovere tutti i mode (inclusa una chiave che non conoscete...) con
il comando:
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:
per deopparlo:
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
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 è:
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:
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:
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