hogyan kell telepíteni és biztonságos Memcached Ubuntu 20.04

a korábbi változata ez a bemutató írta Kathleen Juell.

Bevezetés

Memory object cache rendszerek, mint Memcached optimalizálhatja backend adatbázis teljesítményét ideiglenesen tárolja az információkat a memóriában, megtartva gyakran vagy a közelmúltban kért rekordokat. Ily módon csökkentik az adatbázisokhoz intézett közvetlen kérések számát.

ebben az útmutatóban megtudhatja, hogyan kell telepíteni és konfigurálni egy Memcached szervert. Azt is megtudhatja, hogyan adhat hozzá hitelesítést a Memcached biztonságához az egyszerű hitelesítés és biztonsági réteg (SASL) használatával. Végül megtudhatja, hogyan kötheti a Memcached-et egy helyi vagy magánhálózati interfészhez annak biztosítása érdekében, hogy csak megbízható hálózatokon érhető el, hitelesített felhasználók által.

előfeltételek

az oktatóanyag követéséhez a következőkre lesz szüksége:

  • egy Ubuntu 20.04 szerver sudo nem root felhasználóval és tűzfal engedélyezve. Ennek beállításához kövesse a kezdeti Szerverbeállítást az Ubuntu 20.04 oktatóanyaggal.

ezekkel az előfeltételekkel készen áll a Memcached szerver telepítésére és biztonságossá tételére.

Alternatív megoldásként, ha kísérletezni szeretne a Memcached telepítésével és konfigurálásával a böngészőben egy interaktív terminál segítségével, kattintson az interaktív terminál indítása! gomb alatt az induláshoz.

indítson interaktív terminált!

1.lépés — a Memcached telepítése

ha még nincs telepítve a Memcached a szerverre, telepítheti azt a hivatalos Ubuntu tárolókból. Először ellenőrizze, hogy a helyi csomagindex frissül-e a következő paranccsal:

  • sudo apt update

Ezután telepítse a hivatalos csomagot az alábbiak szerint:

  • sudo apt install memcached

telepítheti az libmemcached-tools – ot is, amely egy olyan csomag, amely különféle eszközöket tartalmaz, amelyekkel megvizsgálhatja, tesztelheti és kezelheti a Memcached szervert. Adja hozzá a csomagot a kiszolgálóhoz a következő paranccsal:

  • sudo apt install libmemcached-tools

a Memcachedet most szolgáltatásként kell telepíteni a szerverre, valamint olyan eszközökkel, amelyek lehetővé teszik a kapcsolat tesztelését.

a Memcached indításához futtassa a következő systemctl parancsot:

  • sudo systemctl start memcached

most már lehet lépni, hogy biztosítsa a konfigurációs beállításokat.

2. lépés-Memcached Hálózati beállítások konfigurálása (opcionális)

ha a Memcached kiszolgálónak csak a helyi IPv4 kapcsolatokat kell támogatnia a TCP használatával, akkor kihagyhatja ezt a részt, és folytathatja az oktatóanyag 3.lépésével. Ellenkező esetben, ha a Memcached-et UDP-aljzatok, Unix-tartomány-aljzatok használatára szeretné konfigurálni, vagy támogatást szeretne adni az IPv6-kapcsolatokhoz, akkor folytassa az oktatóanyag ebben a szakaszában található megfelelő lépésekkel.

először győződjön meg arról, hogy a Memcached példány hallgat a helyi IPv4 visszacsatolási felületen 127.0.0.1. A Memcached jelenlegi verziója, amely Ubuntuval és Debiannal szállít, -l konfigurációs paramétere a helyi interfészre van állítva, ami azt jelenti, hogy csak a Memcached futtató kiszolgálóról fogadja el a kapcsolatokat.

ellenőrizze, hogy a Memcached jelenleg a helyi IPv4 127.0.0.1 interfészhez van-e kötve, és csak a TCP kapcsolatokra figyel a ss paranccsal:

  • sudo ss -plunt

