Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: fotka 02. 05. 2014, 21:37:30
-
Dobrý den,
mám PC ve firemní LAN a na něm je naisntlaovaný SSH server. Jak mohu dosáhnout aby se dalo k tomuto PC s neveřejnou IP připojovat odkudkoliv z internetu bez toho aby byl proveden port forwarding na routeru firemní sítě?
Vím že jsou Dynamic DNS služby jako duckdns.org, ale to mi neumožní obejít to že k tomu SSH serveru se asi nic nepřipojí z internetu?
poradíte jaké příkazy provést, jak na to prosím?
-
Asi jedinou možností je navázat si z toho počítače reverzní SSH tunel na nějaký vlastní server. Ten může být kdekoliv v internetu, ale musí mít sám veřejnou IP, aby ho ten počítač mohl kontaktovat. Pak bude na serveru existovat port, který se bude automaticky tunelovat do té privátní LAN.
SSH k tomu má parametr -R. Funguje to asi takto:
stroj-bez-verejne-IP$ ssh -R 12345:localhost:22 uzivatel@server
Na serveru se otevře port 12345, ze kterého povede tunel na inkriminované PC na port 22. Třeba.
-
Pokud je možné připojit se na nějaký počítač s veřejnou IP ve firemní síti, který vidí i do vnitřní sítě, lze spojení přesměrovat přes něj např. pomocí ssh tunelu (parametr -L), kdy ssh klient poslouchá na místním portu, který přesměruje přes ssh server na cílový počítač.
Pokud to možné není, lze postupovat obráceně a z počítače ve firemní síti se připojit na jakýkoli ssh server s veřejnou adresou a přesměrovat port ze serveru na port počítače ve firemní síti (parametr -R). Obměnou téhož je jakékoli spojení vytvořené z počítače ve firemní síti na server s veřejnou adresou, přes které je možné se do něj dostat (může být připojen např. do VPN).
Jsou i jinačí způsoby, ale ty nemám vyzkoušené, např. http://samy.pl/pwnat/ nebo hamachi.
-
Raději to prvně prober s adminem. Technicky to není neřešitelné, ale může to být chápáno jako narušení bezpečnosti se všemi důsledky.
-
na pocitaci kde ti bezi SSH server si nainstaluj openVPN nebo jinou VPN v rezimu klienta.
na netu si poridi VPN nebo nekde mimo nainstaluj OpenVPN server, a nastav si ze budes routovat
pak se pripoj do VPN site a z ni se pripojoj na svuj SSH server
-
Ja provozuji OpenVPN za podobnym ucelem na bezplatne VPS od http://www.host1free.com/
128MB RAM a 10GB disk na VPN bohate staci.
-
To co popisuje P. Krčmář je asi nejjednodušší a zároveň nejlepší řešení, taky to používám. Akorát je potřeba si uvědomit, že přístup z venku bude fungovat pouze pokud je to ssh spojení ven s nastaveným reverzním tunelem navázáno a funkční, takže je záhodno si ten příkaz vložit do nějaké smyčky, která to v případě výpadku (ukončení ssh) zase hned nahodí.
-
V
/etc/rc.local
mam toto:
autossh -o ServerAliveInterval=60 -o ServerAliveCountMax=5 -i /root/.ssh/id_rsa -M 0 -N -R 20000:localhost:22 user@server > /var/log/autossh.log 2> /var/log/autossh_error.log &
Autossh vie monitoring, ale nepouzivam (-M 0), aj podla man je vraj lepsie nechat overovanie stavu tunela priamo na ssh (-o ServerAliveInterval=60 -o ServerAliveCountMax=5). Samozrejme user sa prihlasuje na server pomocou klucoveho paru, na serveri staci uz len ssh root@localhost -p 20000
a ste tam.
-
na serveri staci uz len ssh root@localhost -p 20000
a ste tam.
No… to musíš mít na serveru ten klíč. A já třeba nemám žádný důvěryhodný server. Takže buď si udělat druhý (tentokrát -L) SSH tunel ze server k sobě, nebo nastavit v sshd "GatewayPorts clientspecified" a otevřít to zvenku (-R 0.0.0.0:1234:localhost:22).
-
Co takhle prohledat root.cz, než se zeptáš?
http://jenda.blog.root.cz/2008/07/28/reverzni-ssh-tunelovani/ (http://jenda.blog.root.cz/2008/07/28/reverzni-ssh-tunelovani/)
Blogpost je přesně to, co hledáš. A taky komentář s číslem 18 je velice poučný.