TOR Proxy Transparente - Como faz o trabalho de redirecionamento TCP

3

Eu usei um conjunto de regras iptables com base no conjunto de regras de amostra do link , seção Linux , Redirecionamento local através de Tor , para configurar o Tor como um proxy transparente.

Eu pensei que tinha entendido esse conjunto de regras, mas há um ponto que simplesmente não entendo: que os segmentos TCP são redirecionados apenas para a porta que o Tor escuta quando o sinalizador SYN é definido.

Por exemplo, quero visitar http://www.example.com . Meu navegador faz uma solicitação de DNS, obtém o endereço IP correspondente e envia um segmento TCP para esse endereço, o sinalizador SYN é definido.

De acordo com o conjunto de regras, o segmento é redirecionado para a porta Tor, portanto, o Tor funciona como um proxy, direciona o pacote IP para http://www.example.com e retorna a resposta do servidor do site para o meu navegador. Meu navegador recebe um pacote de volta onde o IP de origem é aquele do servidor e o sinalizador ACK está definido na carga TCP, certo?

Assim, meu navegador envia o próximo segmento TCP, onde o sinalizador SYN não está mais definido para o endereço IP de www.example.com.

Mas, não há regra correspondente na tabela NAT porque o sinalizador SYN não está definido. Portanto, ele não deve ser redirecionado ou aceito na tabela de saída posteriormente.

No entanto, tudo está funcionando bem. Que ponto estou faltando?

    
por barfoo 11.05.2012 / 01:46

2 respostas

1

A regra que cuida dos pacotes após o primeiro ACK é:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Essencialmente significa: deixar todos os pacotes que são parte ou relacionados a uma sessão estabelecida passarem. Todos os pacotes da sua máquina que seguem o SYN inicial (desde que houvesse uma resposta válida para isso) fazem parte de uma sessão estabelecida, então eles passarão. ( RELATED é usado para protovols como o FTP, se você tiver esse módulo ativado, onde uma sessão "normal" pode envolver mais de uma sessão TCP.)

Observe que como você configurou o redirecionamento de DNS para o Tor também e usa AutomapHostsOnResolve , o endereço IP que seu navegador (e outro software) verá não é o endereço IP do www.example.com, mas um virtual endereço no intervalo que você especificou ( 10.192.0.0/10 ). Isso é incorreto, apenas alguns sufixos são mapeados para esse intervalo local ( .exit e .onion por padrão).

    
por 11.05.2012 / 06:55
0

O trecho abaixo foi retirado do início do capítulo 5, Controlando o que fazer com o NAT em este guia para NAT de 2002.

      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Routing ]----------------->POSTROUTING----->
     \D-NAT/     [Decision]                    \S-NAT/
                     |                            ^
                     |                            |
                     --------> Local Process ------

" Em cada um dos pontos acima, quando um pacote passa, procuramos por qual conexão ele está associado. Se é uma nova conexão, procuramos a cadeia correspondente na tabela NAT para ver o que fazer com A resposta dada será aplicada a todos os pacotes futuros nessa conexão. "

    
por 16.05.2012 / 08:06