Guida a IRC
1. I server - Come IRC funziona |
IRC e' un acronimo e sta per Internet Relay Chat. IRC e' 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 e' 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 usera'
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 e'
connesso a un grande numero di macchine su cui girano altri programmi server
(chiamati semplicemente server). Esso trasmette cio' che voi scrivete agli altri
server, e trasmette a voi cio' che gli altri utenti scrivono.
Ogni server ha una lista di tutto cio' 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.
1.2. Come i server sono
collegati e perche' 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 e'
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 sara' trasmessa all'altro e viceversa -- almeno
finche' questi non si ricollegano (rejoin).
1.3. Cose che possono
succedere quando un server splitta
Quando un server splitta, non sa piu' cosa succede agli altri, ne' gli altri
server sanno che cos'e' 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 cio' che e' accaduto,
questo e' 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 realta'. 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 possibilita' 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 ignorera' qualunque cosa SilverOz faccia che richieda lo status di op, e
cosi' fara' anche eff.org nei confronti di Thoth. Il messaggio che riceverete
sara' 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 vedra' ne' il ban ne' il kick, dal momento che il suo server non
accetta l'op di Thoth come legittimo. In questo modo puo' 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 SARA' 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 cerchera' di scrivere qualcosa sul
canale, ricevera' 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
trasmettera' cio' che lei dice a Thoth. Ma, visto che invece il server di
SilverOz crede che lei sia sul canale, esso le trasmettera' qualunque cosa Thoth
scriva.
Nota: SilverOz puo' lasciare il canale e rientrare. Dal punto di vista di Thoth,
lei entrera' nel canale anche se bannata, in quanto il suo server informera'
tutti gli altri che lei e' entrata. Il server di Thoth semplicemente accettera'
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)
2. Una guida al comando Mode |
2.1. Cosa sono i mode?
I mode sono i parametri di un canale. Essi definiscono cosa puo' e cosa non puo'
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.
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 * e' piu' veloce (credo che il '*' in Pirch e mIRC sia sostituito da
'#', ndt.). Comunque alcuni client richiedono il nome completo.)
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.
2.2.2. +t
+t sta per "topic". Se questo e' impostato, solo gli operatori possono cambiare
il topic. Non e' necessario usare questo mode, ma la mia esperienza mi ha
insegnato che se non lo fate sarete floodati con cambi di topic. Non so perche',
sembra solo che sia cosi'.
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.
2.2.4. +p
+p sta per "private" (privato). Se il vostro canale e' +p, quando qualcuno fa un
/whois su chiunque stia su quel canale, non verra' rivelato su quale canale
l'interessato sta. In ogni caso risultera' evidente che costui sta su *qualche*
canale. Il risultato del /whois sara' 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)
2.2.5. +s
+s vuol dire "secret" (segreto). Se il vostro canale e' segreto, allora non
ricevera' alcuna risposta chi provera' a fare un /names #canale. (Ovviamente se
chi da' questo comando *sta* sul canale in questione, allora vedra' tutte le
persone presenti). Un /whois su qualcuno che sta su un canale segreto sara'
(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 puo' essere contemporaneamente +p e +s
2.2.6. +k
Un canale con il mode +k richiede una parola d'ordine (keyword) per entrare. Su
EFnet (la piu' grande rete IRC) questa keyword puo' contenere caratteri
"non-stampabili" (cioe' 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 e' discusso piu' avanti.
2.2.7. +m
Se il vostro canale e' +m, allora possono parlare sul canale solo gli operatori
o coloro ai quali un operatore abbia dato il mode +v. Questo e' un'utile
protezione in caso di attacco di bot fatti per floodare il canale.
2.2.8. +o <nickname>
Il mode +o e' 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.
2.2.9. +v <nickname>
Il +v da' semplicemente la possibilita' di parlare in un canale +m anche a chi
non e' operatore. (Tutti gli operatori hanno automaticamente il permesso di
parlare.)
2.2.10 +l <number>
Questo stabilisce un limite al numero di utenti che possono entrare nel canale.
Questo mode in realta' non garantisce che sul canale non entrera' un numero di
utenti maggiore di quello definito. Per esempio, impostare questo mode non butta
fuori nessuno anche se il limite e' superato. Inoltre gli utenti che rientrano
da uno split ignorano totalmente il +l (esattamente come ignorano tutte le altre
limitazioni del canale).
2.2.11. +b <pattern>
Questo modo "banna" qualunque utente corrisponda a <pattern> impedendogli
cosi'
di entrare. Questo punto e' discusso meglio nella sezione 2.6.
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 funzionera'.
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 'o' deve corrispondere al numero di persone.
2.5. Kickare
Per kickare qualcuno fuori dal canale, si usa il comando /kick
/kick * SilverOz
Potete anche aggiungere un commento che la persona vedra' quando sara' espulsa:
/kick * SilverOz Good bye and good riddance!
Si puo' kickare solo una persona per volta.
Questo e' uno di quei comandi per cui e' utile avere un alias (abbreviazione) --
vedere la sezione sugli script per sapere come scrivere un alias. Notare anche
che e' spesso consigliabile bannare un utente *prima* di kickarlo -- in questo
modo costui non puo' 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 cosi':
nick!user@host1.host2.suffix
es. SilverOz!zjohnsto@angus.scu.edu.au
oppure: felix!f-t-cat@whack.cartoon.org
Cioe' qualunque cosa stia a sinistra del '!' e' il nick, cio' che sta tra il '!'
e la '@' e' l'utente (username) e la parte alla destra della '@' e' 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" corrispondera' a "SilverOz",
"SolverOz" e "SklverOz",
ma non a "SiilverOz".
"*Oz" corrispondera' a "SilverOz", "AgOz" e
"SilverOOz", ma non a "Silver" o
"SilverOzz".
Allo stesso modo "*.hacker.com" corrispondera' 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 facilita' 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 cosi' fatti:
nick!user@host.dominio.suffisso oppure
nick!user@host.sottodominio.dominio.suffisso, ndt).
2.6.1.
Tipi di ban e quando usarli
Ci sono alcuni tipi di ban, ognuno dei quali e' 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.
2.6.1.1. Ban sul nick
Il formato corretto per un nick ban e':
/mode * +b nick!*@*
Questo banna chiunque usi il nick "nick". Per esempio /mode * +b SilverOz!*@*
bannera' chiunque usi il nick SilverOz. Naturalmente in questo caso e' possibile
cambiare nick ed entrare nel canale nonostante il ban.
Questo ban e' praticamente inutile contro le persone, ma puo' 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.) Puo' 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.
2.6.1.2. Ban del tipo
user@host
Il formato corretto per un ban del tipo user@host e' il seguente:
/mode * *!*user*@*host.suffix
Questo e' 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 e' di 9 caratteri), da qualunque
macchina all'interno del dominio dato.
Es. per bannare SilverOz che e' zjohnsto@scu.edu.au scriverete:
/mode * +b *!*zjohnsto*@*scu.edu.au
per bannare Luser che e' 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 cosi':
/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 bannera' solo il secondo account e non il primo.
2.6.1.3. Ban su un sito
Il formato per un 'site ban' efficace e':
/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 piu' chi e' la persona, se sta su una macchina di SCU
sara' bannata.
Potete anche bannare gli utenti di una particolare macchina, cosi' 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
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). (Questo capita anche perche' ad alcune macchine non viene
effettivamente assegnato un nome, ma vengono identificate solo col loro
indirizzo IP, ndt)
Un indirizzo numerico e' in realta' l'indirizzo "IP" di quella persona e alcune
volte bannare semplicemente l'intero indirizzo IP e' sufficiente. Esempio:
/mode #bdsm +b *!*zjohnsto*@203.2.20.1
Se la persona bannata ha accesso ad altre macchine sulla propria rete o puo'
cambiare il proprio indirizzo IP, la situazione e' un po' piu' 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 e' una piccola rete che
contiene non piu' di 255 host, ed e' il piu' comune. In un network di classe C
solo l'ultimo numero puo' cambiare. Se so che SilverOz sta su una rete di classe
C, posso fare un site ban su di lei cosi':
/mode #bdsm +b *!*zjohnsto@203.2.20.*
Un dominio di classe B e' piu' 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
proprieta' di grosse corporazioni. Molti network, specialmente quelli grandi,
sono suddivisi in reti piu' piccole, il che vuol dire che anche se l'utente in
questione sta su una grande rete, la sottorete che lui usa puo' 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 piu' di quanto avreste mai voluto sapere sugli indirizzi IP.
2.6.1.5. Efficienza
E' possibile nonche' consigliabile rendere i vostri kick e ban piu' efficienti. Per
esempio dovreste sempre deoppare un utente prima di bannarlo. Perche'? Perche' se non lo
fate, puo' deopparvi o kickarvi prima che lo facciate voi.
Questa operazione puo' essere fatta semplicemente combinando i mode. Ad esempio, per
cacciare Thoth dal canale dovrete fare cosi':
/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.
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 e' sconsigliato per questo. Se fate un errore, il sistema non vi avvertira', vi
dira' semplicemente che il ban e' stato tolto, anche se non e' 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
2.6.3 Perche' un ban puo' non funzionare
Qualche volta bannate un utente e questo rientra lo stesso sul canale. Puo' essere che
l'abbiate bannato male. Ma se il ban sembra corretto, ci sono altre spiegazioni.
2.6.3.1 Troppi ban
Un canale puo' contenere al massimo 20 ban contemporaneamente. Se provate a mettere un
nuovo ban e gia' ce ne sono 20, non otterrete nessun cambiamento di mode, non otterrete
nessuna risposta.
2.6.3.2. Ban simili
Se e' gia' presente un ban simile a quello che state cercando di mettere, allora il vostro
non funzionera'. Rimuovete il ban inesatto o inutile e riprovate.
Che cosa vuol dire 'simile'? Un ban e' definito 'troppo simile' se il nick, lo user o
l'host del ban coincidono con quelli di un ban gia' esistente.
2.6.3.3. Server 'desynch'
Questo e' un brutto problema. Se un server diventa desynch, allora un hacker (pirata) puo'
entrare nel canale su quel server dal momento che il ban che avete messo non sara' nella
memoria di quel server. In questo modo, l'hacker puo' uscire e rientrare quando vuole e,
dal vostro punto di vista, potra' farlo nonostante la presenza di un ban. Vedere la
sezione 1.3 per cio' che succede in caso di split.
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 e' sempre una buona idea, soprattutto durante un
tentativo di takeover, visto che loro continueranno a vedere cio' che voi dite, ma voi non
potrete vedere cio' che dicono loro!
Inoltre non c'e' modo di capire che una persone e' entrata in seguito ad uno split --
appare esattamente come un join normale.
3. Come gli hacker si impadroniscono dei canali (e cosa fare in questo caso) |
Questo e' un piccolo sermone sui takeover e sulle contromosse da adottare.
I takeover di canali IRC succedono. Perche'? 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 e' capace.
Che fare? Sostanzialmente potete scegliere tra tre opzioni:
1. Assecondarli.
2. Ignorarli.
3. Difendere il canale.
Il problema di assecondare gli hacker e' 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 e' 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 e' una discreta rottura -- allora la cosa migliore che potete fare e'
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, ne' 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 e' evitare di buttare benzina sul fuoco,
lasciare morire le cose per disinteresse. /ignorare completamente un hacker e'
probabilmente una buona mossa.
La terza scelta e' cercare di difendere il vostro canale. Quelle che seguono sono
suggerimenti difensivi molto basilari. Se volete veramente combattere, avete bisogno di
una buona abilita' con IRC, capacita' di programmazione, ottimi bot e un casino di tempo.
Alcune regole generali:
* Non ci sono regole generali. Ogni regola richiede un po' di buonsenso. Usatele a vostra
discrezione -- ma siate prudenti. Pensate a cio' 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). Perche' 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 puo' entrare a meno che non sappia
i nick degli operatori, e questo disturba molto la normale vita del canale.
3.1. Fingersi un amico
Cosa significa:
uno dei metodi piu' semplici e' 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:
Gia', sembra incredibile, ma un *sacco* di persone danno l'op guardando solo il nick. La
morale e' fare *sempre* un /whois prima di dare un op.
Molti script oppano in base allo user@host. State attenti perche' gli username possono
essere falsificati.
3.2. Nick collision
Cos'e':
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 perche' cio' che vi sta
prendendo il nick e' semplicemente un bot. Loro non vengono killati perche' 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 cosi' non siete piu' nella posizione di poterlo
difendere.
Se l'hacker riesce a 'collidere' con successo tutti gli operatori di un canale, allora non
c'e' piu' nessuno in giro che lo possa deoppare quando ottiene l'op dal server splittato.
Dal momento che e' l'unico op, vince... piu' o meno.
Perche' piu' o meno? Beh questo genere di cose succede sempre quando la rete e' instabile.
In questo modo l'hacker puo' collidere tutti e poi splittare ancora. Se voi potete
recuperare l'op durante questo periodo e cambiate il vostro nick, avete la possibilita' di
non essere killati ancora. Gli hacker piu' abili, comunque, hanno spesso delle 'spie' --
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:
1. Distribuite l'op a tutte le persone di cui vi fidate. Fate in modo che l'hacker perda
tempo nel creare molti bot.
2. Rendetevi +i (invisibili). Non fate in modo che sia facile per l'hacker scoprire i nick
degli operatori.
3. Sempre, sempre deoppate chi ottiene l'op da un server splittato. L'op puo' essere
ridato; un hacker che diventa il solo operatore e' un problema molto meno risolvibile.
4. Cambiate spesso il vostro nick.
5. Kickate tutti gli account sospetti. Mettete un +i al canale se necessario.
6. 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 terra'
informati su cio' che sta accadendo la'. E' meglio se usate un account che l'hacker non
sapra' essere vostro.
7. Create bot per collidere l'hacker. Portate una tonnellata di bot sul canale e oppateli
tutti.
8. Ricordate: SE KICKATE L'HACKER CON L'IDEA SBAGLIATA CHE COSI' NON POTRA' VEDERE CIO'
CHE DITE O I NICK CHE USATE PER VOI O PER I BOT, PENSATECI DUE VOLTE! Non solo questo non
avra' l'effetto voluto, ma non sarete piu' in grado di vedere quando l'hacker splittera'
ancora, almeno non facilmente. Il solo momento in cui il vostro nick conta e' quando c'e'
lo split, quindi cambiate i nick vostri e dei bot DOPO che l'hacker e' splittato.
9. Siate creativi e pensate. Un buon hacker sa gia' che voi farete queste cose. Cercate di
pensare come lui. Cosa fareste VOI per impadronirvi di un canale?
10. 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 gioco' dell'hacker.
3.3. Server splittati
Cosa significa:
Un server puo' splittare quando nessuno sul vostro canale sta su quel server. Se qualcuno
entra nel canale mentre il server e' splittato, allora ottiene l'op (questo perche' per
quanto ne sa il server, il canale era vuoto).
Quando i server si ricollegano, questo dira' 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 e' casuale, due volte e' intenzionale. Per essere oppato due
volte in questo modo, deve avervi deoppato sul proprio server, il che e' 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 po' di
discrezione, provate a mandargli un messaggio per vedere cosa succede.)
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 e' 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, perche' il vostro server riterra' 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 vedra':
*** 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
Puo' andare storto? Certo che puo'. Se qualcuno -- chiunque su qualunque server -- entra
sul canale tra il momento in cui voi uscite e quello in cui rientrate, avra' 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 e'
l'hacker, allora i guai sono seri. Se invece e' un normale utente potete provare a
convincerlo ad andarsene (o a opparvi).
Inoltre tenete presente che questa non e' 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.
--------------------------------------------------------------------------------
NOTE DEL TRADUTTORE |
Questo documento (come gia' detto) e' 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 e' stato detto, soprattutto riguardo la difesa da un takeover, non si adatta
necessariamente a qualunque canale; in casi di canali *veramente* affollati la situazione
e' molto complicata e puo' essere che la cura sia peggiore del male. Personalmente
consiglio di preoccuparsi piu' di impedire un takeover piuttosto che adoperarsi per
rimettere le cose a posto dopo che e' stato fatto; per questo uno script (se fatto bene e
soprattutto BEN CONFIGURATO) e' molto utile. Uno script di cui non conoscete il
funzionamento puo' 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 -
mondoIrC 1999/2000