Jak przekierować mój internet przez tunel SSH?

24

Stare Q Jak skonfigurować serwer OpenVPN bez uprawnień roota?

Czy istnieje sposób na skonfigurowanie serwera OpenVPN bez uprawnień roota? Np. Z plikami konfiguracyjnymi w moim katalogu domowym? Jeśli tak, jak to skonfigurować?

Próbuję włączyć SSH do systemu i skonfigurować tam serwer OpenVPN do użytku osobistego.

EDYTOWAĆ

Ponieważ jest oczywiste, że OpenVPN potrzebuje uprawnień roota, zmieniam pytanie na rutowanie mojego Internetu za pomocą SSH, który mogę łatwo skonfigurować.

Oxwivi
źródło
Czy przez „przestrzeń użytkownika” rozumiesz folder domowy bez uprawnień roota? Zwykle „przestrzeń użytkownika” jest używana jako przeciwieństwo „przestrzeni jądra”.
Lekensteyn,
@ Lekensteyn, tak bez uprawnień roota, nie wiedziałem, że przestrzeń użytkownika odnosi się do czegoś innego. Zmodyfikuj moje pytanie w coś odpowiedniego. Myślałem również o tej odpowiedzi, ale nie wiem o konfigurowaniu rzeczy bez uprawnień roota.
Oxwivi

Odpowiedzi:

32

sshuttle to przezroczysty serwer proxy, który przekazuje połączenie SSH i konfiguruje serwer proxy, uruchamiając skrypty Python na zdalnym serwerze. sshuttlemoże być uruchamiany w następujących warunkach:

  • komputer kliencki lub router jest oparty na systemie Linux, FreeBSD lub Mac OS
  • uprawnienia administracyjne na kliencie
  • dostęp do zdalnej sieci za pośrednictwem SSH
  • brak uprawnień administratora w sieci zdalnej
  • dostępność Pythona na zdalnym serwerze

Zainstaluj sshuttlewprowadź opis zdjęcia tutaj z centrum oprogramowania lub terminalu:

sudo apt-get install sshuttle

Podstawowe polecenie do uruchomienia sshuttle z routingiem całego ruchu to:

sshuttle -r username@sshserver:port 0/0

Po wykonaniu sudopolecenia pojawi się monit o podanie hasła, a następnie hasło do konta SSH. Żadne inne szczegóły nie pojawią się, z wyjątkiem krótkiego komunikatu i powrócą do powłoki po awarii. Aby uzyskać więcej komunikatów o stanie, uruchom sshuttlew trybie pełnym z -vflagą.

W tym przykładzie cały ruch internetowy oprócz DNS jest kierowany przez VPN. -rFlaga oznacza zdalną nazwę hosta oraz opcjonalną nazwę użytkownika i port, które podano w powyższym przykładzie. 0/0jest skrótem od, 0.0.0.0/0który reprezentuje podsieci do trasowania przez VPN. Użycie 0/0trasuje cały ruch z wyjątkiem żądań DNS do zdalnego serwera. Tunelowanie DNS jest możliwe przy użyciu -Hflagi.

Przeczytaj stronę man ( man sshuttle), aby uzyskać szczegółowe informacje o opcjach i trybach, w których sshuttlemożna uruchomić. Informacje na temat koncepcji i więcej przykładów można znaleźć na stronie projektu .

André Paramés
źródło
warto również rozważyć redsocks ; te same funkcje, nieco inna realizacja
sanmai
17

Nie można skonfigurować OpenVPN bez uprawnień roota, ponieważ niektóre operacje tego wymagają.

  • Wymagania wstępne: musisz włączyć przekazywanie pakietów w zaporze (iptables?)
  • Dodawanie działających urządzeń: za pomocą należy dodać specjalne urządzenie wirtualne ifconfig. W przeciwnym razie komunikacja między serwerem a klientem jest niemożliwa

W zależności od potrzeb dostępne są inne rozwiązania. Aby przeglądać serwer, możesz skonfigurować serwer SOCKS.

SOCKS proxy

Konfiguracja proxy SOCKS nie jest trudna: jest wbudowana w OpenSSH. Aby włączyć serwer SOCKS, uruchom następną komendę w terminalu :

ssh user@host -D1234

Zastąp 1234 preferowanym portem. W przeglądarce możesz wpisać localhostjako host i 1234jako port na serwerze SOCKS4 / 5.

Poniżej znajduje się przykład w przeglądarce Firefox:

  1. Przejdź do Edycja -> Preferencje
  2. Otwórz sekcję Zaawansowane
  3. Przejdź do zakładki Sieć
  4. Naciśnij Ustawienia
  5. Wybierz Ręczna konfiguracja proxy
  6. Wpisz localhostjako host SOCKS
  7. Wprowadź 1234jako port (ten sam port, jaki określono w komendzie SSH)
  8. Naciśnij OK i Zamknij, aby zamknąć okna dialogowe preferencji.

Przykład konfiguracji FIrefox

Lekensteyn
źródło
1
Chcę przekierować mój Internet przez system, na którym chcę skonfigurować VPN.
Oxwivi
Niestety nie można zmienić reguł routingu na serwerze bez uprawnień administratora. Jednym z rozwiązań zapewniających przynajmniej bezpieczne rozwiązanie do przeglądania jest użycie proxy SOCKS, jak opisano w odpowiedzi.
Lekensteyn,
1
Udało mi się przekierować mój Internet przez tunel SSH. Czy powinienem edytować twoją odpowiedź, aby odnosić się do niej w trakcie edytowania pytania? Czy zrobisz to?
Oxwivi
@Oxwivi: Zamówię go ponownie i dodam przykład dla Firefoksa.
Lekensteyn,
-1

Jeśli chcesz tylko tunelować ruch TCP w swoim systemie, zalecamy użycie programu o nazwie tun2socks. Jeśli chcesz także tunelować ruch UDP, musisz zainstalować udpgw na swoim serwerze.

Oto samouczek, jak zainstalować i korzystać z tych programów: http://board.nwrk.biz/viewtopic.php?id=3

Giri
źródło
4
Czy możesz zaktualizować swoją odpowiedź i wyjaśnić najważniejsze kroki swojego linku tutaj? W ten sposób ta odpowiedź będzie nadal przydatna, nawet jeśli witryna zniknie.
Louis Matthijssen