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.571 ]

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


Configurando o subdomínio para a página de aviso



No meu caso estou utilizando Conectiva 8 e utilizei o linuxconf para criar um subdomínio. Neste artigo vamos considerar que o subdomínio responderá como pendencia.seuprovedor.com.br.

Primeiro vamos criar o diretório onde a página de aviso ficará hospedada no servidor:

# mkdir /home/pendencia

Utilize um editor HTML que você já esteja acostumado para criar a página de aviso que você quer que seu usuário receba e transfira o arquivo para o diretório /home/pendencia.

Aqui eu criei uma página bem simples para o aviso do cliente. Caso precise de um exemplo basta verificar em:
Agora vamos configurar o subdomínio.

Acesse o linuxconf. Você precisa estar logado como root:

# linuxconf
--> Rede --> DNS - Servidor de Nomes de Domínios --> Configurar --> Adicionar

Adicione o subdomínio pendencia.seuprovedor.com.br.

Reinicie o servidor de DNS:

#/etc/init.d/named stop
#/etc/init.d/named start


Pronto! Agora precisamos configurar o Apache para responder localmente para este subdomínio. Localize e abra o arquivo de configuração do Apache "httpd.conf" em seu editor de textos predileto e acrescente no final do arquivo a configuração conforme o exemplo abaixo:

# find / -iname httpd.conf

Para facilitar, no Conectiva 8 o arquivo httpd.conf fica em /etc/httpd/.

Configuração:

<VirtualHost IPVIRTUAL> # Substitua a palavra IPVIRTUAL pelo número do IP da interface virtual que você criou, pois é esta linha que fará com que o Apache responda localmente em sua rede.

ServerAdmin seuemail@seuprovedor.com.br #Aqui deverá ser acrescentado o endereço de email da pessoa responsável pelo subdomínio.

ServerName pendencia.seuprovedor.com.br #Aqui você deverá informar o subdomínio que você criou através do linuxconf.

DocumentRoot /home/pendencia/ # É aqui que você informa o caminho local onde a página de aviso está salva em seu servidor para que o Apache a busque toda vez que o usuário tente acessar a Internet.

Options ExecCGI # Faz com que neste diretório possam ser executados arquivos CGI.

</VirtualHost> # Esta linha serve para encerrar o script de configuração.

Seu script de configuração do Apache deverá está parecido com o modelo abaixo:

<VirtualHost IPVIRTUAL>
      ServerAdmin seuemail@seuprovedor.com.br
      ServerName pendencia.seuprovedor.com.br
      DocumentRoot /home/pendencia/
      Options ExecCGI
</VirtualHost>

Bom, agora é só aplicarmos as configurações.

Reinicie o Apache:

# /etc/init.d/httpd restart

Vá até a próxima página deste artigo.

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

Snort - The Open Source Network Intrusion Detection System

Configurando o OpenVPN no SuSE Linux Enterprise Server (SLES)

Servidor de DNS com DNS reverso, DHCP3 e wpad.dat

Attik Firewall

Elevação de privilégios locais

  
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