Úvodná » ako » Naučte sa z OpenSSH na vašom PC s Linuxom

    Naučte sa z OpenSSH na vašom PC s Linuxom

    Vyzdvihli sme čnosti SSH niekoľkokrát, a to ako pre bezpečnosť, tak pre vzdialený prístup. Poďme sa pozrieť na server sám, niektoré dôležité aspekty "údržby", a niektoré výčitky, ktoré môžu pridať turbulencie na inak hladkú jazdu.

    Kým sme napísali túto príručku s Linuxom, toto sa môže vzťahovať aj na OpenSSH v Mac OS X a Windows 7 cez Cygwin.

    Prečo je to bezpečné

    Spomenuli sme mnohokrát, ako SSH je skvelý spôsob, ako bezpečne spojiť a tunelovať dáta z jedného miesta na druhé. Pozrime sa na krátky pohľad na to, ako fungujú veci, aby ste získali lepšiu predstavu o tom, prečo to niekedy môže byť čudné.

    Keď sa rozhodneme nadviazať spojenie s iným počítačom, často používame protokoly, s ktorými je ľahké pracovať. Telnet a FTP majú na mysli. Posielame informácie na vzdialený server a potom dostaneme potvrdenie o našom spojení. Na vytvorenie určitého typu bezpečnosti tieto protokoly často používajú kombinácie používateľských a hesiel. To znamená, že sú úplne bezpečné, že? zle!

    Ak si myslíme, že náš spojovací proces je poštou, potom používanie FTP a Telnet a podobne nie je ako použitie štandardných poštových obálok. Je to skôr používanie pohľadníc. Ak sa stane, že sa niekto stane v strede, uvidí všetky informácie vrátane adries oboch korešpondentov a odoslaného používateľského mena a hesla. Môžu potom zmeniť správu, zachovať informácie rovnaké a zosobniť jedného alebo druhého korešpondenta. Toto je známe ako útok typu "man-in-the-middle" a nielen to ohrozuje váš účet, ale spochybňuje každú odoslanú správu a prijatý súbor. Nemôžete si byť istí, či hovoríte s odosielateľom alebo nie, a dokonca aj keď ste, nemôžete si byť istí, že nikto sa na všetko nevenuje.

    Teraz sa pozrime na šifrovanie SSL, čo robí HTTP bezpečnejším. Tu máme poštovú adresu, ktorá spracúva korešpondenciu, ktorá kontroluje, či je vaším príjemcom ten, kto tvrdí, že je, a má zákony na ochranu vašej pošty od toho, aby sa pozrel. Celkovo je to celkom bezpečné a ústredný orgán - Verisign je jeden, pre náš príklad HTTPS - ubezpečuje sa, že osoba, ktorej posielate poštu, kontroluje. Robia to tým, že nepovoľujú pohľadnice (nezašifrované poverenia); namiesto toho povoľujú skutočné obálky.

    Nakoniec sa pozrime na SSH. Nastavenie je trochu iné. Nemáme centrálny autentifikátor, ale veci sú stále bezpečné. Je to preto, že posielate listy niekomu, ktorého adresa už viete - povedzme, že si s nimi hovoríte v telefóne - a používate naozaj fantázie matematiky na podpis vašej obálky. Odovzdáte to svojmu bratovi, priateľke, otecovi alebo dcére, aby ste ju dostali na adresu, a len vtedy, ak sa zhoduje s receptami, ktoré sa vám páčia, predpokladáte, že adresa je to, čo má byť. Potom dostanete späť list, ktorý je tiež chránený pred očarujúcimi očami týmito úžasnými matematikami. Nakoniec posielate svoje poverenia do inej tajomnej algoritmicky očarenej obálky do cieľa. Ak sa matematika nezhoduje, môžeme predpokladať, že pôvodný príjemca sa presťahoval a musíme znovu potvrdiť jeho adresu.

    S vysvetlením tak dlho, ako to je, myslíme si, že tam budeme mať. Ak máte nejaký ďalší náhľad, môžete sa samozrejme v komentároch rozprávať. Pre túto chvíľu sa však pozrime na najdôležitejšiu funkciu SSH, autentifikáciu hostiteľa.

    Hostiteľské klávesy

    Hostiteľská autentifikácia je v podstate tá časť, v ktorej má osoba, ktorej dôverujete, obálku (zapečatená magickou matematikou) a potvrdí adresu príjemcu. Je to docela podrobný popis adresy a je založený na nejakej komplikovanej matematike, ktorú práve preskočíme. Z toho však treba odstrániť niekoľko dôležitých vecí:

    1. Pretože neexistuje ústredný orgán, skutočná bezpečnosť spočíva v kľúčoch hostiteľa, verejných kľúčoch a súkromných kľúčoch. (Tieto dva posledné kľúče sú nakonfigurované, keď máte prístup k systému.)
    2. Zvyčajne sa pri pripojení k inému počítaču prostredníctvom protokolu SSH ukladá kľúč hostiteľa. To robí budúce akcie rýchlejšie (alebo menej detailné).
    3. Ak sa kľúč k hostiteľovi zmení, budete s najväčšou pravdepodobnosťou upozornený a mali by ste byť opatrní!

    Vzhľadom na to, že kľúč k hostiteľovi je použitý pred autentifikáciou na vytvorenie identity SSH servera, mali by ste skontrolovať kľúč pred pripojením. Uvidíte potvrdzovacie dialógové okno, ako je uvedené nižšie.

    Nemali by ste sa však obávať! Často, keď je problémom bezpečnosť, bude zvláštne miesto, ktoré môže potvrdiť kľúč hostiteľa (odtlačok prsta ECDSA). V úplne online podnikoch sa často bude nachádzať iba na bezpečnom prihlásení. Možno budete musieť (alebo zvoliť!) Zavolať vášmu oddeleniu IT, aby ste potvrdili tento kľúč cez telefón. Dokonca som počul o niektorých miestach, kde je kľúč na vašom pracovnom odkaze alebo na špeciálnom zozname "núdzové čísla". A ak máte fyzický prístup k cieľovému stroju, môžete tiež skontrolovať sami!

    Kontrola kľúča hostiteľa systému

    Existujú 4 typy druhov šifrovacích algoritmov, ktoré sa používajú na vytváranie kľúčov, ale predvolené pre OpenSSH od začiatku tohto roka je ECDSA (s niektorými dobrými dôvodmi). Zameriavame sa na to dnes. Tu je príkaz, ktorý môžete spustiť na serveri SSH, ku ktorému máte prístup:

    ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

    Váš výstup by mal vrátiť niečo takéto:

    256 ca: 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: ll: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub

    Prvým číslom je dĺžka kľúča, potom kľúč samotný a nakoniec máte súbor, ktorý je uložený. Porovnajte túto strednú časť s tým, čo sa zobrazuje po výzve na prihlásenie na diaľku. Mal by sa zhodovať a vy ste všetci pripravení. Ak tomu tak nie je, môže sa stať niečo iné.

    Môžete si pozrieť všetky hostiteľské počítače, ktoré ste pripojili cez SSH, a pozrieť sa na súbor known_hosts. Zvyčajne sa nachádza na adrese:

    ~ / .Ssh / known_hosts

    Môžete ho otvoriť v akomkoľvek textovom editore. Ak sa pozriete, skúste venovať pozornosť tomu, ako sú kľúče uložené. Sú uložené s názvom (alebo webovou adresou) hostiteľského počítača a jeho adresou IP.

    Zmena kľúčov hostiteľa a problémov

    Existuje niekoľko dôvodov, prečo sa zmenili hostiteľské kľúče alebo sa nezhodujú s tým, čo sa prihlásilo do vášho súboru known_hosts.

    • Systém bol opätovne nainštalovaný / nakonfigurovaný.
    • Kľúč hostiteľa sa ručne zmenili v dôsledku bezpečnostných protokolov.
    • Server OpenSSH bol aktualizovaný a používa rôzne štandardy kvôli bezpečnostným problémom.
    • Zmena IP alebo DNS sa zmenila. Často to znamená, že sa snažíte pristupovať k inému počítaču.
    • Systém bol kompromitovaný nejakým spôsobom tak, že kľúč hostiteľa sa zmenil.

    Problém je s najväčšou pravdepodobnosťou jedným z prvých troch a túto zmenu môžete ignorovať. Ak sa zmena prenájmu IP / DNS zmenila, môže sa vyskytnúť problém so serverom a môže byť smerovaný na iný počítač. Ak si nie ste istí, prečo je dôvodom zmeny, mali by ste pravdepodobne predpokladať, že je to posledná v zozname.

    Ako OpenSSH spracováva neznámych hostiteľov

    OpenSSH má nastavenie pre to, ako zaobchádza s neznámymi hostiteľmi, čo sa odráža v premennej "StrictHostKeyChecking" (bez úvodzoviek).

    V závislosti od vašej konfigurácie môžu pripojenia SSH s neznámymi hostiteľmi (ktorých kľúče ešte nie sú vo vašom súbore known_hosts) môžu prejsť tromi spôsobmi.

    • StrictHostKeyChecking je nastavené na ne; OpenSSH sa automaticky pripája k akémukoľvek SSH serveru bez ohľadu na stav kľúča hostiteľa. Toto je neisté a neodporúča sa, s výnimkou prípadov, keď pridáte banda po opätovnej inštalácii operačného systému, a potom ho zmeňte späť.
    • StrictHostKeyChecking sa nastaví na otázku; OpenSSH vám ukáže nové kľúče hostiteľa a predtým ich pridáte, požiadajte o potvrdenie. Zabráni tomu, aby sa pripojenia dostali k zmeneným kľúčom hostiteľa. Toto je predvolené nastavenie.
    • StrictHostKeyChecking je nastavený na áno; Opačný znak "nie" vám zabráni pripojiť sa k akémukoľvek hostiteľovi, ktorý ešte nie je prítomný vo vašom súbore known_hosts.

    Túto premennú môžete jednoducho zmeniť na príkazovom riadku pomocou nasledujúceho modelu:

    ssh -o 'StrictHostKeyChecking [voľba]' user @ host

    Nahradiť možnosť s možnosťou "nie", "požiadať" alebo "áno". Uvedomte si, že v okolí tejto premennej a jej nastavenia existujú jednorazové cenové ponuky. Tiež nahradiť user @ host s používateľským menom a názvom hostiteľa servera, ku ktorému sa pripájate. Napríklad:

    ssh -o 'StrictHostKeyChecking sa opýtajte' [email protected]

    Zablokované hostiteľské počítače v dôsledku zmenených kľúčov

    Ak máte server, ku ktorému sa pokúšate pristupovať a jeho kľúč sa už zmenil, predvolená konfigurácia OpenSSH vám zabráni v prístupe k nemu. Môžete zmeniť hodnotu StrictHostKeyChecking pre daného hostiteľa, ale to by nebolo úplne, dôkladne paranoidne bezpečné, že? Namiesto toho môžeme jednoducho odstrániť škodlivú hodnotu z nášho súboru known_hosts.

    To je určite ošklivé, čo máte na obrazovke. Našťastie, náš dôvod bol preinštalovaný operačný systém. Takže, priblížme linku, ktorú potrebujeme.

    Tam ideme. Pozrite sa, ako cituje súbor, ktorý potrebujeme upraviť? Dokonca nám dáva číslo linky! Takže otvorme súbor v Nano:

    Tu je náš kriminálny kľúč v riadku 1. Všetko, čo musíme urobiť, je stlačiť Ctrl + K, aby ste vystrihnuli celú líniu.

    To je oveľa lepšie! Takže teraz stlačíme klávesy Ctrl + O, aby sme vypísali (uložili) súbor, potom Ctrl + X ukončíte.

    Teraz dostávame peknú výzvu, na ktorú môžeme jednoducho odpovedať "áno".

    Vytváranie nových hostiteľských kľúčov

    Pre záznam, naozaj nie je príliš veľa dôvodu, aby ste zmenili kľúč hostiteľa vôbec, ale ak ste niekedy zistili potrebu, môžete to urobiť ľahko.

    Najprv prejdite do príslušného systémového adresára:

    cd / etc / ssh /

    Toto je zvyčajne miesto, kde sú globálne hostiteľské kľúče, aj keď niektoré distribučné súbory sú umiestnené inde. V prípade pochybností skontrolujte dokumentáciu!

    Potom odstránime všetky staré kľúče.

    sudo rm / etc / ssh / ssh_host_ *

    Prípadne ich môžete presunúť do bezpečného adresára zálohovania. Iba myšlienka!

    Potom môžeme povedať server OpenSSH, aby sa prekonfiguroval:

    sudo dpkg - prekonfigurujte openssh-server

    Keď počítač vytvorí nové kľúče, zobrazí sa výzva. Ta-da!


    Teraz, keď viete, ako SSH funguje o niečo lepšie, mali by ste sa dostať z ťažkých miest. Označenie "Vzdialená identifikácia hostiteľa sa zmenila" varovanie / chyba je niečo, čo hádže veľa užívateľov preč, dokonca aj tých, ktorí sú oboznámení s príkazovým riadkom.

    .