If-Koubou

Saznajte Ins i Out of OpenSSH na vašem Linux računalu

Saznajte Ins i Out of OpenSSH na vašem Linux računalu (Kako da)

Povezane su s vrlinama SSH brojnih puta, i za sigurnost i daljinski pristup. Pogledajmo sam poslužitelj, neke važne aspekte "održavanja" i neke čudoviće koje mogu dodati turbulenciju na inače glatku vožnju.

Iako smo napisali ovaj vodič uz pomoć Linuxa, to se može primijeniti i na OpenSSH u Mac OS X i Windows 7 putem Cygwina.

Zašto je sigurno

Mnogo smo puta spomenuli kako je SSH sjajan način za sigurno povezivanje i tuneliranje podataka s jedne točke u drugu. Uzmimo vrlo kratak uvid u to kako stvari funkcioniraju kako biste dobili bolju predodžbu zašto se stvari ponekad mogu činiti čudnim.

Kada odlučimo pokrenuti vezu s drugim računalom, često upotrebljavamo protokole s kojima je lako raditi. Telnet i FTP oba dolaze na pamet. Mi šaljemo informacije na udaljeni poslužitelj i dobivamo povratnu potvrdu o našoj vezi. Da bi se utvrdila neka vrsta sigurnosti, ti protokoli često koriste kombinacije korisničkog imena i lozinke. To znači da su potpuno sigurni, zar ne? Pogrešno!

Ako mislimo na naš proces spajanja kao mail, onda korištenje FTP i Telnet i slično nije kao pomoću standardne mailing omotnice. To je više poput korištenja razglednica. Ako se netko usredotoči na sredinu, mogu vidjeti sve informacije, uključujući adrese oba dopisnika i korisničko ime i zaporku poslane. Zatim mogu promijeniti poruku, čuvati podatke istim, i predstavljati jedan dopisnik ili drugi. To je poznato kao napad "čovjek u sredini", a ne samo da to ugrožava vaš račun, ali dovodi u pitanje svaku primljenu poruku i zaprimljenu datoteku. Ne možete biti sigurni jeste li razgovarali s pošiljateljem ili ne, a čak i ako jeste, ne možete biti sigurni da nitko ne gleda sve između njih.

Pogledajmo sada SSL šifriranje, vrsta koja čini HTTP sigurnijima. Ovdje imamo poštansku službu koja obrađuje dopisivanje, koja provjerava je li vaš primatelj tko tvrdi da jest i ima zakone koji štite vašu poštu. Općenito je sigurnije, a središnja vlast - Verisign je jedan, za naš primjer HTTPS-a - osigurava da osoba koja šaljete poštu provjerava. To čine tako što ne dopuštaju razglednice (neispisane vjerodajnice); Umjesto toga, oni nalažu stvarne omotnice.

Napokon, pogledajmo SSH. Ovdje je postava malo drugačija. Ovdje nemamo središnji autentifikator, ali stvari su još uvijek sigurne. To je zato što šaljete pismo nekome čija adresa već znate - recimo, razgovarajući s njima na telefonu - i upotrebljavate neku stvarno fantastičnu matematiku da potpišete svoju omotnicu. Dopustite to svom bratu, djevojci, tati ili kćeri da ga odnesete na adresu, a samo ako primamljivi fanovi matematičkih utakmica pretpostavljate da je adresa ono što bi trebalo biti. Tada ćete dobiti pismo natrag, također zaštićen od znatiželjnih očiju s ovim strašnim matematikom. Konačno, svoje vjerodajnice šaljete na drugu tajnovitu algoritamski omotanu omotnicu do odredišta. Ako se matematika ne podudara, možemo pretpostaviti da se izvorni primatelj preselio i moramo ponovno potvrditi njihovu adresu.

Uz objašnjenje koliko god to bilo, mislimo da ćemo ga rezati. Ako imate još više uvida, slobodno razgovarajte u komentarima, naravno. Za sada, ipak, pogledajmo najrelevantniju značajku SSH, autentifikaciju domaćina.

Tipke domaćina

