Išmokite „Open“ ir „OpenSSH“ savo „Linux“ kompiuteryje
Mes daug kartų išgirdome SSH dorybes tiek saugumui, tiek nuotolinei prieigai. Pažvelkime į patį serverį, kai kuriuos svarbius „techninės priežiūros“ aspektus ir kai kurias problemas, kurios gali sukelti turbulenciją kitaip sklandžiai važiuoti.
Nors mes parašėme šį vadovą su „Linux“, tai taip pat gali būti taikoma „OpenSSH“ „Mac OS X“ ir „Windows 7“ per „Cygwin“.
Kodėl tai saugi
Mes daug kartų minėjome, kaip SSH yra puikus būdas saugiai sujungti ir tuneluoti duomenis iš vieno taško į kitą. Paimkime labai trumpai, kaip viskas veikia, taigi gausite geresnį supratimą, kodėl viskas kartais gali keistis.
Kai nusprendžiame pradėti ryšį su kitu kompiuteriu, dažnai naudojame protokolus, kuriuos lengva naudoti. Atsimena ir „Telnet“, ir „FTP“. Mes siunčiame informaciją į nuotolinį serverį ir tada gauname patvirtinimą apie mūsų ryšį. Siekiant nustatyti tam tikrą saugos tipą, šie protokolai dažnai naudoja vartotojo ir slaptažodžių derinius. Tai reiškia, kad jie visiškai saugūs, tiesa? Klaidingas!
Jei galvojame apie mūsų prisijungimo procesą kaip paštą, tada naudojant FTP ir „Telnet“ ir pan. Nėra panašūs naudojant standartinius pašto vokus. Tai labiau panašus į atvirukų naudojimą. Jei kas nors atsitinka žingsniu viduryje, jie gali matyti visą informaciją, įskaitant abiejų korespondentų adresus ir išsiųstą naudotojo vardą bei slaptažodį. Tada jie gali pakeisti pranešimą, išlaikydami tą pačią informaciją ir apsimetant vienu korespondentu ar kitu. Tai vadinama „žmogaus vidurio“ ataka, ir tai ne tik kenkia jūsų paskyrai, bet ir abejoja kiekvienu išsiųstu pranešimu ir gautu failu. Jūs negalite būti tikri, ar kalbate su siuntėju, ar ne, ir net jei esate, jūs negalite būti tikri, kad niekas nežiūrės į viską, kas yra tarp.
Dabar pažvelkime į SSL šifravimą, kuris daro HTTP saugesnį. Čia mes turime pašto skyrių, kuris tvarko korespondenciją, kuri patikrina, ar jūsų gavėjas yra tas, su kuriuo jis teigia esąs, ir ar jūsų įstatymai saugo jūsų paštą. Apsauga apskritai yra saugesnė, o centrinė institucija - „Verisign“ - yra viena iš mūsų HTTPS pavyzdžių - užtikrina, kad asmuo, kuriam siunčiate laiškus, patikrintų. Jie tai daro neleidžiant atvirukų (nešifruotų įgaliojimų); vietoj to jie įpareigoja tikrus vokus.
Galiausiai pažvelkime į SSH. Čia sąranka šiek tiek skiriasi. Čia neturime centrinio autentifikatoriaus, bet viskas vis dar saugi. Taip yra todėl, kad siunčiate laiškus kitam asmeniui, kurio adresas jau žinote - pasikalbėkite su jais telefonu - ir naudodamiesi kai kuriais tikrai išgalvotais matematikais pasirašykite savo voką. Jūs jį perduodate savo broliui, draugei, tėvui ar dukrai, kad pasiektumėte adresą, ir tik tada, kai gavėjo išgalvotas matematikos rungtynės, jūs manote, kad adresas yra tai, kas turėtų būti. Tada gausite laišką atgal, taip pat apsaugotą nuo smalsių akių šio nuostabaus matematikos. Galiausiai, siunčiate savo įgaliojimus kitame slaptame algoritminiame-enchanted voke į paskirties vietą. Jei matematika nesutampa, galime manyti, kad pradinis gavėjas persikėlė ir vėl turime patvirtinti jų adresą.
Su paaiškinimu, kol jis yra, mes manome, kad mes jį supjaustysime. Jei turite šiek tiek daugiau įžvalgų, galite, be abejo, kalbėti komentaruose. Tačiau dabar pažiūrėkime į svarbiausią SSH funkciją - priimančiosios autentifikavimą.
Priėmimo raktai
Priimančiosios tapatybės nustatymas iš esmės yra tas, kuriam patikimas žmogus paima voką (užsandarintas magijos matematika) ir patvirtina gavėjo adresą. Tai gana išsamus adreso aprašymas ir jis pagrįstas tam tikra sudėtinga matematika, kurią mes tiesiog praleisime. Yra keletas svarbių dalykų, kuriuos reikia atimti iš to, nors:
- Kadangi nėra centrinės institucijos, tikrasis saugumas yra priimančiojo rakto, viešųjų raktų ir privačių raktų. (Pastarieji du raktai yra sukonfigūruoti, kai jums suteikiama prieiga prie sistemos.)
- Paprastai, prisijungus prie kito kompiuterio per SSH, pagrindinio kompiuterio raktas yra saugomas. Dėl to būsimi veiksmai greičiau (ar mažiau verbose).
- Jei prieglobos raktas pasikeičia, greičiausiai būsite įspėti, ir turėtumėte būti atsargūs!
Kadangi SSH serverio tapatybės nustatymui prieš priimant autentifikavimą naudojamas pagrindinio kompiuterio raktas, prieš prisijungdami, būtinai patikrinkite raktą. Pamatysite patvirtinimo dialogą, kaip nurodyta toliau.
Jūs neturėtumėte jaudintis! Dažnai, kai saugumas kelia susirūpinimą, bus ypatinga vieta, kurią galima patvirtinti priimančiojo rakto (ECDSA pirštų atspaudų). Visoje interneto įmonėse dažnai ji bus saugioje prisijungimo svetainėje. Gali tekti (arba pasirinkti!) Skambinti savo IT skyriui, kad patvirtintumėte šį klavišą telefonu. Aš net girdėjau kai kuriose vietose, kur raktas yra jūsų darbo ženklelyje arba specialiame „Neatidėliotinų numerių“ sąraše. Ir, jei turite fizinę prieigą prie tikslinės mašinos, taip pat galite pasitikrinti!
Jūsų sistemos pagrindinio rakto tikrinimas
Raktams gaminti naudojami keturių tipų šifravimo algoritmai, tačiau pagal nutylėjimą OpenSSH nuo šių metų pradžios yra ECDSA (su tam tikromis geromis priežastimis). Šiandien mes sutelksime dėmesį į tai. Štai komanda, kurią galite paleisti SSH serveryje, prie kurio turite prieigą:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
Jūsų produkcija turėtų grąžinti kažką panašaus:
256 apie 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub
Pirmasis numeris yra raktų bitų ilgis, tada pats raktas, ir galiausiai turite failą, kuriame jis saugomas. Palyginkite tą vidurinę dalį su tuo, ką matote, kai būsite paraginti prisijungti nuotoliniu būdu. Jis turėtų atitikti, ir jūs visi esate. Jei ne, tai gali būti dar kažkas.
Galite peržiūrėti visus kompiuterius, prie kurių prisijungėte per SSH, peržiūrėdami savo žinomą failą. Paprastai jis yra:
~ / .ssh / unknown_hosts
Tai galite atidaryti bet kuriame teksto redaktoriuje. Jei atrodote, pabandykite atkreipti dėmesį į raktų saugojimo būdą. Jie saugomi su pagrindinio kompiuterio pavadinimu (arba interneto adresu) ir jo IP adresu.
Pakeitus pagrindinius raktus ir problemas
Yra keletas priežasčių, kodėl priimančiosios raktai keičiasi, arba nesutampa su tuo, kas yra prisijungęs prie žinomo failo failo.
- Sistema buvo iš naujo įdiegta / perkonfigūruota.
- Prijungimo raktai buvo pakeisti rankiniu būdu dėl saugumo protokolų.
- OpenSSH serveris atnaujino ir naudoja skirtingus standartus dėl saugumo problemų.
- Pasikeitė IP arba DNS nuoma. Tai dažnai reiškia, kad bandote pasiekti kitą kompiuterį.
- Sistema buvo pažeista tam tikru būdu, kad priimančiosios raktas pasikeitė.
Labiausiai tikėtina, kad problema yra viena iš pirmųjų trijų, ir jūs galite ignoruoti pakeitimą. Jei pasikeitė IP / DNS nuoma, gali kilti problema su serveriu ir gali būti nukreipta į kitą įrenginį. Jei nesate tikri, kodėl pakeitimo priežastis yra, turbūt turėtumėte manyti, kad jis yra paskutinis sąraše.
Kaip OpenSSH tvarko nežinomus šeimininkus
OpenSSH turi nustatymus, kaip ji tvarko nežinomus kompiuterius, atspindėtus kintamajame „StrictHostKeyChecking“ (be kabučių).
Priklausomai nuo jūsų konfigūracijos, SSH ryšiai su nežinomais kompiuteriais (kurių raktai dar nėra jūsų žinomame faile) gali būti trimis būdais.
- „StrictHostKeyChecking“ nustatytas ties ne; OpenSSH automatiškai prisijungs prie bet kurio SSH serverio, nepriklausomai nuo pagrindinio kompiuterio raktų būsenos. Tai yra nesaugi ir nerekomenduojama, išskyrus atvejus, kai po operacinės sistemos naujo įdiegimo pridedate daugybę kompiuterių, po to pakeisite jį atgal.
- StrictHostKeyChecking nustatytas paklausti; OpenSSH parodys jums naujus pagrindinius raktus ir paprašys patvirtinimo prieš juos pridėdami. Tai neleis prisijungti prie pakeistų kompiuterio raktų. Tai yra numatytasis.
- „StrictHostKeyChecking“ nustatoma taip; Priešingai nei „ne“, tai neleis jums prisijungti prie bet kurio serverio, kuris dar nėra jūsų žinomo failo faile.
Šį kintamąjį galite pakeisti komandų eilutėje naudodami šią paradigmą:
ssh -o „StrictHostKeyChecking [parinktis]“ vartotojo @ kompiuteris
Pakeiskite [parinktis] su „ne“, „paklauskite“ arba „taip“. Turėkite omenyje, kad yra vienas tiesus citatas, esantis aplink šį kintamąjį ir jo nustatymą. Taip pat pakeiskite naudotojo @ prieglobą prie serverio, prie kurio prisijungiate, naudotojo vardą ir pavadinimą. Pavyzdžiui:
ssh -o 'StrictHostKeyChecking paklausti' [email protected]
Užblokuoti valdytojai dėl pasikeitusių raktų
Jei turite serverį, kurį bandote pasiekti, jei jo raktas jau pakeistas, numatytoji „OpenSSH“ konfigūracija neleis jums to pasiekti. Jūs galite pakeisti StrictHostKeyChecking vertę tame šeimininke, bet tai nebūtų visiškai, kruopščiai, saugiai saugoma, ar ne? Vietoj to, mes galime tiesiog pašalinti pažeidžiamą vertę iš mūsų žinomo failo failo.
Tai tikrai bjaurus dalykas, kuris turi būti ekrane. Laimei, mūsų priežastis buvo įdiegta OS. Taigi, leiskite priartinti liniją, kurią mums reikia.
Ten mes einame. Pažiūrėkite, kaip ji nurodo failą, kurį reikia redaguoti? Jis netgi suteikia mums linijos numerį! Taigi, atverkime tą failą Nano:
Štai mūsų pažeidžiantis raktas, 1 eilutėje. Viskas, ką turime padaryti, yra paspausti „Ctrl + K“, kad iškirptumėte visą eilutę.
Tai daug geriau! Taigi, dabar mes paspaudžiame Ctrl + O, kad įrašytume (išsaugoti) failą, tada Ctrl + X išeiti.
Dabar mes gauname gražią eilutę, kuriai mes galime tiesiog atsakyti „taip“.
Naujų kompiuterio raktų kūrimas
Už įrašą tikrai nėra pernelyg daug priežasčių, kodėl galėtumėte keisti savo priimančiosios raktą, bet jei kada nors radote poreikį, galite lengvai atlikti.
Pirma, pakeiskite atitinkamą sistemos katalogą:
cd / etc / ssh /
Tai dažniausiai ten, kur yra pasauliniai pagrindiniai raktai, nors kai kurie iš jų turi juos kitur. Jei abejojate, patikrinkite dokumentaciją!
Toliau ištrinsime visus senus raktus.
sudo rm / etc / ssh / ssh_host_ *
Arba galite perkelti juos į saugų atsarginių kopijų katalogą. Tiesiog mintis!
Tada mes galime pasakyti OpenSSH serveriui patikslinti save:
sudo dpkg-reinfigure openssh-server
Kai kompiuteris sukuria naujus raktus, pamatysite raginimą. Ta-da!
Dabar, kai žinote, kaip SSH veikia šiek tiek geriau, turėtumėte išeiti iš sunkių vietų. „Nuotolinio kompiuterio tapatybės nustatymas pasikeitė“ įspėjimas / klaida yra kažkas, kas išjungia daug vartotojų, net ir tiems, kurie yra susipažinę su komandine eilute.
.