Vissza a bloghoz

A Redis telepítése és biztonságossá tétele Ubuntu 18.04-en

A Redis telepítése és biztonságossá tétele Ubuntu 18.04-en

Redis egy nagy teljesítményű, memóriában működő kulcs-érték tároló, amely adatbázis-szerverként, gyorsítótárként és üzenetközvetítőként is használható. Széles körben ismert gyors teljesítményéről, rugalmasságáról és a nyelvek széles skálájának támogatásáról. Ez egy ingyenes és nyílt forráskódú szoftver, amelyet C programozási nyelven írtak. Ebben az útmutatóban bemutatjuk, hogyan telepítheti és teheti biztonságossá a Redis-t Ubuntu 18.04-en.

Előfeltételek

Az útmutató követéséhez előzetesen fel kell készülnie néhány dologra. Szüksége lesz egy Ubuntu 18.04 szerverre, amelyet könnyen telepíthet az útmutatónkat követve. Emellett szüksége lesz egy sudo jogosultságokkal rendelkező, nem root felhasználóra és egy beállított alapvető tűzfalra. Ezt beállíthatja a Linux sudoers fájl konfigurálásáról és a UFW beállításáról Ubuntu és Debian felhőszervereken szóló útmutatóinkat követve.

Most pedig kezdjük el!

A Redis telepítése

A Redis közvetlenül elérhető a hivatalos Ubuntu tárolóból. Ez a legegyszerűbb módja a telepítésének és konfigurálásának. Javasoljuk, hogy ezt az utat kövesse, hacsak nincsenek különösebb okai az ellenkezőjére. Mivel a Redis forráskódja ingyenesen elérhető, a Redis forrásból történő lefordítása is lehetséges. Ezt azonban nem javasoljuk, mert a kezelése és frissítése nehézkesebb.

A Redis telepítése az Ubuntu tárolóból

Először frissítse a helyi APT csomaggyorsítótárat:

Ezután telepítse a Redis-t a következő paranccsal:

A Redis telepítése forrásból

Az Ubuntu alapértelmezés szerint nem tartalmazza a fordítóeszközöket és a szükséges könyvtárakat. A következő parancs telepíti a Redis fordításához szükséges összes eszközt:

A Redis fordításához két további függőségre van szükség. Ezek a függőségek szükségesek a Redis további funkciókkal (például TLS-támogatás, systemd-integráció stb.) történő fordításához. A Redis TLS-támogatással való fordításához telepítse a „libssl-dev” csomagot. A Redis systemd-támogatással való fordításához telepítse a „libsystemd-dev” csomagot:

A Redis forráskódja elérhető a GitHubon. Tekintse meg a Redis GitHub oldalát. Ezután töltse le a forráskódot:

Redis GitHub page

Váltson át a Redis forráskód könyvtárára:

Ezt követően futtassa a make eszközt a fordítás elindításához. Ez további elemek nélkül fogja lefordítani a Redis-t:

A TLS-támogatás engedélyezéséhez (feltételezve, hogy a „libssl-dev” telepítve van), használja inkább a következő parancsot:

A systemd támogatásának engedélyezéséhez (feltételezve, hogy a „libsystemd-dev” telepítve van), használja a következő parancsot:

Ezután tesztelje, hogy a fordítás sikeres volt-e. Vegye figyelembe, hogy a teszt futtatásához szükség lehet egy további „tcl-dev” csomagra és a kapcsolódó függőségekre:

Végül telepítse a Redis-t a következő parancs futtatásával:

Ha a Redis TLS használatával lett lefordítva, akkor a szerver futtatását a következő módon kell elvégezni:

A Redis konfigurálása

A telepítés befejezése után ideje konfigurálni a Redis-t. Nyissa meg a Redis konfigurációs fájlját egy szövegszerkesztőben, és görgessen le a „supervised” szakaszhoz:

secure redis 1

Módosítsa a „supervised” értékét „systemd”-re. Ez biztosítja, hogy a Redis szolgáltatást a systemd kezelje. A változtatások érvénybe léptetéséhez indítsa újra a Redis szolgáltatást:

A Redis tesztelése

Mindig jó ötlet tesztelni, hogy a Redis megfelelően működik-e, mielőtt további használatba venné. Íme néhány módszer a Redis működésének tesztelésére. Az első lépés annak ellenőrzése, hogy a Redis szolgáltatás fut-e:

Itt a Redis már fut. Alapértelmezés szerint a Redis szolgáltatás a rendszerindításkor elindul. Ha a Redis szolgáltatást manuálisan szeretné futtatni, tiltsa le:

A következő teszt az ellenőrzés a Redis konzol segítségével. Indítsa el a Redis parancssori klienst:

Futtassa a „ping” parancsot:

A kimenet megerősíti, hogy a kapcsolat a szerverrel továbbra is él. A következő teszt annak ellenőrzése, hogy engedélyezi-e a kulcsok beállítását. Hozzon létre egy „temp” kulcsot „hello world” értékkel:

Kérje le az értéket a „get” paranccsal:

Ha eddig minden jól működik, a Redis-nek probléma nélkül vissza kell adnia a kulcs értékét. Zárja be a Redis parancssori klienst:

Redis command-line

Az utolsó teszt annak ellenőrzése, hogy a Redis képes-e megőrizni az adatokat akkor is, ha leállítják vagy újraindítják. Indítsa újra a Redis szolgáltatást:

Ha hibaüzenetet kap a fenti parancs futtatása közben, használja a “systemctl enable redis-server” parancsot:

Indítsa el a Redis parancssori klienst, és kérje le a korábban létrehozott „temp” kulcs értékét:

Ezzel a Redis tesztelése befejeződött. A Redis szervere most már készen áll a kívánt célra történő felhasználásra.

A Redis biztonságossá tétele

Ezen a ponton a Redis teljesen működőképes. Azonban néhány alapértelmezett beállítása nem nyújtja a legjobb biztonságot. Ha nem frissítik, bármely rosszindulatú szereplő kihasználhatja a lehetőséget, hogy hozzáférjen a szerverhez és annak adataihoz. Ez a szakasz bemutatja, hogyan lehet csökkenteni ezeket a sebezhetőségeket. Bár ezek a lépések opcionálisak, erősen ajánlott követni őket a rendszer biztonságának megerősítése érdekében.

Hozzárendelés a localhoz (localhost)

Alapértelmezés szerint a Redis csak a localhostról érhető el. Ha azonban a Redis-t egy távoli szerveren konfigurálták, akkor a konfigurációt frissíteni kell, hogy bárhonnan engedélyezze a csatlakozást. Ez azonban nem biztos, hogy olyan biztonságos, mint a localhosthoz való hozzárendelés. A Redis localhosthoz való ismételt hozzárendeléséhez nyissa meg a Redis konfigurációs fájlját egy szövegszerkesztőben:

Görgessen le, és keresse meg a következőt. Győződjön meg róla, hogy nincs kikommentezve:

Binding to localhost

Mentse és zárja be a fájlt. Ezután indítsa újra a Redis szolgáltatást, hogy a változtatás azonnal életbe lépjen:

Ellenőrizze, hogy a változtatás sikeres volt-e:

Ha a ‘netstat: command not found’ hibaüzenetet kapja, használja a net-tools telepítéséhez a “sudo apt-get install net-tools” parancsot. A kimenet igazolja, hogy a „redis-server” sikeresen hozzá van rendelve a localhosthoz (127.0.0.1), tükrözve a nemrégiben végrehajtott változtatást. Ha bármilyen más IP-cím szerepel (például 0.0.0.0), ellenőrizze újra a konfigurációs fájlt, és indítsa újra a Redis szervert.

Redis jelszó konfigurálása

A jelszó beállítása lehetővé teszi a Redis beépített biztonsági funkciójának – az „AUTH” parancsnak – a használatát. Ez megköveteli az ügyfelektől az azonosítást az adatbázis eléréséhez. Alapértelmezés szerint a Redis-hez nincs jelszó beállítva. A jelszót a Redis konfigurációs fájljában kell megadni. Nyissa meg a konfigurációs fájlt egy szövegszerkesztőben:

Ezután görgessen le a következő sorhoz, és vegye ki a kommentjelet:

