Usar a propriedade do socket para quebrar um ciclo de redirecionamento de proxy local
Exclua os sockets de saída do próprio processo do proxy de um redirecionamento OUTPUT local em vez de adivinhar as suas portas de origem.
Um proxy de interceção local abre novas ligações de saída. Se um redirecionamento OUTPUT abrangente também capturar esses sockets, devolve o proxy ao seu próprio ouvinte.
Para uma configuração IPv4 iptables NAT existente, uma identidade de serviço dedicada pode distinguir esses sockets:
-A OUTPUT -p tcp -m owner ! --uid-owner proxyuser \
-m multiport --dports 80,443 -j REDIRECT --to-ports 8080
Este fragmento de regras pressupõe que o ouvinte capaz de interceção já existe na porta 8080 e que os sockets de saída do proxy pertencem a proxyuser. As ligações desse utilizador ficam excluídas desta regra; as ligações elegíveis de outros utilizadores são redirecionadas.
Um navegador escolhe normalmente uma porta de origem efémera. Corresponder a porta de origem 80 ou 443 não é uma forma fiável de reconhecer as suas ligações ao site nem de isentar o proxy.
A correspondência de proprietário diz respeito ao tráfego gerado localmente com propriedade do socket. Não substitui uma política de endereço de origem para os pacotes que chegam de outras máquinas.
Tenha presente a ordem de regras existente e a política de rede. O redirecionamento não transforma um ouvinte SOCKS em bruto num adaptador de interceção, e o IPv6 também precisa da sua configuração adequada.