Przekierowywanie całego ruchu przez skarpety proxy za pomocą ssh -D

9

czy jest to łatwy sposób na przekierowanie całego ruchu przez proxy ssh za pomocą -D?

Mogę tak skonfigurować indywidualne aplikacje, ale chciałbym, aby konfiguracja kierowała cały ruch na maszynie. Dzięki za pomoc!

grm
źródło
Zapomniałem powiedzieć, że tak idealnie byłem na Linuksie, czymś, przez co mogę trasować za pomocą iptables.
grm

Odpowiedzi:

10

W systemie Linux:

  1. iptables -t nat -A WYDAJNOŚĆ! -d 127.0.0.0/8 -j REDIRECT - do 1081
  2. Uruchom program, który nasłuchuje 1081, pobiera rzeczywisty adres docelowy bez przekierowań, negocjuje z serwerem SOCKS i przekaźnikami.

Napisałem taki program do prywatnego użytku w Perlu (jakość prototypu) i piszę lepszą wersję w C. Nie został jeszcze opublikowany.

Aktualizacja: teraz opublikowana: http://github.com/vi/socksredirect/ Użyj prototype.pl. Wyślij mi powiadomienie, jeśli chcesz opracować lepszą wersję.

Aktualizacja 2 Utworzono nieco lepszą wersję: http://github.com/vi/tcpsocks i poprawkę do Socat 2: http://github.com/vi/socksredirect/blob/master/socat-2.0.0- b3-REDIRECT.patch

PS Większość mojego ruchu (a czasem niektórych sąsiadów) przechodzi teraz przez tcpsocks-> ssh.

Vi.
źródło
Bardzo ciekawy projekt Vi. Dzięki! Spojrzę na to.
grm
Prawdopodobnie powinieneś użyć więcej reguł iptables, aby wybrać ruch, który chcesz socksified. Używam „iptables -t nat -A WYJŚCIE -j QQQ”, następnie kilka „iptables -t nat -A QQQ <checks> -j RETURN” i na koniec „iptables -t nat -A QQQ -p tcp -j REDIRECT - -do 1234 ”.
Vi.
Dziękuję Ci! Zastanawiałem się, czy było to wykonalne, kiedyś znalazłem się na mojej długiej liście pomysłów projektowych.
Tobu,
@Tobu, zaimplementowałem to więcej: teraz jest łatka Socat ( github.com/vi/socksredirect/blob/master/... ) dla tego, a także lekki program tcpsocks ( github.com/vi/tcpsocks )
Vi .
1
@Tanmay, na urządzeniu tun zobaczysz tylko pakiety TCP i trudno byłoby zdekodować je do strumienia bajtów (potrzebujesz czegoś takiego slirp). z REDIRECT lub TPROXY wystarczy użyć zwykłego, recvktóry daje zdekodowane dane bez nagłówków TCP.
Vi.
8

Avery Pennarun za sshuttle działa podobnie do Vi „s odpowiedzi , ale wymaga mniej konfigurację i działa na BSD i OS X oraz Linux.

efemeryczny
źródło
2

Może zamiast tego powinieneś rozważyć skonfigurowanie VPN.

Espennilsen
źródło
Czy nie wymagałoby to większego dostępu po stronie bramy?
grm
Mam konfigurację serwera VPN (poptop) w domu na Ubuntu. A w pracy po prostu używam wbudowanego klienta VPN w systemie Windows, aby się z nim połączyć. Nie przejmuj się moim administratorem sieci ani nic takiego.
Espennilsen
1

Nie sądzę, że jest na to sposób, ale może możesz wypróbować programy takie jak FreeCap (Windows), SocksCap (Windows) lub proxy (Linux). Te programy mogą ci trochę pomóc.

Ryba Na Parze
źródło
0

Zależy, jakiego systemu operacyjnego używasz. Jeśli korzystasz z systemu MacOS, istnieją globalne ustawienia proxy, z których powinna korzystać każda aplikacja, nawet jeśli są tacy, którzy ich nie szanują (np. Firefox).

Sideshowcoder
źródło
W szczególności w systemie MacOS należy zweryfikować zaufanie do globalnych ustawień proxy.
chiggsy,
-1

Możesz także użyć czegoś takiego jak Proxifier ( http://www.proxifier.com/ ) dla komputerów Mac lub Windows.

Chociaż to tak naprawdę nie odpowiada na pytanie.

Mennica
źródło
odpowiedź nie w punkcie
Alex H