Hvordan Installere Og Sikre Memcached På Ubuntu 20.04

En tidligere versjon av denne opplæringen ble skrevet Av Kathleen Juell.

Innledning

Minne objekt caching systemer som Memcached kan optimalisere backend database ytelse ved midlertidig lagring av informasjon i minnet, beholde ofte eller nylig forespurte poster. På denne måten reduserer de antall direkte forespørsler til databasene dine.

i denne veiledningen lærer du hvordan du installerer Og konfigurerer En Memcached-server. Du lærer også hvordan du legger til godkjenning for å sikre Memcached ved Hjelp Av Enkel Godkjenning og Sikkerhetslag (Sasl). Til slutt lærer Du hvordan Du binder Memcached til et lokalt eller privat nettverksgrensesnitt for å sikre at Det bare er tilgjengelig på klarerte nettverk, av godkjente brukere.

Forutsetninger

for å følge denne opplæringen trenger du:

  • En Ubuntu 20.04 server med en sudo ikke-root bruker og en brannmur aktivert. For å sette opp dette, kan du følge Vårt Første Serveroppsett Med Ubuntu 20.04 tutorial.

med disse forutsetningene på plass, vil du være klar til å installere Og sikre Din Memcached server.

Alternativt, hvis du vil eksperimentere med å installere Og konfigurere Memcached i nettleseren din ved hjelp av en interaktiv terminal, klikker Du På Start En Interaktiv Terminal! knappen nedenfor for å komme i gang.

Start En Interaktiv Terminal!

Trinn 1 — Installere Memcached

Hvis Du ikke allerede Har Memcached installert på serveren din, kan du installere Den fra de offisielle Ubuntu-repositoriene. Først må du kontrollere at den lokale pakkeindeksen er oppdatert ved hjelp av følgende kommando:

  • sudo apt update

deretter installerer du den offisielle pakken som følger:

  • sudo apt install memcached

du kan også installere libmemcached-tools, som er en pakke som inneholder ulike verktøy som du kan bruke til å undersøke, teste og administrere Memcached serveren. Legg pakken til serveren din med følgende kommando:

  • sudo apt install libmemcached-tools

Memcached skal nå installeres som en tjeneste på serveren din, sammen med verktøy som lar deg teste tilkoblingen.

kjør følgende systemctl kommando for å starte Memcached:

  • sudo systemctl start memcached

Nå kan Du fortsette å sikre konfigurasjonsinnstillingene.

Trinn 2 — Konfigurere Memcached-Nettverksinnstillinger (Valgfritt)

Hvis Din Memcached-server bare trenger å støtte lokale IPv4-tilkoblinger ved HJELP AV TCP, kan du hoppe over denne delen og fortsette Til Trinn 3 i denne opplæringen. Hvis du ellers vil konfigurere Memcached til Å bruke UDP-kontakter, Unix – Domenekontakter eller legge til støtte For IPv6-tilkoblinger, fortsetter du med de relevante trinnene i denne delen av opplæringen.

kontroller først at Din Memcached-forekomst lytter på det lokale ipv4-loopback-grensesnittet 127.0.0.1. Den nåværende versjonen Av Memcached som leveres Med Ubuntu og Debian har sin -l konfigurasjonsparameter satt til det lokale grensesnittet, noe som betyr at Den er konfigurert til bare å godta tilkoblinger fra serveren Der Memcached kjører.

Kontroller At Memcached for øyeblikket er bundet til det lokale IPv4 127.0.0.1 – grensesnittet og lytter bare FOR TCP-tilkoblinger ved hjelp av kommandoen ss :

  • sudo ss -plunt

de ulike flaggene vil endre ss utdata på følgende måter:

  • -p legger til navnet på prosessen som bruker en socket
  • -l begrenser utgangen til bare lyttekontakter, i motsetning til også å inkludere tilkoblede stikkontakter til andre systemer
  • -u inkluderer UDP-baserte stikkontakter i utgangen
  • -n viser numeriske verdier i utgangen i stedet for lesbare navn og verdier
  • -t inkluderer TCP-baserte stikkontakter i utgangen

