Cómo crear reglas de Iptables para que Squid solo maneje la solicitud de tráfico web

Cómo crear reglas de Iptables para que Squid solo maneje la solicitud de tráfico web

Estoy usando Squid Proxy para (filtrado DNS), configuré el proxy Squid detrás de mi GCP Cloud NAT en modo transparente para interceptar el tráfico web HTTP y HTTPS, agregué solo las siguientes reglas para redirigir el tráfico HTTP y HTTPS a Squid.

iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 443 -j REDIRECT --to-port 3130

Pero como he aprendido hasta ahora, Squid es un proxy web y solo maneja solicitudes HTTP, HTTPS y FTP, Squid no entiende SMTP, UDP y cualquier otra solicitud de protocolo, pero las reglas anteriores de iptables solo funcionan para HTTP y HTTPS, mi resto de La solicitud SMTP y UDP se está bloqueando. Según tengo entendido, no podemos decirle a Squid que maneje solicitudes SMTP y UDP, por lo tanto, solo quiero manejar el tráfico HTTP y HTTPS en Squid, y también quiero que el resto de mis puertos se redirijan directamente a mi GCP Cloud NAT.

¿Alguien puede ayudarme sobre qué regla de iptables debo escribir solo para redirigir la solicitud del puerto 80, 443 a Squid, y el resto de la solicitud de puerto que quiero omitir o redirigir directamente a mi GCP Cloud NAT?

Flujo de tráfico

VM privada -> Proxy Squid -> NAT en la nube de GCP

Respuesta1

Para redirigir solo las solicitudes de los puertos 80 y 443 a Squid y omitir todas las demás solicitudes, puede modificar las reglas de iptables existentes de la siguiente manera:

  1. Cree una ACL en Squid para permitir solo solicitudes HTTP y HTTPS. Esto se puede hacer agregando las siguientes líneas a su archivo de configuración de Squid:

    acl Safe_ports puerto 80 443 http_access permitir Safe_ports

  2. Modifique las reglas de iptables para redirigir solo las solicitudes HTTP y HTTPS a Squid:

    iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 80 -j REDIRECT --to-port 3129 iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp --dport 443 -j REDIRECCIÓN --al puerto 3130

  3. Agregue una nueva regla de iptables para omitir todas las demás solicitudes y redirigirlas directamente a su GCP Cloud NAT. La regla debería verse así:

    iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp -m multipuerto! --dports 80,443 -j DNAT --to-destination [dirección IP NAT de GCP Cloud]

Esta regla coincidirá con todo el tráfico TCP que no esté en el puerto 80 o 443 y lo redireccionará directamente a su GCP Cloud NAT.

Asegúrese de ajustar la [dirección IP de GCP Cloud NAT] a la dirección IP correcta de su instancia de Cloud NAT.

Con estas reglas, solo el tráfico HTTP y HTTPS se redirigirá a Squid para su filtrado, mientras que el resto del tráfico se omitirá y se redirigirá directamente a su NAT en la nube de GCP.

información relacionada