Ilekroć korzystam z Internetu z niepewnej lokalizacji (takiej jak publiczne Wi-Fi), lubię korzystać z tunelu ssh ( ssh -D port host
), aby zapobiec wąchaniu mojego ruchu. Niestety wydaje się, że istnieje wiele aplikacji, które nie umożliwiają określenia serwera proxy (jednym z głównych przykładów jest Flash).
Wydaje się, że powinien istnieć sposób wykorzystania tunelu dla całego ruchu sieciowego z mojego komputera, ale jestem całkowicie nieświadomy, jak to zrobić. Każda pomoc byłaby bardzo mile widziana.
Odpowiedzi:
Aby zrobić to, czego chcesz, polecam sshuttle .
Używasz go w ten sposób:
Będzie automatycznie tunelował cały ruch TCP. Możesz dodać
--dns
argument, aby tunelował również ruch DNS. Serwer zdalny musi mieć tylko zainstalowany Python.Jeśli chcesz tylko tunelować określone programy, poleciłbym proxy .
Po zainstalowaniu uruchom proxy ssh socks w następujący sposób:
Spowoduje to uruchomienie serwera proxy „SOCKS” na <porcie lokalnym>.
Następnie edytuj plik /etc/proxychains.conf, aby wskazywał ten sam port co <port lokalny>.
Na koniec uruchom program, który chcesz proxy:
Powinno po prostu działać. Jednak kilka programów będzie miało problemy z działaniem z łańcuchami proxy. Pamiętaj również, że w Firefoksie musisz zmienić dodatkowe elementy w about: config, aby zmusić go do wyszukiwania DNS przez proxy zamiast ominięcia.
Dodatkowo, w przeglądarkach internetowych. Jeśli obsługują one proxy skarpet, nie musisz robić nic więcej, aby zmusić je do korzystania z wyżej wspomnianego tunelu ssh, po prostu wpisz 127.0.0.1 dla serwera proxy SOCKS i <port lokalny> dla portu proxy.
EDYCJA 3/29/16
Ponieważ w tym poście nadal pojawiają się głosy poparcia, pomyślałem, że go zaktualizuję. Proxychains jest nadal w większości repozytoriów Linuksa i nadal działa w systemie Linux. Jednak projekt został skutecznie porzucony i nie działa na OSX. W przypadku systemu Linux lub OSX bardzo polecam aktualizację do nadal utrzymywanego rozwidlenia: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Oprócz pracy zarówno w systemie Linux, jak i OSX, jest łatwy do skompilowania, a także ma znacznie lepszą obsługę tunelowania DNS.
Powinienem również wspomnieć o innej opcji, którą jest redsocks. Działa podobnie do serwerów proxy (-ng) i jest również prawdopodobne w Twoim repozytorium: https://github.com/darkk/redsocks
źródło
sshuttle -r root@host -x host 0/0
man ssh
podaje przykład dokładnie tego. VPN oparty na ssh:~~ snip ~~
Po skonfigurowaniu nowego interfejsu wystarczy ustawić domyślną trasę, co jest innym pytaniem.
źródło
Poszukaj opcji „Tunnel” w ssh. Spowoduje to utworzenie urządzenia tunelowego, do którego możesz przypisać adres IP, a następnie zmienisz domyślną trasę korzystania z tego tunelu.
źródło
Opracowałem oprogramowanie, które umożliwia przekazywanie całego TCP i opcjonalnie UDP przez proxy SOCKS5, w całym systemie.
http://code.google.com/p/badvpn/wiki/tun2socks
Można go nawet zainstalować na routerze, aby przekazywać wszystkie połączenia z komputerów w sieci LAN.
źródło
WIRTUALNE SIECI PRYWATNE W OPARCIU O SSH ssh zawiera obsługę tunelowania wirtualnej sieci prywatnej (VPN) za pomocą pseudo-urządzenia tun (4), umożliwiając bezpieczne połączenie dwóch sieci. Opcja konfiguracji sshd_config (5) PermitTunnel kontroluje, czy serwer to obsługuje i na jakim poziomie (ruch warstwy 2 lub 3).
źródło
Chciałem tylko wyjaśnić, że (host portu ssh -D) nie jest w 100% bezpiecznym sposobem, aby ruch nie był wąchany. Dodanie (host-port blowfish ssh -D -c) byłoby lepszym wyborem, ponieważ co najmniej dodajesz szyfrowanie do swojej sesji. Możesz dodać więcej opcji, ale wystarczy wpisać „man ssh” w terminalu lub w Google, aby uzyskać pełną listę.
Myślę, że opcją, której szukasz, jest skonfigurowanie VPN (Virtual Private Network)
Przeczytaj ten artykuł, aby zrozumieć różnicę między nimi ( SSH vs. VPN ) lub dobrą podsumowaną wersją , zanim zaczniesz konfigurować własną sieć VPN. Jeśli zdecydujesz się na trasę VPN, polecam OpenVPN , jego darmową i dużą ilość dokumentacji i wsparcia.
źródło
ssh -2 -C -D [...]
(wymuś SSH2, użyj kompresji) i upuść-c
. według mojego systemuman ssh
domyślnie lista szyfrów w SSH2 toaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. Chodzi mi o to, że jeśli-c blowfish
poprosisz, możesz skończyć z SSH1, który jest znacznie mniej bezpieczny niż SSH2.Skorzystaj z tych przykładów:
Przekaż port 80 ze zdalnego hosta do 8888 na lokalnym hoście
Użyj tego, aby uzyskać dostęp do usług na zdalnym hoście, które są dostępne tylko tam
Przekaż port 80 z yourlocalhost do 8888 na zdalnym hoście
Użyj tego, aby zezwolić innym użytkownikom na dostęp do twoich usług: serwera WWW lub cokolwiek innego.
Twoje zdrowie! :)
źródło