Valid HTML 4.01 Transitional

Valid CSS!

NFilter - NewsProxy

Download da versão completa - 665KB
Caso tenha algum problema ao baixar o arquivo, desabilite qualquer gerenciador de download que esteja usando.
Download da Atualização (NFilter 1.2.1-b1) - 116KB
É necessário baixar a versão completa antes de copiar esta atualização.

1. Introdução
2. Por que usar o NFilter?
3. Como funciona?
4. Configurando
4.1. Configuração do newsreader
4.2. Configuração do NFilter
5. Filtros
5.1. Filtro por IP
5.2. Filtro por IP e nick
5.3. Observação na linha "Autor" (From)
5.4. Filtrando Clones
6. Dúvidas e dicas sobre o NFilter

1. Introdução [Topo]

O NFilter é um software que faz o papel de um Proxy entre você e o seu servidor de newsgroups favorito, ou seja, ao invés de configurar seu newsreader para acessar, news.seuservidor.com.br, você o configura para acessar o NFilter, através de 127.0.0.1 (o IP da máquina local).

Sendo assim, o NFilter tem acesso a tudo que você envia e recebe de e para news.seuservidor.com.br.

2. Por que usar o NFilter? [Topo]

Mesmo newsreaders mais poderosos como o Gravity e o Agent, são limitados em se tratando de regras e filtros. O Outlook Express, um dos mais populares, é extremamente limitado nesse quesito.
A proposta do NFilter é dar a estes newsreaders (e a quaisquer outros, para Windows), um novo conjunto de regras, manipulando as mensagens antes de disponibilizá-las ao newsreader.

3. Como funciona? [Topo]

Normalmente você configura seu newsreaders para acessar news.seuservidor.com.br, e "conversar" com o servidor. Com o NFilter, você configurará seu leitor para "conversar" (acessar) o NFilter que, por sua vez, fará o trabalho de "conversar" com o servidor.

Funcionamento do NFilter

Dessa forma, as mensagens passarão pelo NFilter (que aplicará suas regras) e depois para seu newsreader (que poderá aplicar novas regras ou filtros, baseado nas ações do NFilter).
Você também pode usar exclusivamente o NFilter para filtrar as mensagens.

4. Configurando [Topo]

Após fazer o download do NFilter (665KB), atualizá-lo (116KB) e instalá-lo, será preciso configurar seu newsreader e o NFilter para ambos funcionarem corretamente.

4.1. Configuração do newsreader [Topo]
A única coisa que você precisa fazer, é mudar o endereço de acesso do seu servidor de newsgroup para "127.0.0.1" (sem aspas). Atenção: depois de feita essa mudança, será necessário estar com o NFilter aberto e configurado corretamente para poder acessar seu servidor normalmente!

4.2. Configuração do NFilter [Topo]
A primeira coisa a fazer, é ir no menu Edit, opção Configuration.

Configurando o NFilter 1/2

Na aba General, não há muito o que alterar. A opção Hide on Startup faz com que o NFilter seja automaticamente minimizado ao systray (aquela área ao lado do "reloginho") ao iniciar. A opção Listen immediately on Startup, faz com que o NFilter passe a estar ativo imediatamente após inicializar.

Enable regular expressions permite o uso de expressões regulares, nos filtros.

As configurações importantes estão na aba Network.

Configurando o NFilter 2/2

