Sužinokite "Ins &Out" iš "OpenSSH" savo "Linux" kompiuteryje

Turinys:

Sužinokite "Ins &Out" iš "OpenSSH" savo "Linux" kompiuteryje
Sužinokite "Ins &Out" iš "OpenSSH" savo "Linux" kompiuteryje

Video: Sužinokite "Ins &Out" iš "OpenSSH" savo "Linux" kompiuteryje

Video: Sužinokite
Video: How to Animate 3D Characters in 1 Minute - YouTube 2024, Gegužė
Anonim
Mes daugybę kartų išreiškėme SSH pranašumus tiek saugumo, tiek nuotolinės prieigos. Pažvelkime į patį serverį, į kai kuriuos svarbius "priežiūros" aspektus ir į kai kuriuos priespaudus, kurie gali pridėti turbulenciją, kad būtų galima netinkamai važiuoti.
Mes daugybę kartų išreiškėme SSH pranašumus tiek saugumo, tiek nuotolinės prieigos. Pažvelkime į patį serverį, į kai kuriuos svarbius "priežiūros" aspektus ir į kai kuriuos priespaudus, kurie gali pridėti turbulenciją, kad būtų galima netinkamai važiuoti.

Nors mes tai parašėme vadovaudamiesi "Linux", tai taip pat gali būti taikoma "OpenSSH" operacinei sistemai "Mac OS X" ir "Windows 7" per "Cygwin".

Kodėl tai saugu

Daug kartų paminėjome, kaip SSH yra puikus būdas saugiai prisijungti ir kurti duomenis iš vieno taško į kitą. Pažiūrėkime, kaip viskas veikia, kad galėtumėte geriau suprasti, kodėl kartais tai gali būti keista.

Kai nuspręsime inicijuoti ryšį su kitu kompiuteriu, mes dažnai naudojame protokolus, kuriuos lengva naudoti. Telnet ir FTP abi atrodo. 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 vardų ir slaptažodžių derinius. Tai reiškia, kad jie visiškai saugūs, tiesa? Klaidinga!
Kai nuspręsime inicijuoti ryšį su kitu kompiuteriu, mes dažnai naudojame protokolus, kuriuos lengva naudoti. Telnet ir FTP abi atrodo. 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 vardų ir slaptažodžių derinius. Tai reiškia, kad jie visiškai saugūs, tiesa? Klaidinga!

Jei mes galvojame apie mūsų prisijungimo procesą kaip el. Laišką, tada naudojant FTP, "Telnet" ir pan. Panašus nepanaudojamas standartinių pašto vokų. Tai labiau tarsi naudoti atvirukus. Jei kas nors atsitiks viduryje, jie gali matyti visą informaciją, įskaitant abiejų korespondentų adresus ir išsiųstą vartotojo vardą bei slaptažodį. Tada jie gali pakeisti pranešimą, išlaikyti tą pačią informaciją ir įtvirtinti vieną korespondentą ar kitą. Tai vadinama "žmogus-a-the-middle" atakoje, ir tai ne tik kelia grėsmę jūsų paskyrai, bet ir kelia abejonių dėl kiekvienos siunčiamos ir gautos žinutės. Negalite būti tikri, ar kalbate su siuntėju, ar ne, ir net jei esate, negalite būti tikri, kad niekas nežiūrės į viską, kas yra tarp jų.

Dabar pažvelkime į SSL šifravimą, tokį, kuris užtikrina HTTP saugumą. Čia mes turime pašto tarnybą, kuri tvarko korespondenciją, kas tikrina, ar jūsų gavėjas yra tas, kurį jis teigia esąs, ir turi įstatymus, apsaugančius jūsų paštą. Tai yra labiau saugu, o centrinė institucija - "Verisign" yra viena, mūsų HTTPS pavyzdžiu - užtikrina, kad asmuo, kuriam siunčiate paštą, patikrintų. Jie tai daro neleidžiant atvirukuose (nekoduoti įgaliojimai); vietoj to jie įgalioja tikruosius vokus.

