
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.