Tartalomjegyzék

  1. SSH kulcsok
  2. Tűzfalak
  3. A VPN és a magánhálózat
  4. A Nyilvános kulcsú infrastruktúra és az SSL/TLS titkosítás
  5. Rendszer auditálás
  6. Fájl Auditálás és Behatolást jelző rendszerek
  7. Elkülönített végrehajtói környezet
  8. Összegzés

SSH kulcsok

Az SSH kulcs egy páros kriptografikus kulcs, amely jelszóvédett belépések alternatívájaként működik. A hitelesítés előtt egy magán és egy nyilvános kulcspárt készítenek. A magánkulcs a felhasználónál marad titkosítva, míg a nyilvános kulcsot bárkivel megoszthatjuk.

Az SSH kulcs hitelesítéséhez a felhasználó nyilvános kulcsát a szerver egy speciális könyvtárába kell elhelyeznünk. Amikor a felhasználó csatlakozik a szerverhez, a szerver megbizonyosodik arról, hogy az adott személy rendelkezik-e a hozzá tartozó magánkulccsal. Az SSH felhasználója a magánkulcsot fogja válaszként elküldeni bizonyítékként. Ezt követően a szerver engedélyezni fogja a felhasználó számára a jelszó nélküli bejelentkezést.

Hogyan növelik a biztonságot?

Az SSH-val való bármilyen hitelesítés – beleértve a jelszó hitelesítést – teljesen titkosított. Azonban, amikor a jelszóvédett bejelentkezések engedélyezve vannak, az ártalmas felhasználók több alkalommal, ismételten próbálkozhatnak a szerver elérésével.

A modern számítógépes technológiát alkalmazva lehetséges a szerver elérése oly módon, hogy a próbálkozásokat automatizálva egészen addig próbálkoznak a kombinációkkal, ameddig a megfelelő jelszót nem találják meg.

Egy SSH kulcsos hitelesítés felállításával kikapcsolhatjuk a jelszó alapú hitelesítést. Az SSH kulcsok adatai általában jóval több bitből állnak, mint a jelszavaké. Ebből kifolyólag ennek segítségével jelentősen megnövelhetjük a támadók által lefuttatandó lehetséges kombinációk számát. Sok SSH kulcs algoritmusa feltörhetetlennek számít a modern rendszerek számára, pusztán amiatt, mert túl sok időbe telne a lehetséges opciók lefuttatása.

Mennyire bonyolult az alkalmazásuk?

Az SSH kulcsok felállítása rendkívül egyszerű és ajánlatos ezzel a módszerrel való távoli bejelentkezés bármilyen Linux vagy Unix szerverre. Egy pár SSH kulcsot egyszerűen generálhatunk gépünkön, majd néhány perc alatt könnyedén elküldhetjük a szerver(ek)re a nyilvános kulcsot.

Tűzfalak

A tűzfal egy szoftver (vagy hardver), amely irányítja, hogy mely szolgáltatásokat tesszük elérhetővé a hálózatnak. Ez azt jelenti, hogy letiltja, vagy szabályozza az elérését minden portnak, amely nem nyilvánosan elérhető.

Egy tipikus szerver esetében alapértelmezettként számos szolgáltatás fut. Ezeket a következő kategóriákba sorolhatjuk:

  • Nyilvános szolgáltatások: bárki számára elérhetőek az interneten, gyakran névtelenül. Jó példa erre egy web szerver, ami lehetővé teszi az oldalunkhoz való hozzáférést.
  • Privát szolgáltatások: csak egy hitelesített felhasználók csoportja érheti el meghatározott helyszínekről. Megfelelő példa erre az adatbázis irányító panelje.
  • Belső szolgáltatások: csak magán a szerveren keresztül lehet elérni, anélkül, hogy a szolgáltatást a külvilág számára elérhetővé tennénk. Ilyen például egy adatbázis, amely csak helyi kapcsolatokat engedélyez.

A tűzfalak lehetővé tehetik a szoftverünkhöz való hozzáférés korlátozását a fenti kategóriáknak megfelelően. A nyilvános szolgáltatásokat mindenki számára nyitva hagyhatjuk és a privát szolgáltatásokat különböző kritériumoknak megfelelően korlátozhatjuk. A tűzfalak segítségével a belső szolgáltatásokat teljesen elérhetetlenné tehetjük a külvilág számára.

A használaton kívüli portoknál a legtöbb esetben teljesen letiltják a hozzáférést.

Hogyan növelik a biztonságot?

A tűzfalak alapvető részét képezik bármely szerverbeállításnak. Abban az esetben, ha a szolgáltatásaink önmagukban is tartalmaznak biztonsági beállításokat, akkor is javasolt tűzfal használata, mert ez plusz egy réteg védelmet nyújt.

Egy megfelelően beállított tűzfal korlátozni fogja a hozzáférést mindenhez, kivéve azokat a szolgáltatásokat, amelyekre nekünk szükségünk van. Már néhány darab szoftver engedélyezése is csökkenti a szerverünk támadási felületét, korlátozva azon komponensek számát, amelyek esetleges veszélynek vannak kitéve.

Mennyire bonyolult az alkalmazása?

Sok elérhető tűzfal létezik Linux rendszerek számára, amelyeket kicsit nehezebb elsajátítani, mint a többit.

Általánosságban azonban elmondhatjuk, hogy egy tűzfal felállítása csak néhány percbe telik és csak a szerver kezdeti beállításakor vagy szolgáltatások változtatásakor kell vele foglalkoznunk.

A VPN és a magánhálózat

A magánhálózatok olyan hálózatok, amelyek csak bizonyos szerverek vagy felhasználók számára elérhetőek.

A VPN, más néven Virtuális Magánhálózat lehetőséget kínál arra, hogy úgy teremtsünk biztonságos kapcsolatot távoli és helyi számítógépek között, mintha az helyi magánhálózat lenne. Ezzel a módszerrel testre szabhatjuk a szolgáltatásainkat úgy, mintha magánhálózaton lennének, és biztonságosan rácsatlakoztathatjuk távoli szerverekre.

Hogyan növelik a biztonságot?

A belső kommunikáció tekintetében a magánhálózat használata a nyilvános hálózattal szemben majdnem minden esetben tanácsosabb opció. Annak ellenére, hogy más felhasználók el tudják érni ugyanazt a hálózatot az adatbázison keresztül, akkor is további lépéseket kell tennünk annak érdekében, hogy biztonságossá tegyük a kommunikációt a szervereink között.

A VPN használata egy kitűnő módszer arra, hogy létrehozzunk egy olyan magánhálózatot, amelyet csak a mi hálózatunk láthat. A kommunikáció teljes mértékben biztonságos és privát lesz.

Beállíthatunk más alkalmazásokat, amelyek a VPN virtuális felületén áthaladhatnak. Ezzel a módszerrel csak olyan szolgáltatásokat engedünk be a rendszerbe, amelyek a felhasználók számára használhatónak lettek megítélve.

Mennyire bonyolult az alkalmazása?

A VPN használat az adatközpontokban egyszerű, hiszen a szerver beállításakor elég csak felvennünk egy új interfészt és beállítani az alkalmazásokat és a tűzfalat, hogy ezt az új VPN interfészt használja. Fontos, hogy ezt a hálózatot láthatják azok a felhasználók is, akik ugyanazon adatközpontban helyezték el szervereiket.

A VPN esetében a kezdeti beállítás kissé nehézkes lehet, azonban a megnövelt biztonság kárpótol érte. A VPN minden egyes szerverét telepíteni kell és szükséges konfigurálni a biztonságos kapcsolathoz szükséges adatokat is. Miután a VPN be lett állítva és működőképes, az alkalmazásokat is át kell állítanunk, hogy a VPN csatornáját használják.

A Nyilvános kulcsú infrastruktúra és az SSL/TLS titkosítás

A Nyilvános kulcsú infrastruktúra vagy PKI (Public Key Infrastructure) egy olyan rendszert jelöl, amelyet azért hoztak létre, hogy olyan certifikátokat hozzon létre, irányítson és erősítsen meg, amelyek egyéneket azonosítanak be és kommunikációt titkosítanak.

SSL vagy TLS cerfitikátokat használhatunk különböző dolgok hitelesítésére. A hitelesítés után arra is felhasználhatjuk őket, hogy egy titkosított kommunikációt hozzanak létre.

Hogyan növelik a biztonságot?

Egy hitelesített certifikát létrehozása és az igazolások irányítása a szervereink esetében lehetővé teszik, hogy az infrastruktúránkon belül minden tag személyazonosságát ellenőrizhessük, vagy titkosítsuk az útvonalukat. Ez megakadályozhat olyan támadásokat, ahol a támadó személy bemásol egy szervert az infrastruktúrába annak érdekében, hogy keresztezze az adott útvonalat.

Minden szervert be lehet úgy állítani, hogy egy központosított hitelesített certifikátot fogadjon el. Ezek után bármely hitelesítő által kibocsátott jel megbízhatónak minősül.

Ha az applikációk és protokollok, amelyeket használunk TLS/SSL titkosítást alkalmaznak, akkor az is egy módja a rendszerünk kódolásának, anélkül, hogy VPN csatornát kellene használnunk (amely gyakran használ belső SSL-t).

Mennyire bonyolult az alkalmazása?

A PKI és a certifikát hitelesítés beállítása a kezdetekben igen nagy erőfeszítést igényelhet. Ezen felül a certifikátok rendezése adminisztrációs többletterhet jelenthet azok létrehozásakor vagy esetleges visszavonásakor. Sok felhasználó számára egy teljesen önálló PKI létrehozása az infrastruktúra növekedésével egyre észszerűbbnek tűnhet. A komponensek közötti kommunikáció biztonságosabbá tételéhez jó ötlet lehet a VPN rendszer PKI-ra való cserélése, hiszen egy idő után megtérül az ebből adódó plusz adminisztációs teher.

Rendszer auditálás

Eddig a pontig olyan technológiákat mutattunk be, amelyeket annak érdekében alkalmazhatunk, hogy növeljük a biztonságot. Fontos azonban megemlítenünk, hogy a biztonság növelésének nagy része abból fakad, hogy a saját rendszerünket elemezzük, megvizsgáljuk a támadható felületeket, és annyira elzárjuk a komponenseket, amennyire csak lehet.

A Rendszer auditálás egy olyan folyamat, amely során felfedezzük, hogy milyen szolgáltatások futnak infrastruktúránk szerverén. Gyakran az alapértelmezett operációs rendszert úgy állítják be, hogy meghatározott szolgáltatások fussanak rajta indításkor. Az ezen felül telepített szoftverek néha még több komponens automatikus elindítását eredményezhetik. A Rendszer auditálás jó módszer arra, hogy megtudjuk, mely szolgáltatások futnak a rendszerünkben, mely portot használják a kommunikációra és mely protokollokat fogadnak el. Ezen információk a segítségünkre lehetnek abban, hogy személyre szabhassuk tűzfalunk beállításait.

Hogyan növeli a biztonságot?

A szerverek sok folyamatot indítanak el belső célokra, illetve külső ügyfelek kezelésére. Minden egyes ilyen folyamat egy plusz támadási felületet nyújt az ártalmas felhasználók számára. Minél több szolgáltatás fut, annál nagyobb az esély arra, hogy sebezhetővé válnak az elérhető szoftverek.

Amikor már elegendő tudással rendelkezünk arról, hogy milyen hálózati szolgáltatások futnak a gépünkön, akkor elkezdhetjük ezen szolgáltatások elemzését.
Néhány hasznos kérdés, amelyet célszerű lehet megválaszolnunk :

  • Kell az adott szolgáltatásnak futnia?
  • Fut ez a szolgáltatás olyan felület(ek)en, amely(ek)en nem kellene? Nem kellene egy különálló IP-hez kötni?
  • A tűzfalunk olyan szabályok szerint van strukturálva, hogy az engedélyezi a szolgáltatás megfelelő áramlását?
  • A tűzfalunk olyan szabályok szerint működik, amely a nem rendben működő forgalom áthaladását blokkolja?
  • Van módszerünk arra, hogy biztonsági értesítéseket kapjunk a sérülékeny szolgáltatásokkal kapcsolatban?

Az ilyesfajta Service Auditing egy alapvető gyakorlat kell, hogy legyen amikor az infrastuktúránkba új szervert építünk be.

Mennyire bonyolult az alkalmazása?

Egy alapvető Service Audit lebonyolítása rendkívül egyszerű. A netstat parancs segítségével kideríthetjük, hogy mely szolgáltatások csatlakoznak portokra az egyes felületeken.

Amennyiben lefuttattuk a parancsot, a legfontosabb oszlopok, amelyeket meg kell vizsgálnunk, azok a Proto, Local Address és a PID/Program name. Amennyiben a cím 0.0.0.0 értéket mutat, akkor a rendszer minden felületen elfogadja a kapcsolatot.

Fájl Auditálás és Behatolást jelző rendszerek

A Fájl auditálás egy olyan folyamat, amely során a jelenlegi rendszerünket hasonlítjuk össze azzal az állapottal, amikor a fájlok és azok tulajdonságai megfelelő állapotban vannak. Arra használjuk, hogy kiszűrjük a rendszer azon változásait, amelyeket esetlegesen engedélyeztünk.

Az IDS (Intrusion Detecting System), vagyis behatolást jelző rendszer egy olyan szoftver, amely a rendszert vagy hálózatot figyeli meg a nem engedélyezett tevékenységeket keresve. Sok hoszt-alapú IDS fájl auditingot használ a rendszermódosítások kiszűrésére.

Hogyan növelik a biztonságot?

Hasonlóan a feljebb említett Service Auditinghoz, ha komoly védelmi rendszert szeretnénk felállítani, akkor nagyon hasznos, ha Fájl auditokat is tudunk rendszerünkben végezni. Ezt elvégezheti az adminisztrátor meghatározott időközönként, vagy az IDS automatizált folyamataként is. Ez a stratégia az egyik legbiztosabb módja annak, hogy megbizonyosodhassunk róla, hogy a fájlrendszerünket nem változtatta meg egy felhasználó vagy egy folyamat. Sok okból kifolyólag a behatolók célja gyakran a láthatatlanság, így könnyen kizsákmányolhatják a rendszert akár huzamosabb ideig is. Néha a binárisokat egy hackelt verzióval helyettesítik. A fájlrendszer auditálásával megmondhatjuk, hogy a fájlokat megváltoztatták-e, ezzel megbizonyosodva a szerverkörülmények sértetlenségéről.

Mennyire bonyolult az alkalmazása?

Az IDS használata vagy a File auditing levezetése egy igen intenzív folyamat. A kezdeti beállításkor meg kell adnunk a nem standard változtatásokat, amelyeket eszközöltünk és definiálnunk kell azokat az útvonalakat, amelyeket figyelmen kívül kell hagyni az alapkonfiguráció esetében. A nap mint nap előkerülő tevékenységeket is nehézkesebbé teszi. Bonyolultabbá téve a frissítéseket, mivel újra kell ellenőriznünk a rendszert a frissítések előtti állapottal összevetve, majd készítenünk kell egy újabb alapkonfigurációt, amellyel kiszűrhetjük a frissítés okozta változtatásokat. Ezen felül szükséges a riportot egy másik helyszínen is elhelyezni, így a behatoló nem tudja az audit eredményeit módosítani, vagyis nem lesz képes láthatatlan maradni. Egyrészről ez a módszer növeli az adminisztrációs terheket, másrészről viszont ez az egyik legjobb módja annak, hogy megbizonyosodjunk arról, hogy a tudtunk nélkül nem eszközöltek módosításokat a fájlokban.

Népszerű auditáló vagy behatoló követő rendszer a Tripwire és az Aide.

Elkülönített végrehajtói környezet

Az Elkülönített végrehajtói környezet egy olyan módszerre utal, amely során a különálló komponensek a saját, arra kialakított helyükön futnak. Ez jelentheti az adott applikáció összetevőinek elkülönítését vagy a rendszerek olyan módon való beállítását, hogy az chroot környezetben vagy konténerekben működjenek. Az elkülönítés szintje nagy mértékben függ az applikáció igényeitől és az infrastruktúra felépítéséről.

Hogyan növelik a biztonságot?

A folyamat különálló környezetbe való elkülönítése növeli annak a lehetőségét, hogy a rendszeren belül felmerülő biztonsági problémákat elkülönítve kezelhessünk.

A módszert a hajókon található választófalakhoz hasonlíthatjuk, amelyek a hajótest megsérülése esetében a sérülés továbbterjedését megakadályozzák. A különböző alkotóelemek elkülönítése limitálhatja a hozzáférést, így egy esetleges behatoló is csak az infrastruktúra egy részét képes elérni.

Mennyire bonyolult az alkalmazása?

A behatárolás mértékétől függően az applikációk elkülönítése viszonylag egyszerű. A különálló összetevők konténerekbe való csomagolása gyors eredményhez vezethet, azonban így önmagában még nem számít biztonsági intézkedésnek.

Egy chroot környezet létrehozása minden egyes darabhoz szintén nyújthat egyfajta védelmet, de ez még mindig nem egy biztos módja a védelemnek, mivel sok esetben ki lehet törni a chroot környezetből.

A komponensek egy erre kialakított gépbe való mozgatása nyújhatja legnagyobb védelmet, és a legtöbb esetben ez a legegyszerűbb megoldás, azonban a plusz gépek többe kerühetnek.

Összegzés

A fent említett módszerek csak példaszerű felsorolásai a rendszerünk biztonságának javítására. Fontos felismernünk, hogy habár jobb később, mint soha, minél tovább halogatjuk a biztonsági óvintézkedések implementálását, annál nagyobb mértékben csökkentjük rendszerünk hatékonyságát.

Ezeket az intézkedéseket már a kezdetektől meg kell lépnünk, a rendszer és applikációk beállításával egyidejűleg.