Encaminhar todo o tráfego HTTP através do polipo

3

Eu configurei polipo na minha máquina para ouvir porta padrão 8123 . Para testá-lo, configurei o cache in-memory para um ridiculamente alto de 2 GB e baixei um arquivo de 50 MB usando wget utilizando o proxy.

http_proxy='http://localhost:8123' wget server/file

Como esperado, a primeira execução precisa de alguns segundos para transferir o arquivo. As repetições subsequentes utilizam o armazenamento em cache e são concluídas em menos de um segundo.

Agora, quero tentar direcionar todo o tráfego HTTP (porta 80) para ser roteado automaticamente por polipo , para que eu não precise especificar o proxy com cada navegador da Web, cliente de email ou outro programa que eu uso. Embora o o faq realmente indique que o polipo não se destina a este caso de uso , o Wiki do Arch Linux menciona para fazer isso via iptables

iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123

Depois de executar esses comandos como root, eu emito novamente o comando wget sem o conjunto de variáveis de ambiente proxy. Todas as invocações precisam baixar o arquivo novamente, o cache não é utilizado, o que também é refletido por

$ iptables -t nat -vL
[...]
Chain OUTPUT (policy ACCEPT 5 packets, 529 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    6   312 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http ! owner UID match polipo
    0     0 REDIRECT   tcp  --  any    any     anywhere             anywhere             tcp dpt:http redir ports 8123
[...]

Apenas a regra ACCEPT é acionada, não a diretiva REDIRECT . Eu também tentei inverter o filtro. Observe a negação ausente ! .

iptables -t nat -R OUTPUT 1 -p tcp --dport 80 -m owner --uid-owner polipo -j ACCEPT

Posteriormente, apenas a segunda regra foi utilizada, redirecionando todo o tráfego HTTP para sempre retornar a interface de configuração polipo .

Como eu configuro iptables corretamente para rotear o tráfego HTTP através de polipo ? É mesmo possível? Ou eu tenho que mudar para o mais pesado squid ?

    
por XZS 05.12.2013 / 12:44

0 respostas