a különböző zászlók a ss kimenetet a következő módon változtatják meg:

  • -p hozzáadja annak a folyamatnak a nevét, amely socket-et használ
  • -l korlátozza a kimenetet csak hallgatási aljzatokra, szemben azzal, hogy más rendszerekhez csatlakoztatott aljzatokat is tartalmaz
  • -u UDP-alapú aljzatokat tartalmaz a kimenetben
  • -n numerikus értékeket jelenít meg a kimenetben az ember által olvasható nevek és értékek helyett
  • -t tartalmazza a TCP-alapú aljzatokat a kimenet

a következő kimenetet kell kapnia:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process . . .tcp LISTEN 0 1024 127.0.0.1:11211 0.0.0.0:* users:(("memcached",pid=8889,fd=26)). . .

ez a kimenet megerősíti, hogy az memcached az IPv4 visszacsatolási 127.0.0.1 címhez csak a TCP protokoll használatával van kötve.

most, hogy megerősítette, hogy a Memcached úgy van konfigurálva, hogy csak TCP-kapcsolatokkal támogassa az IPv4-et, szerkesztheti a /etc/memcached.conf elemet az UDP, Unix Tartománycsatlakozók vagy IPv6-kapcsolatok támogatásának hozzáadásához.

az IPv6 beállítása

az IPv6-kapcsolatok Memcachedhez való engedélyezéséhez nyissa meg a /etc/memcached.conf fájlt a nano vagy a kívánt szerkesztővel:

  • sudo nano /etc/memcached.conf

először keresse meg a következő sort a fájlban:

/etc/memcached.conf
. . .-l 127.0.0.1

ebben a sorban van beállítva a Memcached a helyi IPv4 interfészen történő hallgatásra. Az IPv6 támogatás hozzáadásához adjunk hozzá egy sort, amely tartalmazza az IPv6 helyi visszacsatolási címét (:: 1), így:

/etc/memcached.conf
. . .-l 127.0.0.1-l ::1

mentse és zárja be a fájlt a CTRL+O, majd a ENTER megnyomásával a mentéshez, majd a CTRL+Xgombbal a nano kilépéshez. Ezután indítsa újra a Memcached programot a systemctl paranccsal:

  • sudo systemctl restart memcached

most ellenőrizheti, hogy a Memcached IPv6-kapcsolatokat is figyel-e, ha megismétli az előző szakasz ss parancsát:

  • sudo ss -plunt

a következő kimenetet kell kapnia:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process . . .tcp LISTEN 0 1024 127.0.0.1:11211 0.0.0.0:* users:(("memcached",pid=8889,fd=26)) . . .tcp LISTEN 0 1024 :11211 :* users:(("memcached",pid=8889,fd=27))

a kimenet kiemelt részei azt jelzik, hogy a Memcached most figyeli a TCP kapcsolatokat a helyi IPv6 interfészen.

vegye figyelembe, hogy ha le szeretné tiltani az IPv4 támogatást, és csak az IPv6 kapcsolatokat szeretné hallgatni, eltávolíthatja az -l 127.0.0.1 sort a /etc/memcached.conf – ból, és újraindíthatja a szolgáltatást a systemctl paranccsal.

UDP konfigurálása

ha Memcached-et szeretne használni UDP foglalatokkal, engedélyezheti az UDP támogatást a /etc/memcached.conf konfigurációs fájl szerkesztésével.

nyissa meg a /etc/memcached.conf fájlt a nano vagy a kívánt szerkesztő használatával, majd adja hozzá a következő sort a fájl végéhez:

/etc/memcached.conf
. . .-U 11211

ha nincs szüksége TCP támogatásra, keresse meg az -p 11211 sort, és változtassa meg -p 0 értékre a TCP kapcsolatok letiltásához.

ha befejezte a fájl szerkesztését, mentse és zárja be a CTRL+O beírásával a mentéshez, majd a CTRL+X beírásával a kilépéshez.

Ezután indítsa újra a Memcached szolgáltatást a systemctl paranccsal a módosítások alkalmazásához:

  • sudo systemctl restart memcached

