Liberar MSN por MAC Address

Publicado por Julian Castaman em 03/07/2008

[ Hits: 21.193 ]

 


Liberar MSN por MAC Address



Esse tutorial mostra como bloquear o MSN da sua rede e liberar somente para os MAC desejados.

Introdução + Iptables + Squid

Depois de muita luta, ajuda de outros usuários e pesquisas, consegui liberar o MSN da minha rede somente para os MAC desejados. Como não encontrei nenhum artigo ou tutorial em lugar algum sobre isso, resolvi escrevê-lo caso alguém tenha a mesma necessidade que eu. Como a minha rede tem DHCP, o controle por IP fica impossível, pois é uma assistência técnica e toda hora tem micros diferentes. Então eu bloqueei o MSN para todos e liberei para os MACs desejados.

SO: Slackware 12.1

Vamos aos procedimentos.

Primeiramente bloqueei com iptables. Como o MSN usa várias formas de se conectar, bloqueei ele no iptables para fazer com que só conseguisse se conectar pela porta 80, passando obrigatoriamente pelo meu Squid.

Coloque no /etc/rc.d/rc.local as seguintes regras do iptables:

iptables -A FORWARD -s rede -p tcp --dport 1863 -j REJECT
iptables -A FORWARD -s rede -d loginnet.passport.com -j REJECT

Onde rede seria a classe da rua rede interna. Ex: 192.168.1.0/24.

Feito isso o MSN só conseguirá se conectar através da porta 80 a qual iremos fazer o controle pelo Squid.

No Squid criaremos acl para cada MAC que deseja ter acesso ao MSN. Adicione no squid.conf:

#Assim estou criando acl para os micros gerente e supervisor,
#os quais terão permissão para acessar o msn.
acl gerente arp X:X:X:X:X:X
acl supervisor arp X:X:X:X:X:X
#X:X:X:X:X:X - Isso significa o MAC do micro.

#Essa acl para o MSN
acl msn url_regex -i /gateway/gateway.dll

#Aqui estamos bloqueando o msn exceto para os micros gerente e supervisor.
http_access deny msn !gerente !supervisor

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Ajustar horário de verão no Slackware

Configurar o APT-GET com proxy com e sem autenticação

Configurar repositório APT local no Debian sem a necessidade de configurar o Apache

Recebendo torpedo sms (vivo) de um Servidor (Ubuntu Server)

Linux mais do que um sistema, uma cultura

  

Comentários
[1] Comentário enviado por comfaa em 20/10/2008 - 11:05h

boa dica

[2] Comentário enviado por letwu em 28/11/2008 - 15:15h

Amigo,

Tentei usar a sua opção, pois preciso liberar o MSN para algumas máquinas aqui na empresa, porém não deu certo.

A minha configuração ficou a seguinte:

# ACL para liberar MSN por MAC ADDRESS
acl renato arp 00:1E:C9:1F:D6:E3

# Libera o MSN
acl msn url_regex -i /gateway/gateway.dll

# Bloqueando o MSN e travando para o micro do Renato
http_access deny msn !renato


Retornou o seguinte erro:

2008/11/28 15:10:26| aclParseAclLine: Invalid ACL type 'arp'
FATAL: Bungled squid.conf line 1813: acl renato arp 00:1E:C9:1F:D6:E3
Squid Cache (Version 2.6.STABLE12): Terminated abnormally.


PS: tentei usar o endereço MAC entre 2 pontos ( 00:1E:C9:1F:D6:E3 ), divididos por traço (00-1E-C9-1F-D6-E3) e nada deu certo.

Enfim... o erro se deu ao definir a "acl + arp + número_do_mac_address"

Se puderem me ajudar, agradeço.

[3] Comentário enviado por maninhx em 28/11/2008 - 16:33h

quando você compilou seu squid provavelmente voce nao compilou com suporte para controle de mac.

ex.

./configure --enable-arp-acl

[4] Comentário enviado por letwu em 03/02/2009 - 15:19h

Amigo, eu não precisei compilar o meu Squid.

Utilizo a versão 12.2 do Slackware e instalo os pacotes (pelo comando installpkg ) com a extensão .tgz, que são como se fosse executáveis (no Windows).

Eu refiz as configurações e os "paus" citados acima, não ocorrem mais, porém também não bloqueiam nada, ou melhor, não desbloqueiam. Fica tudo travado.

Só funciona se eu retirar as máquinas do Proxy. Se elas estiverem no proxy, nada feito!

Só para entendimento, uso um firewall na borda, com Squid e Iptables barrando portas, e uso um proxy com Squid e ACL para barrar conteúdo.

Aqui na minha empresa, não consegui fazer funcionar o MSN com máquinas que autenticam no proxy.

Já na empresa de um amigo, que só tem uma máquina pra Proxy, eu rodo um script no rc.local barrando as portas do MSN (portas mesmo, e não somente o gateway.dll que só pegam as versões antigas do MSN) e forço que as portas não sejam redirecionadas, e lá funciona normalmente. Porém eu não posso barrar as portas por script aqui, e nem alterar a topologia da rede por conta de um simples programa de MSN.

