Cómo bloquear el sitio web https con iptables


1

Quiero bloquear algún sitio web https como youtube.com, facebook.com.

Sé que no podemos bloquear eso usando reglas de url. ya que la url está encriptada.

Así que intenté bloquear todas las consultas de DNS que contienen el dominio que quiero filtrar. Así que agregué la siguiente regla:

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

Pero el youtube sigue corriendo. Pero después de un tiempo de inactividad (unos 15 minutos), se bloquea YouTube.

¿Hay alguna explicación?

¿Cómo puedo forzar que youtube se bloquee de inmediato?


1
Es probable que los 15 minutos se deban al almacenamiento en caché de DNS y el tiempo de dns a la configuración en vivo, sin embargo no estoy seguro de cómo detenerlo
djsmiley2k

Respuestas:


2

Lo que está haciendo tendrá un efecto, pero hay varios problemas:

  • Los navegadores y los sistemas operativos almacenan en caché las búsquedas de DNS. No necesariamente causan una búsqueda de DNS completa cada vez que se carga un sitio.

  • Algunos navegadores pueden probar cosas alternativas si el DNS aparece bloqueado (como ponerse en contacto con su propio servidor DNS), porque creen que hay un problema de red. Google Chrome puede hacer esto.

  • Google Chrome y otros navegadores pronto podrán implementar "DNS sobre HTTPS", lo que significa que hacer cualquier cosa al puerto 53 no tendría ningún efecto, ya que no usaría eso para DNS en absoluto.

  • El bloqueo por dirección IP funcionará por un tiempo hasta que la dirección IP de Youtube cambie por alguna razón.

  • Los usuarios inteligentes pueden cambiar los servidores DNS a menos que haya bloqueado esa capacidad de forma administrativa en sus sistemas.

¿Cómo puedo forzar que youtube se bloquee de inmediato?

La manera "correcta" de hacer lo que quiere es instituir un proxy transparente de intercepción HTTPS "Man-In-The-Middle" que pueda filtrar el tráfico HTTPS. Luego le dices al proxy que bloquee cualquier URL con youtube.com en eso.

No puedes simplemente buscar youtube.com en el 443, ya que está encriptado, como probablemente se haya dado cuenta.

Uno con el que puedes jugar en una máquina local para ver cómo funciona es el Proxy Burp: está destinado a pruebas, aunque no gestiona el tráfico de muchos usuarios. Pero te permitirá aprender los conceptos.

Deberá instalar el certificado SSL del proxy en cada máquina que use el proxy para evitar advertencias de seguridad.


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

fuente: http://forum.oszone.net/post-692775-5.html

o

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

fuente: http://moshelpers.ru/?q=node/71

o El primer ejemplo, tenemos una puerta de enlace de la máquina para la red local, allí creamos una regla para bloquear, por ejemplo, el recurso youtube.com, se verá como este código:

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

Para bloquear direcciones en la máquina Linux, edite la regla un poco de código:

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

fuente: http://sudouser.com/blokirovka-nezhelatelnyx-url-s-pomoshhyu-iptables.html

y eso rompería la conexión TCP al mismo tiempo y sin tiempo de espera solo para -p tcp puedes probar lo siguiente

-j REJECT --reject-with tcp-reset

fuente: http://forum.ixbt.com/topic.cgi?id=76:10833

Lo siento, todas las fuentes - sitios rusos :)


0

Tu orden es:

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

Primero su bloqueo solo udp y el puerto 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

Primero debe bloquear la cadena de ENTRADA, ya que es donde entran los datos. La cadena ADELANTE puede no ser necesaria para sus necesidades. Luego hice un ping en youtube, y luego hice un whois en esa IP para ver qué bloque tenían.

Finalmente, bloqueé todos los IP, por lo que no necesitamos preocuparnos con las búsquedas de DNS.


0

Como se indica en los comentarios de @ djsmiley2k, ciertamente se enfrenta al almacenamiento en caché de DNS. Esto significa que su máquina no vuelve a solicitar el servidor DNS para un dominio dado si lo resolvió recientemente.

Para imponer el bloqueo inmediato del dominio, debe imponer el vaciado de la caché de DNS. Dependiendo de su sistema operativo, los comandos serán diferentes. Puedes encontrar ejemplos aquí

Como resumen, inmediatamente después de agregar la regla de iptables, puede probar:

$ service nscd reload

o

$ service dnsmasq restart

o

$ rndc restart
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.