Habilitar Windows Update en Squid

Habilitar Windows Update en Squid Proxy

Windows Update usa WinHttp con solicitudes de intervalo parcial (RFC 7233) para descargar actualizaciones. Por lo tanto, debemos adicionar una configuración a Squid que permita las actualizaciones en los computadores. Veamos cómo habilitar Windows Update en Squid Proxy.

Configuración para habilitar Windows Update en Squid Proxy


Ajustamos y adicionamos las siguientes líneas en nuestro /etc/squid/squid.conf:

Con este primer bloque cacheamos actualizaciones (archivos) de hasta 200 MB, en disco, y hasta de 60 MB en memoria

maximum_object_size 200 MB
maximum_object_size_in_memory 100 MB

Con este siguiente bloque forzamos a Squid para que termine de descargar las actualizaciones, así se haya desconectado el cliente. Esto hará que se sature descontroldamente nuestra banda ancha (pero más adelante te muestro la solución):

range_offset_limit -1
quick_abort_min -1

Con este último bloque forzamos a cachear todo lo que salga de los servidores del Windows Update:

refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 18000000 reload-into-ims

refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip) 4320 80% 18000000 reload-into-ims

Configuración en los clientes


Además de configurar el proxy en el navegador, seguramente tendrémos que definir el Proxy en el Sistema Operativo, para que Windows pueda actualizarce por medio de Squid Proxy. Abrimos una consola CMD como Administrador, y ejecutamos los siguientes comandos.

netsh winhttp show proxy
netsh winhttp import proxy source = ie

Con el primer comando verificamos si Windows ya tiene un Proxy configurado. Si no lo tiene, entonces lo importamos de la configuración del Internet Explorer (segundo comando).

Para resetear:

netsh winhttp reset proxy

Controlar las Descargas desde el Windows Update


Forzar a Squid a descargar las actualizaciones desde el Windows Update, provoca una saturación descontrolada de nuestra banda ancha. Para corregir esta maniobra, debemos apoyarnos en un tema llamado Control de Tráfico, ó shaping.

Para nuestro caso, vamos a usar como shaping cualquiera de estos dos métodos: IPTABLES y el planificador de colas QDISC (disciplinas de cola), ya que vamos a controlar paquetes entrantes desde Windows Update por el puerto 80 (Windows Update funciona usando el protocolo HTTP).

1- Comienzo por el planificador de colas QDISC. Para implementar fácilmente QDISC, recurrimos a un script programado en Python, llamado tcset. Dicho script viene dentro del paquete llamado tcconfig y lo instalamos en nuestro Linux, así:

_$ sudo pip install tcconfig

Luego, ejecutamos el siguiente comando para reducir todo el tráfico desde el puerto 80 a 150 Kbps:

_$ sudo tcset enp6s4f1 --add --rate 0.15Mbps --delay 200ms --port 80

(Nota: enp6s4f1 es la interfaz conectada a nuestra banda ancha).

(Nota: Para que se vea el efecto del shaping, debemos detener a Squid y volverlo a iniciar).

Para borrar la disciplinas ejecutamos:

_$ sudo tcdel enp6s4f1 --all

Puedes leer más sobre tcconfig en su página oficial.


2- La otra opción es con IPTABLES. Con la siguiente regla puedes definir la velocidad de conexión para el puerto 80 usado por Windows Update.

_$iptables -A INPUT -i enp6s4f1 -p tcp --sport 80 -m hashlimit --hashlimit-above 17/sec --hashlimit-mode srcip --hashlimit-name all -j DROP

Entonces, según la anterior regla, la velocidad de toda conexión que venga a nuestro servidor por la interfaz de red enp6s4f1 desde el puerto 80, será fijada a 17 paquetes/segundo (o sea, 200 Kbps).

¿Cómo calculamos la cantidad de paquetes/seg para la regla IPTABLES, según la velocidad que queremos fijar?

Bueno, el cálculo que aquí explico es una buena aproximación. Voy a asimilar (asimiliar, no a igualar) la longitud de un paquete con la longitud máxima de una trama ethernet, que es de 1518 bytes. Convertimos esos 1518 bytes en bits, lo que nos da 12144 bits, o sea 12 Kbits. Finalmente tenemos la ecuación: paquetes x 12 K/seg = velocidad en Kbps.

Entonces 17 paquetes por segundo es aproximadamente 200 Kbps. Si le queremos fijar la velocidad de descarga al puerto 80 en 700 Kbps, entonces los vidimos entre 12, lo que nos da aproximadamente 60 paquetes/seg.

Yo asimilo el paquete con la trama ethernet para la ecuación, porque después de todo el tamaño de la trama también cuenta en el cableado de nuestra conexión.

Bloquear del todo las conexiones a Windows Update


Si lo que necesitas es bloquear, sea permanente o temporalmente, las conexiones al Windows Update de tu red, puedes usar la siguiente batería de reglas IPTABLES. Puedes guardarla en un script bash para que las ejecutes de un solo golpe:

#!/bin/bash

iptables -A FORWARD -m string –algo bm –string «ctldl.windowsupdate.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «ctldl.windowsupdate.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «2.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «2.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «3.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «3.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «7.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «7.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «11.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «11.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «download.windowsupdate.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «download.windowsupdate.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «update.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «update.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «windowsupdate.microsoft.com» -j DROP
iptables -A FORWARD -m string –algo bm –string «windowsupdate.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «ctldl.windowsupdate.com» -j DROP
iptables -A INPUT -m string –algo bm –string «ctldl.windowsupdate.com» -j DROP
iptables -A INPUT -m string –algo bm –string «2.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «2.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «3.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «3.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «7.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «7.tlu.dl.delivery.mp.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «download.windowsupdate.com» -j DROP
iptables -A INPUT -m string –algo bm –string «download.windowsupdate.com» -j DROP
iptables -A INPUT -m string –algo bm –string «update.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «update.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «windowsupdate.microsoft.com» -j DROP
iptables -A INPUT -m string –algo bm –string «windowsupdate.microsoft.com» -j DROP

exit 0

Habilitar Skype y Microsoft Teams


Para habilitar Skype y Microsoft Teams por medio de Squid Proxy, excluye del bloqueo los dominios que recomienda Microsoft para esos servicios.

 

Siguiente Parte

A continuación verémos como habilitar Whatsapp en Squid Proxy y Firewall Linux.

 

Undécima Parte >


Valora este artículo:

Habilitar Windows Update en Squid Proxy
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

Muy completa esta solución

★★★★★
“ Muchas gracias por compartir”
- Edinson Ocoró
Comparte esto en
Publicado en Servidor Proxy.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *