Přesměrování TCP portu bez použití iptables
Napsal: pát 13. led 2012 0:14:03
Pokud potřebujete na chvíli přesměrovat TCP port třeba jen proto, aby jste mohli provést nastavení zařízení za natem, můžete to udělat i bez použití iptables příkazem socat
Tento příkaz přesměruje místní port 444 na danou ip adresu port 80.
Více dokumentace zde http://www.cyberciti.biz/faq/linux-unix ... orwarding/
Příklady na manuálové stránce zde: http://www.dest-unreach.org/socat/doc/s ... l#EXAMPLES
Podobné s přidaným šifrováním a serverem, který dělá prostředníka (tunel) je ssh tunel.
O tom se můžete dočíst třeba zde.
http://www.mactech.com/articles/mactech ... index.html
Jeden příklad za všechny.
Příklad použití ssh tunelu. Právě se mi stalo, že můj poskytoval internetu mi blokuje tcp spojení na něktéré ip adresy .
Jako třeba wiki.4smart.cz nebo root.cz Je to záhada, nedělá to schávlně, nikdo neví čím to. Jako dočasné řešení je pro pne tedy tunel.
Na serveru 4smart stačí napsat příkaz.
Po zadání tohoto příkazu budu vyzván na svoje domácí heslo.
Tohle je opravdu zvláštní případ, ale pro vysvětlení principu to snad postačuje
77.93.202.9:80 - ip adresa na internetu kterou chci zpřístupnit z domu z lokální sítě. V tomto konkrétním případě je to wiki.4smart.cz
9090 port na mém počítači doma. Záměrně volím vyšší port, protože na ten má přístup i neroot.
81.245.14.37 -p 35 - adresa mého domácího stroje, port 35 je ssh port přesměrován na můj domácí pracovní počítač s linuxem
a výsledek ?
Nyní stačí když doma na svém počítač napíši http:/localhost:990 a objeví se stránka naší wiki.4smart.cz.
Můj poskytovatel internetu na mne nyní navíc nemůže špehovat, protože data se forwardují šifrovaným tunelem.
Pokud by na dané ip adrese fungovalo více domén, a vám se zobrazovala jiná než požadujete, postupujte podle návodu zde.
http://forum.odorik.cz/viewtopic.php?f=12&t=423
Abych se tedy z domu dostal na http://www.root.cz (můj poskytovatel internetu netbox mi jej nyní blokuje) přidám si do
/etc/hosts řádek
Dále jako root na svém domácím počítači spustím. Čímž řeknu, že domána http://www.root.cz se má nyní hledat na localhostu.
čímž si lokální port 80 přesměruji na lokální port 8080, kde mi začíná tunel. Tohle je zde jen proto, že mám zakázané se hlásit
na domácí počítač jako root. A porty 1-1024 má dovolené používat jen root. (nemohu na něj tedy napojit tunel přímo)
Tunel pak spustím na serveru 4smart příkazem:
Kdybych se mohl domů hlásit jako root nepotřeboval bych spouštět aplikaci socat, stačilo by jen
A nyní když ve svém prohlížeči napíši http://www.root.cz, zobrazí se mi stránky root.cz, data ale půjdou šifrovaným tunelem přes 4smart. (pokud bych ale zadal do prohlížeče rovnou 127.0.0.1 root.cz to pozná a přesměruje mě na jiné stránky, proto musím z adat rovnou doménu)
Aby tunel přes nekvalitní router/NAT sám od sebe po jisté době nečinnosti neodumřel, předejte na serveru s 4smart do souboru
/etc/ssh/ssh_config
řádek
Vám se ale asi většinou bude hodit obrácené použití, kdy budete chtít využít veřejnou adresu na 4smart aby jste se dostali ke svému linuxovému notebooku na neveřejné adrese a bez forwardování portů. Stačí když se notebook podobným způsobem přihlásí na 4smart (pomocí klíčů to může být automatizované) a vy takto vytvoříte tunel z veřejné adresy 4smart do svého notebooku za několika naty i firewally. Tohle si asi zaslouží vlastní článek na novinku na 4smart.
Přesměrování portů lze použít i obráceně ve tvaru:
Podrobnosti:
http://www.revsys.com/writings/quicktip ... unnel.html
Kód: Vybrat vše
socat TCP-LISTEN:444,fork TCP:81.32.43.128:80
Více dokumentace zde http://www.cyberciti.biz/faq/linux-unix ... orwarding/
Příklady na manuálové stránce zde: http://www.dest-unreach.org/socat/doc/s ... l#EXAMPLES
Podobné s přidaným šifrováním a serverem, který dělá prostředníka (tunel) je ssh tunel.
O tom se můžete dočíst třeba zde.
http://www.mactech.com/articles/mactech ... index.html
Jeden příklad za všechny.
Příklad použití ssh tunelu. Právě se mi stalo, že můj poskytoval internetu mi blokuje tcp spojení na něktéré ip adresy .
Jako třeba wiki.4smart.cz nebo root.cz Je to záhada, nedělá to schávlně, nikdo neví čím to. Jako dočasné řešení je pro pne tedy tunel.
Na serveru 4smart stačí napsat příkaz.
Kód: Vybrat vše
ssh -N -R 9090:77.93.202.9:80 domaciucet@81.245.14.37 -p 35
Tohle je opravdu zvláštní případ, ale pro vysvětlení principu to snad postačuje
77.93.202.9:80 - ip adresa na internetu kterou chci zpřístupnit z domu z lokální sítě. V tomto konkrétním případě je to wiki.4smart.cz
9090 port na mém počítači doma. Záměrně volím vyšší port, protože na ten má přístup i neroot.
81.245.14.37 -p 35 - adresa mého domácího stroje, port 35 je ssh port přesměrován na můj domácí pracovní počítač s linuxem
a výsledek ?
Nyní stačí když doma na svém počítač napíši http:/localhost:990 a objeví se stránka naší wiki.4smart.cz.
Můj poskytovatel internetu na mne nyní navíc nemůže špehovat, protože data se forwardují šifrovaným tunelem.
Pokud by na dané ip adrese fungovalo více domén, a vám se zobrazovala jiná než požadujete, postupujte podle návodu zde.
http://forum.odorik.cz/viewtopic.php?f=12&t=423
Abych se tedy z domu dostal na http://www.root.cz (můj poskytovatel internetu netbox mi jej nyní blokuje) přidám si do
/etc/hosts řádek
Kód: Vybrat vše
127.0.0.1 www.root.cz
Kód: Vybrat vše
socat TCP-LISTEN:80,fork TCP:127.0.0.1:8080
na domácí počítač jako root. A porty 1-1024 má dovolené používat jen root. (nemohu na něj tedy napojit tunel přímo)
Tunel pak spustím na serveru 4smart příkazem:
Kód: Vybrat vše
ssh -N -R 8080:www.root.cz:80 domaciucet@81.245.14.37 -p 35
Kód: Vybrat vše
ssh -N -R 80:www.root.cz:80 root@81.245.14.37 -p 35
Aby tunel přes nekvalitní router/NAT sám od sebe po jisté době nečinnosti neodumřel, předejte na serveru s 4smart do souboru
/etc/ssh/ssh_config
řádek
Kód: Vybrat vše
ServerAliveInterval 120
Přesměrování portů lze použít i obráceně ve tvaru:
Kód: Vybrat vše
ssh -f user@personal-server.com -L 2000:smpt.personal-server.com:25 -N
http://www.revsys.com/writings/quicktip ... unnel.html