SSH, více než zabezpečený shell

SSH (Secure SHELL) je protokol, který nám pomáhá bezpečně přistupovat ke vzdáleným počítačům, v podstatě jako to dělá Telnet, ale používá šifrovací algoritmy, které nám pomáhají udržovat naše připojení zabezpečené, zvláště pokud chceme přistupovat k počítačům, které plní důležitou funkci v síti. organizace.

Obecně platí, že pro přístup musíme zadat naše uživatelské jméno a adresu počítače, aby nás server SSH požádal o přístupové heslo:

ssh usuario@equiporemoto

Od okamžiku, kdy klient zahájí první spojení mezi vzdáleným počítačem a námi, informace již bezpečně cestují a brání tomu, aby někdo získal naše přístupové údaje k uvedenému počítači, nicméně SSH je velmi přizpůsobivý protokol, který nám nabízí mnoho možností.

SCP

Prvním z nich je schopnost přenášet soubory mezi klientem a vzdáleným počítačem bez nutnosti připojení serveru FTP nebo NFS, jednoduše pomocí SCP (Secure CoPy), který implementuje většina serverů SSH:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH tunelování

Tato funkce je velmi užitečná, protože nám umožňuje odesílat a přijímat informace, které nemusí být nutně příkazy prostředí mezi klientem a vzdáleným počítačem, například běžné procházení. Pokud nevíte, jaké to může mít použití, přemýšlejte o následujícím: musíte přistupovat ke stránce, ale místo, kde se nacházíte, má implementovaný firewall, který přesně blokuje tuto stránku, proto můžeme provést tunelování pomocí dálkového ovladače počítač, který nemá uvedené bloky a procházení uvedené stránky prostřednictvím naší relace SSH:

ssh -D 8888 usuario@equiporemoto

Po připojení náš klient SSH „naslouchá“ na portu 8888 jako server proxy, abychom mohli nakonfigurovat náš prohlížeč a veškerý provoz se přenáší prostřednictvím relace SSH

Tunel SSH

Dalším příkladem, který mě napadá, je situace, kdy kvůli určitému geografickému omezení nemůžeme přistupovat k webové službě z místa, kde jsme, při vytváření tunelu uvedená webová služba detekuje jako zdroj IP adresu našeho vzdáleného serveru, nikoli IP klienta. To je do jisté míry ekvivalentní VPN (Virtual Private Network)

Reverzní SSH

Pokud z nějakého důvodu potřebujeme přistupovat k počítači, který je za bránou firewall a neumožňuje nám přesměrovat na něj provoz SSH, můžeme provést „reverzní SSH“ takovým způsobem, že se tento počítač připojí k jinému serveru SSH, na ke kterému se také můžeme připojit, abychom získali přístup k zařízení za firewallem. Příklad, který nás napadne, je, když chceme pomoci příteli, který nemá ponětí, jak nakonfigurovat přesměrování na svém modemu, ale potřebujeme k jeho počítači přistupovat vzdáleně:

Friend -> Modem -> SSH Server <- O nás

Kroky, které je třeba dodržet, jsou relativně velmi jednoduché:

amigo
ssh -R 9999:localhost:22 usuario@servidorssh

nás
ssh usuario@servidorssh
Jakmile jsme uvnitř serveru SSH, můžeme se spojit s týmem našeho přítele pomocí
ssh amigo@localhost -p 9999

Jak vidíte, všechna kouzla spočívají v parametru -R, který informuje zprostředkující server, že na portu 9999 počítač našeho přítele nyní poslouchá jako server.

Toto je jen několik možností, které nám SSH nabízí, ale já vás například vyzývám k experimentování; můžeme dělat bezobslužné skripty pomocí klíčů RSA, přesměrovat relace X (grafický režim) do našeho grafického prostředí, abychom zmínili jen několik.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Astro řekl

    Výborný článek, těším se, až se vrátím domů a začnu je procvičovat.

    1.    adr14n řekl

      Díky moc! Je to vlastně můj první blogový příspěvek a je opravdu příjemné číst tyto komentáře. Na zdraví!

  2.   Pablo cardozo řekl

    Právě včera jsem se ptal na něco o tomto tématu a je to následující.

    Existuje způsob, jak být schopen scp celou složku, ale s přihlédnutím k datu souborů? Jinými slovy, mám složku s mnoha soubory, které jsem před nějakou dobou stáhl, mám zájem stáhnout pouze to, co bylo do této složky nahráno od určitého data.

    Zdravím a děkuji předem.

    1.    živý řekl

      Můžete to udělat s RSYNC přes SSH. 😉

      1.    giskard řekl

        rsync je víko nádoby !!! 😀

      2.    Eduardo řekl

        Doporučuji vám vyzkoušet unisono, je to SPECTACULAR, je k dispozici v repo operacích (minimálně debian a ubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        Používám jej k každodennímu zálohování poznámky na jiný počítač, kromě synchronizovaných adresářů na různých počítačích.

        Jeho použití je velmi snadné

        Doufám, že je to pro vás užitečné!

        Exitos
        Eduardo

    2.    Levák řekl

      To se zdá být spíše úkolem jako pro rsync, ale nevím, jestli existuje parametr, který by to konkrétně udělal, pokud ne, možná by to muselo být zpracováno ze skriptu

    3.    adr14n řekl

      Co mě napadne, je vytvořit ls seřazené podle data a odtud zkopírovat ty, které potřebujete, pomocí jednoduchého scp, protože scp nemá tolik funkcí, jak se říká, má rsync.

  3.   anonymní řekl

    Potvrzuji, že reverzní ssh je luxusní, použil jsem jej mezi svým počítačem a jiným, který byl vzdálen více než 700 km a nulové problémy.
    Děkuji za tyto články, jsou velmi cenné.

  4.   přestat řekl

    Tak slané! Haha, nevěděl jsem, že ssh má tolik možností, už se chci naučit, jak nastavit ssh server a experimentovat s jeho schopnostmi, jen jedna věc, mohl byste vysvětlit, co každý parametr dělá?

    1.    adr14n řekl

      Podle samotného ssh muže, -D slouží k lokální specifikaci 'dynamického předávání aplikací', což, jak jsem vysvětlil v článku, slouží k předávání provozu tunelem ve stejné relaci SSH. -R určuje vzdálený port, který bude přesměrován na náš lokální počítač přesměrování. A nakonec -p určuje, ke kterému portu se má klient připojit, když nepoužívá standardní port: 22

  5.   manuelmdn řekl

    Dobrá věc, která se dotýká tohoto tématu, mám otázku ohledně klíčů ssh, můžete vygenerovat více než jeden klíč pro různé služby? Doufám, že zveřejnili příspěvek o správě klíčů ssh, vím, že v google existuje odpověď. Oni bude o tom mluvit,

    Zdravím!

    1.    adr14n řekl

      Když používáte ověřování pomocí klíčů SSL, můžete exportovat stejný (váš počítač) do různých služeb a stejným způsobem, pokud je váš počítač server, můžete začlenit různé klíče z různých počítačů. Nevím, jestli jsem odpověděl na vaši otázku, ale pochopil jsem to. Na zdraví

  6.   Luis řekl

    Myslím, že si pamatuji, že existovala cesta přes ssh, která nám umožnila vzdáleně spustit aplikaci a zobrazit ji v našem počítači, jako by to byla místní aplikace.

    Mohli bychom například spustit firefox, vidíme a ovládáme jej na místním počítači, ale proces běží na vzdáleném počítači.

    Obzvláště užitečné v počítačích s několika zdroji, ale bohužel nekontroluji problém a nevím, jak to nakonfigurovat.

    Ví o tom někdo něco?

    1.    Zaměstnanci řekl

      Pro něco takového by bylo vhodné použít VNC a můžete tunelovat pomocí SSH.

      1.    x11tete11x řekl

        @Staff pro mě by nebylo vhodné používat VNC .. s VNC, pokud nejsem špatný, přinesete celou plochu ..

        @ Luis, to, co děláte, se provádí jednoduše přidáním parametru "-X" do ssh (musíte povolit přesměrování X na vašem serveru)

        http://i.imgur.com/NCpfzBL.jpg

      2.    Zaměstnanci řekl

        @ x11tete11x
        Vzhledem k tomu, co Luis zmínil, mě napadlo nabídnout mu jinou alternativu, protože:

        1. „Obzvláště užitečné na počítačích s několika zdroji ...“

        -V případě jediné aplikace nemusí spotřebovat tolik prostředků, ale pokus o otevření 10 oken pomocí předávání x nadále způsobí, že systém bude pracovat tvrději než mít jednu instanci VNC, protože VNC „nepřinese celou plochu“
        -Při zavírání programu na klientovi to skončí stejně na serveru (někdo mě opraví, pokud se mýlím), zatímco u VNC můžete například nechat stahování torrentu celou noc a ráno se znovu přihlásit a všechno by pokračovalo přesně jak jsem odešel.
        -VNC je systémový agnostický protokol, můžete k němu přistupovat z klienta ve Win, Andorid, Mac OSX atd. a používat své programy GNU / Linux, aniž byste museli instalovat cokoli jiného než samotného klienta VNC.

        A 2. „... bohužel nekontroluji problém a nevím, jak nakonfigurovat počítače, aby to dělaly.“

        Je mnohem snazší (a bez rizika napsat něco špatně a restartovat bez plochy) nainstalovat VNC a nakonfigurovat tunel SSH (provádí se pomocí grafického uživatelského rozhraní), než přesouvat konfigurační soubory X.

      3.    Luis řekl

        Děkuji vám oběma za vaše komentáře.

        Už nějakou dobu používám SSH společně s SHFS pro přístup ke vzdálenému obsahu na mém malém serveru, ale nikdy jsem nebyl schopen spustit vzdálené aplikace v grafickém prostředí.

        Zkusím obě možnosti, abych zjistil, jak to funguje. To, o čem jsem mluvil zpočátku, se zdá jednodušší, protože podle x11tete11x stačí přidat pouze jeden parametr.

        Později uvidím, jestli najdu jednoduchý způsob, jak konfigurovat VNC, protože jsem trochu velký, jsem uživatel Arch, takže určitě budou na wiki informace, něco jiného je pro mě zjistit. Hehehe

        Pozdrav.

    2.    adr14n řekl

      To lze provést předáním parametru -X relaci, ale musíte mít svůj X server nakonfigurovaný tak, aby přijímal připojení z počítače v síti, myslím, že je nakonfigurován pomocí nástroje xhost. Jak zaměstnanci zmiňují, VNC je také velmi dobrá volba

    3.    Mario řekl

      Je to přesměrování X11, zde na stejném webu je příspěvek o tom:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Luis řekl

      Díky za informace, přátelé.

      Řekl jsem, že to udělám pomocí obou možností, abych zjistil, který z nich mi vyhovuje lépe.

      Zdravím!