1 · O que é um ban de canal e quando usar um?
Um ban, é um modo de canal que se põe para impedir clientes com certos identificadores de IRC (nome de utilizador, hostname, nick) entrem num canal. Se eles já estiverem no canal, impede-os de falar (semelhante a quando o canal está em modo +m mas eles não têm +o ou +v) ou alterar o nick. Esta característica é conhecida como +bquiet (Be Quiet - estar calado).
Os bans são específicos a canal, ou seja, um ban só existe no canal especificado na linha de comando do ban. Todos os bans desaparecem dum canal se o canal ficar vazio. Os bans de canal só podem ser postos e removidos pelos operadores de canal. Os AutoKicks são a excepção à regra, e são implementados pelo ChanServ sempre que um utilizador que corresponda ao ban tente entrar no canal em questão. Quer haja ou não alguém no canal é irrelevante.
Quando é que deves usar um ban? Bem, isso depende inteiramente de ti como operador de canal. Geralmente coloca-se um ban a um utilizador que entra no canal e constantemente causa problemas. Isto é, floodar o canal ou ser rude. Isto não significa que é o único momento em que se coloque um ban. Podes ser banido dum canal por teres um nick ofensivo ou alguma outra razão. Colocar os bans está totalmente ao critério do operador de canal.
Deve notar-se que um operador de canal tem o direito de banir quem quer que deseje, pela razão que quiser. Como operador de canal, é em efeito o dono do canal. Pensa nisso como uma casa. Se fores o dono, manténs o direito de remover alguém por qualquer razão que desejes, talvez simplesmente por não gostares da pessoa.
Alguns canais podem ter um conjunto de regras usadas para determinar quando colocar um ban. Quando alcanças o estatuto de operador num canal, consulta o fundador desse canal para ver se têm um conjunto de regras, se já não souberes, que contornem instâncias ou actividades quando bans sejam colocados nos utilizadores.
2 · Que informação é necessária para colocar um ban?
Para colocar um ban, tens de saber o endereço do utilizador que vai ser impedido de entrar no canal ou ser silenciado. Para obteres esta informação, usa o comando WHOIS.
Caso o utilizador tenha mudado de nick, podes usar o comando WHOWAS. Este comando só pode ser usado imediatamente após alguém ter mudado de nick ou tenha feito saída da rede. O servidor é incapaz de lembrar o endereço dum utilizador de forma indefinita depois deles terem mudado de nick ou saírem, logo tens cerca dum minuto para realizares o comando WHOWAS de forma a que funcione.
Usarei o nick "Nick" em todos os exemplos que se seguem. Agora, para realizar o comando WHOIS sobre "Nick" teclarás:
/whois NICK
em qualquer linha de comando dentro do teu cliente de IRC. Dependendo do cliente que estás a usar, ou que script e filtros estás a usar, dar-te-á uma resposta algo parecida com o seguinte:
*** Aysmonte is AMO@cs1p1.ipswich.gil.com.au Aysmonte@dal.net
*** on channels: @#gryphons
*** on irc via server cin.il.us.dal.net
Como podes ver, muita informação é dada, incluindo: O endereço do utilizador, os canais onde ele está actualmente, o servidor de IRC que está a usar, e outros detalhes tais como se o utilizador está away (ausente) e outros (não se mostra aqui, vê Índice B). A informação em que estamos realmente interessados, aparece na primeira linha:
*** Aysmonte is AMO@cs1p1.ipswich.gil.com.au Aysmonte@dal.net
Partindo o endereço nas seguintes partes:
nick!idutilizador@ISP.domínio.país
A secção de ISP.domínio.país é também referida como sendo o host ou domínio.
Claro que de tempos a tempos verás uns endereços estranhos, mas essencialmente é sempre no formato acima, com o domínio e/ou país no final e o resto da informação após o @ a descrever o ISP e o computador usado. Podes banir em qualquer nick, idutilizador e domínio, dependendo do quanto severo ou amplo quiseres que seja. Cobriremos isto de forma mais detalhada mais adiante neste documento.
O '!' é um separador entre o nick e o campo idutilizador. O idutilizador e o nick também podem ser o mesmo. O símbolo de '@' é outro separador. O '@' separa o campo do idutilizador do resto do endereço (Host).
Darei exemplos de bans a seguir, desde um ban muito específico até aos mais gerais e mais amplos. Depende de ti determinar o ban necessário para a situação e também para manter as listas de bans da forma em que consideres que devam estar. A maioria dos bans que necessitarás colocar, serão possivelmente bans temporários e poderão ser removidos após um curto período de tempo.
Como mencionámos acima, existe também a possibilidade que o host em questão seja um VHost. VHost significa virtual host (host virtual) e é um endereço de vaidade, na maioria das vezes, criados especialmente para entrar no IRC.
Então verás aparecer algo um tanto estranho, como:
*** Nick é god@Danca.com.lobos.na.lua.net Hey hey!
*** on channels: @#faqsfordalnet
*** on irc via server shiva.va.us.dal.net
No caso de VHosts, deves recordar que deve haver algumas outras semelhantes, ou hosts totalmente diferentes. As contas de provedores de Shell dão aos seus utilizadores dezenas de hosts disponíveis. Em casos como estes, deve-se fixar cuidadosamente o ident. Se um ban for evadido, valerá então apenas tentá-lo colocar no idutilizador da pessoa em questão. Instruções detalhadas serão dadas mais abaixo.
3 · Como colocar bans
Em todos os exemplos de bans dados, usarei <#canal> para indicar o nome do canal onde o ban deve ser posto. Assegura-te que especificas o canal correcto no comando de mode, e não colocas <#canal>.
Nota: Alguns clientes têm comandos específicos para banir. O comando MODE usado aqui funciona com todos os clientes. Deves ver a documentação de ajuda do teu programa de IRC (Cliente) sobre bans/banir para averiguar como funcionam estes comandos específicos, se é que os têm.
Para banir um certo nick APENAS, usarias o seguinte comando:
/MODE #canal +b Nick
ou completo
/MODE #canal +b Nick!*@*
Um exemplo dum ban a usar um nick e canal reais seria assim:
/MODE #Gryphons +b Aysmonte!*@*
Ambos os comandos resultam na mesma máscara de ban. Se não estiveres familiarizado com o uso do comando /MODE, vê o Índice B para mais informação sobre este comando.
Isto diz a todos os servidores de IRC na rede de IRC, que qualquer pessoa a utilizar esse nick não será permitido entrar no canal. Também deve-se notar que os bans não chutam os utilizadores para fora do canal. Na DALnet, impedi-los-á de alterar o seu nick e/ou enviar qualquer texto para o canal, mas eles permanecerão no canal, e receberão todo o texto do canal até que um operador os chute para fora ou até que eles abandonem o canal.
Este ban é raramente usado, pois o utilizador banido pode simplesmente alterar o nick e regressar. (Tecnicamente isto é considerado uma evasão de ban por parte do utilizador, mas dada a simplicidade do ban, não muitas pessoas estariam dispostas a considerá-la uma evasão real de ban). Todavia, tem as suas vantagens ao impedir que nicks ofensivos sejam usados. (Por exemplo, banir *sex*!*@* num canal familiar.)
Os asteriscos, "*", no comando anterior, são conhecidos como wildcards. Os wildcards são usados para representar zero ou mais caracteres nessa posição, ou seja, que coincida com qualquer número de quaisquer caracteres nessa posição, até mesmo nenhum. Outro wildcard é "?". O símbolo de interrogação "?" é usado para especificar apenas um caracter nessa posição e é raramente útil. Alguns de vocês poderão estar acostumados a usar wildcards quando procuram ficheiros em directorias e funcionam mais ou menos igual. Notarás também que o "!" continua a ser usado como separador na sintaxe do ban.
Exemplos de wildcards para IRC são:
ni?e = nice, nine, nixe, nife .... *.gil.com.au = ipswich.gil.com.au, cs1p1.ipswich.gil.com.au, qualquervariedadecom.gil.com.au
? = Um caracter nesta posição
* = Qualquer texto nesta posição
Agora, este ban de exemplo não tem muito sentido, devido ao facto de ser muito específico num campo que é fácil de alterar. Um ban mais "amplo" (um ban que cubra mais variações possíveis de endereços, ex: AMO@cs1p1.ipswich.gil.com.au é específico (estreito) onde AMO@*.gil.com.au é mais geral (amplo) e um ban um pouco melhor seria o seguinte:
/MODE #canal +b *!User@ISP.domínio.país
Partindo este ban em partes, estamos a dizer para banir todas as pessoas com qualquer nick e cujo idutilizador seja User ou user (os bans não destinguem maiúsculas), com um host de ISP.domínio.país. Isto é um pouco mais díficil de evadir, mas poderá ser evadido através da pessoa desligar-se da rede de IRC, alterar o idutilizador e ligar-se novamente e evitar o ban. Outra vez, impedirá o nick de voltar a entrar no canal imediatamente mas só o impedirá por alguns segundos, assumindo que o utilizador queira evadir o teu ban.
Para os utilizadores com o hábito de usar uma variedade de VHosts para evadir bans, podes tentar detê-los banindo o seu idutilizador (ident) unicamente:
/MODE #canal +b *!userid@*
Com o exemplo do whois que colocámos no início deste manual. (Nick é god@Danca.com.lobos.na.lua.net), o comando será então parecido com:
/MODE #canal +b *!god@*
Todavia, se repetidamente os bans de ident são mal sucedidos, deves considerar colocar um ban no bloco de IP completo. Terás de ter em mente que isto habitualmente manterá de fora todos os utilizadores da companhia que fornece a VHost.
A primeira coisa a fazer é encontrar o bloco de IP de que pertence ao VHost:
/DNS hostaqui
Vamos tentar isto com o exemplo prático de usar o comando no domínio Danca.com.lobos.na.lua.net. Provavelmente verás algo parecido com o seguinte:
Looking up Danca.com.lobos.na.lua.net ..
Resolved Danca.com.lobos.na.lua.net to 222.666.999.555
Estabelecemos agora que o host de Danca.com.lobos.na.lua.net tem um endereço IP que é 222.666.999.555. Isto significa que todos os outros VHost da companhia devem estar entre 222.666.999.algo (desde que não seja uma companhia muito grande). Para colocar então um ban no bloco de IP, teclarás:
/MODE #canal +b *!*@222.666.999.*
Se mesmo assim continuas a ter problemas com este utilizador, então será a hora de contactar alguém num canal oficial de ajuda tal como #DALnetHelp, #IRCHelp ou #help. Os Operadores de IRC podem ser encontrados em #OperHelp.
Com situações mais 'normais', um melhor ban a colocar, especialmente se vai ser um ban temporário, seria o seguinte:
/MODE #canal +b
*!*@ISP.domínio.país
Devo mencionar aqui que não todos os utilizadores podem alterar o seu nome de utilizador mas é uma boa presunção para fazer nestes dias pois mais e mais pessoas ligam-se a usar clientes que lhes permitem fazer esta alteração.
O "*!*" diz ao servidor para não permitir qualquer nick ou idutilizador do Host/Domínio especificado de entrar no teu canal.
Com a prática irás notar que a secção de ISP dum endereço altera-se para as pessoas que usam contas de ligação PPP ou SLIP. Existe uma parte estática que se refere ao ISP, no entanto existe normalmente também uma parte extra a atender estes utilizadores. Partiremos a parte do ISP de todos os endereços agora para tornarem-se:
nick!idutilizador@PPP.ISP.DOMÍNIO.PAÍS
O PPP é atribuído a um utilizador quando ele se liga ao seu ISP, normalmente ligar-se via modem, pela duração dessa chamada/ligação.
Para impedir uma pessoa de entrar no teu canal de forma mais eficiente, fazes o seguinte:
/MODE #canal +b
*!*@*.ISP.domínio.país
Isto, como podes ver, estará a dizer que queres banir todos os nicks, idutilizadores e PPPs dum ISP em particular. Esta é provavelmente a mais segura e mais ampla forma de banir usada que poderás fazer a um arruaceiro. Basicamente ninguém desse ISP será capaz de entrar no teu canal. No entanto, eles poderão ter uma segunda conta com um ISP totalmente diferente que lhes permitirá conectar-se e evadir o teu ban. Isto se tomará como evasão de ban a qual não é permitida na DALnet. Procura um IRCop quando/se isto suceder. O exemplo anterior das pessoas a alterar VHosts de forma a contornar um ban é outro exemplo de evasão de ban.
Claro, outro ban que podes considerar como temporário é um ban muito amplo de Domínio ou País. Isto seria usado como uma solução rápida para livrar-se dum arruaceiro enquanto se averigua um ban apropriado para colocar nesse utilizador. Poderia tomar as seguintes formas:
/MODE #canal +b *!*@*.domínio.país
/MODE #canal +b *!*@*.país
Estes são muito amplos, e estarás a "capturar" um monte de pessoas com este ban que não merecem ser banidas do teu canal. Neste ponto, seria uma boa altura para mencionar que uma vez que tenhas um ban colocado não podes colocar outro ban que cubra esse alcance. Logo, se colocares um ban a *!*@*.ISP.DOMÍNIO.PAÍS não podes depois banir: *!*@*.DOMÍNIO.PAÍS (ban mais amplo) ou *!NickID@PPP.ISP.DOMÍNIO.PAÍS (mais estreito / ban mais específico).
O que é que isto te diz? Bem, se baniste um idutilizador e nick (*!*@PPP.ISP.DOMÍNIO.PAÍS) do teu canal, então terias de remover este ban antes de fazê-lo para todo o ISP (*!*@*.ISP.DOMÍNIO.PAÍS) ou algum outro ban semelhante.
É uma boa ideia rever periodicamente a tua lista de bans para manutenção. Ao fazê-lo pode ser que encontres 2 bans parecidos mas não exactamente iguais. Vamos usar os endereços seguintes para os nossos bans neste exemplo:
Nick1!userid1@NovoISP.NovoDomínio.PAÍS
Nick2!userid2@VelhoISP.VelhoDomínio.PAIS
Agora, digamos que o ban estava no nick e idutilizador assim:
*!*@NovoISP.NovoDomínio.PAÍS
*!*@VelhoISP.VelhoDomínio.PAÍS
Então, de modo a tornar as coisas mais eficientes e a tua lista de bans mais manejável, poderias banir:
*!*@*ISP.*Domínio.PAÍS
para cobrir ambos os casos.
Porquê manter os bans de tempo longo em menor número possível? Basicamente, as listas pequenas são mais fáceis de gerir e fazer reset se for necessário. Deves também notar que a DALnet só permite um máximo de 200 bans para cada canal ao mesmo tempo.
Outra coisa que poderias fazer com bans semelhantes seria usar um ban screw. Um ban screw basicamente utiliza o wildcard "?". Os bans screw não são muito úteis, e são raramente utilizados na prática. Por exemplo, tens dois ISPs com nomes semelhantes:
*!*@Novo1ISP.Domínio.PAÍS
*!*@Novo2ISP.Domínio.PAÍS
Para um ban aqui, banirias:
/MODE #canal +b
*!*@Novo?ISP.Domínio.PAÍS
Repara que o "?" somente funciona para um caracter, logo se estavas a tentar bloquear mais do que um caracter terias de usar um "*". Outras variações são possíveis de todos estes bans. Os wildcards podem ser misturados e trocados à frente, no meio, ou no fim duma palavra. Até podes mesmo usar os wildcards para o campo do país. Tomemos agora dois endereços:
Nick1!userid1@ISP.DOMÍNIO.net
Nick2!userid2@ISP.DOMÍNIO.com
Poderias colocar um ban como:
/MODE #canal +b
*!*@ISP.Domínio.*
para cobrir todos os campos nicks, idutilizador e país. Novamente, este ban não é muito útil. Tecnicamente poderá surgir alguma vez, no entanto eu duvido que alguma vez terás a necessidade de colocar um ban assim. Os bans são versáteis e somente tão eficientes como tu os deixes ser, eles requerem alguma experiência a acostumar-se a eles, mas depois de algum tempo a observar os endereços das pessoas, cedo obterás um sentimento de como banir de forma efectiva. Não te assustes se não souberes qual ban é bom para um caso particular, simplesmente tenta algo e observa se funciona. Para algumas pessoas colocar bans é um pesadelo, mas desde que possuas um entendimento geral deverás ser capaz de cuidar dum canal até que um operador com maior experiência venha ajudar-te. Se tiveres um amigo no IRC, então poderás pedir-lhe ajuda para colocares bans para experimentar. Para uma lista de verificação rápida em relação aos bans, vê o "Guia Rápido de Bans", secção 7 mais à frente neste documento.
Existem outras configurações de bans em que se possa entrar tal como:
/MODE #canal +b
*!*user@*.isp.net
mas não existe realmente necessidade de ir através de TODOS contigo. Com a experiência sentirás o tipo de ban que necessitas colocar de acordo com a situação. Observar os outros e perguntar-lhes porquê colocaram um ban de certa forma também pode-te ajudar a compreender. Também toma nota da pontuação quando banires pois *!*user@*isp.net é totalmente diferente de *!*user@*.isp.net (nota a adição de um ponto), de forma que é aconselhável ser muito cuidadoso quando colocares os teus bans ou poderás ter resultados imprevisíveis.
Em certas ocasiões verás utilizadores com um endereço IP, ou seja, eles têm números em vez de palavras para o seu endereço (host). Isto é bastante comum, não te preocupes. Apenas temos de alterar o teu modo de pensar quando temos de colocar um ban efectivo para tais utilizadores. Deixa-me referir que eles poderão não ter sempre números de IP nos seus endereços devido a várias razões.
Deve-se notar que para cada e todos os hosts existe um endereço IP associado (como se demonstra com os nossos exemplos de VHost). Se banires alguém enquanto eles estão a usar o seu endereço IP então eles ainda estarão impedidos de entrar no canal novamente mesmo se o seu host se resolva da próxima vez - desde que, claro, que o endereço IP não se tenha alterado. Habitualmente, a falta de endereços que se resolvam é devido ao lag entre o ISP deles e o servidor de IRC a que eles se ligaram ao entrar na DALnet. Isto resulta no servidor de IRC não ser capaz de obter uma resposta da "busca de nome" a tempo, de modo a que utiliza a direcção de IP em seu lugar.
Vê Índice B para um exemplo do que aparece num /WHOIS feito num utilizador com um endereço IP.
Como podes ver, em vez dum host "texto" tem agora um conjunto de 4 números. Para alguns utilizadores isto será constante mas para outros mudará. A parte que muda geralmente é o último dígito (embora não seja sempre o caso, mas suficientemente comum que não há necessidade de esperar outra coisa). Deve notar-se de que se eles ou tu têm um host estático (que não se altera) então o teu IP será sempre o mesmo. Logo, à diferença da anterior onde podias usar um wildcard para banir a primeira parte do host, vamos nestes casos remover o último digito e colocar um wildcard lá tal como:
/MODE #canal +b *!*user@254.253.252.*
Também podes adicionar um ban temporal no qual o ban colocado será removido automaticamente após um número de segundos especificados. Por exemplo, se quiseres banir o nick Aysmonte por 20 segundos em #fleetstreet, poderás teclar:
/ban -u20 #fleetstreet Aysmonte*!*@*
Também existe um comando para banir e chutar um utilizador de forma simultânea em vez de usares 2 comandos. Por exemplo, se eu quisesse banir e chutar Aysmonte, teclaria:
/ban -k #fleetstreet Aysmonte razão
Isto colocará um ban no seu endereço de IP/host e chutar Aysmonte do canal.
4 · Remover e Modificar Listas de Bans
Remover bans é relativamente simples comparado com colocá-los. Primeiro tens de saber que máscara de ban queres remover do teu canal. Isto pode ser conseguido na maioria das aplicações usando o comando:
/MODE #canal +b
Noutros clientes, por exemplo o mIRC, tudo o que tens de fazer é um duplo clique na área de texto do canal para obteres a listagem dos bans do canal.
Quando tiveres uma lista dos bans do teu canal, encontra a máscara de ban que desejas eliminar, e tecla:
/MODE #canal -b máscaradeban
Deves recordar que se o teu canal já não existir, por exemplo, se todos os utilizadores saíram do canal então a tua lista de bans actual deixará de existir e terá de ser recriada quando "recriares" o canal (entrar nele). A DALnet dá-lhe a volta usando o comando AKICK do ChanServ, mas isto está apenas disponível para canais registados.
Nota que se tens um ban amplo (ex: *!*@*.com.au) e desejares colocar um ban mais estreito (ex: *!*@cs1p1.ipswich.gil.com.au ) a alguém (não que eles estariam no canal em pessoa). Remove o ban amplo antes de colocares o mais estreito.
5 · Simplificar bans
Às vezes, queres manter de fora nicks específicos que são utilizados por spam bots que entram com um nome standard com números no fim do nick. Queres adicionar apenas o ban dum nick em vez de adicionares 100 bans à tua lista da bans. Observemos o exemplo que se segue:
5 utilizadores provenientes de diferentes IPs/hosts entram em #fleetstreet com os nicks Andrea521, Andrea522, Andrea523, Andrea524 e Andrea525. Em vez de adicionar 5 bans às suas hosts, podes simplificar o ban adicionando ban de nick usando wildcards como foi falado anteriormente. Então teclarás o seguinte comando:
/mode #fleetstreet +b Andrea???!*@*
que os manterá todos fora. O problema é, se eles usarem mais ou então menos do que 3 caracteres após esse nick, isto tornaria o ban não efectivo. Daí, será necessário colocares um ban mais amplo para mantê-los todos fora. Então, a seguinte máscara de ban será colocada:
/mode #fleetstreet +b Andrea*!*@*
que manterá fora do canal qualquer pessoa com o nick Andrea independentemente de qualquer número de caracteres por detrás dela. No entanto, se tiveres um amigo que possa ser afectado pelo ban, Ex: Andrea_Simon, terás então de colocar uma máscara de excepção. Podes consultar Índice A para saberes mais sobre como colocar uma excepção.
6 · Outros Serviços Associados da DALnet
A DALnet utiliza o ChanServ para cuidar dos canais registados. Isto mantém um tipo de lista de bans. Basicamente, quando adicionas um AKICK a uma máscara de host, o ChanServ verifica os utilizadores que entram no teu canal registado. Quando um utilizador com uma máscara de host na lista de AKICK do ChanServ entra no teu canal, o utilizador é chutado para fora do teu canal e um ban é colocado nessa máscara para impedi-los de voltar a entrar.
Para adicionar um AKICK num canal, primeiro o canal terá de estar registado, segundo precisas de ter um SOP (ou fundador) para colocar o ban. Um SOP é um SuperOperador do canal, para mais informação usa o comando /ChanServ help SOP.
Nota: Alguns clientes poderão não permitir usar o comando /ChanServ. Se este for o caso, tenta então usar /msg ChanServ@services.dal.net em seu lugar.
O comando para adicionar um AKICK é:
/ChanServ AKICK #canal ADD
nick ou máscara de host
Pode-se obter mais informação relativa a este comando em http://www.dal.net/services ou no sistema de ajuda do ChanServ:
/ChanServ Help AKICK
Os AKICKs mantêm-se até serem removidos, logo é importante fazer a manutenção da lista de AKICKs e remover aqueles obsoletos.
7 · Guia Rápido de Bans
-
Decide se o ban é temporário ou de longo prazo.
-
Obtém a informação do utilizador usando o comando /WHOIS ou o /WHOWAS
-
Se o ban for temporário então coloca um ban mais estreito tal como nick!*@* ou *!idutilizador@*
-
Se o ban é de longo prazo, coloca um AKICK mais amplo tal como *!*@*.host
-
Revê o teu ban para te assegurares que é eficiente e que não impede demasiados utilizadores de entrar no teu canal.
-
Se for um ban temporal, lembra-te de o remover após um período predeterminado, por exemplo, 10 minutos.
Por favor dirige quaisquer comentários ou feedback acerca deste documento (apenas! não envies solicitações de ajuda!) a docs@dal.net. Se necessitares de ajuda em relação a temas não abrangidos por este documento, por favor vê a seguinte informação http://help.dal.net.