Pagaliau pažvelkime į SSH. Čia sąranka yra šiek tiek kitokia. Čia neturime centrinio autentifikavimo priemonės, tačiau viskas vis dar saugi. Taip yra todėl, kad siunčiate laiškus asmeniui, kurio adresą jau pažįstate (pvz., Kalbėsite su jais telefonu), o norėdami pasirašyti voką naudojate tikrai išgalvotas matematikas. Tu perduosi savo brolį, mergaitei, tėvui ar dukrai, kad jį paimtų į adresą ir tik tuo atveju, jei gavėjo išgalvotas matematines rungtynes jūs manote, kad adresas yra tas, koks jis turėtų būti. Tada jūs gaunate laišką atgal, taip pat saugoma nuo smalsių akių šia nuostabia matematika. Galiausiai jūs atsiųsite savo įgaliojimus kitame slapčiajame algoritmiškai apsidengiančiame apvalkale į paskirties vietą. Jei matematika nesutampa, galime manyti, kad originalus gavėjas persikėlė, ir mes turime dar kartą patvirtinti savo adresą.
Pagaliau pažvelkime į SSH. Čia sąranka yra šiek tiek kitokia. Čia neturime centrinio autentifikavimo priemonės, tačiau viskas vis dar saugi. Taip yra todėl, kad siunčiate laiškus asmeniui, kurio adresą jau pažįstate (pvz., Kalbėsite su jais telefonu), o norėdami pasirašyti voką naudojate tikrai išgalvotas matematikas. Tu perduosi savo brolį, mergaitei, tėvui ar dukrai, kad jį paimtų į adresą ir tik tuo atveju, jei gavėjo išgalvotas matematines rungtynes jūs manote, kad adresas yra tas, koks jis turėtų būti. Tada jūs gaunate laišką atgal, taip pat saugoma nuo smalsių akių šia nuostabia matematika. Galiausiai jūs atsiųsite savo įgaliojimus kitame slapčiajame algoritmiškai apsidengiančiame apvalkale į paskirties vietą. Jei matematika nesutampa, galime manyti, kad originalus gavėjas persikėlė, ir mes turime dar kartą patvirtinti savo adresą.

Su tokiu paaiškinimu, mes manome, kad mes jį iškirpti. Žinoma, jei norite sužinoti daugiau, pasikalbėkite su komentarais. Tačiau dabar pažvelkime į labiausiai tinkamą SSH, priimančiosios autentifikavimo funkciją.

Host raktai

Kompiuterio autentifikavimas iš esmės yra ta dalis, kur tavo pasitikėjimas paima voką (uždengtą magija matematika) ir patvirtina gavėjo adresą. Tai gana detalus adreso aprašymas, ir jis pagrįstas tam tikra sudėtinga matematika, kurią mes tiesiog praleidžiame. Yra keletas svarbių dalykų, kuriuos reikia pašalinti, nors:

  1. Kadangi nėra centrinės valdžios institucijos, tikrąjį saugumą sudaro pagrindinis raktas, viešieji raktiniai žodžiai ir privati raktų funkcija. (Šie du raktai yra sukonfigūruojami, kai jums suteikiama prieiga prie sistemos.)
  2. Paprastai, kai prisijungiate prie kito kompiuterio per SSH, pagrindinis raktas yra saugomas. Dėl to būsimi veiksmai bus greitesni (ar mažiau verbūs).
  3. Jei priimančiojo raktas pasikeis, greičiausiai bus įspėtas, ir jūs turite būti atsargūs!

Kadangi priimančiojo raktas naudojamas prieš autentifikavimą, norint nustatyti SSH serverio tapatybę, prieš įsijungdami būtinai patikrinkite raktą. Pamatysite patvirtinimo dialogą, aprašytą toliau.

Jūs neturėtumėte nerimauti, nors! Dažnai, kai saugumas kelia susirūpinimą, bus ypatinga vieta, kad pagrindinį raktą (ECDSA pirštų atspaudą aukščiau) galima patvirtinti. Visiškai internetinėse įmonėse dažnai tai bus tik saugi svetainė, į kurią prisijungs. Jums gali tekti (arba pasirinkti!) Telefoną savo IT departamentui patvirtinti šį raktą telefonu. Aš net girdėjau apie kai kurias vietas, kuriose raktas yra ant jūsų darbo ženklo arba specialių "Avarinių numerių" sąrašo. Ir, jei turite fizinę prieigą prie tikslinės mašinos, taip pat galite patikrinti save!
Jūs neturėtumėte nerimauti, nors! Dažnai, kai saugumas kelia susirūpinimą, bus ypatinga vieta, kad pagrindinį raktą (ECDSA pirštų atspaudą aukščiau) galima patvirtinti. Visiškai internetinėse įmonėse dažnai tai bus tik saugi svetainė, į kurią prisijungs. Jums gali tekti (arba pasirinkti!) Telefoną savo IT departamentui patvirtinti šį raktą telefonu. Aš net girdėjau apie kai kurias vietas, kuriose raktas yra ant jūsų darbo ženklo arba specialių "Avarinių numerių" sąrašo. Ir, jei turite fizinę prieigą prie tikslinės mašinos, taip pat galite patikrinti save!

