Naučite se InS in Out of OpenSSH na vašem računalniku Linux
Večkrat smo navdušili vrline SSH, tako za varnost kot za oddaljeni dostop. Oglejmo si sam strežnik, nekaj pomembnih vidikov „vzdrževanja“ in nekatere navade, ki lahko povzročijo nemir na sicer gladko vožnjo..
Čeprav smo ta vodnik napisali z mislijo na Linux, lahko to velja tudi za OpenSSH v Mac OS X in Windows 7 prek Cygwina..
Zakaj je varna
Velikokrat smo omenili, da je SSH odličen način za varno povezovanje in predor podatkov iz ene točke v drugo. Vzemimo zelo kratek pogled na to, kako stvari delujejo, da dobite boljšo predstavo o tem, zakaj se lahko stvari včasih čudno pojavijo.
Ko se odločimo za vzpostavitev povezave z drugim računalnikom, pogosto uporabljamo protokole, s katerimi lahko delamo. Oba Telneta in FTP sta prišla na misel. Pošljemo informacije oddaljenemu strežniku in nato dobimo potrditev o naši povezavi. Za vzpostavitev neke vrste varnosti ti protokoli pogosto uporabljajo kombinacije uporabniškega imena in gesla. To pomeni, da so popolnoma varni, kajne? Napačno!
Če proces povezovanja menimo kot pošto, potem uporaba FTP in Telnet in podobnega ni podobna standardnim poštnim ovojnicam. To je bolj kot uporaba razglednic. Če se zgodi, da nekdo stopi v sredino, lahko vidi vse informacije, vključno z naslovi obeh dopisnikov in poslanim uporabniškim imenom in geslom. Nato lahko spremenijo sporočilo, ohranijo iste informacije in se predstavijo kot eden ali drugega. To je znano kot napad "človek-v-sredini" in ne samo, da ogrozi vaš račun, ampak postavlja pod vprašaj vsako poslano sporočilo in prejeto datoteko. Ne morete biti prepričani, ali se pogovarjate s pošiljateljem ali ne, in tudi če ste, ne morete biti prepričani, da nihče ne gleda vsega, kar je med.
Zdaj pa si poglejmo šifriranje SSL, ki omogoča, da je HTTP varnejši. Tukaj imamo poštni urad, ki obravnava korespondenco, ki preveri, ali je vaš prejemnik tisti, za katerega pravi, da je, in ima zakone, ki ščitijo vašo pošto pred ogledom. Na splošno je varnejši in osrednji organ - Verisign je eden, za naš primer HTTPS - poskrbi, da se oseba, ki jo pošiljate, odjavi. To počnejo tako, da ne dovolijo razglednic (nešifriranih poverilnic); namesto tega pooblastijo prave ovojnice.
Nazadnje pa poglejmo SSH. Tukaj je nastavitev malo drugačna. Tu nimamo osrednjega overitelja, toda stvari so še vedno varne. To je zato, ker pošiljate pisma nekomu, čigar naslov že veste - recimo, s klepetom z njimi po telefonu - in uporabljate nekaj resnično fensi matematike, da podpišete svojo kuverto. Izročite ga svojemu bratu, deklici, očetu ali hčerki, da jo odnesejo na naslov, in le, če se prejemnikova domišljena matematika ujema, domnevate, da je naslov tisto, kar bi moral biti. Potem dobite pismo nazaj, prav tako zaščiteno pred radovednimi očmi, ki ga prinaša ta čudovita matematika. Končno pošljete svoje poverilnice v drugo skrivno algoritmično ovito ovojnico do cilja. Če se matematika ne ujema, lahko predpostavimo, da se je prvotni prejemnik premaknil in da moramo naslov ponovno potrditi.
Z razlago, dokler je, mislimo, da jo bomo tam razrezali. Če imate še nekaj vpogledov, seveda seveda lahko klepetate v komentarjih. Za zdaj pa si poglejmo najpomembnejšo funkcijo SSH, overjanje gostitelja.
Tipke gostitelja
Preverjanje pristnosti gostitelja je v bistvu del, kjer nekdo, ki mu zaupate, prevzame ovojnico (z zapečateno čarobno matematiko) in potrdi naslov prejemnika. To je precej podroben opis naslova in temelji na neki zapleteni matematiki, ki jo bomo preprosto preskočili. Obstaja pa nekaj pomembnih stvari, ki jih je treba odvzeti:
- Ker ni centralnega organa, je resnična varnost v ključu gostitelja, javnih ključih in zasebnih ključih. (Zadnji dve tipki sta konfigurirani, ko imate dostop do sistema.)
- Običajno, ko se povežete z drugim računalnikom prek SSH, je ključ gostitelja shranjen. Zaradi tega bodo prihodnja dejanja hitrejša (ali manj).
- Če se ključ gostitelja spremeni, boste najverjetneje opozorjeni in morate biti previdni!
Ker se ključ za gostitelja uporablja pred preverjanjem pristnosti, da se določi identiteta strežnika SSH, morate preveriti ključ, preden se povežete. Videli boste potrditveno pogovorno okno, kot je spodaj.
Čeprav ne bi smeli skrbeti! Pogosto, ko je varnost zaskrbljujoča, bo poseben prostor, ki ga lahko potrdi ključ za gostitelja (prstni odtis ECDSA zgoraj). V popolnoma spletnih podvigih je pogosto na varni spletni strani za prijavo. Morda boste morali (ali izbrati!) Telefonski oddelek za informacijsko tehnologijo, da to potrdite po telefonu. Slišal sem celo o krajih, kjer je ključ na vaši delovni znački ali na posebnem seznamu »Nujne številke«. In če imate fizični dostop do ciljnega računalnika, lahko preverite tudi sami!
Preverjanje ključa gostitelja vašega sistema
Obstajajo 4 vrste šifrirnih algoritmov, ki se uporabljajo za izdelavo ključev, vendar je privzeto za OpenSSH od začetka tega leta ECDSA (z nekaterimi dobrimi razlogi). Danes se bomo osredotočili na to. Tukaj je ukaz, ki ga lahko zaženete na strežniku SSH, do katerega imate dostop:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
Izhod mora vrniti nekaj takega:
256 ca: 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub
Prva številka je bitna dolžina ključa, potem je ključ sam, in končno imate datoteko, v kateri je shranjena. Primerjajte ta srednji del s tem, kar vidite, ko ste pozvani, da se prijavite na daljavo. Moralo bi se ujemati in vsi ste pripravljeni. Če ne, potem se lahko zgodi še nekaj drugega.
Ogledate si lahko vse gostitelje, s katerimi ste povezani prek SSH, tako da si ogledate datoteko known_hosts. Ponavadi se nahaja na:
~ / .ssh / known_hosts
To lahko odprete v vsakem urejevalniku besedila. Če pogledate, poskusite paziti, kako so ključi shranjeni. Shranjujejo se z imenom gostiteljskega računalnika (ali spletnim naslovom) in njegovim naslovom IP.
Spreminjanje ključev in težav gostitelja
Obstaja nekaj razlogov, zakaj se ključi gostiteljev spremenijo ali se ne ujemajo s tistim, kar je zabeleženo v datoteki known_hosts.
- Sistem je bil ponovno nameščen / ponovno konfiguriran.
- Ključi gostitelja so bili ročno spremenjeni zaradi varnostnih protokolov.
- Strežnik OpenSSH je posodobljen in uporablja različne standarde zaradi varnostnih težav.
- Najem IP ali DNS je bil spremenjen. To pogosto pomeni, da poskušate dostopiti do drugega računalnika.
- Sistem je bil na nek način ogrožen, tako da je ključ gostitelja spremenjen.
Najverjetneje je vprašanje eno od prvih treh, spremembo pa lahko prezrete. Če se spremeni zakup IP / DNS, lahko pride do težave s strežnikom in morda boste preusmerjeni na drug računalnik. Če niste prepričani, kakšen je razlog za spremembo, potem bi morali verjetno predpostaviti, da je zadnji na seznamu.
Kako OpenSSH upravlja neznane gostitelje
OpenSSH ima nastavitev za ravnanje z neznanimi gostitelji, kar se odraža v spremenljivki “StrictHostKeyChecking” (brez narekovajev).
Glede na vašo konfiguracijo lahko SSH povezave z neznanimi gostitelji (katerih ključi še niso v vaši datoteki known_hosts) gredo na tri načine..
- StrictHostKeyChecking je nastavljeno na ne; OpenSSH se bo samodejno povezal s katerim koli strežnikom SSH, ne glede na status ključa gostitelja. To je negotovo in ni priporočljivo, razen če dodajate kup gostiteljev po ponovni namestitvi operacijskega sistema, potem pa ga boste spremenili nazaj.
- StrictHostKeyChecking je nastavljen na vprašanje; OpenSSH vam bo pokazal nove ključe gostitelja in vas prosil za potrditev, preden jih dodate. To bo preprečilo povezav, da gredo v spremenjene ključe gostitelja. To je privzeto.
- StrictHostKeyChecking je nastavljeno na yes; Nasprotno od "ne", bo to preprečilo povezavo z nobenim gostiteljem, ki še ni v vaši datoteki known_hosts.
To spremenljivko lahko preprosto spremenite v ukazni vrstici z naslednjo paradigmo:
ssh -o 'StrictHostKeyChecking [možnost]' uporabnik @ gostitelj
Zamenjajte [možnost] z »ne«, »vprašaj« ali »da«. Zavedajte se, da obstajajo posamezni kotniki, ki obkrožajo to spremenljivko in njeno nastavitev. Uporabniško gostiteljico nadomestite tudi z uporabniškim imenom in imenom gostitelja strežnika, s katerim se povezujete. Na primer:
ssh -o 'StrictHostKeyChecking vprašaj' [email protected]
Blokirani gostitelji zaradi spremenjenih ključev
Če imate strežnik, do katerega želite dostopati in katerega ključ je že spremenjen, vam bo privzeta konfiguracija OpenSSH preprečila dostop do nje. Vrednost StrictHostKeyChecking za ta gostitelj lahko spremenite, vendar to ne bi bilo popolnoma, temeljito, paranoično varno, kajne? Namesto tega lahko preprosto odstranimo kršitveno vrednost iz naše datoteke known_hosts.
To je vsekakor grda stvar na vašem zaslonu. Na srečo je bil razlog za to ponovna namestitev operacijskega sistema. Torej, povečajmo črto, ki jo potrebujemo.
No pa gremo. Oglejte si, kako navaja datoteko, ki jo moramo urediti? Dala nam je celo številko linije! Torej, odpri to datoteko v Nano:
Tukaj je naš kršitveni ključ, v vrstici 1. Vse, kar moramo storiti je, da pritisnemo Ctrl + K, da izrežemo celotno vrstico.
To je veliko bolje! Torej, zdaj pritisnemo Ctrl + O, da zapišemo (shranimo) datoteko, nato Ctrl + X za izhod.
Zdaj pa dobimo lep poziv, na katerega se lahko preprosto odzovemo z "da".
Ustvarjanje novih ključev gostitelja
Za zapisnik, resnično ni preveč razloga, da bi spremenili ključ gostitelja, če pa boste kdaj našli potrebo, lahko preprosto naredite.
Najprej spremenite v ustrezen sistemski imenik:
cd / etc / ssh /
Običajno so to ključi globalnih gostiteljev, čeprav so nekateri distrosi nameščeni drugje. V dvomih preverite dokumentacijo!
Nato bomo izbrisali vse stare ključe.
sudo rm / etc / ssh / ssh_host_ *
Lahko pa jih premaknete v varen imenik za varnostno kopiranje. Samo misel!
Potem lahko strežniku OpenSSH rečemo, da se preoblikuje:
sudo dpkg-reconfigure openssh-strežnik
Ko računalnik ustvari nove ključe, se prikaže poziv. Ta-da!
Zdaj, ko veste, kako SSH deluje nekoliko bolje, bi se morali izogniti težkim točkam. Opozorilo / napaka »Identifikacija oddaljenega gostitelja se je spremenila« je nekaj, zaradi česar je veliko uporabnikov izključenih, tudi tisti, ki poznajo ukazno vrstico.
.