Úvodná » ako » Ako používať tunelovanie SSH na prístup k obmedzeným serverom a prehliadanie bezpečne

    Ako používať tunelovanie SSH na prístup k obmedzeným serverom a prehliadanie bezpečne

    Klient SSH sa pripája k serveru Secure Shell, ktorý vám umožňuje spustiť príkazy terminálu, akoby ste sedeli pred iným počítačom. Ale klient SSH tiež umožňuje "tunelovať" port medzi váš lokálny systém a vzdialený SSH server.

    Existujú tri rôzne typy SSH tunelovania a všetky sa používajú na rôzne účely. Každý zahŕňa použitie SSH servera na presmerovanie návštevnosti z jedného sieťového portu na druhý. Prevádzka sa odosiela cez šifrované SSH spojenie, takže sa nedá sledovať ani modifikovať počas prepravy.

    Môžete to urobiť s ssh príkaz obsiahnutý v systéme Linux, MacOS a iných operačných systémoch podobných operačným systémom UNIX. V systéme Windows, ktorý neobsahuje zabudovaný príkaz ssh, odporúčame bezplatný nástroj PuTTY na pripojenie k SSH serverom. Podporuje tunelovanie SSH.

    Presmerovanie miestnych portov: Získajte vzdialené zdroje prístupné vo vašom lokálnom systéme

    "Presmerovanie miestnych portov" umožňuje prístup k lokálnym sieťovým zdrojom, ktoré nie sú vystavené Internetu. Povedzme napríklad, že chcete získať prístup k databázovému serveru z vašej kancelárie vo vašej kancelárii. Z bezpečnostných dôvodov je tento databázový server konfigurovaný iba na prijímanie spojení z miestnej kancelárskej siete. Ak však máte prístup na server SSH v kancelárii a server SSH umožňuje pripojenie mimo kancelárskej siete, môžete sa k nemu pripojiť z domova a získať prístup k databázovému serveru, ako keby ste boli v kancelárii. To je často prípad, pretože je jednoduchšie zabezpečiť jeden SSH server proti útokom, než zabezpečiť rôzne sieťové zdroje.

    Za týmto účelom vytvoríte SSH spojenie so serverom SSH a poviete klientovi, aby presmeroval návštevnosť z konkrétneho portu z miestneho počítača - napríklad port 1234 - na adresu servera databázy a jeho port v kancelárskej sieti. Keď sa teda pokúsite získať prístup k databázovému serveru na portu 1234 vášho aktuálneho počítača "localhost", táto návštevnosť sa automaticky "tuneluje" cez pripojenie SSH a odošle sa na databázový server. Server SSH je umiestnený uprostred a presmeruje to tam a späť. Pomocou ľubovoľného príkazového riadku alebo grafického nástroja môžete získať prístup k databázovému serveru, ako keby bol spustený na vašom lokálnom počítači.

    Ak chcete použiť miestne presmerovanie, pripojte sa k serveru SSH normálne, ale zároveň ho zadajte -L argumentom. Syntax je:

    ssh -L miestny_port: remote_address: remote_port [email protected]

    Povedzme napríklad, že databázový server vo vašej kancelárii sa nachádza v kancelárii 192.168.1.111. Máte prístup na server SSH kancelárie na adrese ssh.youroffice.com , a váš používateľský účet na serveri SSH je bob . V takom prípade by Váš príkaz vypadal takto:

    ssh -L 8888: 192.168.1.111: 1234 [email protected]

    Po spustení príkazu by ste mali prístup k databázovému serveru na portu 8888 na lokálnom serveri. Ak databázový server ponúkol prístup na web, môžete do svojho webového prehliadača pripojiť http: // localhost: 8888 a získať tak prístup. Ak máte nástroj príkazového riadka, ktorý potrebuje sieťovú adresu databázy, mali by ste ju umiestniť na localhost: 8888. Celý prenos odoslaný do portu 8888 na vašom PC bude tunelovaný na 192.168.1.111:1234 vo vašej kancelárskej sieti.

    Je to trochu viac mätúce, ak sa chcete pripojiť k serverovej aplikácii bežiacej na rovnakom systéme ako samotný server SSH. Povedzme napríklad, že máte server SSH spustený na portu 22 vo vašom kancelárskom počítači, ale máte aj databázový server bežiaci na portu 1234 v tom istom systéme na rovnakej adrese. Chcete prístup na databázový server z domova, ale systém prijíma iba pripojenia SSH na porte 22 a jeho brána firewall neumožňuje žiadne iné externé pripojenia.

    V tomto prípade môžete spustiť príkaz, ako je nasledujúci:

    ssh -L 8888: localhost: 1234 [email protected]

    Keď sa pokúsite získať prístup k databázovému serveru na portu 8888 na vašom aktuálnom počítači, prevádzka sa odošle cez spojenie SSH. Keď príde na systém bežiaci na server SSH, SSH server ho pošle na port 1234 na "localhost", čo je ten istý počítač so samotným serverom SSH. Takže "localhost" vo vyššie uvedenom príkaze znamená "localhost" z pohľadu vzdialeného servera.

    Ak to chcete urobiť v aplikácii PuTTY v systéme Windows, vyberte položku Connection> SSH> Tunnels. Vyberte možnosť "Miestne". Pre "Zdrojový port" zadajte miestny port. V prípade cieľa zadajte cieľovú adresu a port vo forme remote_address: remote_port.

    Ak ste napríklad chceli nastaviť ten istý SSH tunel ako vyššie, zadáte 8888 ako zdrojový port a localhost: 1234 ako cieľ. Potom kliknite na tlačidlo "Pridať" a potom kliknite na "Otvoriť" a otvorte pripojenie SSH. Pred pripojením budete musieť samozrejme zadať aj adresu a port samotného servera SSH na hlavnej obrazovke "Režim".

    Odovzdanie vzdialeného portu: sprístupnite miestne zdroje na vzdialený systém

    "Presmerovanie vzdialeného portu" je opakom lokálneho presmerovania a nepoužíva sa tak často. Umožňuje vám sprístupniť zdroj na vašom lokálnom počítači na serveri SSH. Povedzme napríklad, že používate webový server na lokálnom počítači, ktorý sedíte pred ním. Počítač však stojí za bránou firewall, ktorá neumožňuje prichádzajúcu návštevnosť serverového softvéru.

    Za predpokladu, že máte prístup k vzdialenému SSH serveru, môžete sa pripojiť k tomuto SSH serveru a použiť vzdialené preposielanie portov. Váš klient SSH oznámi serveru presmerovanie konkrétneho portu - povedzme, port 1234 - na server SSH na konkrétnu adresu a port na vašom aktuálnom počítači alebo lokálnej sieti. Keď niekto pristupuje k portu 1234 na SSH serveri, táto návštevnosť bude automaticky "tunelovaná" cez SSH spojenie. Ktokoľvek, kto má prístup na server SSH, bude môcť pristupovať na webový server bežiaci na počítači. To je efektívny spôsob tunelovania cez firewally.

    Ak chcete použiť vzdialené presmerovanie, použite tlačidlo ssh príkaz s -R argumentom. Syntax je prevažne rovnaký ako pri miestnom preposielaní:

    ssh -R remote_port: miestna_adresa: local_port [email protected]

    Povedzme, že chcete vykonať serverovú aplikáciu počúvanú na portu 1234 na vašom lokálnom počítači, ktorý je k dispozícii na portu 8888 na vzdialenom SSH serveri. Adresa servera SSH je ssh.youroffice.com a vaše používateľské meno na serveri SSH je bob. Spustili by ste nasledujúci príkaz:

    ssh -R 8888: localhost: 1234 [email protected]

    Niekto by sa potom mohol pripojiť na server SSH na porte 8888 a toto pripojenie by sa tunelovalo na serverovú aplikáciu spustenú na portu 1234 na lokálnom počítači, z ktorého ste vytvorili spojenie.

    Ak to chcete urobiť v systéme PuTTY v systéme Windows, vyberte položku Connection> SSH> Tunnels. Vyberte možnosť "Vzdialený". Pre "Zdrojový port" zadajte vzdialený port. V prípade cieľa zadajte cieľovú adresu a port vo forme local_address: local_port.

    Ak ste napríklad chceli nastaviť vyššie uvedený príklad, mali by ste vstúpiť 8888 ako zdrojový port a localhost: 1234 ako cieľ. Potom kliknite na tlačidlo "Pridať" a potom kliknite na "Otvoriť" a otvorte pripojenie SSH. Pred pripojením budete musieť samozrejme zadať aj adresu a port samotného servera SSH na hlavnej obrazovke "Režim".

    Ľudia by sa potom mohli pripojiť k portu 8888 na serveri SSH a ich prevádzka by bola tunelovaná do portu 1234 v lokálnom systéme.

    V predvolenom nastavení vzdialený server SSH bude počúvať iba pripojenia od toho istého hostiteľa. Inými slovami, len ľudia na rovnakom systéme ako samotný server SSH sa budú môcť pripojiť. To je z bezpečnostných dôvodov. Budete musieť povoliť možnosť "GatewayPorts" v sshd_config na vzdialenom SSH serveri, ak chcete toto správanie prepísať.

    Dynamické presmerovanie portov: Používajte SSH server ako proxy server

    K dispozícii je aj "dynamické presmerovanie portov", ktoré funguje podobne ako server proxy alebo VPN. Klient SSH vytvorí proxy server SOCKS, ktorý môžete nakonfigurovať na použitie aplikácií. Celá návštevnosť odoslaná prostredníctvom servera proxy bude odoslaná cez server SSH. Toto je podobné miestnemu preposielaniu - odovzdáva miestnu návštevnosť odoslanú na konkrétny port vášho počítača a pošle ho cez SSH spojenie na vzdialené miesto.

    Povedzme napríklad, že používate verejnú sieť Wi-Fi. Chcete bezpečne prechádzať bez toho, aby ste boli snoopovaní. Ak máte doma prístup na server SSH, môžete sa k nemu pripojiť a použiť dynamické presmerovanie portov. Klient SSH vytvorí na vašom PC SOCKS proxy. Celý prenos odoslaný na tento server proxy bude odoslaný cez pripojenie SSH servera. Nikto, ktorý monitoruje verejnú sieť Wi-Fi, nebude môcť sledovať prehliadanie alebo cenzurovať webové stránky, ku ktorým máte prístup. Z pohľadu webových stránok, ktoré navštívite, bude to, akoby ste sedeli pred počítačom doma. To tiež znamená, že by ste mohli použiť tento trik na prístup k webovým stránkam, ktoré sú iba USA, zatiaľ čo sú mimo USA - za predpokladu, že máte prístup na SSH server v USA samozrejme.

    Ako ďalší príklad možno budete chcieť pristupovať k aplikácii mediálneho servera, ktorú máte vo svojej domácej sieti. Z bezpečnostných dôvodov môže byť server SSH vystavený iba Internetu. Nepovoľujete prichádzajúce pripojenia z Internetu do aplikácie mediálneho servera. Môžete nastaviť presmerovanie dynamických portov, nakonfigurovať webový prehliadač na používanie servera proxy SOCKS a potom prístup k serverom bežiacim vo vašej domácej sieti prostredníctvom webového prehliadača, ako keby ste sedeli pred doma v systéme SSH. Ak je napríklad váš mediálny server umiestnený na portu 192.168.1.123 vo vašej domácej sieti, môžete adresu pripojiť 192.168.1.123 do akejkoľvek aplikácie používajúcej proxy server SOCKS a prístup k mediálnemu serveru, akoby ste boli vo vašej domácej sieti.

    Ak chcete použiť dynamické presmerovanie, spustite príkaz ssh pomocou príkazu -D argument, ako napríklad:

    ssh -D local_port [email protected]

    Povedzme napríklad, že máte prístup na server SSH na ssh.yourhome.com a vaše používateľské meno na serveri SSH je bob . Chcete použiť dynamické presmerovanie na otvorenie proxy servera SOCKS na portu 8888 na aktuálnom počítači. Spustili by ste nasledujúci príkaz:

    ssh -D 8888 [email protected]

    Potom môžete nakonfigurovať webový prehliadač alebo inú aplikáciu na používanie vašej lokálnej IP adresy (127.0.01) a portu 8888. Celá prevádzka z tejto aplikácie bude presmerovaná cez tunel.

    Ak to chcete urobiť v systéme PuTTY v systéme Windows, vyberte položku Connection> SSH> Tunnels. Vyberte možnosť Dynamické. Pre "Zdrojový port" zadajte miestny port.

    Napríklad, ak by ste chceli na portu 8888 vytvoriť proxy server SOCKS, zadali by ste 8888 ako zdrojový port. Potom kliknite na tlačidlo "Pridať" a potom kliknite na "Otvoriť" a otvorte pripojenie SSH. Pred pripojením budete musieť samozrejme zadať aj adresu a port samotného servera SSH na hlavnej obrazovke "Režim".

    Potom môžete nakonfigurovať aplikáciu na prístup k serveru SOCKS proxy na vašom lokálnom počítači (to znamená, adresa IP 127.0.0.1, ktorá smeruje na váš lokálny počítač) a zadajte správny port.

    Môžete napríklad nakonfigurovať Firefox, aby používal proxy server SOCKS. To je obzvlášť užitočné, pretože Firefox môže mať svoje vlastné nastavenia servera proxy a nemusí používať nastavenia servera proxy. Firefox bude odosielať svoju návštevnosť cez tunel SSH, zatiaľ čo iné aplikácie budú používať vaše internetové pripojenie bežne.

    Ak to robíte vo Firefoxe, zvoľte "Manuálne nastavenie servera proxy", do poľa hostiteľa SOCKS zadajte "127.0.0.1" a zadajte dynamický port do poľa "Port". Ponechajte prázdne polia HTTP Proxy, SSL Proxy a FTP Proxy.

    Tunel zostane aktívny a otvorený tak dlho, kým máte otvorené spojenie relácie SSH. Po ukončení relácie SSH a odpojení od servera bude tunel zatvorený. Ak chcete znovu otvoriť tunel, znovu pripojte príslušný príkaz (alebo príslušné možnosti v PuTTY).