GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu tunelovat veškerý síťový provoz přes SSH?

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 pro proxy port.

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.


Linux
  1. Jak se dostat ke službě/serveru, který je v nepřístupné síti (pomocí SSH tunelů)

  2. Linux – Jak přesměrovat provoz mezi linuxovými síťovými jmennými prostory?

  3. Jak nastavit Reverse SSH Tunnel v Linuxu

  1. Jak mohu pingnout jiné kontejnery v síti dockerů prostřednictvím jejich názvu hostitele?

  2. Jak mohu vypsat všechny IP adresy v připojené síti, nejlépe přes Terminál?

  3. Napájet veškerý provoz přes OpenVPN pouze pro konkrétní síťový jmenný prostor

  1. Ssh – Jak se připojit k počítači přes jiný počítač pomocí Ssh?

  2. Ssh – tunelový provoz přes jiný stroj přes Ssh?

  3. SSH připojení přes reverzní (vzdálený) SSH tunel