Autentikacija host je u suštini dio u kojem je povjerljiva osoba preuzela omotnicu (zapečaćena čarobnim matematikom) i potvrđuje adresu primatelja. To je prilično detaljan opis adrese, a temelji se na nekoj složenoj matematici koju ćemo jednostavno preskočiti. Postoji nekoliko važnih stvari za oduzimanje toga, iako:

  1. Budući da ne postoji središnja vlast, stvarna sigurnost leži u ključu glavnog računala, javnim ključevima i privatnim ključevima. (Ova posljednja dva ključa konfigurirana su kada dobijete pristup sustavu.)
  2. Obično, kada se povežete s drugim računalom putem SSH, ključ glavnog računala je pohranjen. To čini buduće radnje brže (ili manje glomazne).
  3. Ako se ključ domaćina mijenja, najvjerojatnije ćete biti upozoreni i trebali biste biti oprezni!

Budući da se ključ za host koristi prije autentifikacije da bi se utvrdio identitet SSH poslužitelja, trebali biste provjeriti ključ prije nego se povežete. Vidjet ćete dijaloški okvir za potvrdu kao u nastavku.

Ne brini se, ipak! Često kada je sigurnost zabrinutost, bit će posebno mjesto na kojem se može potvrditi ključ domaćina (ECDSA otisak prsta gore). U potpuno online pothvatima, često će biti na sigurnom web-mjestu za prijavu. Možda ćete morati (ili odlučiti!) Telefonirati vaš IT odjel da potvrdite ovu tipku preko telefona. Čuo sam čak i za neka mjesta na kojima je ključ na vašem značku ili na posebnom popisu "Emergency Numbers". A ako imate fizički pristup ciljnom stroju, možete i sami provjeriti!

Provjera ključa glavnog računala vašeg sustava

Postoje 4 vrste vrsta algoritama za šifriranje koji se koriste za izradu ključeva, no zadani je za OpenSSH od ranije ove godine ECDSA (s nekim dobrim razlozima). Danas ćemo se usredotočiti na to. Evo naredbe koju možete pokrenuti na SSH poslužitelju kojem imate pristup:

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

Vaš output bi trebao vratiti nešto ovako:

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

Prvi broj je bit duljina ključa, a zatim je ključ i konačno imate datoteku u kojoj je pohranjena. Usporedite taj srednji dio s onim što vidite kada se od vas zatraži prijava na daljinu.Trebao bi se podudarati, a vi ste svi postavljeni. Ako ne, onda se može dogoditi nešto drugo.

Možete pregledati sve hostove s kojima ste se povezali putem SSH-a proučavanjem datoteke known_hosts. Obično se nalazi na adresi:

~ / .Ssh / known_hosts

Možete ga otvoriti u bilo kojem uređivaču teksta. Ako pogledate, pokušajte obratiti pozornost na to kako se ključevi pohranjuju. Pohranjene su uz ime računala (ili web adresu) i njegovu IP adresu.

Promjena ključeva i problema domaćina

Postoji nekoliko razloga zbog kojih se ključevi domaćina mijenjaju ili ne odgovaraju onome što je prijavljeno u datoteci known_hosts.

  • Sustav je ponovno instaliran / ponovo konfiguriran.
  • Ključevi glavnog računala ručno su izmijenjeni zbog sigurnosnih protokola.
  • OpenSSH poslužitelj ažurira i koristi različite standarde zbog sigurnosnih problema.
  • IP ili DNS zakup promijenjen. To često znači da pokušavate pristupiti drugom računalu.
  • Sustav je bio na neki način ugrožen tako da se ključ domaćina promijenio.

Najvjerojatnije je ovo pitanje jedno od prva tri, a promjenu možete zanemariti. Ako se IP / DNS zakup promijenio, možda postoji problem s poslužiteljem i možda ćete ga preusmjeriti na drugi stroj. Ako niste sigurni koji je razlog za promjenu, vjerojatno biste trebali pretpostaviti da je posljednji na popisu.

Kako OpenSSH upravlja nepoznatim hostovima

OpenSSH ima postavku za rukovanje nepoznatih hostova, što se odražava u varijabli "StrictHostKeyChecking" (bez navodnika).

