redsocks + servidor de meias na máquina diferente

1

Eu tenho a seguinte configuração:

  • Host-X (192.168.1.100) executando ssh -D para que possa ser usado como servidor de meias.
  • Host-Y (192.168.1.101) executando redsocks configurados com o Host-X como socks.

Eles estão na mesma rede em conjunto com outras máquinas. Eu gostaria de usar o Host-Y como gateway em alguns computadores para aproveitar os redsocks. O encaminhamento de IP no host-Y está ativado.

Esta é a configuração de redsocks:

base {
    log_info = on;
    log = "file:/var/log/redsocks.log";
    daemon = on;
    redirector = iptables;
}
redsocks {
    local_ip = 0.0.0.0;
    local_port = 2001;
    ip = 192.168.1.100;
    port = 2000;
    type = socks5;
}

Estas são as regras do meu iptables:

iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS

Eu posso ver o tráfego vindo dos redsocks no Host-Y do log, mas não consigo navegar na Internet nos computadores que usam o Host-Y como gateway. Obviamente, existem algumas regras iptables em falta, eu acho que um que enviar tráfego de saída redsocks para o servidor de meias. Alguém que possa ajudar?

Obrigado!

    
por cyrusza 21.02.2015 / 09:41

1 resposta

1

Parece que se eu colocar a última regra como a primeira, tudo funciona corretamente. Então a solução é usar as seguintes regras do iptables:

iptables -t nat -N REDSOCKS
iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 2001
    
por 22.02.2015 / 14:45