
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:
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
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
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.