ellenőrizze, hogy a Memcached figyeli-e az UDP-kapcsolatokat a ss -plunt paranccsal:

  • sudo ss -plunt

ha letiltotta a TCP támogatást, és engedélyezte az IPv6 kapcsolatokat, akkor a következő kimenetet kell kapnia:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process . . .udp UNCONN 0 0 127.0.0.1:11211 0.0.0.0:* users:(("memcached",pid=8889,fd=28))udp UNCONN 0 0 :11211 :* users:(("memcached",pid=8889,fd=29)). . .

vegye figyelembe, hogy a kimenet eltérő lehet, ha csak az IPv4-kapcsolatok vannak engedélyezve, és ha a TCP-kapcsolatok engedélyezve vannak.

Unix Tartományfoglalatok konfigurálása

ha a Memcached-et Unix Tartományfoglalatokkal szeretné használni, engedélyezheti ezt a támogatást a /etc/memcached.conf konfigurációs fájl szerkesztésével. Ne feledje, hogy ha a Memcached-et Unix tartományi foglalat használatára állítja be, akkor a Memcached letiltja a TCP és UDP támogatást, ezért győződjön meg arról, hogy az alkalmazásoknak nem kell csatlakozniuk ezekhez a protokollokhoz, mielőtt engedélyeznék a socket támogatást.

nyissa meg a /etc/memcached.conf fájlt a nano vagy a kívánt szerkesztő használatával, majd adja hozzá a következő sorokat a fájl végéhez:

/etc/memcached.conf
. . .-s /var/run/memcached/memcached.sock-a 660

a -a jelző határozza meg a Socket fájljának engedélyeit. Győződjön meg arról, hogy a Memcached-hez csatlakozni kívánó felhasználó a kiszolgáló memcache csoportjának része, különben megkapja az engedély megtagadva üzenetet, amikor megpróbálja elérni a foglalatot.

Ezután indítsa újra a Memcached szolgáltatást a systemctl paranccsal a módosítások alkalmazásához:

  • sudo systemctl restart memcached

a ss -lnx paranccsal ellenőrizze, hogy a Memcached figyel-e Unix Tartománycsatlakozókra:

  • sudo ss -lnx | grep memcached

a -x jelző korlátozza a ss kimenetét a socket fájlok megjelenítéséhez. A következő kimenetet kell kapnia:

Output
u_str LISTEN 0 1024 /var/run/memcached/memcached.sock 20234658 * 0

most, hogy konfigurálta a Memcached hálózati beállításait, folytathatja az oktatóanyag következő lépését, amely SASL hozzáadása hitelesítéshez a Memcachedhez.

3.lépés — engedélyezett felhasználók hozzáadása

ha hitelesített felhasználókat szeretne hozzáadni a Memcached szolgáltatáshoz, használhatja az egyszerű hitelesítési és biztonsági réteget (SASL), amely egy olyan keretrendszer, amely leválasztja a hitelesítési eljárásokat az alkalmazásprotokollokról. Először hozzáadja a SASL támogatását a kiszolgálóhoz, majd konfigurál egy felhasználót hitelesítési hitelesítő adatokkal. Ha minden a helyén van, akkor engedélyezheti a SASL-t a Memcached konfigurációs fájljában, és megerősítheti, hogy minden megfelelően működik.

Hitelesített felhasználó hozzáadása

az SASL támogatás hozzáadásának megkezdéséhez telepítenie kell a sasl2-bin csomagot, amely az SASL felhasználói adatbázis adminisztratív programjait tartalmazza. Ez az eszköz lehetővé teszi hitelesített felhasználó vagy felhasználók létrehozását. A telepítéshez futtassa a következő parancsot:

  • sudo apt install sasl2-bin

ezután hozza létre azt a könyvtárat és fájlt, amelyet a Memcached a mkdir paranccsal ellenőrzi a SASL konfigurációs beállításait:

  • sudo mkdir -p /etc/sasl2

most hozza létre az SASL konfigurációs fájlt a nano vagy a kívánt szerkesztő használatával:

  • sudo nano /etc/sasl2/memcached.conf

adja hozzá a következő sorokat:

