A rendszer és az adatok védelme érdekében biztosítsa a Linux rendszer SSH kapcsolatát. A rendszergazdáknak és az otthoni felhasználóknak egyaránt meg kell keményíteniük és biztonságosnak kell lenniük az internet felé néző számítógépeken, de az SSH bonyolult lehet. Íme tíz egyszerű gyors megnyerés az SSH-kiszolgáló védelme érdekében.
Az SSH biztonsági alapjai
Az SSH a Biztonságos héj . Az „SSH” elnevezést felcserélhetően vagy magát az SSH protokollt, vagy olyan szoftvereszközöket kell érteni, amelyek lehetővé teszik a rendszergazdáknak és a felhasználóknak, hogy biztonságos kapcsolatot létesítsenek távoli számítógépekkel az adott protokoll használatával.
Az SSH protokoll egy titkosított protokoll, amelyet biztonságos kapcsolat biztosítására terveztek egy nem biztonságos hálózaton, például az interneten keresztül. Az SSH Linux rendszerben a OpenSSH projekt. Megvalósul a klasszikus kliens-szerver modell , egy SSH szerverrel, amely SSH kliensektől fogadja a kapcsolatokat. Az ügyfél a szerverhez és a kijelző a munkamenetet a távoli felhasználónak. A szerver elfogadja a kapcsolatot és végrehajtja az ülés.
Alapértelmezés szerint egy SSH-kiszolgáló figyeli a bejövő kapcsolatokat a Transmission Control Protocol ( TCP ) port. Mivel ez egy szabványosított, jól ismert kikötő , ez a célpont fenyegető szereplők és rosszindulatú botok .
A fenyegetett szereplők olyan botokat indítanak, amelyek egy sor IP-címet keresnek, és nyitott portokat keresnek. Ezután a portokat megvizsgálják, hogy vannak-e kihasználható sebezhetőségek. Ha azt gondolom, hogy „biztonságban vagyok, vannak nálam nagyobb és jobb célpontok, amelyekre a rossz fiúk célozhatnak”, téves érvelés. A botok semmilyen érdem alapján nem választják ki a célpontokat; módszeresen keresik azokat a rendszereket, amelyeket megsérthetnek.
Ön áldozatnak jelöli magát, ha még nem biztosította a rendszerét.
Biztonsági súrlódás
A biztonsági súrlódás az irritáció - bármilyen mértékű is -, amelyet a felhasználók és mások tapasztalni fognak a biztonsági intézkedések végrehajtása során. Hosszú emlékeink vannak, és emlékszünk arra, hogy új felhasználókat vezettünk be egy számítógépes rendszerbe, és hallottuk őket rémült hangon, hogy kérdezik igazán meg kellett adnia egy jelszót mindig bejelentkeztek a nagygépre. Ez - számukra - biztonsági súrlódás volt.
(Egyébként a jelszó feltalálását jóváírják Fernando J. Corbató , a számítástechnikusok panteonjának egy másik alakja, akiknek együttes munkája hozzájárult a születéséhez vezető körülményekhez Unix .)
A biztonsági intézkedések bevezetése általában valamilyen súrlódást jelent valakinek. A cégtulajdonosoknak fizetniük kell érte. Előfordulhat, hogy a számítógép-felhasználóknak meg kell változtatniuk megszokott gyakorlatukat, vagy emlékezniük kell egy másik hitelesítési részletre, vagy további lépéseket kell tenniük a sikeres kapcsolódáshoz. A rendszergazdáknak további munkájuk lesz az új biztonsági intézkedések végrehajtása és fenntartása érdekében.
A Linux vagy Unix-szerű operációs rendszerek keményítése és lezárása nagyon gyorsan, nagyon gyorsan belekeveredhet. Amit itt bemutatunk, az a könnyen megvalósítható lépések összessége, amelyek javítják a számítógép biztonságát harmadik féltől származó alkalmazások használata és a tűzfal átfúrása nélkül.
Ezek a lépések nem az utolsó szó az SSH-biztonságban, de hosszú utat visznek előre az alapértelmezett beállításoktól és túl sok súrlódás nélkül.
Használja az SSH protokoll 2. verzióját
2006-ban az SSH protokollt 1-es verzióról frissítették 2. verzió . Jelentős frissítés volt. Annyi változás és fejlesztés történt, különösen a titkosítás és a biztonság területén, hogy a 2. verzió nem kompatibilis az 1. verzióval. Az 1-es verziójú ügyfelek közötti kapcsolatok megakadályozása érdekében kikötheti, hogy számítógépe csak a 2-es verziójú ügyfelektől fogadja a kapcsolatokat.
Ehhez szerkessze a
/ etc / ssh / sshd_config
fájl. Sokat fogunk csinálni ebben a cikkben. Amikor szerkesztenie kell ezt a fájlt, ez a parancs:
sudo gedit / etc / ssh / sshd_config
Add hozzá a sort:
2. jegyzőkönyv
És mentse a fájlt. Újra elindítjuk az SSH démon folyamatát. Ismét sokat fogunk tenni ebben a cikkben. Ezt a parancsot kell használni minden esetben:
sudo systemctl indítsa újra az sshd fájlt
Ellenőrizzük, hogy új beállításunk érvényben van-e. Átugrunk egy másik gépre, és megpróbálunk SSH-t használni a tesztgépünkre. És használjuk a
-1
(1. protokoll) lehetőség a
ssh
parancs az 1. protokoll verzió használatára.
ssh -1 [email protected]
Remek, csatlakozási kérelmünket elutasítottuk. Gondoskodjunk arról, hogy továbbra is csatlakozzunk a 2. protokollhoz. Használjuk a
-2
(2. protokoll) lehetőség a tény igazolására.
ssh -2 [email protected]
Az a tény, hogy az SSH szerver a jelszavunkat kéri, pozitív jelzés arra, hogy a kapcsolat létrejött, és Ön a szerverrel lép kapcsolatba. Valójában, mivel a modern SSH kliensek alapértelmezés szerint a 2. protokollt használják, nem kell megadnunk a 2. protokollt, amíg az ügyfelünk naprakész.
ssh [email protected]
És a kapcsolatunk elfogadott. Tehát csak a gyengébb és kevésbé biztonságos 1-es protokoll kapcsolatait utasítják el.
Kerülje a 22. portot
A 22-es port az SSH-kapcsolatok szabványos portja. Ha egy másik portot használ, akkor ez egy kis biztonságot nyújt a rendszer homályának köszönhetően. A homály által okozott biztonságot soha nem tekintik igazi biztonsági intézkedésnek, és más cikkekben is álltam ellene. Valójában az intelligensebb támadó robotok mindegyike megvizsgálja az összes nyitott portot, és meghatározza, hogy melyik szolgáltatást nyújtják, ahelyett, hogy a portok egyszerű keresési listájára támaszkodna, és feltételezné, hogy a szokásos szolgáltatásokat nyújtják. De egy nem szabványos port használata segíthet a zaj és a rossz forgalom csökkentésében a 22. porton.
Nem szabványos port konfigurálásához módosítsa az SSH konfigurációs fájlt:
sudo gedit / etc / ssh / sshd_config
Távolítsa el a hash # számot a „Port” sor elejéről, és cserélje ki a „22” értéket a választott portszámra. Mentse a konfigurációs fájlt, és indítsa újra az SSH démont:
sudo systemctl indítsa újra az sshd fájlt
Lássuk, milyen hatása volt. A másik számítógépünkön használjuk a
ssh
parancsot a szerverünkhöz való csatlakozáshoz. A
ssh
A parancs alapértelmezés szerint a 22-es portot használja:
ssh [email protected]
Kapcsolatunkat megtagadják. Próbálkozzunk újra, és adjuk meg a 470-es portot a -p (port) opcióval:
ssh -p 479 [email protected]
Kapcsolatunk elfogadott.
Szűrje a kapcsolatokat TCP burkolók segítségével
A TCP Wrappers könnyen érthető hozzáférés-ellenőrzési lista . Lehetővé teszi a kapcsolatok kizárását és engedélyezését a csatlakozási kérelem jellemzői, például IP-cím vagy hosztnév alapján. A TCP burkolókat a megfelelően konfigurált tűzfalakkal együtt kell használni, és nem azok helyett. Sajátos forgatókönyvünkben a TCP burkolók használatával jelentősen szigoríthatunk.
A TCP csomagolókat már telepítették a cikk kutatásához használt Ubuntu 18.04 LTS gépre. A Manjaro 18.10-re és a Fedora 30-ra kellett telepíteni.
A Fedora telepítéséhez használja ezt a parancsot:
sudo yum telepítse a tcp_wrappers alkalmazást
A Manjaro telepítéséhez használja ezt a parancsot:
sudo pacman -Syu tcp-csomagolók
Két fájl érintett. Az egyik a megengedett listát, a másik a megtagadottakat tartja. Szerkessze az elutasítási listát az alábbiak használatával:
sudo gedit /etc/hosts.deny
Ez megnyitja a
gedit
szerkesztő a betöltött deny fájllal.
Hozzá kell adnia a sort:
MINDEN: MINDEN
És mentse a fájlt. Ez blokkol minden olyan hozzáférést, amelyet nem engedélyeztek. Most engedélyeznünk kell az elfogadni kívánt kapcsolatokat. Ehhez szerkesztenie kell az engedélyezési fájlt:
sudo gedit /etc/hosts.allow
Ez megnyitja a
gedit
szerkesztőbe, az engedélyezett fájlba töltve.
Hozzáadtuk az SSH démon nevét,
SSHD
, És annak a számítógépnek az IP-címe, amelyet engedélyezünk a kapcsolat létrehozására. Mentse a fájlt, és nézzük meg, hogy a korlátozások és engedélyek érvényesek-e.
Először megpróbálunk olyan számítógépről csatlakozni, amely nincs a
házigazdák.engedik
fájl:
A kapcsolatot megtagadják. Most megpróbálunk csatlakozni a számítógépről a 192.168.4.23 IP-címre:
Kapcsolatunk elfogadott.
A mi példánk itt kissé brutális - csak egyetlen számítógép tud csatlakozni. A TCP burkolók meglehetősen sokoldalúak és rugalmasabbak ennél. Támogatja gazdagépnevek, helyettesítő karakterek és alhálózati maszkok hogy IP-címtartományokból fogadja a kapcsolatokat. Önt arra ösztönzik nézd meg a man oldalt .
Jelszó nélküli csatlakozási kérelmek elutasítása
Bár ez rossz gyakorlat, a Linux rendszergazdája létrehozhat felhasználói fiókot jelszó nélkül. Ez azt jelenti, hogy az adott fiókból érkező távoli csatlakozási kérelmeknek nincs jelszavuk, amelyet ellenőrizni lehet. Ezeket a kapcsolatokat elfogadjuk, de nem hitelesítjük.
Az SSH alapértelmezett beállításai jelszó nélkül fogadják el a csatlakozási kérelmeket. Ezt nagyon egyszerűen megváltoztathatjuk, és biztosíthatjuk az összes kapcsolat hitelesítését.
Szerkesztenünk kell az SSH konfigurációs fájlt:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „#PermitEmptyPasswords nem” feliratú sor. Távolítsa el a kivonatot
#
a sor elejétől, és mentse a fájlt. Indítsa újra az SSH démonot:
sudo systemctl indítsa újra az sshd fájlt
Használjon SSH kulcsokat a jelszavak helyett
Az SSH kulcsok biztonságos módot kínálnak az SSH szerverre való bejelentkezéshez. A jelszavakat lehet kitalálni, feltörni vagy nyersen erőltetett . Az SSH kulcsok nem nyitottak az ilyen típusú támadásokra.
SSH-kulcsok létrehozásakor létrehoz egy pár kulcsot. Az egyik a nyilvános kulcs, a másik a magánkulcs. A nyilvános kulcs telepítve van azokra a kiszolgálókra, amelyekhez csatlakozni szeretne. A privát kulcsot, ahogy a neve is sugallja, biztonságban tartják a saját számítógépén.
Az SSH kulcsok lehetővé teszik, hogy jelszó nélkül csatlakozzon - ellenintuitív módon - biztonságosabbak, mint a jelszó hitelesítést használó kapcsolatok.
Amikor csatlakozási kérelmet küld, a távoli számítógép a nyilvános kulcs másolatát felhasználva létrehoz egy titkosított üzenetet, amelyet visszaküld a számítógépére. Mivel a nyilvános kulccsal titkosították, a számítógép titkosíthatja a titkos kulcsával.
A számítógép ezután kivon néhány információt az üzenetből, nevezetesen a munkamenet-azonosítót, ezt titkosítja, és visszaküldi a szervernek. Ha a szerver meg tudja oldani a nyilvános kulcs másolatával történő visszafejtését, és ha az üzenetben lévő információk megegyeznek azzal, amit a szerver küldött neked, akkor a kapcsolatod megerősítést nyert tőled.
Itt a 192.168.4.11 címen csatlakozik a kiszolgálóhoz egy SSH kulcsokkal rendelkező felhasználó. Ne feledje, hogy nem kérnek tőlük jelszót.
ssh [email protected]
Az SSH kulcsok maguknak érdemelnek ki egy cikket. Kényelmesen, nekünk van egy. Itt van hogyan hozhatunk létre és telepíthetünk SSH kulcsokat .
ÖSSZEFÜGGŐ: SSH-kulcsok létrehozása és telepítése a Linux Shellből
Teljesen tiltsa le a jelszó hitelesítést
Természetesen az SSH kulcsok logikus kiterjesztése az, hogy ha az összes távoli felhasználót arra kényszerítik, akkor teljesen kikapcsolhatja a jelszó hitelesítést.
Szerkesztenünk kell az SSH konfigurációs fájlt:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „#PasswordAuthentication yes” kezdetű sor. Távolítsa el a kivonatot
#
a sor elejétől kezdve változtassa meg az „igen” -et „nem” -re, és mentse a fájlt. Indítsa újra az SSH démonot:
sudo systemctl indítsa újra az sshd fájlt
Tiltsa le az X11 továbbítást
Az X11 továbbítás lehetővé teszi a távoli felhasználók számára, hogy grafikus alkalmazásokat futtassanak a szerverről SSH munkameneten keresztül. A fenyegetés szereplői vagy rosszindulatú felhasználók kezében egy GUI felület megkönnyítheti rosszindulatú céljaikat.
A kiberbiztonság szokásos mantrája, ha nincs jóhiszemű oka annak bekapcsolására, kapcsolja ki. Ezt az SSH konfigurációs fájl szerkesztésével fogjuk megtenni:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „# X11Forwarding no” kezdetű sor. Távolítsa el a kivonatot
#
a sor elejétől, és mentse a fájlt. Indítsa újra az SSH démonot:
sudo systemctl indítsa újra az sshd fájlt
Állítsa be a tétlen időkorlát értékét
Ha van létrehozott SSH-kapcsolat a számítógépével, és egy ideig nem volt rajta tevékenység, az biztonsági kockázatot jelenthet. Van esély arra, hogy a felhasználó elhagyta az íróasztalt, és máshol van elfoglalva. Bárki más, aki elhalad az íróasztala mellett, leülhet, és elkezdheti használni a számítógépét, és az SSH-n keresztül a számítógépét.
Sokkal biztonságosabb meghatározni az időkorlátot. Az SSH-kapcsolat megszakad, ha az inaktív időszak megegyezik az időkorláttal. Még egyszer szerkesztjük SSH konfigurációs fájlját:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „#ClientAliveInterval 0” kezdetű sor. Távolítsa el a kivonatot
#
a sor elejétől változtassa meg a 0 számjegyet a kívánt értékre. 300 másodpercet használtunk, ami 5 perc. Mentse a fájlt, és indítsa újra az SSH démont:
sudo systemctl indítsa újra az sshd fájlt
Állítson be határt a jelszó kísérleteire
A hitelesítési kísérletek számának korlátozása meghatározhatja a jelszó kitalálását és a durva erővel járó támadásokat. A megadott számú hitelesítési kérelem után a felhasználó leválik az SSH szerverről. Alapértelmezés szerint nincs korlátozás. De ezt gyorsan orvosolják.
Ismét szerkesztenünk kell az SSH konfigurációs fájlt:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „#MaxAuthTries 0” kezdetű sor. Távolítsa el a kivonatot
#
a sor elejétől változtassa meg a 0 számjegyet a kívánt értékre. Itt 3-at használtunk. Mentse a fájlt, amikor végrehajtotta a módosításokat, és indítsa újra az SSH démonot:
sudo systemctl indítsa újra az sshd fájlt
Tesztelhetjük ezt azzal, hogy megpróbálunk csatlakozni és szándékosan helytelen jelszót adunk meg.
Vegye figyelembe, hogy a MaxAuthTries száma eggyel többnek tűnt, mint ahányszor a felhasználó megengedte a próbálkozásokat. Két rossz próbálkozás után a tesztfelhasználónk nem működik. Ez a MaxAuthTries háromra állításával történt.
A root naplózások letiltása
Helytelen gyakorlat root felhasználóként bejelentkezni a Linux számítógépére. Normál felhasználóként kell bejelentkeznie és használni kell
sudo
root jogosultságokat igénylő műveletek végrehajtásához. Sőt, nem szabad engedélyeznie, hogy a root bejelentkezzen az SSH-kiszolgálóra. Csak a rendszeres felhasználók számára engedélyezhető a csatlakozás. Ha adminisztrációs feladatot kell végrehajtaniuk, akkor használnia kell
sudo
is. Ha kénytelen engedélyezni egy root felhasználó bejelentkezését, akkor legalább arra kényszerítheti őket, hogy használja az SSH kulcsokat.
Utoljára szerkesztenünk kell az SSH konfigurációs fájlt:
sudo gedit / etc / ssh / sshd_config
Görgesse végig a fájlt, amíg meg nem jelenik a „#PermitRootLogin tiltani-jelszó” kezdetű sor. Távolítsa el a kivonatot
#
a sor elejétől kezdve.
- Ha egyáltalán meg akarja akadályozni a root bejelentkezését, cserélje ki a „tilt-jelszó” szót „nem” -re.
- Ha engedélyezi a root számára a bejelentkezést, de kényszeríti őket az SSH kulcsok használatára, hagyja a helyén a „tiltani-jelszót” lehetőséget.
Mentse el a módosításokat, és indítsa újra az SSH démont:
sudo systemctl indítsa újra az sshd fájlt
A végső lépés
Természetesen, ha egyáltalán nincs szüksége az SSH futtatására a számítógépén, ellenőrizze, hogy le van-e kapcsolva.
sudo systemctl stop sshd
sudo systemctl letiltja az sshd-t
Ha nem nyitja ki az ablakot, senki nem mászhat be.