Como posso redirecionar todo o tráfego para um IP específico? (pseudo-proxy)

1

Eu tenho um túnel SSH assim:

ssh -D 10.1.2.1:8080 -f -C -q -N name@ssh_server_ip

Eu tenho um computador na rede local (na verdade, VPN, mas não é importante neste caso) com um IP de 10.1.2.2.

Eu quero redirecionar todo o tráfego de 10.1.2.2 (na verdade de 10.1.2.2 - 10.1.2.80) para 10.1.2.1. Não quero definir um proxy no navegador da Web.

Afinal, 10.1.2.2 deve conectar via 10.1.2.1 ao ssh_server_ip sem nenhum ajuste no 10.1.2.2.

Isso é necessário porque alguns dos "computadores" serão dispositivos móveis e não posso forçá-los a usar um pseudo-proxy SOCKS5.

Estou usando o Debian.

    
por user1443373 27.07.2012 / 00:18

1 resposta

0

Você pode usar iptables e redsocks para redirecionar todo o seu tráfego para o proxy socks5 que você já estabeleceu. Está bem descrito no link .

É assim que o seu redsocks.conf poderia ser se os redsocks estivessem rodando no seu cliente (10.1.2.2):

redsocks {
    /* 'local_ip' defaults to 127.0.0.1 for security reasons,
     * use 0.0.0.0 if you want to listen on every interface.
     * 'local_*' are used as port to redirect to.
     */
    local_ip = 127.0.0.1;
    local_port = 12345;

    // 'ip' and 'port' are IP and tcp-port of proxy-server
    ip = 10.1.2.1;
    port = 8080;

    // known types: socks4, socks5, http-connect, http-relay
    type = socks5;

    // login = "foobar";
    // password = "baz";
}

Neste caso, redsocks em execução na porta 12345 e você só tem que dizer iptables para redirecionar as conexões tcp para redsocks:

# Create new chain
iptables -t nat -N REDSOCKS

# Ignore LANs and some other reserved addresses.
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

# Anything else should be redirected to port 12345
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345

# Any tcp connection made by 'luser' should be redirected, put your username here.
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner luser -j REDSOCKS

Para mais informações (por exemplo, sobre como limpar o iptables novamente), dê uma olhada no site do Redsocks.

    
por 26.09.2012 / 14:39