Jūsų sistemos pagrindinio rakto patikrinimas

Yra keturių tipų šifravimo algoritmai, naudojami klavišams atlikti, tačiau "OpenSSH" numatytasis variantas nuo šių metų pradžios yra ECDSA (su tam tikromis priežastimis). Šiandien mes sutelksime dėmesį į tą.Štai komanda, kurią galite paleisti SSH serveryje, prie kurio galite prisijungti:

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

Jūsų išvestis turėtų kažką panašaus:

256 ca: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 rakto bitų ilgis, tada pats raktas, ir galiausiai yra failas, kuriame jis saugomas. Palyginkite šią vidurinę dalį su tuo, ką matote, kai raginama prisijungti nuotoliniu būdu. Tai turėtų atitikti, ir jūs visi esate pasiruošę. Jei taip nėra, tai gali įvykti kažkas kitas.

Galite peržiūrėti visus kompiuterius, su kuriais esate prisijungę per SSH, peržiūrėdami savo failą known_hosts. Paprastai jis yra:

~/.ssh/known_hosts

Galite jį atidaryti bet kuriame teksto redaktoriuje. Jei atrodysite, pabandykite atkreipti dėmesį į tai, kaip raktai saugomi. Jie saugomi su pagrindinio kompiuterio vardu (arba žiniatinklio adresu) ir jo IP adresu.

Keisti kompiuterio raktus ir problemas

Yra keletas priežasčių, kodėl priimančios raktos pasikeičia arba jie nesutampa su tuo, kas yra prisijungusi prie failo known_hosts.

  • Sistema buvo iš naujo įdiegta / iš naujo konfigūruojama.
  • Pagrindiniai raktai buvo pakeisti rankiniu būdu dėl saugumo protokolų.
  • Dėl saugumo problemų "OpenSSH" serveris atnaujintas ir naudojasi skirtingais standartais.
  • Pakeista IP ir DNS nuoma. Tai dažnai reiškia, kad bandote pasiekti kitą kompiuterį.
  • Tam tikru mastu sistema buvo sugadinta taip, kad pagrindinis raktas pasikeitė.

Labiausiai tikėtina, kad klausimas yra vienas iš pirmųjų trijų, ir jūs galite ignoruoti pakeitimą. Jei IP / DNS nuoma pasikeitė, tai gali kilti serverio problema, todėl gali būti nukreipta į kitą įrenginį. Jei nesate tikri, kokia yra pakeitimo priežastis, turėtumėte tikriausiai manyti, kad tai yra paskutinis sąraše.

Kaip "OpenSSH" tvarko nežinomus kompiuterius

"OpenSSH" nustato, kaip ji tvarko nežinomus kompiuterius, atspindintus kintamajame "StrictHostKeyChecking" (be kabučių).
"OpenSSH" nustato, kaip ji tvarko nežinomus kompiuterius, atspindintus kintamajame "StrictHostKeyChecking" (be kabučių).

Priklausomai nuo jūsų konfigūracijos, SSH ryšiai su nežinomomis šeimos narėmis (kurių raktų dar nėra jūsų žinomame_hosts faile) gali būti trimis būdais.

  • "StrictHostKeyChecking" yra nustatyta ne; OpenSSH automatiškai prisijungs prie bet kurio SSH serverio, nepriklausomai nuo pagrindinio kompiuterio raktų būsenos. Tai yra nesaugus ir nerekomenduojamas, išskyrus atvejus, kai iš naujo įdiekite savo operacinę sistemą pridedate daugybę kompiuterių, po kurių jį pakeisite.
  • StrictHostKeyChecking nustatytas klausti; "OpenSSH" parodys naujus pagrindinius raktus ir paprašys patvirtinimo prieš jas pridėdamas. Tai leis išvengti jungčių, kai vyksta keisti pagrindinius raktus. Tai pagal nutylėjimą.
  • StrictHostKeyChecking nustatytas taip; Priešingai nei "ne", tai neleis jums prisijungti prie bet kurio kompiuterio, kuris dar nėra jūsų žinomame failo "known_hosts".

Jūs galite lengvai pakeisti šį kintamąjį komandinę eilutę naudodami šią paradigmą:

ssh -o 'StrictHostKeyChecking [option]' user@host

Pakeiskite [parinktį] su "ne", "paklauskite" arba "taip". Atkreipkite dėmesį, kad šis kintamasis ir jo nustatymas yra vienišas tiesias kabučių. Taip pat pakeiskite vartotojo @ host vardą ir serverio, prie kurio prisijungiate, pavadinimą. Pavyzdžiui:

ssh -o 'StrictHostKeyChecking ask' [email protected]

Užblokuoti šeimininkai dėl pakeistų klavišų

Jei turite serverį, kuriuo bandote pasiekti tą raktą, kurio raktas jau pasikeitė, numatytoji "OpenSSH" konfigūracija neleis jums pasiekti. Galėtumėte pakeisti šio serverio "StrictHostKeyChecking" vertę, tačiau tai nebūtų visiškai, kruopščiai, paranojiškai saugi, ar tai būtų? Vietoj to mes galime paprasčiausiai pašalinti pažeidžiamą vertę iš failo known_hosts.

Tai tikrai bjaurus dalykas, kurį turėtum turėti savo ekrane. Laimei, mūsų priežastis buvo iš naujo įdiegta operacinė sistema. Taigi, tegul padidinsime liniją, kurioje mums reikia.
Tai tikrai bjaurus dalykas, kurį turėtum turėti savo ekrane. Laimei, mūsų priežastis buvo iš naujo įdiegta operacinė sistema. Taigi, tegul padidinsime liniją, kurioje mums reikia.
Ten mes einame Pažiūrėkite, kaip nurodo failą, kurį turime redaguoti? Tai netgi suteikia mums eilės numerį! Taigi, atidarykime failą "Nano":
Ten mes einame Pažiūrėkite, kaip nurodo failą, kurį turime redaguoti? Tai netgi suteikia mums eilės numerį! Taigi, atidarykime failą "Nano":
Image
Image
Štai mūsų piktnaudžiavimo raktas 1 eilutėje. Viskas, ką turime padaryti, yra paspausti Ctrl + K, kad iškirptumėte visą eilutę.
Štai mūsų piktnaudžiavimo raktas 1 eilutėje. Viskas, ką turime padaryti, yra paspausti Ctrl + K, kad iškirptumėte visą eilutę.
Tai daug geriau! Taigi, dabar paspaudę Ctrl + O išspausdinsime (išsaugokite) failą, tada Ctrl + X, kad išeitumėte.
Tai daug geriau! Taigi, dabar paspaudę Ctrl + O išspausdinsime (išsaugokite) failą, tada Ctrl + X, kad išeitumėte.

Dabar mes gauname malonų raginimą, į kurį mes galime tiesiog atsakyti "taip".

Image
Image

Naujų pagrindinių rakto kūrimas

Norėdami įrašyti, iš tikrųjų nėra per daug priežasties, kodėl jūs galite pakeisti pagrindinį raktą, bet jei jūs kada nors susirasite poreikį, galite tai padaryti lengvai.

Pirma, pakeiskite atitinkamą sistemos katalogą:

cd /etc/ssh/

Tai paprastai ten, kur yra globaliniai pagrindiniai raktai, nors kai kurie distros yra kitur. Jei kyla abejonių, patikrinkite savo dokumentus!

Toliau pašalinsime visus senus raktus.

sudo rm /etc/ssh/ssh_host_*

Arba galbūt norėsite perkelti jas į saugų atsarginių kopijų katalogą. Tiesiog mintis!

Tada mes galime pasakyti, kad "OpenSSH" serveris pertvarko save:

sudo dpkg-reconfigure openssh-server

Pamatysite raginimą, kol jūsų kompiuteris sukuria naujus raktus. Ta da!

Image
Image

Dabar, kai žinote, kaip SSH veikia šiek tiek geriau, turėtumėte sugebėti atsikratyti sunkumų. Įspėjimas / klaida "Nuotolinis kompiuterio identifikavimas pasikeitė" - tai kažkas, išmeta daug vartotojų, netgi tie, kurie yra susipažinę su komandų eilute.

Dėl bonusinių taškų galite sužinoti, kaip nuotoliniu būdu kopijuoti failus per SSH neužvedant slaptažodžio. Čia sužinosite šiek tiek daugiau apie kitus šifravimo algoritmus ir apie tai, kaip naudoti pagrindinius failus papildomam saugumui.

Rekomenduojamas: