A muito tempo venho pesquisando e pedindo opiniões referentes a COBRAR com o SQUID e não obtinha sucesso, mas como "água mole e pedra dura, tanto bate até que fura", persisti e encontrei uma forma de poder cobrar nossos clientes de internet através deste software, exibindo mensagens de débitos em atraso e fazendo bloqueios de acesso por falta de pagamento.
Bom, para que possamos mostrar ao Squid quem deve ou quem deverá ser bloqueado devido ao não pagamento, criaremos alguns comandos. Em primeiro lugar iremos mostrar ao Squid as páginas de cobrança.
EX:
deny_info PG_CORTE corte
deny_info PG_AVISO aviso
No exemplo, PG_CORTE e PG_AVISO serão as paginas HTML que você deve criar com os textos referentes a cobrança, aqui eu fiz da seguinte forma:
Na página de CORTE:
|| NOME DA EMPRESA ||
. . MENSAGEM AUTOMÁTICA . .
ACESSO NEGADO!
Desculpe! seu acesso está temporariamente negado, pedimos que entre em contato conosco com total URGÊNCIA! Para que o mesmo possa retornar ao normal, verifique a possível causa:
- Débitos em atraso -
- - Entre em contato com nossa central pelo telefone: ** XXXX-XXXX - -
Na página de AVISO:
|| NOME DA EMPRESA ||
. . MENSAGEM AUTOMÁTICA . .
ATENÇÃO!
Caro cliente, consta em nossos registros DÉBITOS em atraso referentes ao seu acesso, pedimos que entre em contato com máxima URGÊNCIA! Não havendo o pagamento no prazo máximo de 30 dias após o vencimento, seu acesso será bloqueado por completo.
Caso já tenha efetuado o pagamento, favor desconsiderar esta mensagem. Seu acesso será liberado dentro de 1 minuto. Obrigado!
- - Entre em contato com nossa central pelo telefone: ** XXXX-XXXX - -
Para quem usa o Debian como eu, estas páginas deverão estar no diretório /usr/share/squid/errors/English/, sendo PG_CORTE e PG_AVISO.
Você poderá também criar uma página para acesso negado referente ao bloqueio de URLs pornográficas, etc. Veja mais no artigo: A verdade sobre as ACLs do Squid.
[1] Comentário enviado por leoberbert em 25/01/2007 - 13:11h
Amigo você concorda comigo na seguinte forma:
Se vc tiver IP fixo para seus Clientes Isso com certeza vai funcionar, mais e se pro acaso alguem alterar o IP? Na minha opnião vc deveria fazer assim:
acl corte arp "/etc/squid/corte" e dentro de cada uma colocar o endereço mac de cada um deles para que fique mais seguro. Visto que pelo que entendi você pegaria um determinado link e distribuiria entre outras pessoas...
[2] Comentário enviado por fabio em 25/01/2007 - 13:52h
Se for acesso autenticado com IP dinâmico, dá pra criar um script que pegue a relação de usuários x IP do radius e que monte o arquivo de corte dinamicamente.
[5] Comentário enviado por oxroll em 25/01/2007 - 17:38h
Caros colegas, bom, gostei da ideia do amigo LEO, mas é por q no meu caso eu tenho controle de IP x MAC com o IPTABLES, assim se o cliente mudar o IP, ele não navega de forma nenhuma. Mas a idéia é boa!
[6] Comentário enviado por Druide em 26/01/2007 - 10:14h
A solução pode funcionar em partes, pois, como já foi falado, o cliente poderia muito bem alterar o IP dele e conseguir entrar. Mesmo no caso de utilizar o endereço MAC não é tão eficaz, pois é possível alterar a placa de rede ou até utilizar outro endereço MAC na própria rede (sim, é possível).
Creio que as duas alternativas seria fazer o acesso via um login, bloqueando o mesmo quando necessário. OU então, se não quiser ter login, pode fazer uma "lista branca" de endereços MACs, aí então seria possível bloquear por placa. Nesse caso, quando o usuário mudasse a placa de rede precisaria lhe informar para acrescentar na lista. A placa de rede muito comum queimar, esses tempos numa empresa que presto consultoria precisei trocar cerca de 30% delas depois de uma tempestade.
[7] Comentário enviado por oxroll em 26/01/2007 - 17:07h
Bom, como já informei acima, no caso no controle de MAC X IP, não tem como o cliente acessar, aq uso o controle com o IPTABLES e seo clientes alterar o MAC, a PLACA, o IP, qual quer alteração dessas, será necessário reconfigurar o acesso dele no servidor, caso não for feito isso ele não acessa.
[9] Comentário enviado por tiago_herrmann em 27/01/2007 - 00:01h
Olá,
bloquear via MAC Address só seria possível se todos os clientes do provedor estivessem no mesmo domínio de colisão, em outras palavras, eles não poderiam passar por nenhum roteador intermediário em seu caminho até o proxy. MAC address não é roteado, pois pertence a camada de enlace.
Para esta situação realmente o melhor é associar cada MAC a um IP e fazer o controle via IP no squid, ou recorrer a autenticação, que é pouco desejável pois causa alguns transtornos para o usuário.
Realmente é possivel forjar o MAC address em algumas placas, mas para este caso não há muito o que fazer além de tentar um controle via switch gerenciável, que custa relativamente caro e talvez não compense o investimento.
[10] Comentário enviado por ludbaxster em 27/01/2007 - 10:29h
Real mente, essa e uma boa dica que tambem pode ser alterada para pessoas que acessam muitos sites "pula-proxy" alterando apena o texto... podemos deixar o usuario de "castigo"... por algum tempo .
Esses sites malditos por mais que a gente bloqueia via iptables ou squid mais aparecem... parece uma praga..rs..
Parabens pela dica... realmete e fantastica Marcos!
[12] Comentário enviado por bfmano em 29/01/2007 - 14:04h
Caro tiago_herrmann,
Correto, todos deverão estar no mesmo dominio de colisão, mas poderia ser usado uma bridge ou switch transparente, ou seja, que repasse os macs, podendo o controle ser feito via MAC sem problemas.
[13] Comentário enviado por tiago_herrmann em 29/01/2007 - 17:56h
Olá bfmano,
realmente, com um bridge seria possível, porém a utilização de bridges diminui a escalabilidade da rede, uma vez que há o repasse de broadcasts.
É uma ótima opção dependendo do tamanho da rede.
Quando ao switch transparente, nunca ouvi falar. Qual seria o princípio?
[17] Comentário enviado por mega90 em 21/03/2007 - 17:59h
sou novato no linux e uso o cl10.. gostaria de saber em que local do squid.conf colocar as acl para corte e aviso.. coloquei no final e não bloqueou...
[18] Comentário enviado por oxroll em 23/03/2007 - 16:50h
As deny_info vc coloca logo após: http_access deny CONNECT !SSL_ports
depois, vc coloca as ACLs. E na área de http_access, vc coloca como as primeiras as: http_access deny corte e http_access deny atraso aviso.
Qualquer coisa vc me manda seu arquivo SQUID.CONF, que eu completo e te mando de volta.
[21] Comentário enviado por alex_a_souza em 13/06/2007 - 15:17h
Fiz tudo como vc descreveu aki, e não funcionou nada o squid deu pau.
Tive que comentar tudo pra voltar a funcionar.
A pagina pode ter .html, eu tava vendo as outras paginas de erro e elas não tinha a .html no final.
Vou add vc no messenger, OK!!!!
[22] Comentário enviado por adrianoturbo em 20/07/2007 - 08:28h
Bem simples bloqueia o Squid via ssh até o cliente sanar todas as dívidas seria anti-ético fazer esse tipo de coisa ,mas colocando essas regras no contrato tudo é possível.
[23] Comentário enviado por wellingtonpg em 23/02/2008 - 13:16h
Também gostei muito, aida mais das ideias de nossos amigos.
Coloquei na empresa e está sendo de granda valia, todos os inadimplentes estão nos ligando....
MUITO BOM MESMO....rs
[24] Comentário enviado por cytron em 23/02/2008 - 16:39h
Opa jacolinux!!!
Só hoje entrei no VOL, foi mal pela demora.
Meu método de autenticação é um servidor pppoe (rp-pppoe) que é o NAS, ele autentica no Radius (freeradius+MySQL). Pelo freeradius dá para especificar user bloqueado (badusers) e data de expiração, com isso desenvolvi um sisteminha de controle de clientes, pagamento de mensalidades, esse sistema coloca automaticamente a data de expiração sempre para o próximo mês, então se o cliente pagar a mensalidade eu lanço o pagamento e o sistema renova a data de expiração, com isso, se o cliente não pagar ele expira sem que eu precise fazer isso. E quando quero bloquar um user, vou no sistema e bloqueio, o sistema vai no banco de dados do radius e lança ele na tabela badusers. O freeradius já barra o user apartir daí.
Sei que eu poderia usar uma aplicação pronta como Mikrotik, ApLinux e até mesmo o SAGU.
Mas cá entre nós, não estou vivo porque é rum morrer! Estou vivo porque adoro viver, fazer as coisas. Não teria graça alguma se eu não pudesse fazer eu mesmo.
Uso Linux não porque é seguro e funcional, eu uso porque gosto de mexer nele, configurar... Linux é muito doido! hehehe
Não penso no meu provedor como um trabalho, penso como meu divertimento. É tão bom mexer em Linux. eheheh.
Pois é, fui um pouco além né? Desculpem.
Quando falo de Linux sempre empolgo. Atire a primeira pedra quem nunca vibrou ao fazer uma configuração no Linux. kkkk!!!
[25] Comentário enviado por lucianoonwave em 12/08/2008 - 21:28h
Na tentativa de fazer esses passo, deu certo da seguinte maneira:
Ele não abre a pagina de aviso ou corte que está dentro do diretorio de errors, ele abre o arquivo ERR_ACCESS_DENIED.
Ele não faz hora em hora, se eu colocar apenas uma hora ele faz, lembrando que ele abre a pagina ERR_ACCESS_DENIED sempre.
Se eu colocar varios horarios ele não faz.
[26] Comentário enviado por oxroll em 13/08/2008 - 12:34h
Olá Luciano, verifique se vc está usando corretamente as deny_info.
ex:
deny_info PG_CORTE corte
deny_info PG_AVISO aviso
lembrando que no lugar de "corte" e "aviso" deverá ter o nome das acls q vc criou. ah...e estas deverão está antes de das outras regras.
E quanto ao tempo, acho estranho o fato de funcionar somente com um determinado horário, tente copiar e colar o exemplo q fiz acima
do arquivo TEMPO. Vlw.,...qual quer dúvida, estamos aí...