Ha távolról dolgozik Linux szerverekkel (vagy konténerekkel), akkor azt feltételezheti, hogy ez alapvetően biztonságos. Sajnos ez tévhit. Bár a Secure Shell biztonságosabb, mint az előző megoldások, például a Telnet, további lépéseket kell tenni a rendszerek és az adatok biztonságának megőrzése érdekében.
Az alapértelmezés szerint a Secure Shell név és jelszó alapján működik. Tehát ha használja a ssh felhasználónevét@példa.com parancsot, akkor meg fogja kérdezni a „ralph” felhasználó „példa.com” kiszolgáló jelszavát.
Azonban van egy jobb módszer, amely kevésbé sebezhető a szerver megszegésével szemben. Ezt hívják SSH kulcs hitelesítésnek.
Az SSH kulcs hitelesítés a helyi számítógépen létrehozott kulcspáron alapul. A kulcspár egy privát kulcsból és egy nyilvános kulcsból áll. A privát kulcs biztonságban marad a helyi számítógépen, míg a nyilvános kulcsot elküldik a távoli kiszolgálónak, amire távolról hozzáférhet. Amikor a kulcsok be vannak állítva, minden bejelentkezéskor felismerik a kulcsokat, hogy megvizsgálják, hogy egyeznek-e. Ha a kulcsok egyeznek, hozzáférést szerez a kiszolgálóhoz. Ha a kulcsok nem egyeznek, akkor nem bír szerencsével.
Ez a megoldás lényegesen biztonságosabb a hagyományos felhasználónév és jelszó hitelesítésnél, és minden Linux szerveren használni kell.
Megmutatom, hogyan implementálhatja az SSH kulcs hitelesítést.
Mi lesz ehhez szüksége?
Ehhez a bemutatóhoz legalább két Linux gépre lesz szüksége – egy helyi és egy távolira. Mivel minden parancssorból történik, nem kell grafikus környezetet beállítania. Természetesen szüksége lesz a távoli kiszolgáló IP-címére vagy domainjére, és a helyi gépnek képesnek kell lennie a távoli hozzáférésre a távoli szerverhez.
Hozzon létre egy SSH kulcspárt
Az első dolog, amit meg kell tennie, hogy létrehozza az SSH kulcspárt. Ezt a helyi számítógépen kell megtennie. Jelentkezzen be a gépre és hozzon létre egy kulcspárt a következő parancsal:
ssh-keygen
Meg fogja kérdezni, hogy hova mentse a kulcsot (az alapértelmezett hely a ~/.ssh), és meg kell adnia és vissza kell igazolnia a kulcspár jelszavát. Győződjön meg róla, hogy erős/egyedi jelszót használ.
Az fent említett parancs két fájlt fog generálni: az id_rsa-t (a privát kulcs) és az id_rsa.pub-ot (a nyilvános kulcs).
Másolja át a kulcsot a távoli gépre
A következő lépés az, hogy másolja át a nyilvános kulcsot a távoli gépre. Szerencsére az SSH rendelkezik egy beépített funkcióval, amely megkönnyíti ezt a feladatot. A kulcs másolásához egyszerűen futtassa a következő parancsot:
ssh-copy-id FELHASZNÁLÓ@SZERVER
Ahol FELHASZNÁLÓ a Linux felhasználóneve, SZERVER pedig a távoli kiszolgáló IP-címe vagy domainje. Meg fogja kérdezni a távoli felhasználó SSH jelszavát. Sikeres hitelesítés után a nyilvános kulcs el lesz mentve a ~/.ssh könyvtárba a távoli kiszolgálón.
Most próbálja ki az SSH kulcs hitelesítést újra a következő paranccsal, hogy tesztelje:
ssh FELHASZNÁLÓ@SZERVER
Ahol FELHASZNÁLÓ a felhasználónév és SZERVER a távoli kiszolgáló IP-címe vagy domainje. Ezúttal meg fogja kérdezni az SSH kulcs jelszavát (nem a felhasználói jelszavát).
Gratulálunk, az SSH kulcs hitelesítés működik!
De tovább növelhetjük a biztonságot.
Konfigurálja az SSH kiszolgálót azáltal, hogy növeli a biztonságot
Mielőtt folytatná ezt a lépést, győződjön meg róla, hogy létrehozott kulcspárokat és másolta a nyilvános kulcsot minden olyan ügyfél gépre, amelynek hozzáférésre van szüksége a távoli kiszolgálón. Ha nem teszi ezt, akkor azt fogja tapasztalni, hogy azok a gépek nem rendelkeznek bejelentkezési képességgel (még a helyes felhasználói fiókokkal sem). Ebben az esetben a probléma kijátszásának egyetlen módja az lenne, hogy manuálisan másolja a SSH nyilvános kulcs tartalmát a kliens gépről az ~/.ssh/authorized_keys fájlba a szerveren.
A következő lépésünk az, hogy engedélyezze a nyilvános kulcs hitelesítést és letiltsa a jelszó hitelesítést (a távoli kiszolgálón).
Nyissa meg a SSH demon konfigurációs fájlját ( a távoli kiszolgálón) a következő parancsal:
sudo nano /etc/ssh/sshd_config
Először keressen rá erre a sorra:
# PubkeyAuthentication yes
Változtassa meg ezt a sort így:
PubkeyAuthentication yes
Akkor keressen rá erre a sorra:
# PasswordAuthentication yes
Változtassa meg ezt a sort így:
PasswordAuthentication no
Mentse és zárja be a fájlt.
Indítsa újra az SSH-t a következő paranccsal:
sudo systemctl restart ssh
Mielőtt befejezné az aktuális kapcsolatot, nyisson meg egy új terminál ablakot (a nyilvános kulcs másolása után a szerverre a gépen) és próbálja újra bejelentkezni az SSH-val. Ha engedélyt kap, bizonyította, hogy az SSH-n keresztüli bejelentkezés egyetlen módja a kulcs hitelesítéssel történik.
Most minden próbálkozás, hogy bejelentkezzen a Linux szerverére, ha a kulcspárok nem egyeznek, el lesz utasítva.
Gyakori kérdések
1. Milyen megoldások biztosítanak szerverbiztonságot?
Az SSH kulcs hitelesítés megoldásokat biztosítanak a szerverbiztonság terén.
2. Hogyan működik az SSH kulcshitelesítés?
Az SSH kulcshitelesítés egy kulcspáron alapul: privát és nyilvános. A privát kulcs a helyi számítógépen marad, míg a nyilvános kulcs elküldésre kerül a kiszolgálónak, amelyhez hozzáférést szeretnénk. Az autentikáció során a kulcsok ellenőrzik egymást a bejelentkezéskor.
3. Miért biztonságosabb az SSH kulcshitelesítés a hagyományos felhasználónév és jelszó hitelesítésnél?
Az SSH kulcshitelesítés biztonságosabb, mert nem szükséges jelszót megadni a bejelentkezéskor. A privát kulcs a helyi számítógépen marad, így nehezebb a jogosulatlan személyeknek az elfogás.
4. Hogyan hozhatok létre egy SSH kulcspárt?
Az SSH kulcspárt létrehozhatja a helyi számítógépen a „ssh-keygen” parancs segítségével.
5. Hogyan másolhatom át a nyilvános kulcsot egy távoli gépre?
A nyilvános kulcsot átmásolhatja egy távoli gépre a „ssh-copy-id FELHASZNÁLÓ@SZERVER” parancs segítségével.
6. Hogyan konfigurálhatom az SSH kiszolgálót növelt biztonság érdekében?
Az SSH kiszolgáló biztonságának növelése érdekében engedélyeznie kell a nyilvános kulcs hitelesítést és letiltania a jelszó hitelesítést az SSH demán konfigurációs fájlban.
7. Hogyan indíthatom újra az SSH-t a konfiguráció módosítása után?
Az SSH-t újraindíthatja a „sudo systemctl restart ssh” parancs segítségével.
Definíciók
Secure Shell (SSH) – egy biztonságos kommunikációs protokoll hálózati kapcsolatokhoz. Gyakran használják távoli bejelentkezéshez a szerverekhez.
Privát kulcs – egy titkos kriptográfiai kulcs, amely a helyi számítógépen marad. A kódolt adatok feloldásához használják.
Nyilvános kulcs – egy kriptográfiai kulcs, amelyet elküldenek a szerverre, amelyhez hozzáférést szeretnénk. Az SSH kulcs hitelesítés során használják.
Hitelesítés – azonosít egy felhasználó vagy rendszer azonosságának ellenőrzése.
Konzol – a textúrált felhasználói felület a parancssorban történő munkához.
The source of the article is from the blog coletivometranca.com.br