/etc/sasl2/memcached.conf
log_level: 5mech_list: plainsasldb_path: /etc/sasl2/memcached-sasldb2

a naplózási szint megadása mellett a mech_list értéke plain, ami azt mondja a Memcachednek, hogy saját jelszófájlt használjon, és ellenőrizze az egyszerű szöveges jelszót. Az utolsó hozzáadott sor adja meg a következő létrehozandó felhasználói adatbázisfájl elérési útját. Mentse és zárja be a fájlt, ha elkészült.

most létrehoz egy SASL adatbázist a felhasználói hitelesítő adatokkal. A saslpasswd2 paranccsal a -c jelzővel új felhasználói bejegyzést hozhat létre az SASL adatbázisban. A felhasználó itt sammy lesz, de ezt a nevet helyettesítheti saját felhasználójával. A -f jelző megadja az adatbázis elérési útját, amely a beállított útvonal lesz /etc/sasl2/memcached.conf:

  • sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 sammy

végül adja meg a memcache felhasználó és csoport tulajdonjogát az SASL adatbázis felett a következő chown paranccsal:

  • sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2

most már van egy SASL konfigurációja, amelyet a Memcached használhat a hitelesítéshez. A következő szakaszban először ellenőrizze, hogy a Memcached az alapértelmezett beállításokkal fut-e, majd konfigurálja újra, és ellenőrizze, hogy SASL hitelesítéssel működik-e.

SASL támogatás konfigurálása

először a memcstat paranccsal tesztelhetjük a Memcached példányunk kapcsolatát. Ez az ellenőrzés segít megállapítani, hogy a Memcached fut – e és megfelelően van-e konfigurálva, mielőtt a SASL és a felhasználói hitelesítés engedélyezve lenne. Miután módosítottuk a konfigurációs fájlokat, újra futtatjuk a parancsot, hogy ellenőrizzük a különböző kimeneteket.

a Memcached működésének ellenőrzéséhez a memcstat paranccsal írja be a következőket:

  • memcstat --servers="127.0.0.1"

ha IPv6-ot használ, cserélje ki a ::1 – et az IPv4 127.0.0.1 cím helyett. Ha Unix tartományi foglalatot használ, akkor az IP-cím helyett használja a foglalat elérési útját, például --servers=/var/run/memcached/memached.sock.

ha futtatja a memcstat parancsot, és sikeresen csatlakozik a Memcached-hez, a következő kimenetet kell kapnia:

Output
Server: 127.0.0.1 (11211) pid: 2299875 uptime: 2020 time: 1632404590 version: 1.5.22 . . .

Megjegyzés: Ha Memcached-et használ UDP Támogatással, a memcstat parancs nem tud csatlakozni az UDP porthoz. A következő netcat paranccsal ellenőrizheti a kapcsolatot:

  • nc -u 127.0.0.1 11211 -vz

ha a Memcached válaszol, akkor a következő kimenetet kell kapnia:

Output
Connection to 127.0.0.1 11211 port succeeded!

ha Memcached – et használ IPv6-tal és UDP-vel, a parancsnak a következőnek kell lennie:

  • nc -6 -u ::1 11211 -vz

most már továbbléphet a SASL engedélyezéséhez. Ehhez adja hozzá a -S paramétert a /etc/memcached.confértékhez. Nyissa meg újra a nano fájlt vagy a kívánt szerkesztőt:

  • sudo nano /etc/memcached.conf

a fájl alján adja hozzá a következőket:

/etc/memcached.conf
. . .-S

Ezután keresse meg és távolítsa el a -vvopciót, amely részletes kimenetet biztosít a /var/log/memcached számára. A megjegyzés nélküli sornak így kell kinéznie:

/etc/memcached.conf
. . .-vv

mentse és zárja be a fájlt.

most indítsa újra a Memcached szolgáltatást a következő systemctl paranccsal:

  • sudo systemctl restart memcached

Ezután ellenőrizze a Memcached journalctl naplóit, hogy megbizonyosodjon arról, hogy a SASL támogatás engedélyezve van-e:

  • sudo journalctl -u memcached |grep SASL