du bør motta utdata som følgende:

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)). . .

denne utgangen bekrefter at memcached er bundet Til ipv4 loopback 127.0.0.1 – adressen bare VED HJELP AV TCP-protokollen.

Nå som Du har bekreftet At Memcached er konfigurert til å støtte IPv4 med BARE tcp-tilkoblinger, kan du redigere /etc/memcached.conf for å legge til støtte FOR UDP -, Unix – Domenekontakter eller IPv6-tilkoblinger.

Konfigurere IPv6

hvis Du vil aktivere IPv6-tilkoblinger Til Memcached, åpner du /etc/memcached.conf – filen med nano eller ønsket redigeringsprogram:

  • sudo nano /etc/memcached.conf

finn først følgende linje i filen:

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

Denne linjen Er Der Memcached er konfigurert til å lytte på det lokale IPv4-grensesnittet. For Å legge Til IPv6-støtte, legg til en linje som inneholder IPv6 lokal tilbakekoblings adresse (:: 1) som dette:

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

Lagre og lukk filen ved å trykke CTRL+O og deretter ENTER for å lagre, og deretter CTRL+X for å avslutte nano. Start Deretter Memcached på nytt med kommandoen systemctl :

  • sudo systemctl restart memcached

Nå kan Du bekrefte At Memcached også lytter Etter IPv6-tilkoblinger ved å gjenta kommandoen ss fra forrige del:

  • sudo ss -plunt

du bør motta utdata som følgende:

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))

de uthevede delene av utgangen indikerer at Memcached nå lytter ETTER TCP-tilkoblinger på det lokale IPv6-grensesnittet.

Merk at hvis Du vil deaktivere IPv4-støtte og bare lytte Etter IPv6-tilkoblinger, kan du fjerne -l 127.0.0.1 – linjen fra /etc/memcached.conf og starte tjenesten på nytt ved hjelp av kommandoen systemctl.

Konfigurere UDP

hvis Du vil bruke Memcached med UDP-kontakter, kan DU aktivere UDP-støtte ved å redigere konfigurasjonsfilen /etc/memcached.conf.

Åpne /etc/memcached.conf ved hjelp av nano eller din foretrukne redaktør, legg deretter til følgende linje på slutten av filen:

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

hvis DU ikke trenger tcp-støtte, finner du -p 11211 – linjen og endrer den til -p 0 for å deaktivere TCP-tilkoblinger.

når du er ferdig med å redigere filen, lagre og lukk den ved å skrive inn CTRL+O for å lagre, og deretter CTRL+X for å avslutte.

start Deretter Memcached-tjenesten på nytt med kommandoen systemctl for å bruke endringene:

  • sudo systemctl restart memcached

Kontroller At Memcached lytter ETTER UDP-tilkoblinger ved hjelp av kommandoen ss -plunt igjen:

  • sudo ss -plunt

hvis DU deaktiverte tcp-støtte og Har IPv6-tilkoblinger aktivert, bør du motta utdata som følgende:

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)). . .

vær oppmerksom på at utdataene dine kan være forskjellige hvis Du bare Har IPv4-tilkoblinger aktivert, og hvis DU har latt TCP-tilkoblinger være aktivert.

Konfigurere Unix-Domenekontakter

hvis Du vil bruke Memcached med Unix-Domenekontakter, kan du aktivere denne støtten ved å redigere konfigurasjonsfilen /etc/memcached.conf. Merk at Hvis Du konfigurerer Memcached til å bruke En Unix-Domenesokkel, Vil Memcached deaktivere TCP – og UDP-støtte, så vær sikker på at programmene dine ikke trenger å koble til ved hjelp av disse protokollene før du aktiverer socket-støtte.

Åpne /etc/memcached.conf ved hjelp av nano eller din foretrukne redaktør, legg deretter til følgende linjer på slutten av filen:

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

