Local apropriado para o Gateway Proxy Transparente do Squid (com Cache)

0

Estou tentando configurar um proxy transparente em minha rede doméstica para que eu possa armazenar em cache meu tráfego da Internet e monitorar minhas conexões sem precisar configurar navegadores para passar pelo proxy - por exemplo, deve ser transparente. O AFAIK Squid pode fazer isso, de acordo com sua documentação, mas o que não está claro para mim é onde eu preciso colocar a máquina na minha topologia de rede física para que ela funcione.

Minha rede doméstica se conecta à Internet através de um modem a cabo, que possui uma conexão ethernet a um roteador que executa o OpenWRT. Esse roteador forma o switch que conecta todos os meus clientes e servidores domésticos sem fio e com fio.

O gateway proxy transparente que eu quero configurar simplesmente se conecta como outro cliente ao switch do roteador, ou eu o configuro no caminho entre o roteador e o modem de alguma forma? Se assim for, eu preciso colocá-lo em um DMZ de algum tipo, ou deve simplesmente agir como o roteador também, e meu roteador atual pode apenas obter informações DHCP do gateway do squid e agir como um interruptor para o resto do meu LAN?

Se houver várias opções, qual seria a melhor para o desempenho máximo?

Se for importante, aqui estão as especificações relevantes do equipamento Squid Gateway: Celeron J1800 RAM de 4gb SSD de 64 gb 3x gigabit ethernet (2x em placa PCI-E discreta broadcom) 1 cartão sem fio a / b / g mpcie Lubuntu 16,04

    
por Adam Wykes 02.08.2016 / 16:24

1 resposta

1

A máquina que hospeda o proxy pode ser configurada lado-a-lado com seus clientes regulares em sua rede local. O roteador rotearia todo o tráfego HTTP (exceto da máquina proxy) para a sua máquina proxy. Isso é feito combinando IPTables (para selecionar qual tráfego desviar) e Policy Routing (faz o desvio).

Eu testei os seguintes passos no OpenWrt Chaos Calmer (15.05.1, r48532) no VMware. Eles são baseados em este guia .

Primeiro, para configurar o Policy Routing, você precisa do iproute2. Instale:

opkg update # If you haven't done it since rebooting
opkg install ip

Em seguida, abra /etc/firewall.user com seu editor favorito e insira os seguintes comandos:

PROXYIP4=192.168.1.10
PROXYIP6=fe80:dead:beef::10

CLIENTIFACE=br-lan

FWMARK=2

# Permit Squid box out to the Internet
iptables -t mangle -A PREROUTING -p tcp --dport 80 -s $PROXYIP4 -j ACCEPT
ip6tables -t mangle -A PREROUTING -p tcp --dport 80 -s $PROXYIP6 -j ACCEPT

# Mark everything else on port 80 to be routed to the Squid box
iptables -t mangle -A PREROUTING -i $CLIENTIFACE -p tcp --dport 80 -j MARK --set-mark $FWMARK
iptables -t mangle -A PREROUTING -m mark --mark $FWMARK -j ACCEPT
ip6tables -t mangle -A PREROUTING -i $CLIENTIFACE -p tcp --dport 80 -j MARK --set-mark $FWMARK
ip6tables -t mangle -A PREROUTING -m mark --mark $FWMARK -j ACCEPT

# NP: Ensure that traffic from inside the network is allowed to loop back inside again.
iptables -t filter -A FORWARD -i $CLIENTIFACE -o $CLIENTIFACE -p tcp --dport 80 -j ACCEPT
ip6tables -t filter -A FORWARD -i $CLIENTIFACE -o $CLIENTIFACE -p tcp --dport 80 -j ACCEPT

# Fill 'proxy' routing table
ip route flush table proxy
ip route add default via $PROXYIP4 table proxy dev $CLIENTIFACE
ip -6 route add default via $PROXYIP6 table proxy dev $CLIENTIFACE

Certifique-se de ajustar as variáveis conforme necessário!

Em seguida, edite /etc/iproute2/rt_tables , adicionando uma linha para a tabela proxy usando qualquer ID gratuita:

...
201     proxy

A última parte é a política para o tráfego marcado com $FWMARK . Abra /etc/config/network e crie uma entrada de regra:

config rule
    option mark 0x2
    option in lan
    option lookup proxy

Verifique se o nome da rede in está correto, etc.

Isso conclui a parte do OpenWrt da configuração. A máquina proxy agora (efetivamente) se tornou o gateway padrão para o tráfego HTTP. Se esta máquina rodar Linux, você poderia continuar com este guia sobre TPROXY .

A sobrecarga de roteamento deve ser mínima. O resto depende do host proxy.

Se você quebrou o acesso à Internet, pode restaurá-lo facilmente excluindo a regra de roteamento:

ip rule del fwmark 2

A regra também pode ser facilmente adicionada novamente:

ip rule add fwmark 2 table proxy

tl; dr

O host proxy deve, de fato, estar entre os clientes e a Internet. No entanto, com roteamento inteligente, qualquer máquina diretamente alcançável pode ser feita com o "Homem no Meio".

Assim:

    
por 09.08.2016 / 19:44