Chcete-li dělat to, co chcete, doporučuji sshuttle.
Používáte to takto:
./sshuttle -r [email protected] 0.0.0.0/0 -vv
Automaticky za vás tuneluje veškerý váš TCP provoz. Můžete přidat --dns
argument, aby to tunelovalo i váš DNS provoz. Vzdálený server potřebuje mít pouze nainstalovaný Python.
Pokud chcete tunelovat pouze specifické programy, doporučil bych proxychains.
Jakmile je nainstalován, spusťte server ssh socks proxy takto:
ssh -fNTD 127.0.0.1:<local port> [email protected]
Tím se spustí proxy "SOCKS" naslouchající na
Poté upravte soubor /etc/proxychains.conf tak, aby ukazoval na stejný port jako
socks5 127.0.0.1 <localport>
Nakonec spusťte program, který chcete používat jako proxy:
proxychains <program name>
Mělo by to fungovat. Několik programů však bude mít problémy s prací s řetězci proxy. Také mějte na paměti, že ve Firefoxu musíte změnit další položky pod about:config, abyste jej vynutili, aby prováděl DNS vyhledávání přes proxy, místo aby to obcházel.
Jako další poznámka, na webových prohlížečích. Pokud podporují Socks proxy, nemusíte dělat nic dalšího, abyste je přiměli používat výše zmíněný ssh tunel, stačí zadat 127.0.0.1 pro SOCKS proxy server a
UPRAVIT 29. 3. 2016
Vzhledem k tomu, že tento příspěvek stále vidí nějaké kladné hlasy, napadlo mě, že jej aktualizuji. Proxychains je stále ve většině linuxových repozitářů a stále funguje na Linuxu. Projekt je však efektivně opuštěn a na OSX nefunguje. Pro Linux nebo OSX velmi doporučuji upgrade na stále udržovaný fork:proxychains-ng:https://github.com/rofl0r/proxychains-ng
Kromě toho, že funguje v Linuxu i OSX, je snadno kompilovatelný a má také mnohem lepší podporu pro tunelování DNS.
Ještě bych měl zmínit další možnost, kterou jsou redsocks. Funguje to podobně jako proxychains(-ng) a je také pravděpodobné ve vašem dist repo:https://github.com/darkk/redsocks
UPRAVIT 27. 11. 2019 Pokud se vydáte cestou proxychains, použijte proxychains-ng. Existuje několik oprav závažných chyb oproti starší verzi, například:https://github.com/rofl0r/proxychains-ng/issues/292
man ssh
uvádí příklad přesně tohoto. VPN založené na ssh:
SSH-BASED VIRTUAL PRIVATE NETWORKS
ssh contains support for Virtual Private Network (VPN) tunnelling using
the tun(4) network pseudo-device, allowing two networks to be joined
securely. The sshd_config(5) configuration option PermitTunnel controls
whether the server supports this, and at what level (layer 2 or 3 traf-
fic).
The following example would connect client network 10.0.50.0/24 with
remote network 10.0.99.0/24, provided that the SSH server running on the
gateway to the remote network, at 192.168.1.15, allows it:
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.0.50.1 10.0.99.1 netmask 255.255.255.252
~~ stříhat ~~
Since a SSH-based setup entails a fair amount of overhead, it may be more
suited to temporary setups, such as for wireless VPNs. More permanent
VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).
Jakmile toto nové rozhraní zprovozníte, budete ho muset nastavit jako výchozí trasu, což je jiná otázka.
Hledejte možnost "Tunnel" v ssh. Tím se vytvoří tunelové zařízení, kterému můžete přiřadit IP adresu, a poté změníte výchozí trasu pro použití tohoto tunelu.