SSH tunely: konfigurácia, použitie

SSH tunelovanie je spôsob dopravy ľubovoľných sieťových dát cez šifrované SSH spojenie. Môžete ho použiť na pridanie šifrovaných zastaraných programov. Môže sa použiť aj na implementáciu VPN (virtuálnych privátnych sietí) a prístupu k intranetovým službám prostredníctvom firewallov.

Úvod

Presmerovanie portov SSH vytvára zabezpečené spojenie medzi počítačom a vzdialeným počítačom, cez ktoré je možné prenášať služby. Keďže pripojenie je zašifrované, SSH tunelovanie je užitočné pri vysielaní informácií, ktoré používajú nešifrovaný protokol, ako napríklad protokol IMAP, VNC alebo IRC.


Tunel SSH systému Windows používa port 22 na poskytovanie šifrovania údajov prenášaných prostredníctvom verejnej siete (ako je internet), čím poskytuje funkcie VPN. IPsec má tranzitný režim, ale môže tiež pracovať v režime tunelovania prostredníctvom zabezpečenej bezpečnostnej brány.

Definícia

Tunel cez SSH je štandard pre zabezpečené vzdialené prihlásenie a prenos súborov cez nedôveryhodné siete. Poskytuje tiež spôsob, ako chrániť dátovú prevádzku konkrétnej aplikácie pomocou presmerovania portov, v podstate tunelovanie akéhokoľvek portu TCP /IP cez protokol SSH. To znamená, že návštevnosť je nasmerovaná na tok vnútri šifrovaného SSH spojenia, aby nemohol byť počúvaný alebo zachytený počas cesty. SSH tunelovanie vám umožňuje pridať sieťové zabezpečenie k zastaraným programom, ktoré nepodporujú šifrovanie.


Zabezpečené pripojenie na nespoľahlivú sieť sa vytvorí medzi klientom SSH a serverom SSH. Toto pripojenie SSH je zašifrované, chráni dôvernosť a integritu a overuje väzobné odkazy. Pripojenie SSH používa aplikácia na pripojenie k aplikačnému serveru. Po aktivácii tunelovania sa aplikácia pripája k portu lokálneho hostiteľa, ktorý počúva klienta SSH. Klient SSH presmeruje aplikáciu cez šifrovaný tunel na server. Ten sa spája s aktuálnym aplikačným serverom - zvyčajne na tom istom počítači alebo v tom istom dátovom centre ako SSH server. Preto je pripojenie aplikácie chránené bez nutnosti meniť pracovné postupy aplikácií alebo koncových užívateľov.

Tunelovacie protokoly - čo je to?

V počítačových sieťach umožňuje tunelovací protokol používateľovi siete prístup alebo poskytnutie sieťovej služby, ktorú základná sieť nepodporuje alebo neposkytuje priamo. Jednou z dôležitých aplikácií je umožniť, aby externý protokol pracoval v sieti, ktorá tento konkrétny protokol nepodporuje (napríklad spustenie protokolu IPv6 cez protokol IPv4). Ďalším dôležitým bodom je poskytovanie služieb, ktoré sú nevhodné alebo nebezpečné používať iba s použitím základných sieťových služieb. Napríklad poskytnutie podnikovej sieťovej adresy vzdialeného používateľa, ktorého fyzická sieťová adresa nie je súčasťou podnikovej siete. Keďže tunelovanie zahŕňa opätovné zabalenie prevádzkových dát do inej formy, prípadne použitím štandardného šifrovania,dôležitou vlastnosťou je skryť povahu dopravy, ktorá prechádza tunelmi.

Secure Shell - Secure Shell

Secure Shell sa skladá zo šifrovaného tunelu vytvoreného cez SSH spojenie. Používatelia môžu nakonfigurovať tunely SSH na odosielanie nešifrovanej návštevnosti cez sieť cez šifrovaný kanál. Počítače Microsoft Windows napríklad môžu zdieľať súbory pomocou protokolu SMB (protokol SMB), nešifrovaného protokolu. Ak chcete vzdialene pripojiť súborový systém Microsoft Windows cez internet, niekto sleduje pripojenie, vidí prenesené súbory. Ak chcete bezpečne pripojiť súborový systém Windows, môžete nainštalovať tunel SSH, ktorý nasmeruje všetku prevádzku SMB na vzdialený súborový server cez šifrovaný kanál. Napriek tomu, že samotný protokol SMB neobsahuje šifrovanie, šifrovaný SSH kanál, cez ktorý sa pohybuje, poskytuje bezpečnosť.

