Como configurar o iptables para um proxy squid com apenas um HW-NIC

Como configurar o iptables para um proxy squid com apenas um HW-NIC

Consegui um servidor com endereço ipad estático para alugar e agora quero configurar um proxy transparente neste servidor.

depois de configurar o squid para fins de teste com o ouvinte "http_access permitir todos", eu queria definir o iptables. descobri que só tenho uma conexão Ethernet com meu ipadress estático montado. mas pelo menos não encontrei uma documentação que me mostrasse como configurar isso. (encontrei muito sobre como configurar o squid com duas NICs físicas separadas, mas não com uma)

saída:

root@1:~# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3536 (3.5 KB)  TX bytes:3536 (3.5 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.1  P-t-P:127.0.0.1  Bcast:0.0.0.0  Mask:255.255.255.255
          inet6 addr: ::2/128 Scope:Compat
          inet6 addr: 2a01:[....]external-ipv6[...]/128 Scope:Global
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:551353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:455717 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:351211942 (351.2 MB)  TX bytes:267054641 (267.0 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:[...]external-ipv4[...]  P-t-P:[...]external-ipv4[...]  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

eu li muito sobre iptables e um pouco sobre ebtables. e agora fiquei preso. não sei qual passo deve ser o próximo.

meus iptables estão completamente vazios no momento.

preciso de ebtables para um proxy transparente funcionando corretamente? os iptables corretos são suficientes para fazer isso sem ebtables? nesse caso, eu apreciaria muito se você pudesse me dar uma string para configurá-los.

#

Fontes: wiki[.]ubuntuusers[.]de/Squid http://freecode.com/articles/configurando-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html

#

especialmente esta citação deveria me explicar como fazer isso, mas não entendi ...

Em seguida, adicionei as seguintes regras para encaminhar todas as solicitações http (chegando à porta 80) para a porta 3128 do servidor Squid:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

com

iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128

isso deveria funcionar, mas não funciona ...

Responder1

Você não pode usar um proxy transparente neste cenário.

Um proxy transparente deve estar na rota de rede do tráfego para que possa interceptar e reescrever todo o tráfego para redirecioná-lo para o squid, e como seu servidor está fora do caminho de rede, você não tem como fazer isso.

Se você quiser usar este servidor como proxy, ele terá que ser um proxy de encaminhamento normal.

informação relacionada