Como criar regras Iptables para o squid lidar apenas com solicitações de tráfego da web

Como criar regras Iptables para o squid lidar apenas com solicitações de tráfego da web

Estou usando o Squid Proxy para (filtragem de DNS), configurei o proxy squid atrás do meu GCP Cloud NAT em modo transparente para interceptar o tráfego da Web HTTP e HTTPS, adicionei apenas as regras abaixo para redirecionar o tráfego HTTP e HTTPS para o 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

Mas como aprendi até agora, o Squid é um proxy da web e lida apenas com solicitações HTTP, HTTPS e FTP, o Squid não entende SMTP, UDP e qualquer outra solicitação de protocolo, mas as regras acima do iptables funcionam apenas para HTTP e HTTPS, meu resto de a solicitação SMTP e UDP está sendo bloqueada. Pelo que entendi, não podemos dizer ao squid para lidar com solicitações SMTP e UDP, portanto, só quero lidar com o tráfego HTTP e HTTPS no squid e também quero que o restante das minhas portas seja redirecionado diretamente para meu GCP Cloud NAT.

Alguém pode me ajudar qual regra de iptables devo escrever apenas para redirecionar a solicitação da porta 80, 443 para o Squid e o restante da solicitação da porta que desejo ignorar ou redirecionar diretamente para meu GCP Cloud NAT

Fluxo de tráfego

VM privada -> Squid Proxy -> GCP Cloud NAT

Responder1

Para redirecionar apenas as solicitações das portas 80 e 443 para o Squid e ignorar todas as outras solicitações, você pode modificar as regras existentes do iptables da seguinte maneira:

  1. Crie uma ACL no Squid para permitir apenas solicitações HTTP e HTTPS. Isso pode ser feito adicionando as seguintes linhas ao arquivo de configuração do Squid:

    acl Safe_ports porta 80 443 http_access permite Safe_ports

  2. Modifique as regras do iptables para redirecionar apenas solicitações HTTP e HTTPS para o 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 REDIRECIONAR --para a porta 3130

  3. Adicione uma nova regra iptables para ignorar todas as outras solicitações e redirecioná-las diretamente para seu GCP Cloud NAT. A regra deve ficar assim:

    iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p tcp -m multiporta! --dports 80.443 -j DNAT --to-destination [endereço IP NAT da nuvem GCP]

Esta regra corresponderá a todo o tráfego TCP que não esteja na porta 80 ou 443 e o redirecionará diretamente para seu NAT do GCP Cloud.

Certifique-se de ajustar o [endereço IP do GCP Cloud NAT] para o endereço IP correto da sua instância do Cloud NAT.

Com essas regras, apenas o tráfego HTTP e HTTPS será redirecionado para o Squid para filtragem, enquanto todo o outro tráfego será ignorado e redirecionado diretamente para o seu GCP Cloud NAT.

informação relacionada