a következő kimeneti sort kell kapnia, jelezve, hogy a SASL támogatás inicializálva van:

Output
Sep 23 17:00:55 memcached systemd-memcached-wrapper: Initialized SASL.

most ellenőrizheti kapcsolatot Memcached újra. Ha a SASL-támogatás a helyén van és inicializálva van, a következő memcstat parancsnak érvényes hitelesítési adatok nélkül sikertelennek kell lennie:

  • memcstat --servers="127.0.0.1"

a parancs nem hozhat létre kimenetet. Írja be a következő shell parancsot az állapotának ellenőrzéséhez:

  • echo $?

$? mindig visszaadja az utolsó kilépő parancs kilépési kódját. Általában a 0 – en kívül bármi más jelzi a folyamat meghibásodását. Ebben az esetben a 1 kilépési állapotot kell kapnia, ami azt jelzi, hogy a memcstat parancs sikertelen.

a memcstat futtatása ismét, ezúttal felhasználónévvel és jelszóval megerősíti, hogy a hitelesítési folyamat működött-e. Futtassa a következő parancsot a hitelesítő adatokkal helyettesítve a sammy és a your_password` értékek helyett, ha eltérő hitelesítő adatokat használt:

  • memcstat --servers="127.0.0.1" --username=sammy --password=your_password

a következő kimenetet kell kapnia:

Output
Server: 127.0.0.1 (11211) pid: 3831 uptime: 9 time: 1520028517 version: 1.4.25 . . .

a Memcached szolgáltatás most konfigurálva van és fut SASL támogatással és felhasználói hitelesítéssel.

4.lépés — Hozzáférés engedélyezése magánhálózaton keresztül (opcionális)

alapértelmezés szerint a Memcached csak a helyi visszacsatolási (127.0.0.1) interfészen van beállítva, amely megvédi a Memcached interfészt a külső feleknek való kitettségtől. Előfordulhat azonban, hogy engedélyeznie kell a hozzáférést más szerverekről. Ebben az esetben beállíthatja a konfigurációs beállításokat, hogy a Memcached-et egy privát hálózati interfészhez kösse.

Megjegyzés: Ebben a szakaszban kitérünk a tűzfal beállításainak konfigurálására az UFW használatával, de lehetőség van a DigitalOcean felhő tűzfalak használatára is ezen beállítások létrehozásához. További információ a DigitalOcean felhő tűzfalak beállításáról, lásd a bevezetés a DigitalOcean felhő tűzfalak. Ha többet szeretne megtudni arról, hogyan korlátozhatja a bejövő forgalmat bizonyos gépekre, olvassa el ennek az oktatóanyagnak a tűzfalszabályok címkékkel és kiszolgálónevekkel történő alkalmazásáról szóló szakaszát, valamint a tűzfalcímkékkel kapcsolatos megbeszélésünket.

az IP-hozzáférés korlátozása tűzfalakkal

a konfigurációs beállítások módosítása előtt célszerű tűzfalszabályokat beállítani a Memcached szerverhez csatlakozni képes gépek korlátozására. Először rögzítenie kell minden olyan gép privát IP-címét, amelyet használni szeretne a Memcached-hez való csatlakozáshoz. Miután megkapta a privát IP-címet (vagy címeket), hozzáad egy explicit tűzfalszabályt, amely lehetővé teszi a gép számára a Memcached elérését.

ha UFW tűzfalat használ, korlátozhatja a hozzáférést a Memcached példányhoz, ha beírja a következőket a Memcached kiszolgálóra:

  • sudo ufw allow from client_system_private_IP/32 to any port 11211

ha egynél több rendszer fér hozzá a Memcached-hez a magánhálózaton keresztül, mindenképpen adjon hozzá további ufw szabályokat minden géphez, sablonként a fenti szabályt használva.

az UFW tűzfalakról az ufw essentials útmutatónkat olvasva tudhat meg többet.

ezekkel a változtatásokkal beállíthatja a Memcached szolgáltatást úgy, hogy a szerver privát hálózati felületéhez kötődjön.

Memcached kötése a privát hálózati interfészhez

most, hogy a tűzfal a helyén van, beállíthatja a Memcached konfigurációt úgy, hogy az 127.0.0.1 helyett a kiszolgáló privát hálózati interfészéhez kötődjön.

először keresse meg a Memcached szerver privát hálózati interfészét a következő ip

  • ip -brief address show

paranccsal a kiszolgáló hálózati konfigurációjától függően a kimenet eltérhet az alábbi példától:

Output
lo UNKNOWN 127.0.0.1/8 ::1/128eth0 UP 203.0.113.1/20 10.10.0.5/16 2001:DB8::1/64 fe80::7ced:9ff:fe52:4695/64eth1 UP 10.136.32.212/16 fe80::2cee:92ff:fe21:8bc4/64

ebben a példában a hálózati interfészeket eth0 és eth1 nevük azonosítja. A eth0 sorban kiemelt IPv4-címek a kiszolgáló nyilvános IP-címei.

a kiemelt 10.136.32.212 cím a eth1 sorban a szerver privát IPv4 címe, a fe80::2cee:92ff:fe21:8bc4 cím pedig az IPv6 privát címe. Az IP-címek eltérőek lesznek, de az RFC 1918 specifikáció alapján mindig a következő tartományokba esnek):

  • 10.0.0.0 to 10.255.255.255(10/8 előtag)
  • 172.16.0.0 to 172.31.255.255(172.16 / 12 előtag)
  • 192.168.0.0 to 192.168.255.255 (192.168/16 előtag)

Miután megtalálta a szerver privát IP-címét vagy címeit, nyissa meg újra a /etc/memcached.conf fájlt a nano vagy a kívánt szerkesztő segítségével:

  • sudo nano /etc/memcached.conf

keresse meg a korábban ellenőrzött vagy módosított -l 127.0.0.1 sort, és módosítsa a címet úgy, hogy megfeleljen a kiszolgáló privát hálózati felületének:

/etc/memcached.conf
. . .-l memcached_servers_private_IP. . .

ha azt szeretné, hogy a Memcached hallgassa meg több címet, adjon hozzá egy másik hasonló sort minden címhez, akár IPv4, akár IPv6 a -l memcached_servers_private_IP formátumban.

mentse és zárja be a fájlt, ha végzett.

Ezután indítsa újra a Memcached szolgáltatást:

  • sudo systemctl restart memcached

ellenőrizze az új beállításokat a ss gombbal a módosítás megerősítéséhez:

  • sudo ss -plunt
Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process. . .tcp LISTEN 0 1024 10.137.0.2:11211 0.0.0.0:* users:(("memcached",pid=8991,fd=27)). . .

tesztelje a kapcsolatot a külső ügyféllel, hogy megbizonyosodjon arról, hogy továbbra is elérheti a szolgáltatást. Érdemes ellenőrizni a hozzáférést egy nem engedélyezett ügyféltől is (próbáljon felhasználó és jelszó nélkül csatlakozni), hogy megbizonyosodjon arról, hogy a SASL-hitelesítés a várt módon működik-e. Az is jó ötlet, ha megpróbál csatlakozni a Memcached-hez egy másik szerverről, amely nem csatlakozhat, hogy ellenőrizze, hogy a létrehozott tűzfalszabályok hatékonyak-e.

következtetés

ebben az oktatóanyagban feltárta, hogyan konfigurálhatja a Memcached-et IPv4, IPv6, TCP, UDP és Unix tartományi foglalatokkal. Azt is megtanulta, hogyan lehet biztonságossá tenni a Memcached szervert a SASL hitelesítés engedélyezésével. Végül megtanulta, hogyan kell a Memcached-et a helyi vagy magánhálózati interfészhez kötni, valamint hogyan konfigurálhatja a tűzfalszabályokat a Memcached-hez való hozzáférés korlátozására.

Ha többet szeretne megtudni a Memcached-ről, nézze meg a projekt dokumentációját.

Write a Comment

Az e-mail-címet nem tesszük közzé.