Bloqueio de usuários com página de aviso

Neste artigo vou mostrar como bloquear usuários que acessam a Internet através de compartilhamento via iptables, fazer com que estes usuários bloqueados recebam uma página de aviso sobre o bloqueio. Isto ajudará muito a provedores de acesso a Internet a rádio que sentem a necessidade de bloquear usuários com pendências.

[ Hits: 63.562 ]

Por: Nélio Soares de Freitas em 16/05/2005


Criando um IP virtual para reposta local do subdomínio



Todo subdomínio, bem como domínio, somente funciona se houver um IP atribuído a ele.

Primeiramente precisamos criar um IP virtual para nossa placa de rede para que o subdomínio responda em nossa rede local. No meu caso criei o IP virtual 192.168.255.1.

Você deverá criar o seu IP virtual de acordo com a classe IP que você utiliza (exemplo: 10.0.0.1, 100.0.0.1).

Para isso vá até a pasta /etc/sysconfig/network-scripts:

# cd /etc/sysconfig/network-scripts

Localize o arquivo ifcfg-ethX da sua interface de rede local e faça uma cópia deste arquivo com o nome "ifcfg-ethX:255"

# cp ifcfg-ethX ifcfg-ethX:255

Este arquivo é responsável pelo funcionamento da sua interface de rede e é através dele que nós criaremos uma interface virtual para que nosso subdomínio funcione.

Não esqueça que "X" se refere ao número da sua interface de rede local (exemplo: eth0, eth1).

Agora precisamos editar o arquivo que criamos. Abra-o com seu editor de textos predileto e apague todas a linhas do arquivo, exceto essas:

#IPADDR="192.168.255.1"      # número IP VIRTUAL
#NETMASK="255.255.255.252" # Mascara de subrede

Salve o arquivo e reinicie a rede:

# /etc/initd.d/network restart

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando um IP virtual para reposta local do subdomínio
   3. Configurando o subdomínio para a página de aviso
   4. Bloqueando o usuário
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Mudança de hábito: autenticando usuários em base de dados MySQL

VPN com openVPN no Slackware 11

Quão segura é a sua senha?

Introdução a criptografia

Chroot + Bind sem stress

  
Comentários
[1] Comentário enviado por parad em 16/05/2005 - 15:39h

Nélio, como posso programar o sistema para que o acesso a internet seja encerrado após um período?
Tipo o sistema após 2 horas encerra o acesso a internet e o usuário tera que se logar novamente.

Grato

[2] Comentário enviado por gustavo_marcon em 16/05/2005 - 18:25h

parad, acho que para esse esquema de logar novamente seria mais interessante vc usar o squid. tem alguns artigos sobre isso aqui no site mesmo.

[3] Comentário enviado por agk em 16/05/2005 - 19:13h

Bacana o artigo, nos abre diversas possibilidades quanto ao bloqueio de acessos. Mas acredito que só bloquear a porta 80 não seja o suficiente, a não ser que as demais já estejam previamente bloqueadas. Não sei se todos os provedores de internet a rádio fazem, mas aqui na minha cidade eles bloqueiam tudo, você não consegue fazer nada, apenas acesso a páginas, e-mail e msn. Se for para ter internet assim eu prefiro discada.

[4] Comentário enviado por alissonline em 16/05/2005 - 21:36h

Legal! Estou mesmo precisando usar no meu pequeno provedor...
mas Uso Slack e num encontrei a o diretorio sysconfig... como faço pra encontrar o arquivo?

[5] Comentário enviado por ronner em 17/05/2005 - 10:55h

procure heim, /etc/rc.d/rc.inet1.conf equivale ao padrão usado neste exemplo.

[6] Comentário enviado por infocampi em 17/05/2005 - 21:02h

Complementando o artigo e o comentário do nosso amigo AGK pode usar o seguinte script para bloquear por completo o usurário:

# iptables -A FORWARD -p all -s IPDOCLIENTE -j DROP
# iptables -A INPUT -p all -s IPDOCLIENTE -j DROP
# iptables -A OUTPUT -p all -s IPDOCLIENTE -j DROP

[7] Comentário enviado por klaitonlc em 18/05/2005 - 13:39h

Olá como faço pra adicionar um dominio no DNS do red hat 9, visto q ele não tem linuxconf.

[8] Comentário enviado por HaCkErX em 19/05/2005 - 11:42h

Muito bom esse artigo, mas eu queria saber se você poderia me passar como que coloco uma autenticação no meu sistema via web, sendo, todo cliente para acesar a rede ou internet terá que autenticar na página.

[9] Comentário enviado por infocampi em 20/05/2005 - 08:02h

Caro Amigo HaCkErX dê uma olhada neste artigo, talves seja o que você está procurando.

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=73

