Bloqueio de telegrama usando / etc / hosts

1

Estou usando o / 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 posso acessar o site e usar toda a funcionalidade do aplicativo da web. Estou fazendo algo errado?

    
por milo 26.04.2017 / 19:35

2 respostas

3

Como você está editando o / etc / hosts, você tem acesso root. A melhor e mais elegante maneira é usar o iptables (ou seja, bloquear os pacotes deixando a caixa para www.telegram.org)

Você pode testar inserindo comandos do 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 SO está executando, então você pode não ter uma versão mais nova do iptables e, portanto, você pode estar sem o switch -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ê quiser excluir a regra que acabou de adicionar, simplesmente substitua -A por -D no comando acima.

Nota: se você quiser que estas regras sejam permanentes na reinicialização, você precisa fazer iptables-save > /etc/sysconfig/iptables ou adicioná-las manualmente a / etc / sysconfig / iptables.

iptables é bastante complicado, mas as páginas do manual são bastante úteis.

(Eu estou rodando o CentOS 6 e 7 em meus servidores. O firewalld é o novo front-end padrão do CentOS 7, mas eu instalei o iptables-services e o uso completamente suportado.)

    
por 26.04.2017 / 20:39
1

BTW, eu configuraria o host como 127.0.0.1 em vez de 0.0.0.0 .... esse pode ser seu problema original.

De qualquer forma, outro truque é adicionar uma rota especial para o (s) número (s) 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 na hora da reinicialização.

Eu usei isso para bloquear pessoas que tentaram violar senhas para a empresa do meu website.

    
por 26.04.2017 / 21:30