Typy presmerovania portov

Presmerovanie portov je široko podporovaná funkcia, ktorá sa nachádza vo všetkých hlavných klientoch a serveroch SSH. Pomocou funkcie presmerovania portov SSH môžete prostredníctvom siete prenášať rôzne typy internetového prenosu. Používa sa na zabránenie sledovaniu siete alebo na obchádzanie nesprávne nakonfigurovaných smerovačov na internete. Existujú tri typy presmerovania portov z SSH:
  • miestne - SSH klientske pripojenia presmerované na server SSH a potom na server;
  • vzdialené pripojenia na server SSH sú presmerované cezKlient SSH a potom na server;
  • Dynamické - pripojenia z rôznych aplikácií sa posielajú cez klient SSH, potom cez server SSH a nakoniec na niekoľko cieľových serverov.
  • Presmerovanie miestnych portov je najbežnejším typom a predovšetkým umožňuje obísť firewall spoločnosti, ktorá blokuje Wikipedia. Presmerovanie vzdialeného portu je menej časté. Umožňuje pripojiť sa na váš SSH server k počítaču na intranete vašej spoločnosti. Dynamické presmerovanie portov sa používa zriedkavo. Umožňuje obísť bránu firewall spoločnosti, ktorá úplne blokuje prístup na Internet. Vyžaduje veľa prispôsobovacích prác a zvyčajne je jednoduchšie použiť presmerovanie miestnych portov pre konkrétne stránky, ktoré chcete získať.

    Špecifikácie

    Ak chcete použiť presmerovanie portov, musíte sa presvedčiť, či je na serveri povolené presmerovanie portov. Musíte tiež poskytnúť zákazníkovi číslo zdroja a cieľového portu. Ak používate miestne alebo vzdialené presmerovania, musíte o tom informovať klienta koncového servera. Ak sa používa dynamické preposielanie, musíte nakonfigurovať aplikácie tak, aby používali proxy server SOCKS. Opäť, ako to urobiť, závisí od toho, ktorý SSH klient používate, takže možno budete musieť prečítať viac o dokumentácii.

    Príklady implementácie

    Najlepší spôsob, ako pochopiť, ako to funguje, je zvážiť príklad s lokálnym presmerovaním. Predstavte si, čo steNachádzate sa v súkromnej sieti, ktorá vám neumožňuje pripojiť sa na konkrétny server. Predpokladajme, že pracujete a vk.com je zablokovaný. Aby sme zablokovali zámok, môžeme vytvoriť tunel cez server, ktorý nie je v našej sieti, a tak získať prístup k požadovanému zdroju: $ ssh -L 9000: vk.com: 80 [email protected]. Kľúčom tu je -L, v ktorom sa uvádza, že realizujeme lokálne presmerovanie portov. Tím potom hlási, že posielame náš 9000 lokálny port do vk.com:80, čo je predvolený port pre protokol HTTP. Teraz musíte otvoriť prehliadač a prejsť na http: //localhost: 9000. Nespornou výhodou SSH tunelov je, že sú šifrované. Nikto nevidí, ktoré stránky navštívite - bude viditeľné iba pripojenie SSH na server.

    Pripojenie k databáze firewall

    Ďalším dobrým príkladom je, keď potrebujete prístup na port na vašom serveri, ku ktorému je možné ho vykonať len z lokálneho hostiteľa, nie vzdialene. Príkladom je potreba pripojenia k databázovej konzole, ktorá z bezpečnostných dôvodov umožňuje len lokálne pripojenie. Napríklad používate PostgreSQL na vašom serveri, ktorý štandardne počúva port 5432: $ ssh -L 9000: localhost: 5432 [email protected]. Časť, ktorá sa tu zmenila, je - localhost: 5432, ktorá odkazuje na presmerovania pripojení z miestneho portu 9000 na localhost: 5432 a na váš server. Teraz môžeme jednoducho pripojiť do našej databázy: $ psql -h localhost -p 9000.

    Odoslanie vzdialeného portu

    Teraz vysvetlite v reálnom príklade prácu diaľkového ovládačapresmerovanie hovorov. Predpokladajme, že vyvíjate aplikáciu Rails na vašom lokálnom stroji a chcete to ukázať priateľovi. Je nám ľúto, váš ISP vám nedal verejnú IP adresu, takže nie je možné pripojiť priamo k počítaču cez internet. Niekedy to môže byť vyriešený pomocou konfigurácie NAT (Network Address Translation) vo smerovači, ale to nemusí vždy fungovať, a budete musieť zmeniť konfiguráciu routeru, čo nie je vždy žiaduce. Toto riešenie tiež nefunguje, ak nemáte prístup do siete. Ak chcete vyriešiť tento problém, budete potrebovať iný počítač, ktorý je verejne prístupný a má prístup k SSH. Môže to byť akýkoľvek server na internete, ak sa k nemu môžete pripojiť. Budeme vytvárať SSH-tunel, ktorý sa otvorí nový port na serveri a pripojiť ho k miestnej port na počítači: $ ssh-R 9000: localhost: 3000 syntax [email protected] je veľmi podobná miestna port forwarding, s jednou výmenou -L na -R Rovnako ako pri lokálnom preposielaní portov zostáva syntax nezmenený.

    Rozsah a riziká

    Nevýhodou je, že každý užívateľ, ktorý sa môže prihlásiť k serveru môžu zahŕňať port forwarding. To je široko používaný interné IT špecialistov vstúpiť na ich domácich počítačov alebo serverov v cloude, port forwarding zo servera späť do firemného intranetu na svojom počítači alebo zodpovedajúci server. Hackermi a malware môžu tiež použiť, aby závadu algoritmus v internej sieti. Môže byť tiež použitýskrývať stopy útočníkov útokom s viacerými zariadeniami, ktoré umožňujú nekontrolované tunelovanie. Tunelovanie sa často používa v spojení s tunelovými kľúče PHP SSH a overovaním verejných kľúčov pre úplnú automatizáciu procesu.

    Výhody

    Predaj tunelov SSH je široko používaný v mnohých podnikových prostrediach, ktoré používajú systémy sálových počítačov ako svoje aplikácie. V takomto prostredí môžu mať samotné aplikácie veľmi obmedzenú bezpečnostnú podporu. Pomocou tunelovania je možné dosiahnuť kompatibilitu so systémami SOX, HIPAA, PCI-DSS a ďalšími normami bez nutnosti meniť aplikácie. V mnohých prípadoch sú tieto aplikácie a aplikačné servery také, že ich zmeny môžu byť nepraktické alebo príliš nákladné. Zdrojový kód nemusí byť k dispozícii, predávajúci mohol byť v konkurze, produkt môže byť mimo krabice alebo neexistuje tím vývojárov. Pridanie ochranného krytu, ako napríklad tmelu do tunela SSH, poskytuje ekonomický a praktický spôsob pridania bezpečnosti takýmto aplikáciám. Napríklad všetky bankomaty našej krajiny pracujú s použitím tunelov z bezpečnostných dôvodov.

    Riziká

    Ako užitočná vec nepochybne podporuje tunelovanie SSH. Zahŕňa riziká, s ktorými sa musí zaoberať oddelenie IT oddelenia pre bezpečnosť. Spojenie voľných tunelov SSH je chránené silným šifrovaním. Tým je ich obsah neviditeľný pre väčšinu nasadených riešení monitorovania siete a filtrovania prevádzky. Táto neviditeľnosť je znášanávýznamné riziko, ak sa používa na škodlivé účely, ako je filtrovanie údajov. Cybercriminals alebo malware môžu použiť tunely SSH na skrytie neoprávnených správ alebo na odstránenie ukradnutých údajov z cieľovej siete.
    Pri útoku tunelom SSH útočník nainštaluje server mimo cieľovej siete (napríklad Amazon AWS). Akonáhle je detektív detegovaný v cieľovom systéme, pripojí sa k externému SSH serveru zvnútra. Väčšina organizácií umožňuje výstup tunelov SSH v systéme Linux, prinajmenšom ak majú servery vo verejnom cloude. Toto pripojenie SSH je nakonfigurované s možnosťou, ktorá umožňuje odoslať port TCP z portu na externom serveri do portu SSH na serveri vo vnútornej sieti. Ak chcete nakonfigurovať tento tunel SSH, potrebujete vnútri jeden príkaz s jedným riadkom a môžete ho ľahko automatizovať. Väčšina firewallov ho takmer neochráni.

    Súvisiace publikácie