Ovisno o vašoj konfiguraciji, SSH veze s nepoznatim hostovima (čiji ključevi već nisu u datoteci known_hosts) mogu ići na tri načina.

  • StrictHostKeyChecking je postavljen na ne; OpenSSH će se automatski povezati s bilo kojim SSH poslužiteljem bez obzira na status glavnog računala. Ovo je nesigurno i nije preporučljivo, osim ako nakon ponovne instalacije vašeg sustava dodate hrpu hostova, nakon čega ćete je vratiti.
  • StrictHostKeyChecking je postavljen na pitanje; OpenSSH će vam pokazati nove ključeve domaćina i zatražiti potvrdu prije nego što ih dodate. To će spriječiti veze od odlaska na izmjene ključeva domaćina. Ovo je zadana postavka.
  • StrictHostKeyChecking je postavljen na da; Suprotno od "ne", to će vam spriječiti povezivanje s bilo hostom koji već nije prisutan u datoteci known_hosts.

Jednostavno možete promijeniti ovu varijablu na naredbenom retku pomoću sljedeće paradigme:

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

Zamijenite [opciju] s "ne", "pitaj" ili "da". Budite svjesni da postoje jednake pravocjene citate koji okružuju ovu varijablu i njegovu postavku. Također zamijenite korisnik @ host s korisničkim imenom i nazivom poslužitelja poslužitelja na koji se povezujete. Na primjer:

ssh-o 'StrictHostKeyChecking pitajte' [email protected]

Blokirani domaćini zbog promijenjenih ključeva

Ako imate poslužitelj kojem pokušavate pristupiti, već je promijenjen ključ, već će zadana OpenSSH konfiguracija spriječiti pristup toj usluzi. Možete promijeniti StrictHostKeyChecking vrijednost za tog domaćina, ali to ne bi bilo potpuno, temeljito, paranoidno sigurno, zar ne? Umjesto toga, jednostavno možemo ukloniti uvredljivu vrijednost iz datoteke known_hosts.

To je svakako ružna stvar na vašem zaslonu. Srećom, naš razlog za to bio je reinstalirani OS. Zato povećajmo potrebnu liniju.

Idemo tamo. Pogledajte kako navodi datoteku koju trebamo urediti? Čak nam daje i redni broj! Zato otvorimo tu datoteku u Nano:

Evo našeg uvredljivog ključa, u retku 1. Sve što trebamo je pritisnuti Ctrl + K da biste izrezali cijelu liniju.

To je puno bolje! Dakle, sad pritisnemo Ctrl + O da zapišemo (spremimo) datoteku, a zatim Ctrl + X da izađemo.

Umjesto toga, dobivamo lijep potez, na koji možemo jednostavno odgovoriti s "da".

Stvaranje novih ključeva domaćina

Za zapis, doista nema previše razloga za promjenu ključa domaćina, ali ako ikada pronađete potrebu, možete to učiniti lako.

Najprije promijenite odgovarajući direktorij sustava:

cd / etc / ssh /

To je obično mjesto gdje su glavni ključovi domaćina, iako ih neki distribuiraju negdje drugdje. U slučaju sumnje provjerite dokumentaciju!

Zatim ćemo izbrisati sve stare ključeve.

sudo rm / etc / ssh / ssh_host_ *

Alternativno, možete ih premjestiti u sigurnosni rezervni direktorij. Samo misao!

Tada možemo reći OpenSSH poslužitelju da se ponovno konfigurira:

sudo dpkg-reconfigure openssh-server

Vidjet ćete upit dok računalo stvara nove ključeve. Evo ga!

Sada kada znate kako SSH radi malo bolje, trebali biste biti u mogućnosti izvući se iz teških mjesta. Upozorenje / pogreška "Identifikacija udaljenog računala je promijenjena" je ono što baca puno korisnika, čak i onih koji poznaju naredbeni redak.

Za bonus bodove, možete provjeriti kako daljinski kopirati datoteke preko SSH bez unošenja vaše lozinke. Tu ćete naučiti nešto više o drugim vrstama algoritama za šifriranje i kako koristiti ključne datoteke za dodatnu sigurnost.