Come instradare la mia Internet attraverso un tunnel SSH?


24

Vecchia Q Come posso configurare un server OpenVPN senza i privilegi di root?

C'è un modo per configurare un server OpenVPN senza i privilegi di root? Ad esempio con i file di configurazione nella mia directory home? Se sì, come lo installo?

Sto cercando di SSH in un sistema e impostare un server OpenVPN laggiù per uso personale.

MODIFICARE

Poiché è evidente che OpenVPN ha bisogno dei privilegi di root, sto cambiando la domanda per instradare la mia rete tramite SSH che posso facilmente impostare.


Per "userspace", intendi in una cartella home senza permessi di root? Di solito, "userspace" è usato come l'opposto di "spazio del kernel".
Lekensteyn,


@Lekensteyn, sì senza il permesso di root, non conoscevo lo spazio utente riferito a qualcos'altro. Non esitate a modificare la mia domanda in qualcosa di appropriato. Stavo pensando anche a quella risposta, ma non so come impostare le cose senza i privilegi di root.
Oxwivi,

Risposte:


32

sshuttle è un server proxy trasparente che inoltra su una connessione SSH e imposta un proxy eseguendo gli script Python sul server remoto. sshuttlepuò essere eseguito nelle seguenti condizioni:

  • la macchina client o il router è basato su Linux, FreeBSD o Mac OS
  • privilegi amministrativi sul client
  • accesso alla rete remota tramite SSH
  • nessun privilegio di amministratore sulla rete remota
  • disponibilità di Python sul server remoto

Installa sshuttleinserisci qui la descrizione dell'immagine dal Software Center o dal Terminale:

sudo apt-get install sshuttle

Il comando di base per eseguire sshuttle con il routing di tutto il traffico è:

sshuttle -r username@sshserver:port 0/0

All'esecuzione del comando, sudoverrà visualizzata una richiesta di password e successivamente la password per l'account SSH. Nessun altro dettaglio apparirà tranne un breve messaggio e tornerà alla shell in caso di fallimento. Per altri messaggi di stato, esegui sshuttlein modalità dettagliata con il -vflag.

In questo esempio tutto il traffico Internet tranne il DNS viene instradato attraverso la VPN. -rflag indica il nome host remoto e il nome utente e la porta opzionali che seguono nell'esempio sopra. 0/0è l'abbreviazione di 0.0.0.0/0che rappresenta le subnet da instradare sulla VPN. L'utilizzo di 0/0instrada tutto il traffico tranne le richieste DNS al server remoto. L'ottimizzazione DNS è possibile con l'uso di -Hflag.

Si prega di leggere la pagina man ( man sshuttle) per i dettagli delle opzioni e modalità in cui è sshuttlepossibile eseguire. Per informazioni sul concetto e altri esempi, consultare la pagina del progetto .


vale la pena considerare anche le redsocks ; stesse caratteristiche, esecuzione leggermente diversa
sanmai

17

Non è possibile impostare OpenVPN senza i privilegi di root perché alcune operazioni lo richiedono.

  • Prerequisiti: è necessario abilitare l'inoltro di pacchetti nel firewall (iptables?)
  • Aggiunta di dispositivi in ​​funzione: è necessario aggiungere uno speciale dispositivo virtuale tramite ifconfig. In caso contrario, non è possibile alcuna comunicazione tra il server e il client

A seconda delle esigenze, sono disponibili altre soluzioni. Per navigare attraverso il server, è possibile configurare un server SOCKS.

Proxy SOCKS

Configurare un proxy SOCKS non è difficile: è incorporato in OpenSSH. Per abilitare il server SOCKS, eseguire il comando successivo in un terminale :

ssh user@host -D1234

Sostituisci 1234 con la tua porta preferita. Nel tuo browser, puoi inserire localhostcome host e 1234come porta sul server SOCKS4 / 5.

Di seguito è riportato un esempio nel browser Firefox:

  1. Vai a Modifica -> Preferenze
  2. Apri la sezione Avanzate
  3. Vai alla scheda Rete
  4. Premi Impostazioni
  5. Seleziona Configurazione proxy manuale
  6. Inserisci localhostcome host SOCKS
  7. Immettere 1234come porta (la stessa porta specificata nel comando SSH)
  8. Premere OK e Chiudi per chiudere le finestre di dialogo delle preferenze.

Esempio di installazione di Firefox


1
Voglio instradare la mia Internet attraverso il sistema su cui voglio configurare la VPN.
Oxwivi,

Sfortunatamente, non è possibile modificare le regole di routing sul server senza i privilegi di root. Una soluzione che fornisce almeno una soluzione sicura per la navigazione consiste nell'utilizzare un proxy SOCKS come descritto nella risposta.
Lekensteyn,

1
Sono riuscito a instradare la mia rete sul tunnel SSH. Devo modificare la tua risposta per fare specifico riferimento a quella come ho modificato la domanda? O lo farai?
Oxwivi,

@Oxwivi: lo riordinerò e aggiungerò un esempio per Firefox.
Lekensteyn,

-1

Se vuoi solo tunnelare il tuo traffico TCP di sistema, ti consiglio di usare un programma chiamato tun2socks. Se vuoi anche tunnelare il traffico UDP devi installare udpgw sul tuo server.

Ecco un tutorial su come installare e utilizzare questi programmi: http://board.nwrk.biz/viewtopic.php?id=3


4
Potresti aggiornare la tua risposta e spiegare i passaggi più importanti del tuo link qui? In questo modo questa risposta sarà comunque utile anche se il sito non sarà più disponibile.
Louis Matthijssen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.