Applicazione singola tramite tunnel OpenVPN (Debian Lenny)

Sto utilizzando Debian Lenny e voglio tunnel rtorrent solo attraverso un tunnel OpenVPN.

Ho un tunnel in esecuzione, il file di configuration ha questo aspetto:

client dev tun proto udp remote openvpn.xxx.com 1194 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/xxx/keys/ca.crt cert /etc/openvpn/xxx/keys/client.crt key /etc/openvpn/xxx/keys/client.key tls-auth /etc/openvpn/xxx/keys/tls.key 1 ns-cert-type server comp-lzo verb 3 auth-user-pass script-security 3 reneg-sec 0 

La mia idea è di poter gestire internamente un proxy sockd che reindirizza il traffico al tunnel openvpn. Potrei usare l'applicazione "nix" proxifier "tsocks" per consentire a rtorrent di connettersi attraverso quel proxy (come rtorrent non support i proxy).

Ho problemi a configurare sockd come il mio IP all'interno delle modifiche VPN each volta che si connette. Questo è un file di configuration che qualcuno avrebbe aiutato: http://ircpimps.org/sockd.conf Come i miei cambiamenti IP a ciascuna connessione non so cosa mettere in quel file di configuration. Non ho alcun controllo sul file di configuration lato host.

Qualsiasi aiuto voluto. Qualsiasi altro metodo è molto gradito.

Devi contrassegnare in qualche modo i pacchetti per questa applicazione. Il modo più semplice per farlo sarebbe il seguente:

  • Eseguire rtorrent come un proprio utente
  • Utilizzare iptables per contrassegnare le connessioni dall'utente rtorrent (-m proprietario –uid-owner rtorrent)
    • In alternativa potresti anche corrispondere al PID (–pid-owner)
  • Utilizza il routing dei criteri per indirizzare tali connessioni in modo diverso dalla tabella di routing "normale".

La spiegazione dettagliata sarebbe più utile se scritto qui, ma questo dovrebbe dare abbastanza parole chiave per google.

Un altro modo per risolverlo potrebbe essere quello di usare calzini ower ssh ( ssh -D portnumber port number) che funziona bene con tsocks.

Un proxy SOCKS non è probabilmente il miglior strumento per questo lavoro. Il modo in cui ho installato è:

  1. Eseguire rtorrent come utente specifico
  2. Utilizza iptables per inoltrare il traffico da tale utente tramite VPN

La domanda è soprattutto se si desidera eseguire rtorrent come un utente diverso. Probabilmente è in esecuzione all'interno dello schermo, e lo schermo non è un grande fan di su'ing per l'utente. È fattibile, ma un'altra cosa che dovrai capire.

Quando ho scoperto questa domanda esatta per il mio setup, ho trovato che è estremamente difficile limitare OpenVPN su un livello di process. Se riesci a trovare un modo per farlo funzionare, sarei interessato.

Dite rtorrent di ascoltare solo tun0 o qualunque IP sia assegnato ad esso. Questo dovrebbe occuparsi delle connessioni in arrivo.

Non so cosa sia "sockd" ma il file di configuration di /etc/tsocks.conf è /etc/tsocks.conf IIRC. Ma tu hai bisogno di un'applicazione di calzini all'altro lato e OpenVPN non lo è.

Sembra che tu possa dire a rtorrent di limitare le porte che utilizza per la connessione in output in un intervallo specifico. Fai questo e quindi utilizza iptables per REDIRECT traffico in output su quelle porte da eth0 a tun0 .