Aluguei espaço em um servidor com endereço IP estático e gostaria de configurar um proxy transparente neste servidor.
Depois de configurar o Squid para fins de teste com o listener http_access allow all
, eu queria definir as informações do iptables. Tenho apenas uma conexão Ethernet com meu endereço IP estático montado. Procurei alguma documentação sobre como fazer isso com uma única NIC, mas não consegui encontrar nenhuma. (Há bastante para dois ou mais, mas não para uma única NIC.)
Atualmente me dá esta 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
Não tenho certeza de onde devo ir a partir daqui. Meus iptables estão completamente vazios no momento. Preciso de ebtables para um proxy transparente funcionando corretamente ou os iptables corretos são suficientes para fazer isso sem ebtables? Em caso afirmativo, existe um comando fácil que você poderia me dar para configurá-los?
Fontes:
- http://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 ...