Publicada por infocampi em 07/12/2004 - 20:33h:
* infocampi usa Debian

Olá Galera !

Tenho um provedor de internet a rádio com meu WebServer no CL8.
O controle de acesso e compartilhamento Web dos meus clientes é feito da seguinte forma:

#Cliente Fulano de Tal -------------------------------- ---------------
#Comparilhamento da Net
/usr/sbin/iptables -t nat -A POSTROUTING -s IPDOCLIENTE -j MASQUERADE
#Controle de Acesso através da Mac Address da Placa Wireless
/usr/sbin/iptables -A INPUT -s IPDOCLIENTE -m mac --mac-source ! 00:00:00:00:00:00
#Redirecionamento para proxy transparente
/usr/sbin/iptables -t nat -A PREROUTING -s IPDOCLIENTE -p tcp --dport 80 -j REDIRECT --to-port 3128

De uns tempos pra cá comecei a encontrar a necessidade de bloquear meus clientes mau pagadores usando a seguinte regra:

#Cliente mau pagador --------------------------
/usr/sbin/iptables -A FORWARD -p all -s IPDOCLIENTE -j DROP
/usr/sbin/iptables -A INPUT -p all -s IPDOCLIENTE -j DROP
/usr/sbin/iptables -A OUTPUT -p all -s IPDOCLIENTE -j DROP

Porém eu queria encontrar uma forma de quanto eu bloqueasse o cliente por falta de pagamento ele fosse direcionado para uma página HTML ou um endereço Web dando a ele tipo um aviso que o acesso dele foi suspenso temporariamente e que ele deve entrar em contato com o provedor de internet o mais urgente possivel.


Se alguém puder me ajudar ficaria inteiramente agradecido !

  
 
Resposta de gnu em 07/12/2004 - 20:44h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


iptables -A PREROUTING -p all -s IPDOCLIENTE -d all -j DNAT - - to IPDAPAGINADEAVISO
olha.. eu naum tenho certeza de que vá funcionar, pois não tenho como testar aqui... mas teste e poste o resultado para que possamos analizar.

 
Resposta de infocampi em 08/12/2004 - 20:56h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Fiz o teste, mas não funcionou ! Mesmo assim se funcionasse talvez não resolveria o meu problema, pois o mesmo WebServer que eu utilizo para servir a internet para o meus clientes, também é o mesmo servidor que utilizo para hospedar minhas páginas Web (que estão setadas no mesmo ip válido do servidor), então eu acredito que não funcionaria pois eu teria que deixar um unico ip para a página html que quero que seje visualizada obrigatoriamente pelo cliente.


Valeu pela ajuda !

 
Resposta de gnu em 13/12/2004 - 22:00h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


vc pode setar um ip virtual pra sua placa de rede, não necessariamente válido para hospedar a página de aviso, e redirecionar seus clientes para a pagina de aviso hopedada neste ip virtual. é uma sugestão.

 
Resposta de infocampi em 14/12/2004 - 08:09h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Tentei fazer desse jeito, direcionando todas as requisições da porta 80 para o endereço do provedor, porém na hora que o cliente tenta abrir o navegador ele fica tentando abrir a página do provedor repetidamente, mas não consegue. Será que fiz alguma configuração errada ???

/usr/sbin/iptables -t nat -A PREROUTING -s 192.168.66.2 -p tcp --dport 80 -j REDIRECT -d www.infocampi.com.br


 
Resposta de gnu em 15/12/2004 - 10:23h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


tenta assim: iptables -A PREROUTING -t nat -p tcp -s 192.168.66.2 -p tcp --dport 80 -j DNAT --to www.infocampi.com.br
ve ae se deu certo.

 
Resposta de infocampi em 15/12/2004 - 12:24h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Tentei fazer dessa forma e não deu certo, o IPTABLES retornar uma resposta que não aceita multiplas Flags (-p TCP) e uma unica regra, tentei tirar o que está entre aspas na regra ai ele me retornou "bad address infocampi.com.br", ai troquei o www.infocampi.com.br para nº do ip do meu servidor e ele me retornou "can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded" e sem modificação

Abaixo esta a regra que você postou com a modificação entre aspas
"iptables -A PREROUTING -t nat -s 192.168.66.2 -p tcp --dport 80 -j DNAT --to www.infocampi.com.br"

/usr/sbin/iptables -t nat -A PREROUTING -s 192.168.66.2 -p tcp --dport 80 -j REDIRECT -d www.infocampi.com.br



 
Resposta de gnu em 15/12/2004 - 14:09h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


iptables -a PREROUTING -t nat -s 192.168.66.2 -p tcp --dport 80 -j DNAT --to 200.148.154.194 #ip do site da infocampi

