Seu problema é que eu entendi mal o que o RETURN faz. O link pode ajudar.
Atualmente, sua cadeia PROXY funciona da seguinte maneira:
- o tráfego entra na cadeia
PREROUTING, onde você tem (como uma primeira cláusula?)iptables -t nat -I PREROUTING -p tcp -j PROXY. - isso diz ao iptables para avaliar seu tráfego em relação à
PROXYchain - a cadeia
PROXYdiz uma das duas coisas: basicamente, há uma regra com uma açãoRETURNpara o tráfego ou não, eiptables -t nat -A PROXY -p tcp -j REDIRECT --to-ports 1080se aplica. - se seu tráfego corresponder a uma entrada
RETURN, o iptables retornará à correntePREROUTINGe avaliará a próxima regra. Parece que não há 'próxima regra' para fazer o que você quer.
O problema é este: iptables -t nat -A PROXY -d 10.0.0.15 -j REDIRECT --to-ports 1088
Você coloca isso na cadeia PROXY , mas todo o tráfego para o qual você deseja que esse redirecionamento seja aplicado está realmente configurado para RETURN (ou seja, sair) da sua corrente PROXY .
O que você precisa no lugar da linha acima é:
iptables -t nat -A PREROUTING -d 10.0.0.15 -j REDIRECT --to-ports 1088
A chave é a cadeia na qual a regra é. Com essa regra em PREROUTING, as regras de RETURN funcionarão conforme o esperado, forçando o tráfego de correspondência do 'padrão' PROXY rule iptables -t nat -A PROXY -p tcp -j REDIRECT --to-ports 1080 e de volta para PREROUTING , onde iptables -t nat -A PREROUTING -d 10.0.0.15 -j REDIRECT --to-ports 1088 pode ser aplicado.