
Estoy usando /etc/hosts para bloquear dominios a los que no quiero que se pueda acceder y funciona para la mayoría de los dominios. Sin embargo, no parece funcionar para el chat web de Telegram (web.telegram.org).
Tengo las siguientes líneas en mi archivo:
0.0.0.0 web.telegram.org
0.0.0.0 www.telegram.org
0.0.0.0 telegram.org
Pero todavía puedo acceder al sitio y utilizar la funcionalidad completa de la aplicación web. ¿Estoy haciendo algo mal?
Respuesta1
Como está editando /etc/hosts, tiene acceso de root. La mejor y más elegante forma es usar iptables (es decir, bloquear paquetes que salen del cuadro a www.telegram.org)
Puede realizar la prueba ingresando comandos de iptables en la línea de comando.
# iptables -A OUTPUT -d www.telegram.org -j REJECT
Puedes ver que agregaste la regla con:
# iptables -S OUTPUT
-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable
Y puedes probar un intento de acceso con:
# 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.
No nos dijo qué sistema operativo está ejecutando, por lo que es posible que no tenga una versión más nueva de iptables y, por lo tanto, es posible que le falte el modificador -S. Puedes 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
Si desea eliminar la regla que acaba de agregar, simplemente reemplace -A con -D en el comando anterior.
Nota: si desea que estas reglas sean permanentes al reiniciar, debe hacerlo iptables-save > /etc/sysconfig/iptables
o agregarlas manualmente a /etc/sysconfig/iptables.
iptables es bastante complicado pero las páginas de manual son bastante útiles.
(Estoy ejecutando CentOS 6 y 7 en mis servidores. firewalld es el nuevo front-end predeterminado en CentOS 7, pero instalé iptables-services y lo uso en su lugar, que es completamente compatible).
Respuesta2
Por cierto, configuraría el host para que sea 127.0.0.1 en lugar de 0.0.0.0.... este podría ser su problema original.
De todos modos, otro truco consiste en agregar una ruta especial para los números IP infractores:
# route add -host 10.11.12.13 dev lo
Tendría que agregarlos a su rc.local (o equivalente) para que estas reglas se vuelvan a crear en el momento del reinicio.
Utilicé esto para bloquear a las personas que intentaban descifrar contraseñas para la empresa de mi sitio web.
Respuesta3
está usando websockets para recibir mensajes
agregar
0.0.0.0 zws2.web.telegram.org
PD: comprueba cómo depurar websockets en Chrome Devtools