flagget -a bestemmer tillatelsene på socket-filen. Kontroller at brukeren som må koble Til Memcached, er en del av gruppen memcache på serveren din, ellers vil den motta en tillatelse nektet melding når du prøver å få tilgang til kontakten.

start Deretter Memcached-tjenesten på nytt med kommandoen systemctl for å bruke endringene:

  • sudo systemctl restart memcached

Kontroller At Memcached lytter Etter Unix – Domenekontakter med kommandoen ss -lnx :

  • sudo ss -lnx | grep memcached

flagget -x begrenser utgangen på ss for å vise socket-filer. Du bør motta utdata som følgende:

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

Nå som Du har konfigurert Memcached nettverksinnstillinger, kan du gå videre til neste trinn i denne opplæringen, som legger TIL SASL for godkjenning Til Memcached.

Trinn 3-Legge Til Autoriserte Brukere

hvis du vil legge til godkjente brukere I Memcached-tjenesten, kan Du bruke Sasl (Simple Authentication and Security Layer), Som er et rammeverk som fjerner par av godkjenningsprosedyrer fra applikasjonsprotokoller. Først legger du til støtte FOR SASL på serveren din, og deretter konfigurerer du en bruker med godkjenningslegitimasjon. Med alt på plass kan du aktivere SASL i Memcached ‘ s konfigurasjonsfil og bekrefte at alt fungerer som det skal.

Legge til En Godkjent Bruker

for å komme i gang med å legge TIL sasl-støtte, må du installere pakken sasl2-bin, som inneholder administrative programmer FOR sasl-brukerdatabasen. Dette verktøyet lar deg opprette en godkjent bruker eller brukere. Kjør følgende kommando for å installere den:

  • sudo apt install sasl2-bin

deretter oppretter du katalogen Og filen Som Memcached vil sjekke for SASL-konfigurasjonsinnstillingene ved hjelp av kommandoen mkdir :

  • sudo mkdir -p /etc/sasl2

opprett NÅ SASL-konfigurasjonsfilen ved hjelp av nano eller din foretrukne editor:

  • sudo nano /etc/sasl2/memcached.conf

Legg til følgende linjer:

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

i tillegg til å angi loggingsnivået, er mech_list satt til plain, som forteller Memcached at Den skal bruke sin egen passordfil og verifisere et passord i klartekst. Den siste linjen du la til, angir banen til brukerdatabasefilen du vil opprette neste. Lagre og lukk filen når du er ferdig.

nå vil du opprette EN sasl database med brukerlegitimasjon. Du bruker kommandoen saslpasswd2 med flagget -c til å opprette en ny brukeroppføring I sasl-databasen. Brukeren vil være sammy her, men du kan erstatte dette navnet med din egen bruker. Flagget -f angir banen til databasen, som vil være banen du angir i /etc/sasl2/memcached.conf:

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

Til Slutt, gi memcache-brukeren og gruppen eierskap over sasl-databasen med følgende kommando chown :

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

du har nå en SASL-konfigurasjon på plass Som Memcached kan bruke for godkjenning. I neste avsnitt vil du bekrefte At Memcached kjører med standardinnstillingene først, og deretter konfigurere den og bekrefte at den fungerer MED SASL-godkjenning.

Konfigurere Sasl-Støtte

Vi kan først teste tilkoblingen til Vår Memcached-forekomst med kommandoen memcstat. Denne sjekken vil hjelpe oss å fastslå At Memcached kjører og riktig konfigurert før SASL og brukerautentisering er aktivert. Etter at vi har gjort endringer i konfigurasjonsfilene, kjører vi kommandoen igjen for å se etter forskjellige utdata.

hvis Du vil kontrollere At Memcached er oppe og går med kommandoen memcstat, skriver du inn følgende:

  • memcstat --servers="127.0.0.1"

hvis Du bruker IPv6, erstatter du ::1 i Stedet For ipv4 127.0.0.1 – adressen. Hvis Du bruker En Unix – Domenesokkel, bruk banen til kontakten i STEDET FOR IP-adressen, for eksempel --servers=/var/run/memcached/memached.sock.

når du kjører kommandoen memcstat og kobler Til Memcached, bør du motta utdata som følgende:

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

Merk: hvis Du bruker Memcached MED UDP-støtte, vil kommandoen memcstat ikke kunne koble TIL UDP-porten. Du kan bruke følgende netcat kommando for å bekrefte tilkobling:

  • nc -u 127.0.0.1 11211 -vz

Hvis Memcached svarer, bør du motta utdata som følgende:

Output
Connection to 127.0.0.1 11211 port succeeded!

hvis Du bruker Memcached Med IPv6 og UDP, skal kommandoen være følgende:

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

Nå kan du gå videre til å aktivere SASL. For å gjøre dette, legg til parameteren -S til /etc/memcached.conf. Åpne filen med nano eller din foretrukne editor igjen:

  • sudo nano /etc/memcached.conf

nederst i filen legger du til følgende:

/etc/memcached.conf
. . .-S

Neste, finn og uncomment alternativet -vv, som vil gi detaljert utgang til /var/log/memcached. Den uønskede linjen skal se slik ut:

/ etc / memcached.conf
. . .-vv

Lagre og lukk filen.

start Memcached-tjenesten På Nytt med følgende kommando systemctl :

  • sudo systemctl restart memcached

neste, sjekk loggene journalctl For Memcached å være sikker PÅ AT sasl støtte er aktivert:

  • sudo journalctl -u memcached |grep SASL

du bør få en linje med utdata som følgende, som indikerer at sasl-støtte er initialisert:

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

Nå kan du sjekke tilkobling Til Memcached igjen. Med sasl-støtte på plass og initialisert, bør følgende memcstat kommando mislykkes uten gyldig autentiseringsinformasjon:

  • memcstat --servers="127.0.0.1"

kommandoen skal ikke produsere utgang. Skriv inn følgende shell-kommando for å sjekke statusen:

  • echo $?

$? vil alltid returnere utgangskoden til den siste kommandoen som gikk ut. Vanligvis indikerer alt annet enn 0 prosessfeil. I dette tilfellet bør du motta en utgangsstatus på 1, som indikerer at kommandoen memcstat mislyktes.

Kjører memcstat igjen, denne gangen med brukernavn og passord vil bekrefte hvorvidt godkjenningsprosessen fungerte. Kjør følgende kommando med legitimasjonene dine erstattet i stedet for sammy og your_password` verdiene hvis du brukte forskjellige legitimasjonsbeskrivelser:

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

du bør motta utdata som følgende:

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

Din Memcached-tjeneste er nå konfigurert og kjører MED sasl-støtte og brukerautentisering.

Trinn 4 — Gi Tilgang over Det Private Nettverket (Valgfritt)

Som standard Memcached er bare konfigurert til å lytte på den lokale loopback (127.0.0.1) grensesnitt, som beskytter Memcached grensesnittet fra eksponering for utenforstående parter. Det kan imidlertid være tilfeller der du må tillate tilgang fra andre servere. I dette tilfellet kan du justere konfigurasjonsinnstillingene for å binde Memcached til et privat nettverksgrensesnitt.

Notat: Vi vil dekke hvordan du konfigurerer brannmurinnstillinger ved HJELP AV UFW i denne delen, men Det er også mulig å bruke DigitalOcean Cloud Brannmurer for å opprette disse innstillingene. For mer informasjon om hvordan Du konfigurerer DigitalOcean Cloud Brannmurer, se Vår Introduksjon Til DigitalOcean Cloud Brannmurer. For å lære mer om hvordan du begrenser innkommende trafikk til bestemte maskiner, sjekk ut delen av denne opplæringen om å bruke brannmurregler ved hjelp av koder og servernavn og vår diskusjon om brannmurkoder.

Begrense IP-Tilgang Med Brannmurer

før du justerer konfigurasjonsinnstillingene, er det lurt å sette opp brannmurregler for å begrense maskinene som kan koble Til Memcached-serveren. Først må du registrere den private IP-adressen til en maskin som du ønsker å bruke til å koble Til Memcached. Når du har den private IP-adressen (eller adressene), legger du til en eksplisitt brannmurregel for å la maskinen få tilgang Til Memcached.

hvis DU bruker UFW-brannmuren, kan du begrense tilgangen Til Memcached-forekomsten ved å skrive inn følgende på Memcached-serveren:

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

Hvis Mer Enn ett system har Tilgang Til Memcached via det private nettverket, må du legge til flere ufw regler for hver maskin ved hjelp av regelen ovenfor som en mal.

du kan finne ut mer OM UFW brannmurer ved å lese vår ufw essentials guide.

med disse endringene på plass, kan Du justere Memcached-tjenesten for å binde seg til serverens private nettverksgrensesnitt.

Binding Memcached Til Det Private Nettverksgrensesnittet

Nå som brannmuren er på plass, kan Du justere Memcached-konfigurasjonen for å binde til serverens private nettverksgrensesnitt i stedet for 127.0.0.1.

finn først det private nettverksgrensesnittet for Memcached-serveren ved hjelp av følgende kommando ip

  • ip -brief address show

avhengig av serverens nettverkskonfigurasjon, kan utdataene være forskjellige fra følgende eksempel:

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

i dette eksemplet identifiseres nettverksgrensesnittene med navnene eth0 og eth1. De uthevede IPv4-adressene på eth0 – linjen er de offentlige IP-adressene for serveren.

den uthevede 10.136.32.212 – adressen på eth1 – linjen er den private IPv4-adressen for serveren, og fe80::2cee:92ff:fe21:8bc4 – adressen Er ipv6-privatadressen. IP-adressene dine vil være forskjellige, men vil alltid falle innenfor følgende områder basert PÅ RFC 1918-spesifikasjonen):

  • 10.0.0.0 til 10.255.255.255(10/8 prefiks)
  • 172.16.0.0 til 172.31.255.255 (172,16 / 12 prefiks)
  • 192.168.0.0 til 192.168.255.255(192.168/16 prefiks)

når du har funnet serverens private IP-adresse eller adresser, åpner du /etc/memcached.conf – filen igjen ved hjelp av nano eller din foretrukne editor:

  • sudo nano /etc/memcached.conf

Finn -l 127.0.0.1 – linjen som du sjekket eller endret tidligere, og endre adressen for å matche serverens private nettverksgrensesnitt:

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

hvis Du Vil Ha Memcached lytte på flere adresser, legg til en annen lignende linje for hver adresse, Enten IPv4 eller IPv6 ved hjelp av formatet -l memcached_servers_private_IP.

Lagre og lukk filen når du er ferdig.

start Deretter Memcached-tjenesten På Nytt:

  • sudo systemctl restart memcached

Sjekk de nye innstillingene med ss for å bekrefte endringen:

  • 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)). . .

Test tilkobling fra din eksterne klient for å sikre at du fortsatt kan nå tjenesten. Det er en god ide å også sjekke tilgang fra en ikke-autorisert klient (prøv å koble til uten bruker og passord) for å sikre at SASL-autentiseringen fungerer som forventet. Det er også lurt å prøve å koble Til Memcached fra en annen server som ikke er tillatt å koble til for å bekrefte at brannmurreglene du opprettet er effektive.

Konklusjon

i denne opplæringen utforsket du hvordan du konfigurerer Memcached Med IPv4, IPv6, TCP, UDP og Unix-Domenekontakter. Du lærte også hvordan du sikrer Din Memcached-server ved å aktivere sasl-godkjenning. Til slutt lærte du hvordan du binder Memcached til ditt lokale eller private nettverksgrensesnitt og hvordan du konfigurerer brannmurregler for å begrense tilgangen Til Memcached.

for å lære mer Om Memcached, sjekk ut prosjektdokumentasjonen.

Write a Comment

Din e-postadresse vil ikke bli publisert.