É nesta tela onde você vai informar o servidor que deseja utilizar. Em Server Name or IP number, informe o servidor ou IP do mesmo que você utiliza. No exemplo acima, utilizei o news.unipar.br, um dos servidores da rede U-BR (http://u-br.tk).

Pronto, o básico já está feito. Agora, reinicie o NFilter e você já estará tudo configurado para a parceria com seu newsreader.


É necessário reiniciar o NFilter para que qualquer alteração entre em vigor, incluindo mudanças nos filtros!

5. Filtros [Topo]

A configuração dos Filtros é feita no menu Edit, na opção Filters. Será aberta uma janela do bloco de notas, com o arquivo nfilter.dat aberto. Nele há vários comentários e instruções de uso em inglês.
No começo, o NFilter pode ser um pouco complicado para lidar. É recomendado sempre que você faça testes de filtros usando o grupo de testes do servidor, para garantir que os filtros criados estejam funcionando perfeitamente.

Basicamente, a estutura das linhas dos filtros é assim:

grupo_de_notícias   ação   condição

Ações permitidas:
drop = Exclui a mensagem
aflag:texto = Insere "texto" antes do nick do autor da mensagem.
flag:texto = Insere "texto" antes do assunto da mensagem
score:valor = Amensagem receberá o marcador estipulado em valor, para processar regras futuras. O valor pode ser na forma +X, -X ou X. Mais detalhes logo abaixo.

Observações importantes:
1. O NFilter permite o uso do coringa * (asterisco).
2. Não use espaços nas regras. Substitua-os por * (asterisco).
3. Não deixe linhas em branco! Caso queira deixar um espaço entre uma linha e outra, utilize o caracter #.

Veja a seguir, alguns exemplos de regras populares:

5.1. Filtro por IP [Topo]

u-br.*   drop   NNTP-Posting-Host:*200.221.5.1
A linha acima bloqueia todos o IP 200.221.5.1

u-br.*   drop   NNTP-Posting-Host:*200.221.*.*
Já essa opção, bloqueia todos os IPs que começam com 200.221

5.2. Filtro por IP e nick (regras em cadeia) [Topo]

u-br.*   score:+10   NNTP-Posting-Host:*200.248.*.*
u-br.*   score:+10   From:*Fulano*
u-br.*   drop           score:20 As três linhas acima, bloqueariam qualquer clone de fulano que estivesse usando algum IP dentro da faixa 200.248.x.x.

1. Na linha um, as mensagens da faixa 200.248.x.x recebem mais 10 pontos no contador interno do NFilter (contador utilizado para processar regras).
2. Na linha dois, as mensagens de Fulano, recebem mais 10 pontos.
3. Por fim, a última linha exclui mensagens que tenham recebido 20 pontos nas mensagens anterior. Portanto, mensagens de Fulano que não tenham sido originadas a partir da faixa 200.248.x.x, não serão bloqueadas, pois receberam apenas 10 pontos na segunda linha. Já mensagens originadas desta faixa de IP e enviadas por Fulano, serão bloqueadas, pois receberam 10 pontos na primeira linha (quando a condição da regra desta linha coincidiu com a mensagem), e mais 10 na segunda linha (quando a regra desta também coincidiu). Logo, 10+10=20.

5.3. Observação na linha "Autor" (From) [Topo]

u-br.*   aflag:[Ler]   From:*Fulano*de*Tal*

O exemplo acima irá colocar a observação "[Ler]" antes de todas mensagens enviadas por "Fulano de Tal". Onde irá aparecer essa observação? No seu newsreader. Para ele, o autor da mensagem será "[Ler] Fulano de Tal".

A partir daí, você pode aplicar regras e/ou filtros do seu newsreader, utilizando [Ler] na linha Autor como condição. O mesmo processo pode ser feito utilizando a linha Assunto. Nesse caso, o exemplo acima ficaria assim:
u-br.*   flag:[Ler]   From:*Fulano*de*Tal*

Observe que na condição você pode usar qualquer item do cabeçalho de uma mensagem. Com as regras em cadeia (utilizando score), é possível analisar todos cabeçalhos da mensagem antes de aplicar um comando baseado no score:valor_final.

5.4. Filtrando Clones [Topo]
"Clones" são mensagens assinadas por usuário Y como se ele fosse usuário X, com o simples intuito de tumultuar o grupo, prejudicando não só apenas o usuário clonado, como todos os outros participantes.
A maneira mais eficiente de evitar clones, é usar o bom senso e não dar atenção a eles. Entretanto, algumas vezes isso não é possível, tornando necessária a utilização de uma ferramenta específica para se livrar deles. E o NFilter é a ferramenta certa para isso.

Conhecendo algumas características básicas das mensagens do usuário original, você pode facilmente filtrar as mensagens do clone.
Para isso, identifique características únicas na mensagem original do autor. Por exemplo, o fato de postar sempre usando Outlook Express 6.00.2900.2180 e postar usando a faixa de IP 200.167.*.* são características únicas. Embora outros usuários possam usar o mesmo newsreader e o mesmo IP, provavelmente usarão nicks diferentes entre si.
Após verificar as características, crie as regras necessárias no NFilter, como abaixo:

# As regras abaixo marcarão usuários usando o nick "Usuário Real".
# Os que não estiverem usando a versão 6.0.29.00.2180 do Outlook Express,
# serão marcados como "Clone". Já os que estiverem usando, serão considerados originais:
u-br.*      score:+5     From:*Usuário*Real*
u-br.*      score:+1     X-Newsreader:*Microsoft*Outlook*Express*6.00.2900.2180
u-br.*      aflag:[O]        score:6
u-br.*      aflag:[CLONE] score:5

a. Na primeira linha todas as mensagens enviadas por "Usuário Real" recebem o marcador de 5;
b. Na segunda linha todas as mensagesn enviadas usando o Outlook Express 6.00.2900.2180 recebem mais 1 ponto de marcador;
c. Na terceira linha, os usuários que receberam pontos na linha 1 e 2, receberão o marcador "[O]" antes do nick do usuário, identificando que o usuário é original. Esta linha pode ser excluída, se desejar não fazer nenhuma alteração no nick dos usuários originais;
d. Por fim, a terceira linha marcará como "[CLONE]" todos os usuários que usarem o nick "Usuário Real" mas não estiverem usando o newsreader que o "Usuário Real" sempre usa. Desta forma, será possível filtrar as mensagens do clone no se newsreader, através do sinal "[CLONE]" que ficará ao lado dos nicks dos autores. Ou se preferir nem baixá-las, pode trocar o item "aflag:[CLONE]" por "drop". Mas essa é uma alteração perigosa, pois se você não fizer a regra corretamente, poderá perder mensagens úteis de usuários que não gostaria de filtrar.

A lógica para filtrar clones é bem simples. Cada característica da mensagem original de uma determinada pessoa recebe um ponto. Se no fim o total de pontos não for equivalente ao total de pontos que o "Usuário Real" receberia, este "Usuário Real" é falso.
Sabendo disso você pode ampliar a precisão das regras acima com a maior facilidade, acrescentando mais características ao seu filtro. Por exemplo:
u-br.*      score:+5     From:*Usuário*Real*
u-br.*      score:+1     X-Newsreader:*Microsoft*Outlook*Express*6.00.2900.2180
u-br.*      score:+1     (alguma característica)
u-br.*      score:+1     (outra característica)
u-br.*      aflag:[O]        score:8
u-br.*      aflag:[CLONE] score:5
u-br.*      aflag:[CLONE] score:6
u-br.*      aflag:[CLONE] score:7

Tome cuidado para não criar regras que possam considerar outros usuários como clones. Construa suas regras de forma que para ser um clone, ele obrigatoriamente deverá estar usando um nick X e postar as mensagens não seguindo tais características típicas do usuário X.


Observe o clone do usuário Zhezow, detectado pelo NFilter e visualizado no Gravity.

Entendendo os conceitos explicados acima, você poderá filtrar praticamente qualquer conteúdo que desejar.

Recomendo a utilização do NFilter em conjunto com o Gravity.

6. Dúvidas e dicas sobre o NFilter

Caso encontre dificuldades para configurar o NFilter, você pode solicitar auxilio através do meu e-mail.

Para usuários da U-BR, podemos trocar informações sobre regras para bloquear mensagens indesejadas e "arruaceiros virtuais" (trolls). Com o intuito de preservar a eficiência dos filtros, não envio informações sobre meus filtros para quem eu não conheço.

Voltar Topo