Számos alkalommal magasztaltuk az SSH erényeit, mind a biztonság, mind a távoli hozzáférés szempontjából. Vessünk egy pillantást magára a szerverre, néhány fontos „karbantartási” szempontra és néhány furcsaságra, amelyek turbulenciát adhatnak az egyébként sima menethez.
Bár ezt az útmutatót Linuxra való tekintettel írtuk, ez vonatkozhat az OpenSSH-ra is Mac OS X és Windows 7 a Cygwin segítségével .
Miért biztonságos
Sokszor említettük, hogy az SSH kiválóan alkalmas az adatok biztonságos összekapcsolására és alagutazására egyik pontról a másikra. Vessünk egy nagyon rövid pillantást a dolgok működésére, hogy jobban megértsük, miért alakulhatnak néha furcsán a dolgok.
Amikor úgy döntünk, hogy kapcsolatot kezdeményezünk egy másik számítógéppel, gyakran olyan protokollokat használunk, amelyekkel könnyen lehet dolgozni. A Telnet és az FTP is eszembe jut. Információt küldünk egy távoli szervernek, majd visszaigazolást kapunk a kapcsolatunkról. Bizonyos típusú biztonság megteremtése érdekében ezek a protokollok gyakran felhasználónév és jelszó kombinációt használnak. Ez azt jelenti, hogy teljesen biztonságosak, igaz? Rossz!
Ha a csatlakozási folyamatot levélnek gondoljuk, akkor az FTP és a Telnet és hasonlók használata nem olyan, mint a szokásos levelezési borítékok használata. Inkább olyan, mint képeslapok használata. Ha valaki középen lép, láthatja az összes információt, beleértve a levelezők címét, valamint a kiküldött felhasználónevet és jelszót. Ezután megváltoztathatják az üzenetet, az információk változatlanok maradnak, és megszemélyesíthetik egyik vagy másik tudósítót. Ezt „ember a közepén” támadásnak nevezik, és nem csak a fiókját veszélyezteti, hanem minden elküldött üzenetet és kapott fájlt is megkérdőjelez. Nem lehet biztos abban, hogy a feladóval beszél-e, vagy sem, és még akkor is, ha nem, akkor sem lehet biztos abban, hogy senki sem néz mindent a kettő között.
Most nézzük meg az SSL titkosítást, olyat, amely biztonságosabbá teszi a HTTP-t. Itt van egy postánk, amely kezeli a levelezést, aki ellenőrzi, hogy a címzettje az, akinek állítja magát, és vannak törvényei, amelyek megvédik a leveleket attól, hogy megnézzék. Összességében biztonságosabb, és a központi hatóság - a Verisign az egyik, a HTTPS példánkban - gondoskodik arról, hogy az a személy, akinek e-mailt küld, kijelentkezzen. Ezt úgy teszik, hogy nem engedélyezik a képeslapokat (titkosítatlan hitelesítő adatokat); ehelyett valódi borítékokat írnak elő.
Végül nézzük meg az SSH-t. Itt a beállítás kissé más. Itt nincs központi hitelesítőnk, de a dolgok továbbra is biztonságosak. Ez azért van, mert leveleket küld valakinek, akinek a címét már tudja - mondjuk úgy, hogy telefonon beszélget velük -, és nagyon divatos matematikát használ a boríték aláírásához. Átadja testvérének, barátnőjének, apjának vagy lányának, hogy vigye el a címre, és csak akkor feltételezi, hogy a cím az, aminek lennie kell. Ezután visszakap egy levelet, amelyet ez a fantasztikus matematika is megvéd a kíváncsiskodóktól. Végül elküldi a hitelesítő adatait egy másik titkos algoritmikusan elvarázsolt borítékban a célhoz. Ha a matematika nem egyezik, akkor feltételezhetjük, hogy az eredeti címzett költözött, és újra meg kell erősítenünk a címét.
A magyarázattal, ameddig csak van, azt gondoljuk, hogy ott vágjuk. Ha van még némi rálátása, nyugodtan cseveghet a kommentekben, természetesen. Most azonban nézzük meg az SSH legfontosabb tulajdonságát, a gazdagép-hitelesítést.
Host Keys
A gazdagép hitelesítése lényegében az a rész, ahol valaki, akiben megbízik, elveszi a borítékot (mágikus matematikával lezárva), és megerősíti a címzett címét. Ez egy elég részletes leírás a címről, és néhány bonyolult matematikán alapul, amelyet csak át fogunk hagyni. Néhány fontos dolgot azonban el kell venni ettől:
- Mivel nincs központi hatóság, az igazi biztonság a gazdagépkulcsban, a nyilvános kulcsokban és a magánkulcsokban rejlik. (Ez utóbbi két kulcs akkor konfigurálódik, amikor hozzáférést kap a rendszerhez.)
- Általában, amikor SSH-n keresztül csatlakozik egy másik számítógéphez, a gazdagépkulcs tárolódik. Ez a jövőbeni cselekvéseket gyorsabbá (vagy kevésbé bőbeszédűvé) teszi.
- Ha megváltozik a gazdagépkulcs, akkor valószínűleg figyelmeztetni fogja Önt, és óvakodnia kell!
Mivel a gazdagépkulcsot a hitelesítés előtt használják az SSH-kiszolgáló személyazonosságának megállapítására, a csatlakozás előtt mindenképpen ellenőrizze a kulcsot. Megjelenik egy megerősítési párbeszédpanel, mint az alábbiakban.
Nem szabad azonban aggódnia! Gyakran, amikor a biztonság aggodalomra ad okot, lesz egy speciális hely, ahol a gazdagépkulcs (a fenti ECDSA ujjlenyomat) megerősíthető. Teljesen online vállalkozásoknál gyakran csak biztonságos bejelentkezési webhelyen történik. Előfordulhat, hogy telefonon kell megerősítenie ezt a kulcsot (vagy dönthet úgy!), Hogy megerősítse ezt a kulcsot telefonon. Még olyan helyekről is hallottam, ahol a kulcs a munkahelyi jelvényen vagy a speciális „Segélyhívó számok” listán szerepel. És ha fizikai hozzáférése van a célgéphez, akkor ellenőrizheti magát is!
A rendszer gazdagépkulcsának ellenőrzése
A kulcsok készítéséhez 4 típusú titkosítási algoritmus létezik, de az OpenSSH alapértelmezett értéke ez év elején az ECDSA ( néhány jó okkal ). Ma erre fogunk összpontosítani. Az alábbi parancs futtatható az SSH-kiszolgálón, amelyhez hozzáfér:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
A kimenetnek ilyet kell adnia:
256 ca: 62: ea: 7c: e4: 9e: 2e: a6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub
Az első szám a kulcs bithossza, majd maga a kulcs, és végül megvan a fájl, amelyben tárolva van. Hasonlítsa össze ezt a középső részt azzal, amit lát, amikor a rendszer távoli bejelentkezésre kéri. Meg kell egyeznie, és minden készen áll. Ha nem, akkor valami más történhet.
Megtekintheti az összes gazdagépet, amelyhez SSH-n keresztül csatlakozott, ha megnézi az ismert_hosztok fájlt. Általában a következő helyen található:
~ / .ssh / ismert_tulajdonosok
Ezt bármelyik szövegszerkesztőben megnyithatja. Ha megnézi, próbáljon figyelni a kulcsok tárolásának módjára. A gazdagép számítógépének nevével (vagy webcímével) és annak IP-címével együtt vannak tárolva.
Gépkulcsok és problémák módosítása
Néhány oka annak, hogy a gazdagépkulcsok megváltoznak, vagy azok nem egyeznek az ismert_hosztok fájlban naplózottakkal.
- A rendszert újratelepítették / újra konfigurálták.
- A gazdagépkulcsokat manuálisan megváltoztatták a biztonsági protokollok miatt.
- Az OpenSSH szerver biztonsági problémák miatt frissült, és más szabványokat használ.
- Az IP- vagy a DNS-bérlet megváltozott. Ez gyakran azt jelenti, hogy egy másik számítógéphez próbál hozzáférni.
- A rendszert valamilyen módon veszélyeztették, így megváltozott a gazdagépkulcs.
Valószínűleg a kérdés az első három egyike, és figyelmen kívül hagyhatja a változást. Ha megváltozott az IP / DNS bérlet, akkor probléma lehet a kiszolgálóval, és előfordulhat, hogy egy másik gépre irányítja. Ha nem biztos abban, hogy mi a változás oka, akkor valószínűleg feltételeznie kell, hogy ez az utolsó a listán.
Hogyan kezeli az OpenSSH az ismeretlen vendégeket
Az OpenSSH rendelkezik egy beállítással az ismeretlen állomások kezelésére, amelyet a „StrictHostKeyChecking” változó tükröz (idézőjelek nélkül).
A konfigurációtól függően az ismeretlen gazdagépekkel (amelyek kulcsa még nem szerepel az ismert_hosztok fájlban) szereplő SSH-kapcsolatok háromféleképpen működhetnek.
- A StrictHostKeyChecking értéke no; Az OpenSSH automatikusan csatlakozik bármely SSH szerverhez, a gazdagépkulcs állapotától függetlenül. Ez nem biztonságos és nem ajánlott, kivéve, ha egy csomó gazdagépet ad hozzá az operációs rendszer újratelepítése után, majd visszaváltoztatja.
- A StrictHostKeyChecking kérdezésre van beállítva; Az OpenSSH megmutatja az új gazdagépkulcsokat, és megerősítésüket kéri a felvétel előtt. Megakadályozza, hogy a kapcsolatok megváltozott gazdagépkulcsokra kerüljenek. Ez az alapértelmezett.
- A StrictHostKeyChecking értéke igen; A „nem” ellentéte ez megakadályozza, hogy olyan gazdagéphez csatlakozzon, amely még nem szerepel az ismert_gazdák fájlban.
Ezt a változót egyszerűen megváltoztathatja a parancssoron a következő paradigma használatával:
ssh -o 'StrictHostKeyChecking [option]' user @ host
Cserélje ki a [option] szót „nem”, „kér” vagy „igen” szóra. Ne feledje, hogy a változó és annak beállítása körül egyetlen egyenes idézőjel van. Cserélje ki a user @ host szót annak a kiszolgálónak a felhasználónevével és gazdagépnevével is, amelyhez csatlakozik. Például:
ssh -o 'StrictHostKeyChecking ask' [email protected]
Blokkolt vendéglátók a megváltozott kulcsok miatt
Ha van olyan szervere, amelyet megpróbál elérni, és amelynek kulcsa már megváltozott, az alapértelmezett OpenSSH konfiguráció megakadályozza, hogy hozzáférjen hozzá. Megváltoztathatja az adott gazdagép StrictHostKeyChecking értékét, de ez nem lenne teljesen, alaposan, paranoid módon biztonságos? Ehelyett egyszerűen eltávolíthatjuk a sértő értéket ismert_hosts fájlunkból.
Ez mindenképpen csúnya dolog a képernyőn. Szerencsére ennek oka egy újratelepített operációs rendszer volt. Nagyítsunk tehát a szükséges vonalra.
Oda megyünk. Látja, hogyan idézi a szerkeszteni kívánt fájlt? Még a sorszámot is megadja! Tehát nyissuk meg ezt a fájlt a nanóban:
Itt van a vétkes kulcsunk, az 1. sorban. Csak annyit kell tennünk, hogy lenyomjuk a Ctrl + K billentyűkombinációt, hogy kivágjuk az egész sort.
Ez sokkal jobb! Tehát most a Ctrl + O billentyűkombinációra kattintva kiírjuk (elmentjük) a fájlt, majd a Ctrl + X billentyűkombinációval kilépünk.
Most ehelyett kapunk egy kedves felszólítást, amelyre egyszerűen válaszolhatunk „igennel”.
Új gazdagépkulcsok létrehozása
Megjegyzendő, hogy valójában egyáltalán nincs túl sok oka annak, hogy megváltoztassa a gazdagépkulcsot, de ha valaha is úgy találja, hogy szükség van rá, akkor könnyen megteheti.
Először váltson a megfelelő rendszerkönyvtárra:
cd / etc / ssh /
Általában itt vannak a globális gazdagépkulcsok, bár néhány disztró máshol elhelyezi őket. Ha kétségei vannak, ellenőrizze a dokumentációt!
Ezután töröljük az összes régi kulcsot.
sudo rm / etc / ssh / ssh_host_ *
Alternatív megoldásként érdemes áthelyezni őket egy biztonságos mentési könyvtárba. Csak egy gondolat!
Ezután elmondhatjuk az OpenSSH szervernek, hogy állítsa be újra:
sudo dpkg -konfigurálja az openssh-szervert
Ekkor megjelenik egy üzenet, amíg a számítógép létrehozza az új kulcsokat. Ta-da!
Most, hogy tudja, hogyan működik az SSH egy kicsit jobban, képesnek kell lennie arra, hogy kiszabadítsa magát a nehéz helyekből. A „Távoli gazdagép-azonosítás megváltozott” figyelmeztetés / hiba sok felhasználót elvet, még azokat is, akik ismerik a parancssort.
Bónuszpontokért megnézheti Fájlok távoli másolása SSH-n keresztül a jelszó megadása nélkül . Itt megtudhat egy kicsit többet a titkosítási algoritmusok egyéb fajtáiról és a kulcsfájlok használatáról a biztonság növelése érdekében.