A kommentjel eltávolítása után a „foobared” lesz az alapértelmezett jelszó. Változtassa meg ezt az Ön által választott jelszóra. Amikor a Redis-ről van szó, a jelszó erőssége nagyon fontos tényező. Mivel a Redis egy nagy teljesítményű szerver, potenciálisan könnyebben feltörhető brute-force támadásokkal. Ezért tartalmazza a konfigurációs fájl közvetlenül a következő figyelmeztetést. Íme egy gyors példa egy nagyon erős véletlenszerű jelszó generálására. Az OpenSSL parancsot fogjuk használni egy véletlenszerű karakterlánc generálásához:

Az új jelszó beállítása után indítsa újra a Redis szolgáltatást a változtatások érvénybe léptetéséhez:

Itt az ideje tesztelni, hogy a jelszó sikeresen alkalmazva lett-e. Indítsa el a Redis parancssori konzolt:

Ezután próbáljon meg beállítani egy új kulcsot:

A Redis elutasítja a kérést, mivel a művelethez nincs hitelesítés. Bármilyen művelet végrehajtásához a szerveren a felhasználónak először engedélyezettnek kell lennie. Engedélyezze a felhasználót a következő paranccsal:

Ha a jelszó helyes volt, a Redis visszaigazolja a műveletet. Mostantól a Redis engedélyezi a hozzáférést a szerver funkcióihoz:

Egyelőre végeztünk a Redis konzollal. Bezárhatja a konzolt:

Veszélyes parancsok átnevezése

A Redis lehetővé teszi bizonyos veszélyesnek ítélt parancsok átnevezését vagy teljes letiltását. Ez a Redis egy másik fontos beépített biztonsági funkciója. Miért minősülnek veszélyesnek a parancsok? Ha egy illetéktelen felhasználó futtatja őket, ezek a parancsok újrakonfigurálhatják, megsemmisíthetik vagy törölhetik a szerveren lévő adatokat. Elterjedt gyakorlat egy sor veszélyes Redis parancs letiltása/átnevezése. Vegye figyelembe, hogy egy parancs biztonsági fenyegetése a helyzettől függ. Például a következő parancsok némelyikére rendszeresen szükség lehet. Ilyen esetekben a letiltásuk nem javasolt. Ilyen helyzetben a parancs átnevezése előnyösebbnek bizonyulhat. Íme egy gyors lista a veszélyesnek ítélt parancsokról. Ez egy jó kiindulópont a Redis szerver biztonságának növeléséhez:

  • FLUSHDB
  • FLUSHALL
  • KEYS
  • PEXPIRE
  • DEL
  • CONFIG
  • SHUTDOWN
  • BGREWRITEAOF
  • BGSAVE
  • SAVE
  • SPOP
  • SREM
  • RENAME
  • DEBUG

Egy parancs átnevezéséhez vagy letiltásához azt a Redis konfigurációs fájljában kell deklarálni. Nyissa meg a Redis konfigurációs fájlt, és adja hozzá a következő sorokat. Itt a „rename-command” a parancsok üres karakterláncra való átnevezésére szolgál. Adjon hozzá annyi bejegyzést, amennyi szükséges:

Hasonlóképpen, a parancsokat más névre is át lehet nevezni. Bizonyos helyzetekben ez nagyobb rugalmasságot biztosíthat:

rename-command

Mentse a fájlt, és lépjen ki a szerkesztőből. A változtatások érvénybe léptetéséhez indítsa újra a Redis szolgáltatást:

Ellenőrizze a változtatásokat. Ezután indítsa el a Redis konzolt, és hitelesítse a hozzáférést:

Tételezzük fel, hogy a „CONFIG” parancs le lett tiltva vagy át lett nevezve. Próbálja meg használni a következő „CONFIG” parancsot. Nem fog sikerülni:

Ha a parancs le lett tiltva, akkor nem érhető el, amíg újra nem engedélyezik. Ha viszont át lett nevezve, használja az új álnevet:

command_4

Összegzés

Ez az útmutató bemutatja, hogyan kell telepíteni, biztosítani, konfigurálni és ellenőrizni a Redis-telepítést. Azt is bemutatja, hogyan használhatja a Redis beépített biztonsági funkcióit, hogy kevésbé legyen sebezhető a támadásokkal szemben. Ha azonban valaki már be van jelentkezve a szerverre, meglehetősen könnyű megkerülni a Redis-specifikus biztonsági funkciókat. Ezért kulcsfontosságú egy tűzfal használata a Redis-szerverhez való hozzáférés védelmére.

Kellemes számítógép-használatot!

author

Hark Labs

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.