Az OpenSSH szerver biztonságossá tétele és keményítése
Amikor távoli eszközökhöz, például szerverekhez, útválasztókhoz és kapcsolókhoz való hozzáférésről van szó, az SSH protokoll erősen ajánlott, mivel képes titkosítani a forgalmat, és kivédeni mindenkit, aki megpróbálja lehallgatni a kapcsolatait.
Bárhogy is legyen, az SSH alapértelmezett beállításai nem tévedhetetlenek, és további módosításokra van szükség a protokoll biztonságosabbá tételéhez. Ebben az útmutatóban különféle módokat vizsgálunk meg, amelyek segítségével biztonságossá és keményebbé teheti az OpenSSH telepítését a kiszolgálón.
1. Állítsa be az SSH jelszó nélküli hitelesítést
Alapértelmezés szerint az SSH megköveteli a felhasználóktól, hogy megadják jelszavaikat bejelentkezéskor. De itt van a lényeg: a hackerek kitalálhatják a jelszavakat, vagy akár brute force támadást hajthatnak végre speciális hackereszközök segítségével, és hozzáférhetnek a rendszerhez. A biztonság kedvéért erősen ajánlott az SSH jelszó nélküli hitelesítés használata.
Az első lépés egy SSH-kulcspár létrehozása, amely egy nyilvános kulcsból és egy privát kulcsból áll. A privát kulcs a gazdagépen található, míg a nyilvános kulcs a távoli szerverre másolódik.
A nyilvános kulcs sikeres másolása után zökkenőmentesen, jelszó megadása nélkül is bejuthat az SSH-ba a távoli szerverre.
A következő lépés a jelszavas hitelesítés letiltása. Ennek eléréséhez módosítani kell az SSH konfigurációs fájlt.
sudo vim /etc/ssh/sshd_config
A konfigurációs fájlban görgessen, és keresse meg a következő direktívát. Törölje a megjegyzéseket, és módosítsa az 'igen'
beállítást 'nem'
-ra
PasswordAuthentication no
Ezután indítsa újra az SSH démont.
sudo systemctl restart sshd
Ezen a ponton csak az SSH-kulcs hitelesítésével férhet hozzá a távoli kiszolgálóhoz.
2. Tiltsa le a felhasználói SSH jelszó nélküli kapcsolódási kéréseket
Egy másik ajánlott módszer a szerver biztonságának megerősítésére, ha letiltja a jelszó nélküli felhasználók SSH-bejelentkezését. Ez kissé furcsán hangzik, de néha a rendszergazdák felhasználói fiókokat hozhatnak létre, és elfelejtenek jelszavakat hozzárendelni – ami nagyon rossz ötlet.
A jelszó nélküli felhasználóktól érkező kérések elutasításához ismét lépjen a /etc/ssh/sshd_config
konfigurációs fájlba, és győződjön meg arról, hogy rendelkezik az alábbi direktívával:
PermitEmptyPasswords no
Ezután indítsa újra az SSH szolgáltatást a módosítás végrehajtásához.
sudo systemctl restart sshd
3. Tiltsa le az SSH root bejelentkezéseket
Nem csoda, hogy mi történhet, ha egy hackernek sikerül brutálisan kikényszerítenie a root jelszavát. A távoli root bejelentkezés engedélyezése mindig rossz ötlet, amely veszélyeztetheti a rendszer biztonságát.
Emiatt mindig ajánlott letiltani az SSH távoli root bejelentkezést, és inkább ragaszkodni egy szokásos nem root felhasználóhoz. Ismét lépjen át a konfigurációs fájlra, és módosítsa ezt a sort az ábrán látható módon.
PermitRootLogin no
Ha elkészült, indítsa újra az SSH szolgáltatást a módosítás végrehajtásához.
sudo systemctl restart sshd
Ezentúl a távoli root bejelentkezés deaktiválva lesz.
4. Használja az SSH 2-es protokollt
Az SSH két verzióban érhető el: SSH protokoll 1 és protocol 2. Az SSH 2. protokollt 2006-ban vezették be, és az erős kriptográfiai ellenőrzéseknek, a tömeges titkosításnak és a robusztus algoritmusoknak köszönhetően biztonságosabb, mint az 1. protokoll.
Alapértelmezés szerint az SSH az 1. protokollt használja. Ha ezt a biztonságosabb 2. protokollra szeretné módosítani, adja hozzá az alábbi sort a konfigurációs fájlhoz:
Protocol 2
Mint mindig, indítsa újra az SSH-t, hogy a változások életbe lépjenek.
sudo systemctl restart sshd
A továbbiakban az SSH alapértelmezés szerint a 2. protokollt fogja használni.
Annak teszteléséhez, hogy az SSH 1-es protokoll támogatott-e, futtassa a következő parancsot:
ssh -1 user@remote-IP
A következő hibaüzenet jelenik meg: „Az SSH-protokoll v.1 már nem támogatott”.
Ebben az esetben a parancs a következő volt:
ssh -1 [email
Ezenkívül egyszerűen megadhatja a -2
címkét, hogy megbizonyosodjon arról, hogy a 2. protokoll az alapértelmezett használt protokoll.
ssh -2 [email
5. Állítsa be az SSH-kapcsolat időtúllépésének tétlenségi értékét
Ha a számítógépet huzamosabb ideig felügyelet nélkül hagyja tétlen SSH-kapcsolat mellett, az biztonsági kockázatot jelenthet. Valaki egyszerűen elhaladhat, átveheti az SSH-munkamenetet, és bármit megtehet. A probléma megoldása érdekében célszerű tehát egy üresjárati időkorlátot beállítani, amelynek túllépése esetén az SSH-munkamenet bezárul.
Még egyszer nyissa meg az SSH-konfigurációs fájlt, és keresse meg a „ClientAliveInterval” direktívát. Adjon hozzá egy ésszerű értéket, például 180 másodpercre állítottam a határt.
ClientAliveInterval 180
Ez azt jelenti, hogy az SSH-munkamenet megszakad, ha 3 percen belül nem regisztrál semmilyen tevékenységet, ami 180 másodpercnek felel meg.
Ezután indítsa újra az SSH démont a változtatások végrehajtásához.
sudo systemctl restart sshd
6. Korlátozza az SSH-hozzáférést bizonyos felhasználókra
A további biztonsági réteg érdekében meghatározhatja azokat a felhasználókat, akiknek SSH protokollra van szükségük a bejelentkezéshez és távoli feladatok végrehajtásához a rendszeren. Ez kizár minden olyan felhasználót, aki az Ön jóváhagyása nélkül próbálhat meg belépni a rendszerébe.
Mint mindig, nyissa meg a konfigurációs fájlt, és fűzze hozzá az „AllowUsers” direktívát, majd az engedélyezni kívánt felhasználók nevét. Az alábbi példában lehetővé tettem a „tecmint” és a „james” felhasználók számára, hogy távoli hozzáférést kapjanak a rendszerhez SSH-n keresztül. Minden más felhasználó, aki távoli hozzáférést próbál elérni, blokkolva lesz.
AllowUsers tecmint james
Ezután indítsa újra az SSH-t, hogy a változtatások fennmaradjanak.
sudo systemctl restart sshd
7. Állítsa be a jelszavas próbálkozások korlátját
Biztonsági réteg hozzáadásának másik módja az SSH-bejelentkezési kísérletek számának korlátozása, így több sikertelen próbálkozás után a kapcsolat megszakad. Tehát ismét lépjen a konfigurációs fájlhoz, és keresse meg a „MaxAuthTries” direktívát, és adjon meg egy értéket a kísérletek maximális számához.
Ebben a példában a korlát 3 próbálkozásra van beállítva, az ábrán látható módon.
MaxAuthTries 3
Végül indítsa újra az SSH szolgáltatást az előző forgatókönyvek szerint.
A következő SSH-val kapcsolatos cikkeket is hasznosnak találhatja:
- Az OpenSSH 8.0 szerver telepítése a forrásból Linux alatt
- A Fail2Ban telepítése az SSH védelmére a CentOS/RHEL 8 rendszeren
- Hogyan változtassuk meg az SSH portot Linux alatt
- SSH-alagút vagy porttovábbítás létrehozása Linuxban
- 4 módszer az SSH-kapcsolatok felgyorsítására Linux alatt
- Hogyan lehet megtalálni az összes sikertelen SSH-bejelentkezési kísérletet Linux alatt
- Az inaktív vagy tétlen SSH-kapcsolatok leválasztása Linux rendszerben
Következtetés
Ez egy összegzés volt néhány olyan intézkedésről, amelyet megtehet az SSH távoli kapcsolatainak biztonsága érdekében. Fontos hozzátenni, hogy mindig erős jelszavakat kell hozzárendelnie a távoli hozzáféréssel rendelkező felhasználókhoz, hogy megakadályozza a brute force támadásokat. Reméljük, hogy ezt az útmutatót tanulságosnak találta. Nagyon szívesen fogadjuk visszajelzését.