
Estou usando /etc/hosts para bloquear domínios que não quero que sejam acessíveis e funciona para a maioria dos domínios. No entanto, não parece estar funcionando para o webchat do Telegram (web.telegram.org).
Eu tenho as seguintes linhas no meu arquivo:
0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org
Mas ainda consigo acessar o site e usar todas as funcionalidades do aplicativo da web. Estou fazendo algo errado?
Responder1
Como você está editando /etc/hosts, você tem acesso root. A melhor e mais elegante maneira é usar iptables (ou seja, bloquear pacotes saindo da caixa para www.telegram.org)
Você pode testar inserindo comandos iptables na linha de comando.
# iptables -A OUTPUT -d www.telegram.org -j REJECT
Você pode ver que adicionou a regra com:
# iptables -S OUTPUT
-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable
E você pode testar uma tentativa de acesso a ele com:
# wget web.telegram.org
--2017-04-26 14:38:01-- http://web.telegram.org/
Resolving web.telegram.org... 149.154.167.120, 2001:67c:4e8:fa60:3:0:811:140
Connecting to web.telegram.org|149.154.167.120|:80... failed: Connection refused.
Connecting to web.telegram.org|2001:67c:4e8:fa60:3:0:811:140|:80... failed: Network is unreachable.
Você não nos disse qual sistema operacional está executando, então pode não ter uma versão mais recente do iptables e, portanto, pode estar faltando a opção -S. Você pode usar -L:
# iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere 149.154.167.120 reject-with icmp-port-unreachable
Se você deseja excluir a regra que acabou de adicionar, basta substituir -A por -D no comando acima.
Nota: se você deseja que essas regras sejam permanentes na reinicialização, você deve fazê-las iptables-save > /etc/sysconfig/iptables
ou adicioná-las manualmente em /etc/sysconfig/iptables.
iptables é bastante complicado, mas as páginas de manual são bastante úteis.
(Estou executando o CentOS 6 e 7 em meus servidores. firewalld é o novo front-end padrão no CentOS 7, mas instalei iptables-services e usei-o, que é totalmente suportado.)
Responder2
A propósito, eu configuraria o host como 127.0.0.1 em vez de 0.0.0.0... esse pode ser o seu problema original.
De qualquer forma, outro truque é adicionar uma rota especial para o(s) número(s) de IP incorreto(s):
# route add -host 10.11.12.13 dev lo
Você teria que adicioná-los ao seu rc.local (ou equivalente) para que essas regras sejam recriadas no momento da reinicialização.
Usei isso para bloquear pessoas que tentaram quebrar a senha do meu site.
Responder3
está usando websockets para receber mensagens
adicionar
0.0.0.0 zws2.web.telegram.org
PS, verifique como depurar websockets em chrome devtools