[5] Comentário enviado por letwu em 03/02/2009 - 18:14h

Só complementando o post anterior, no que eu fiz que FUNCIONA na empresa de um amigo.

Criei um script em /etc com o nome de Bloqueia_MSN e coloquei dentro de /etc/rc.local

O conteúdo do script é:

#!/bin/bash
IP=/usr/sbin/iptables


$IP -A INPUT -p TCP --dport 1863 -j REJECT
$IP -A INPUT -d 64.4.13.0/24 -j REJECT
$IP -A FORWARD -p TCP --dport 1863 -j REJECT
$IP -A FORWARD -d 64.4.13.0/24 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -p tcp --dport 1863 -j REJECT
$IP -t mangle -A PREROUTING -p tcp --dport 1863 -j DROP
$IP -t mangle -A PREROUTING -d 63.208.13.126 -j DROP
$IP -t mangle -A PREROUTING -d 64.4.12.200 -j DROP
$IP -t mangle -A PREROUTING -d 64.4.12.201 -j DROP
$IP -t mangle -A PREROUTING -d 65.54.131.249 -j DROP
$IP -t mangle -A PREROUTING -d 65.54.194.118 -j DROP
$IP -t mangle -A PREROUTING -d 65.54.211.61 -j DROP
$IP -t mangle -A PREROUTING -d 207.46.104.20 -j DROP
$IP -t mangle -A PREROUTING -d 207.46.110.2 -j DROP
$IP -t mangle -A PREROUTING -d 207.46.110.254 -j DROP
$IP -t mangle -A PREROUTING -d 207.46.245.222 -j DROP
$IP -t mangle -A PREROUTING -d 207.46.245.214 -j DROP
$IP -t mangle -A PREROUTING -d 201.7.178.63 -j DROP
$IP -t mangle -A PREROUTING -d 201.7.178.63 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -p tcp --dport 1863 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -p tcp --dport 1863 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -d 64.4.13.0/24 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -d 65.54.183.192 -j REJECT
$IP -A INPUT -s 192.168.254.0/24 -d 69.64.38.128 -j REJECT
$IP -A INPUT -s 192.168.254.0/24 -d 64.191.91.149 -j REJECT
$IP -A FORWARD -s 192.168.254.0 -p tcp --dport 1863 -j REJECT
$IP -A FORWARD -s 192.168.254.0 -d loginnet.passport.com -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -p tcp --dport 1863 -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -d loginnet.passport.com -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -d messenger.hotmail.com -j REJECT
$IP -A FORWARD -s 192.168.254.0/24 -d webmessenger.msn.com -j REJECT
$IP -A FORWARD -p tcp --dport 1080 -j DROP
$IP -A FORWARD -s 196.168.254.0/24 -p tcp --dport 1080 -j REJECT


Este script bloqueia as portas do firewall no iniciar, ou seja, bloqueia as portas na mesma máquina que faz papel de Proxy Web por meio de ACL que rodam no Squid para fazer o controle de acesso e conteúdo.


Segue abaixo configuração do Squid, onde faz o controle de conteúdo e acesso.

#acl autenticados proxy_auth REQUIRED

acl all src 0.0.0.0/0.0.0.0
acl mga src 192.168.254.0/255.255.255.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 25 # smtp
acl Safe_ports port 110 # pop3
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#ACLs que controlam o acesso por usuários
acl total src "/etc/squid/total"
acl liberados_msn src "/etc/squid/liberados_msn"
acl limitado src "/etc/squid/limitado"
acl permitido_sites url_regex -i "/etc/squid/permitido_sites"
acl limitado_sites url_regex -i "/etc/squid/limitado_sites"

#ACLs que controlam o acesso por horário
acl manha time MTWHF 06:00-08:00
acl almoco time MTWHF 12:00-13:00


#ACLs que bloqueiam acesso ao MSN
acl msn_port port 1863
acl msn_port2 port 5223
acl serv_msn dst 200.46.110.0/24
acl serv_msn dst 64.4.13.0/24
acl app_msn req_mime_type -i ^application/x-msn-messenger$
acl msn_messenger url_regex -i gateway.dll
acl msn_dom dstdomain loginnet.passport.com
acl msn_dom dstdomain messenger.msn.com
acl msn_dom dstdomain messenger.msn.ca
acl msn_dom dstdomain messenger.msn.net
acl msn_dom dstdomain im.sapo.pt
acl msn_dom dstdomain webmessenger.msn.com
acl msn_dom dstdomain c.msn.com
acl msn_dom dstdomain config.messenger.msn.com
acl msn_dom dstdomain login.live.com

... (continua)

#HTTP_ACCESS

http_access allow localhost
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow total all
http_access allow mga permitido_sites
http_access allow limitado limitado_sites

#Bloqueando MSN
http_access deny CONNECT msn_port !liberados_msn
http_access deny msn_port !liberados_msn
http_access deny msn_port2 !liberados_msn
http_access deny serv_msn !liberados_msn
http_access deny app_msn !liberados_msn
http_access deny msn_dom !liberados_msn

... (continua)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts