a korábbi változata ez a bemutató írta Kathleen Juell.
- Bevezetés
- előfeltételek
- 1.lépés — a Memcached telepítése
- 2. lépés-Memcached Hálózati beállítások konfigurálása (opcionális)
- az IPv6 beállítása
- UDP konfigurálása
- Unix Tartományfoglalatok konfigurálása
- 3.lépés — engedélyezett felhasználók hozzáadása
- Hitelesített felhasználó hozzáadása
- SASL támogatás konfigurálása
- 4.lépés — Hozzáférés engedélyezése magánhálózaton keresztül (opcionális)
- az IP-hozzáférés korlátozása tűzfalakkal
- Memcached kötése a privát hálózati interfészhez
- következtetés
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.
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:
OutputNetid 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:
. . .-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:
. . .-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+X
gombbal 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:
OutputNetid 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:
. . .-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:
. . .-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:
Outputu_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:
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:
OutputServer: 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:
OutputConnection 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:
. . .-S
Ezután keresse meg és távolítsa el a -vv
opció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:
. . .-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:
OutputSep 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:
OutputServer: 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:
Outputlo 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
to10.255.255.255
(10/8 előtag) -
172.16.0.0
to172.31.255.255
(172.16 / 12 előtag) -
192.168.0.0
to192.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:
. . .-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
OutputNetid 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.