aqui funcionou que eh um coco... todas as requisições vindas da maquina que eu coloquei no lugar do teu 192.168.66.2 foram redirecionadas pro site da infocampi.

 
Resposta de gnu em 15/12/2004 - 14:20h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


Apenas voltando ao que conversamos anteriormente, sobre a idéia do ip virtual, você pode, por exemplo, dar um ifconfig eth0:1 192.168.0.1 (setando o ip virtual 192.168.0.1 para sua eth0) e hospedar uma pagina de cobrança nesse ip virtual. Assim, basta adicionar a regra
iptables -a PREROUTING -t nat -s IPDOCLIENTE -p tcp --dport 80 -j DNAT --to IPVIRTUAL (192.168.0.1 ou o que você quiser)
Valew.. poste os resultados..

 
Resposta de gnu em 15/12/2004 - 15:13h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


Ah, no caso do erro: "can't initialize iptables table `NAT': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded" e sem modificação
você está levantando o modulo nat? Se não, acrescente os comandos:
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

 
Resposta de infocampi em 15/12/2004 - 16:22h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Estes são os modulos nat que estão sendo carregados.

Será que o meu IPTABLES não está desatualizado ?

/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_tables
/sbin/modprobe ipt_unclean
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE

 
Resposta de gnu em 15/12/2004 - 18:35h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


você testou: iptables -a PREROUTING -t nat -s 192.168.66.2 -p tcp --dport 80 -j DNAT --to 200.148.154.194 #ip do site da infocampi ?


 
Resposta de infocampi em 15/12/2004 - 18:41h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


exatamente !

 
Resposta de gnu em 15/12/2004 - 21:16h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


e funcionou?

 
Resposta de infocampi em 16/12/2004 - 07:57h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Não !!!

:(

 
Resposta de gnu em 16/12/2004 - 16:05h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


manow.. realmente naum posso entender o que está acontecendo ai.. testei este comando em um gateway com slackware 9.1 com kernel 2.4.22 (uma instalação básica, e funcionou perfeitamente). Tive problemas de segmentation fault com o slackware 10. Qual a versão do kernel e do iptables?

 
Resposta de infocampi em 16/12/2004 - 16:40h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Ok ! Vamos lá !

Meu kernel é versão 2.4.18-2cl
Itables é a versão 1.2.4

 
Resposta de gnu em 16/12/2004 - 21:43h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


desinstale seu iptables e experimente instalar o iptables versão 1.2.9 http://www.sosdg.org/rpm/iptables/iptables-1.2.9-5.i386.rpm

 
Resposta de gnu em 16/12/2004 - 23:01h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


tem um erro nas minhas regras acima. Essa é a regra certa:
iptables -A PREROUTING -t nat -s 192.168.66.2 -p tcp --dport 80 -j DNAT --to 200.148.154.194 #ip do site da infocampi

tava -a (minúsculo) PREROUTING e deve ser -A (maiúsculo) PREROUTING

 
Resposta de gnu em 16/12/2004 - 23:05h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


e ali no --to, naum se engane, é - - (dois menos, um ao lado do outro, e não um só) Desculpe.. sei que estou falando coisas muito óbvias, mas devemos evitar todos os enganos. Uma vez apanhei muito por causa de um > (pipe) no lugar errado...

 
Resposta de infocampi em 19/12/2004 - 14:04h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Blz ! Eu tinha percebido o erro e tinha arrumado !


 
Resposta de gnu em 20/12/2004 - 18:36h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


com seu iptables atualizado as regras funcionaram?

 
Resposta de gnu em 21/12/2004 - 21:20h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


poste ou mande um e-mail para podermos continuar...

 
Resposta de infocampi em 10/01/2005 - 08:08h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Para atualizar o meu iptables, precisarei atualizar o meu kernel e não sei se daria conta, um "kernel panic" no meu provedor seria a morte pra mim ! Será que é realmente necessário a atualização do IP tables ?

 
Resposta de gnu em 23/01/2005 - 19:08h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


não será necessário atualizar seu kernel. apenas atualize o pacote iptables.

 
Resposta de infocampi em 24/01/2005 - 08:14h:
* infocampi usa Debian
* infocampi tem conceito: nenhum voto.
 


Eu tentei atualizar o iptables com um pacote RPM ele pediu para instalar como dependencia o Kernel do Linux.

 
Resposta de gnu em 24/01/2005 - 09:04h:
* gnu usa Slackware
* gnu tem conceito: 8.2
 


tenta baixar o fonte e compilar http://www.netfilter.org/files/iptables-1.2.9.tar.bz2

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.