Portál AbcLinuxu, 8. května 2025 04:30

Dotaz: reverzni ssh

Gilhad avatar 28.12.2013 09:15 Gilhad | skóre: 20 | blog: gilhadoviny
reverzni ssh
Přečteno: 419×
Odpovědět | Admin
Byl jednou jeden malý box, který žil za sedmero NATy, sedmero firewally a stále se měnící IP. Když chtěl volat domů (ssh server), tak s tím problém nebyl, ale nikdo se nedokázal dovolat na něj (ssh box).

Existuje něco, co bych spustil na serveru, co by čekalo na ssh připojení od klienta a pokud by toto nastalo, tak umožnilo se na toho klienta dostat?

Pokud jsem na boxu, udělám klasické "ssh server", tak se na serveru spustí bash, jeho stdout dostanu na svůj monitor a moje klávesnice jde na jeho stdin.

Já bych potřeboval něco na serveru, co udělá, že když se na to připojí box pomocí "ssh server", tak to nějak přidrží to spojení a když já jsem na serveru a připojím se k tomu, tak moje klávesnice bude stdin pro bash na boxu a stdout toho bashe uvidím na monitoru. (něco jako třeba "screen -r", které mě připojí k procesu běžícímu ve screenu)

Box i server mám plně pod kontrolou, čas dostaveníčka můžu snadno vynutit třeba přez stažení konfigurace pro cron, ale funguje jen ssh z boxu na server, obraceně komunukaci neumím inicializovat.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Gilhad (tazatel))
28.12.2013 09:50 NN
Rozbalit Rozbalit vše Re: reverzni ssh
Odpovědět | | Sbalit | Link | Blokovat | Admin
/usr/bin/ssh -n -f -N -T -R 1234:localhost:22 root@remote
Tohle se pusti na boxu uvnir. Na vzdalenem serveru vytvori reverzni tunel na localhostu a portu 1234. Akorat jsem ho nedonutil, aby byl permanentni.
Jendа avatar 28.12.2013 10:35 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: reverzni ssh
Většinou vytvořím skript jako
ps axu | grep -q [c]c.nsa.gov || ssh -N -R 0.0.0.0:1234:localhost:22 root@cc.nsa.gov
a vrazím ho do cronu. Pokud ssh neběží, pokusí se ho to navázat znova. Blbý by bylo, kdyby to natrvalo vytuhlo (ssh je spuštěné, ale neforwarduje data), ale to se mi ještě nestalo. Akorát občas při divných síťových podmínkách spadne klient, ale na serveru to zůstane viset až do timeoutu, pak se klient znova připojí, ale port už je obsazený. Pomůže ručně killnout proces klienta na serveru. Mám na to dokonce oneliner :)
kill `ps axu |grep ssh|grep janhrach|grep notty|tr -s " " | cut -d " " -f 2`
Ty nuly u parametru -R sshčka udělají, že se na to dá připojit i zvenku. U opensshd je potřeba mít zapnuté GatewayPorts clientspecified v konfiguráku.
Jendа avatar 28.12.2013 10:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: reverzni ssh
A pokud máte nedůvěryhodné klienty a bojíte se, že budou přes vás chodit na Alkajdu, tak buď rovnou v ssh jde nastavit
PermitOpen localhost:2254
nebo natáhnout do netfilteru iptables owner a
:LOGGING - [0:0]
-A OUTPUT -d 127.0.0.1/32 -p tcp -m owner --uid-owner 1022 -j ACCEPT
-A OUTPUT -m owner --uid-owner 1022 -j LOGGING
-A LOGGING -m limit --limit 5/min -j LOG --log-prefix "NSA dropped packet: "
-A LOGGING -j DROP
Gilhad avatar 28.12.2013 12:34 Gilhad | skóre: 20 | blog: gilhadoviny
Rozbalit Rozbalit vše Re: reverzni ssh
Diky, to je presne ono :) Nepotrebuju to nijak zvlast permamentni, me staci, ze si zaridim, ze zitra ve 12:00 se to stane a zitra ve 12:00 se tam naloguju, upravim, co je potreba a zavru spojeni. A znova treba za mesic, nebo dva.
28.12.2013 11:13 sFFDSH
Rozbalit Rozbalit vše Re: reverzni ssh
Odpovědět | | Sbalit | Link | Blokovat | Admin
co z klienta udalat rovnou vpn na server?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.