Como bloquear o site https com iptables

1

Eu quero bloquear alguns sites https como youtube.com, facebook.com.

Eu sei que não podemos bloquear isso usando regras de URL. já que o URL está criptografado.

Então, tentei bloquear todas as consultas DNS que contêm o domínio que desejo filtrar. Então, adicionei a seguinte regra:

iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP

Mas o youtube continua funcionando. Mas depois de algum tempo de inatividade (cerca de 15 min) o youtube está bloqueado.

Existe alguma explicação?

Como posso forçar o youtube a ser bloqueado imediatamente?

    
por Mohamed KALLEL 29.01.2018 / 18:39

4 respostas

2

O que você está fazendo terá efeito, mas há vários problemas:

  • Os navegadores e sistemas operacionais armazenam em cache as pesquisas de DNS. Eles não necessariamente causam uma pesquisa de DNS completa sempre que um site é carregado.

  • Alguns navegadores podem tentar coisas alternativas se o DNS parecer bloqueado (como, por exemplo, entrar em contato com seu próprio servidor DNS), porque eles acham que há um problema de rede. O Google Chrome pode fazer isso.

  • O Google Chrome e outros navegadores podem em breve implementar "DNS sobre HTTPS", o que significa que fazer qualquer coisa na porta 53 não teria nenhum efeito, pois não usaria isso para o DNS.

  • O bloqueio por endereço IP funcionará por algum tempo até que o endereço IP do YouTube seja alterado por algum motivo.

  • Os usuários experientes podem alterar os servidores DNS, a menos que você tenha bloqueado essa capacidade administrativamente em seus sistemas.

How I can force youtube to be blocked immediately?

A maneira "certa" de fazer o que você quer é instituir um proxy transparente de interceptação HTTPS "Man-In-The-Middle" que possa filtrar o tráfego HTTPS. Você então diz ao proxy para bloquear qualquer URL com youtube.com .

Você não pode simplesmente procurar por youtube.com em 443 como está criptografado, como você provavelmente descobriu.

Um com o qual você pode brincar em uma máquina local para ver como funciona é o Burp Proxy - serve para testar, não para gerenciar o tráfego de muitos usuários. Mas permitirá que você aprenda os conceitos.

Você precisará instalar o certificado SSL do proxy em cada máquina que usar o proxy para evitar avisos de segurança.

    
por 30.01.2018 / 14:56
1
#nslookup youtube.com

Non-authoritative answer:
Name:   youtube.com
Address: 172.217.16.46
Name:   youtube.com
Address: 172.217.20.206

iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.16.46 --dport 80 -j DROP
iptables -t filter -A FORWARD -p tcp -s 192.168.1.0/24 -d 172.217.20.206 --dport 80 -j DROP

fonte: link

ou

iptables -I FORWARD -s 10.0.0.0/24 -p tcp -m string --algo bm --string ".youtube.com" -j DROP

source: link

ou O primeiro exemplo, nós temos um gateway de máquina para a rede local, lá nós criamos uma regra para bloquear por exemplo o recurso youtube.com que se parecerá com este código:

iptables -A FORWARD -m string --string "youtube.com" --algo kmp --to 65535 -j DROP

Para bloquear endereços na máquina Linux, edite a regra com um pequeno código:

iptables -A INPUT -m string --string "youtube.com" --algo kmp --to 65535 -j DROP

fonte: link

e isso quebraria a conexão tcp de uma só vez e sem tempo limite apenas para -p tcp você pode tentar o seguinte

-j REJECT --reject-with tcp-reset

fonte: link

Sinto muito, todas as fontes - sites russos:)

    
por 29.01.2018 / 21:18
0

Seu comando é:

iptables -A OUTPUT -p udp --dport 53 -m string --domain yahoo.com -j DROP

Primeiro o seu bloqueio apenas udp e porta 53

iptables -I INPUT 1 -s 172.217.0.0/16 -j DROP
iptables -I FORWARD 1 -s 172.217.0.0/16 -j DROP

iptables -I INPUT 2 -s 157.240.0.0/16 -j DROP
iptables -I FORWARD 2 -s 157.240.0.0/16 -j DROP

Primeiro, você precisa bloquear a cadeia INPUT, pois é onde os dados entram. A cadeia FORWARD pode ser desnecessária para suas necessidades. Então eu fiz um ping no youtube, e então eu fiz um whois naquele IP para ver que bloco eles possuíam.

Finalmente, eu bloqueei todos os IPs para que não precisássemos nos preocupar com pesquisas de DNS.

    
por 30.01.2018 / 01:16
0

Como afirmado nos comentários de @ djsmiley2k, você certamente enfrentará o cache do dns. Isso significa que sua máquina não solicita novamente o servidor DNS para um determinado domínio, se tiver resolvido isso recentemente.

Para impor o bloqueio imediato do domínio, você deve impor a liberação do cache do DNS. Dependendo do seu sistema operacional, os comandos serão diferentes. Você pode encontrar exemplos aqui

Como resumo, imediatamente após adicionar a regra iptables, você pode tentar:

$ service nscd reload

ou

$ service dnsmasq restart

ou

$ rndc restart
    
por 30.01.2018 / 14:47