[10] Comentário enviado por Bique em 22/11/2005 - 09:10h

Bom esse seu artigo...E por isso que o mundo livre continua BUE DE FIXE...Será possivel responder aos users com um banner de proibição?Um abrço de Moçambique.

[11] Comentário enviado por enioha em 03/02/2006 - 12:23h

Tenho uma rede interna. configurado um compartilhamento de internet junto com um PDC(Samba). Quero apenas que o usuario do ip 192.168.0.10 acesse os seus e-mail atravez de outlook(portas 110 e 25) e não consiga navegar pelo browser.. Como aplicar isto em uma regra do iptables para que funcione sem usar o Squid???

[12] Comentário enviado por infocampi em 03/02/2006 - 18:13h

Você poderá bloquear esse usuário no squid acrescentando as seguintes regras em seu arquivo de configuração do squid:
#acl ips_bloqueados src "/etc/squid/ips_bloqueados.txt
#http_access deny ips_bloqueados
Você deverá criar o arquivo "ip_bloqueados.txt", onde você colocará o ip do usuário que você quer que não tenha acesso a web.
Fazendo desta forma você bloqueia o acesso deste user na net, mas o deixa com acesso aos outros serviços do server.

[13] Comentário enviado por robertochaves em 16/03/2006 - 13:49h

Comentário enviado por Roberto/Fortaleza-ce 16/03/2006

Tenho uma rede interna. E o servidor WEB e SAMBA. Quero apenas que tres máquina acesse a internet. Como aplicar isto usando o Squid? Tenho que colocar IP fixo em todas as minhas máquinas. E como aplicar isto em uma regra que funcione sem usar o Squid?

Atenciosamente,
Roberto

[14] Comentário enviado por MASTERGTx em 08/05/2006 - 10:05h

Ele não quer bloquear o cliente ele apenas quer rediorecionar o cliente para uma página informando que ele está em débito com o provedor, agora se vc bloquear todo o acesso dele a net ele também não irá ver aviso algum, para resolver isso na minha solução eu uso esta regra que impede qualquer navegação, msn ou algo use a net, ele ficará sempre preso ao gateway vendo o aviso em caso de abrir páginas:

redireciona o ip sempre para uma porta virtual que fiz
iptables -A PREROUTING -t nat -i eth3 -s IP -p tcp --dport 80 -j DNAT --to IP:81
#Estou limitando o cliente apenas a uma navegação dentro do servidor gateway
iptables -A FORWARD -s IP -j ACCEPT
iptables -A FORWARD -d IP -j ACCEPT

#Conf dentro de /etc/apache/httpd.conf
<VirtualHost *:81>
ServerAdmin webmaster@dominio.com.br
DocumentRoot /paginas/aviso
DirectoryIndex index.html index.php
ServerName aviso.dominio.com.br
ErrorLog /var/log/error_log
CustomLog /var/log/access_log common
</VirtualHost>


Espero ter ajudado.

Com esses parâmetros dá pra fazer um hotspot básico..
Valeu

[15] Comentário enviado por julinhoramones em 12/07/2006 - 12:14h

Em relação ao colega Eniocha, se no caso você queira liberar o tráfego para portas 25 e 110 sendo como destino e bloquear o restante é bem simples,
você pode inserir as seguintes regras na chain FORWARD.

inter_local=XXX
ip_cliente=ZZZ.ZZZ.ZZZ.ZZZ
onde ZZZ.ZZZ.ZZZ.ZZZ é o IP do cliente que você quer liberar o repasse de pacotes para as portas destinatárias 25 e 110.
onde XXX é sua interface de rede local, por ex.: eth0, eth1, eth2........
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $inter_local -m multiport -s $ip_cliente -p tcp --dport ! 25,110 -j DROP
iptables -A FOWARD -i $inter_local -s 192.168.0.0/24 -j ACCEPT



[16] Comentário enviado por cytron em 08/01/2007 - 15:30h

Este artigo está meio parado desde o ano passado mas sempre dá tempo de comentar... hehehe

No meu ver, para bloqueio de usuário não é muito ideal, apesar de funcionar (incluindo a regra de iptables do infocampi), mas desde artigo dá para tivar muito mais proveito para a criação de subdomínios, regras para impedir acesso a certos subdomínios, tipo... o cliente não pode acessar o domínio do sistema de administração de clientes, seria uma segurança em tanto, ao invés de apenas senhas.

E ainda dá para sacar facilmente como dar subdomínios para os clientes.

O artigo ficou bom!

[17] Comentário enviado por netgloria em 14/11/2007 - 19:51h

?comentario=gostaria de saber onde encontro um modelo da tela avisando ao cliente


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts