Como bloquear o site https facebook usando o iptables [duplicado]

2

Estou usando o Zentyal Os como um firewall, funcionando bem, como bloquear sites http, mas não consigo bloquear o site https facebook. Meu único objetivo é bloquear o site do facebook https, como a necessidade de bloquear a porta 443.

Então existe alguma chance de controle usando o iptables com o modo transparente.

    
por user26516 29.10.2012 / 12:53

3 respostas

2

Nota: Eu escrevi isso horas atrás, mas eu estou no caminho de Sandy, então eu fui embora e esqueci de pressionar o botão enviar

Portanto, existem duas maneiras de conseguir isso e ambas fazem algo diferente. Será impossível bloquear realmente o Facebook, pois qualquer um poderia usar um site proxy e contornar suas restrições. Eles também podem enviar um SSH para um servidor que não seja restrito. Nenhum-a-menos aqui vamos nós ...

iptables

bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.247.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.149.88 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 66.220.152.16 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.234.21 --dport 443 -j REJECT
bash$ sudo iptables -A OUTPUT -p tcp -d 69.171.237.16 --dport 443 -j REJECT

O problema é que isso não impede o Facebook de adicionar um novo endereço IP para o facebook.com resolver. Você pode escrever um script para executar constantemente e obter as últimas informações:

#!/bin/bash
for i in $(host facebook.com | grep "has address " | cut -d' ' -f4)
do iptables -A OUTPUT -p tcp -d $i --dport 443 -j REJECT
done

Nota: isso precisa de uma pequena modificação, pois pode produzir erros

dns

Esta solução também não é perfeita. DNS é apenas a base do sistema de nomenclatura, acertando o endereço IP diretamente ganharia. Se você possui o servidor de nomes Interno para sua rede, você pode configurar uma entrada para facebook.com para resolver em outro lugar. Eu usaria isso em conjunto com o iptables acima.

sslstrip - não recomendado em todos os

Poderíamos até dar um passo adiante. Se você possui todas as máquinas na rede que você está tentando bloquear o Facebook, você pode gerar um certificado CA raiz, instalar a chave pública em todas as máquinas. Man-in-the-middle todo o tráfego SSL renunciar todos os sites com seus certs e matar ativamente as conexões do Facebook. No entanto, essa é uma ideia perigosa e tem implicações de privacidade (especialmente em um ambiente corporativo).

    
por 29.10.2012 / 16:11
2

esta regra deve funcionar para você

iptables -A OUTPUT -d facebook.com -dport 443 -j REJECT --reject-with tcp-reset

EDIT: se a sua versão do iptables por algum motivo não gosta de urls no lugar do endereço, você pode fazer algo assim já que o facebook pode resolver vários ips:

 for blockip in 'resolveip facebook.com | cut -d " " -f 6'; do
 iptables -A OUTPUT -o eth0 -p tcp -m tcp -d $blockip -j REJECT --reject-with tcp-reset
 done
    
por 29.10.2012 / 14:33
1

Como acredito que o zentyal vem com suporte integrado para o snort IDS, você pode adicionar uma regra de snort que detecta e bloqueia o pacote SSL que contém o certificado do servidor com base em um nome comum que contém facebook.com. Isso também poderia endereçar os acessos através de um proxy (desde que a conexão com o proxy em si não seja criptografada).

Outra abordagem poderia ser forçar todo o tráfego DNS através do seu servidor DNS (bloquear o tráfego do domínio, exceto para o seu servidor DNS) e retornar algo falso para consultas de qualquer domínio facebook.com (não pararia o acesso através de um proxy). / p>     

por 29.10.2012 / 17:05

Tags