Weboldal keresés

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.