
Estou tendo um problema com o iptables devido ao meu pequeno envolvimento com ele.
Eu tenho uma configuração de retransmissão de saída TOR e estou tentando redirecionar todo o tráfego local e TOR para que ele saia da minha caixa na porta 8080.
Atualmente eu tenho definido como:
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
Mas isso só parece redirecionar o tráfego transitório quando estou agindo como um roteador, em vez do tráfego originado na caixa.
Responder1
Não estou comentando sobre o TOR porque não tenho muito conhecimento.
Mas para o objetivo do iptables, aqui está. PREROUTING
envolve roteamento. Ao iniciar uma conexão a partir dolocalsistema, você não está roteando. Você apenas precisa usar OUTPUT
em vez/além de PREROUTING
.
Escopo deREDIRECT
:
REDIRECT
Este alvo só é válido na tabela nat, nas cadeias PREROUTING e OUTPUT e nas cadeias definidas pelo usuário que são chamadas apenas a partir dessas cadeias. Ele redireciona o pacote para a própria máquina, alterando o IP de destino para o endereço primário da interface de entrada (os pacotes gerados localmente são mapeados para o endereço localhost, 127.0.0.1 para IPv4 e ::1 para IPv6).
Então:
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
EDITAR:
Para evitar que um usuário ou grupo específico seja redirecionado (por exemplo, para evitar um loop infinito com o serviço na porta 8080), você pode fazer assim (exemplo para um serviço rodando com grupo efetivo tor
) em vez do acima:
iptables -t nat -N OUTPUT intercept
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j intercept
iptables -t nat -A intercept -m owner --gid-owner tor -j RETURN
iptables -t nat -A intercept -j REDIRECT --to-ports 8080