No mundo da informática onde os usuários avançados do uso de tecnologia sempre foi uma pessoa individual e que muitas vezes sempre esta sozinho numa sala altas horas da noite, sem ter ninguém para conversar, ou ate mesmo conhecer outras pessoas, surgiu a ideia de salas de bate-papo, lista de discussão, onde teríamos a possibilidade de conversar com outras pessoas no anonimato, com o passar do tempo foram criados as REDES SOCIAIS, onde podemos falar com outras pessoas, postar fotos, tirinhas, pensamentos etc, hoje em dia o mais famoso das redes sociais é o FACEBOOK, porem o que deveria ser uma forma de expressão e convite para outras pessoas tornou-se uma incrível dor de cabeça para os administradores de redes, que por muitas vezes é solicitado pela Direção da empresa para bloquear sites da internet evitando o acesso não permitido a alguns desses conteúdos, normalmente é usado o squid para fazer esse trabalho, muitas vezes usamos o proxy na forma não transparente e dai conseguimos fazer o controle dos sites visitados e conseguimos fazer o bloqueio do site do facebook, as vezes não podemos usar desse procedimento, e precisamos usar o proxy como transparente e principalmente quando usamos a opção de lista negra (neste caso vamos classificar essa lista como toda a internet aberta e temos uma lista de sites onde o usuário não pode visitar) , neste caso o usuário simplesmente usa a url https://www.facebook.com e a pagina principal do facebook irá aparecer mesmo que você tenha regras especificas para esse bloqueio. Por que isso acontece, quando usamos a opção https a informação sai do computador de origem empacotados e criptografados fazendo com que o squid não consiga "ver" o seu conteúdo; agora para resolver esse problema devemos usar o firewall para fazer esse tipo de bloqueio, conforme descrito abaixo.
Deverá ser executado como root.
// Bloqueando a origemiptables -I INPUT -s AS54115 -j DROP
iptables -I INPUT -s AS32934 -j DROP
iptables -I INPUT -s 74.119.76.0/22 -j DROP
iptables -I INPUT -s 69.63.184.0/21 -j DROP
iptables -I INPUT -s 69.63.176.0/24 -j DROP
iptables -I INPUT -s 69.63.176.0/21 -j DROP
iptables -I INPUT -s 69.171.255.0/24 -j DROP
iptables -I INPUT -s 69.171.240.0/20 -j DROP
iptables -I INPUT -s 69.171.239.0/24 -j DROP
iptables -I INPUT -s 69.171.224.0/20 -j DROP
iptables -I INPUT -s 66.220.159.0/24 -j DROP
iptables -I INPUT -s 66.220.152.0/21 -j DROP
iptables -I INPUT -s 66.220.144.0/21 -j DROP
iptables -I INPUT -s 31.13.77.0/24 -j DROP
iptables -I INPUT -s 31.13.76.0/24 -j DROP
iptables -I INPUT -s 31.13.75.0/24 -j DROP
iptables -I INPUT -s 31.13.73.0/24 -j DROP
iptables -I INPUT -s 31.13.72.0/24 -j DROP
iptables -I INPUT -s 31.13.69.0/24 -j DROP
iptables -I INPUT -s 31.13.64.0/19 -j DROP
iptables -I INPUT -s 31.13.24.0/21 -j DROP
iptables -I INPUT -s 2a03:2880::/32 -j DROP
iptables -I INPUT -s 2620:0000:1c00::/40 -j DROP
iptables -I INPUT -s 204.15.20.0/22 -j DROP
iptables -I INPUT -s 173.252.96.0/19 -j DROP
iptables -I INPUT -s 173.252.70.0/24 -j DROP
iptables -I INPUT -s 173.252.64.0/19 -j DROP
// Bloqueando o destino
iptables -I FORWARD -d AS54115 -j DROP
iptables -I FORWARD -d AS32934 -j DROP
iptables -I FORWARD -d 74.119.76.0/22 -j DROP
iptables -I FORWARD -d 69.63.184.0/21 -j DROP
iptables -I FORWARD -d 69.63.176.0/24 -j DROP
iptables -I FORWARD -d 69.63.176.0/21 -j DROP
iptables -I FORWARD -d 69.171.255.0/24 -j DROP
iptables -I FORWARD -d 69.171.240.0/20 -j DROP
iptables -I FORWARD -d 69.171.239.0/24 -j DROP
iptables -I FORWARD -d 69.171.224.0/20 -j DROP
iptables -I FORWARD -d 66.220.159.0/24 -j DROP
iptables -I FORWARD -d 66.220.152.0/21 -j DROP
iptables -I FORWARD -d 66.220.144.0/21 -j DROP
iptables -I FORWARD -d 31.13.77.0/24 -j DROP
iptables -I FORWARD -d 31.13.76.0/24 -j DROP
iptables -I FORWARD -d 31.13.75.0/24 -j DROP
iptables -I FORWARD -d 31.13.73.0/24 -j DROP
iptables -I FORWARD -d 31.13.72.0/24 -j DROP
iptables -I FORWARD -d 31.13.69.0/24 -j DROP
iptables -I FORWARD -d 31.13.64.0/19 -j DROP
iptables -I FORWARD -d 31.13.24.0/21 -j DROP
iptables -I FORWARD -d 2a03:2880::/32 -j DROP
iptables -I FORWARD -d 2620:0000:1c00::/40 -j DROP
iptables -I FORWARD -d 204.15.20.0/22 -j DROP
iptables -I FORWARD -d 173.252.96.0/19 -j DROP
iptables -I FORWARD -d 173.252.70.0/24 -j DROP
iptables -I FORWARD -d 173.252.64.0/19 -j DROP
a fonte dos ip do facebook você encontrará aqui Link dos ips do facebook .
ate a próxima..
13 comentários:
Eu fiz testes reais para um empresa cliente e tudo foi em conformidade ao descrito no blogue,mais uma vez Parabéns Professor Alexandre.
obrigado marcio, estamos sempre pesquisando para ajudar a quem preisa
Amigo tem como colocar alguma exceção?! para um ip ou outro?!
obrigado!
sim, tem como fazer uma execeção, basta incluir o seguinte iptables -t nat -I -s IP-ESCOLHIDO -j ACCEPT, essa regra deve ser aplicada apos as outras do facebook.
Boa tarde Amigos ... realmente a regra funciona ... porem com relação as exceções .... não consegui fazer de jeito nenhum ...tenho aqui iptables+squid ( transparente ) ...
Amigos, aproveitando a oportunidade, isso funciona também para o Endian ?
Tentei de diversas formas porém sem sucesso...
Obrigado desde já pela ajuda e excelente material.
Me perdoe cometi um engano, para fazer uma exceção nas regras do face proceda da seguinte forma.
iptables -A FORWARD -s IP -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d IP -j ACCEPT ,
Essa regra tem que ser feita antes das regras do face.
acredito que se vc colocar esas regras dentro do endian, ira funcionar.
Olá, muito bom esse tutorial, o bloqueio funcionou perfeitamente. Só a questão quanto à exceção de um IP, tipo diretoria, pois adicionei as regras acima das de bloqueio, a página inicial até abre, porém não passa dela. Por acaso alguém teria alguma sugestão de como resolver.
so um detalhe que devo acrescentar esta na configuração das regras do iptables é o parametro -I ele faz com que as regras fiquem acima de todas as regras sugiro que faca a troca para o parametro -A dai a liberação para um IP funcionará perfeitamente. Uso aqui na empresa e funciona normalmente. Vou dar um exemplo.
ip do diretor : 10.20.20.111
IPTABLES -I INPUT -s 10.20.20.111 -j ACCEPT
IPTABLES -I FORWARD -s 10.20.20.111 -j ACCEPT
IPTABLES -I FORWARD -d 10.20.20.111 -j ACCEPT
o parametro -I faz com que as regras sejam as primeiras, ou coloque-as antes das regras do face (lembre-se de trocar os "-I" por "-A" caso contrario nao vai funcionar.
Alexandre, fiz um script que resolve este problema com o modulo "string", testei e funciona perfeitamente para qualuqer site https.
#Bloqueio de sites facebook e live https e liberar ip da regra por Valdiney Teixeira
#Bloquear url HTTP use o squid ou dansguardian
#Teste executado com sucesso distribuicao SUSE
#versao do kernel 2.6.34-12
iptables -t filter -I FORWARD -m string --string "login.live.com" --algo bm --to 65535 -j DROP
iptables -t filter -I FORWARD -m string --string "facebook.com" --algo bm --to 65535 -j DROP
iptables -t filter -I FORWARD -s 192.168.2.72/32 -p tcp -m string --string "facebook.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -s 192.168.2.72/32 -p tcp -m string --string "login.live.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -d 192.168.2.72/32 -p tcp -m string --string "facebook.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -d 192.168.2.72/32 -p tcp -m string --string "login.live.com" --algo bm --to 65535 -j ACCEPT
Bom dia,
Pessoal, coloquei a regra de exceção e não funcionou para mim.
Segue abaixo a regra que coloquei acima das regras de bloqueio.
iptables -A INPUT -s 192.168.0.39 -j ACCEPT
iptables -A FORWARD -s 192.168.0.39 -j ACCEPT
iptables -A FORWARD -d 192.168.0.39 -j ACCEPT
Mudei para -I e também foi sem sucesso.
Att
Igor
Valdiney Teixeira disse...
Alexandre, fiz um script que resolve este problema com o modulo "string", testei e funciona perfeitamente para qualuqer site https.
#Bloqueio de sites facebook e live https e liberar ip da regra por Valdiney Teixeira
#Bloquear url HTTP use o squid ou dansguardian
#Teste executado com sucesso distribuicao SUSE
#versao do kernel 2.6.34-12
iptables -t filter -I FORWARD -m string --string "login.live.com" --algo bm --to 65535 -j DROP
iptables -t filter -I FORWARD -m string --string "facebook.com" --algo bm --to 65535 -j DROP
iptables -t filter -I FORWARD -s 192.168.2.72/32 -p tcp -m string --string "facebook.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -s 192.168.2.72/32 -p tcp -m string --string "login.live.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -d 192.168.2.72/32 -p tcp -m string --string "facebook.com" --algo bm --to 65535 -j ACCEPT
iptables -t filter -I FORWARD -d 192.168.2.72/32 -p tcp -m string --string "login.live.com" --algo bm --to 65535 -j ACCEPT
Este funcionou no meu firewall, valeu obrigado pela ajuda.
Postar um comentário