Memcached auf Ubuntu 20.04 installieren und mit SASL absichern

Memcached ist ein kostenloses, verteiltes In-Memory-Caching-System, das Daten und Objekte – wie häufige Datenbankabfragen, API-Antworten, Sitzungsinformationen oder berechnete Ergebnisse – temporär im RAM speichert. Es lässt sich nahtlos in moderne Anwendungen integrieren, um wiederholte Prozesse wie Datenbankzugriffe zu reduzieren, wodurch die Antwortzeiten verbessert und die Serverlast verringert werden.

Diese Anleitung zeigt Schritt für Schritt, wie du Memcached auf Ubuntu 20.04 installierst und es mit SASL (Simple Authentication and Security Layer) konfigurierst, um sichere Clientverbindungen zu gewährleisten.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  • Einen Ubuntu 20.04 Server
  • SSH-Zugriff als Nicht-Root-Benutzer mit sudo-Rechten
  • Ein aktualisiertes Serversystem

Memcached installieren

Memcached ist in den Standard-Repositorys von Ubuntu 20.04 enthalten und kann über den APT-Paketmanager installiert werden. Falls du eine bestimmte Version benötigst, kannst du es alternativ auch aus dem Quellcode kompilieren. Die folgenden Schritte zeigen, wie du Memcached installierst und für den automatischen Start beim Booten aktivierst.

Paketindex des Servers aktualisieren

Memcached und erforderliche Tools installieren

$ sudo apt install memcached libmemcached-tools -y

Installierte Memcached-Version prüfen

Ausgabe:

memcached 1.5.22

Memcached-Dienst aktivieren und starten

$ sudo systemctl enable memcached
$ sudo systemctl start memcached

Memcached konfigurieren

Memcached verwendet die Datei /etc/memcached.conf zur Festlegung von Parametern wie Portnummer, Speicherzuweisung, Verbindungsgrenzen und der IP-Adresse, auf der der Dienst lauscht. Die folgenden Schritte zeigen, wie du diese Einstellungen anpasst und sicherstellst, dass Memcached ordnungsgemäß funktioniert.

Konfigurationsdatei öffnen

$ sudo nano /etc/memcached.conf

SASL-Authentifizierung aktivieren

Füge am Ende der Datei, direkt nach -P /var/run/memcached/memcached.pid, die folgende Zeile hinzu:

...
-P /var/run/memcached/memcached.pid
-S

Detailliertes Logging aktivieren

Entferne das Kommentarzeichen vor der folgenden Zeile, um ausführliche Logs in /var/log/memcache zu speichern:

Verbindungsgrenzen festlegen

Entkommentiere und passe die folgende Zeile an, um die maximale Anzahl gleichzeitiger Verbindungen zu definieren:

Verwendeten Port prüfen

Überprüfe oder ändere den von Memcached genutzten Port:

# Standardport ist 11211
-p 11211

Netzwerkzugriff einschränken

Stelle sicher, dass der Zugriff auf localhost beschränkt ist. Wenn du Remote-Zugriff benötigst, kannst du die IP-Adresse entsprechend anpassen:

Speichere die Änderungen und starte Memcached neu:

$ sudo systemctl restart memcached

Memcached mit SASL absichern

Standardmäßig verwendet Memcached keine Authentifizierung, was ein Sicherheitsrisiko darstellen kann. Durch Aktivierung von SASL wird sichergestellt, dass Benutzer sich authentifizieren müssen, bevor sie Zugriff erhalten. Folge diesen Schritten, um SASL für Memcached zu installieren und zu konfigurieren.

SASL-Paket installieren

$ sudo apt install sasl2-bin -y

Verzeichnis und Konfigurationsdatei für SASL erstellen

$ sudo mkdir /etc/sasl2
$ sudo nano /etc/sasl2/memcached.conf

SASL-Konfiguration hinzufügen

log_level: 5
mech_list: plain
sasldb_path: /etc/sasl2/memcached-sasldb2

Erläuterung:

  • log_level: Aktiviert detailliertes Logging (Stufe 5).
  • mech_list: Legt das Authentifizierungsverfahren fest – plain nutzt einfache Benutzername-/Passwort-Authentifizierung.
  • sasldb_path: Definiert den Speicherort der SASL-Authentifizierungsdatenbank.

Einen SASL-Benutzer anlegen

Ersetze example-user durch deinen tatsächlichen Benutzernamen:

$ sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 example-user

Berechtigungen zuweisen und Memcached neu starten

$ sudo chown memcache:memcache /etc/sasl2/memcached-sasldb2
$ sudo systemctl restart memcached

Status des Memcached-Dienstes prüfen

$ sudo systemctl status memcached

SASL-Benutzer auflisten

$ sudo sasldblistusers2 -f /etc/sasl2/memcached-sasldb2

Ausgabe:

example-user@ubuntu20: userPassword

Memcached-Authentifizierung testen

Nutze den folgenden Befehl, um den Login zu überprüfen. Ersetze die Zugangsdaten durch deine eigenen:

$ memcstat --binary --servers="127.0.0.1" --username='example-user@ubuntu20' --password=strong-password

Erfolgreiche Ausgabe:

Server: 127.0.0.1 (11211)
    pid: 5090
    uptime: 570
    time: 1743878810
    version: 1.5.22
    libevent: 2.1.11-stable
    pointer_size: 64
    rusage_user: 0.052240
    rusage_system: 0.043533
    max_connections: 1024
    curr_connections: 2
    total_connections: 10
    rejected_connections: 8

Verbindung zu Memcached herstellen

Memcached kann mit verschiedenen Anwendungsframeworks wie PHP, Perl, Python, Ruby oder Java verwendet werden. Um die Verbindung mit PHP zu testen, führe die folgenden Schritte aus.

PHP und das Memcached-Modul installieren

$ sudo apt install php php-memcached -y

PHP-Testskript erstellen

Folgenden Code hinzufügen

Ersetze example-user@ubuntu20 und strong-password durch deine tatsächlichen Zugangsdaten:

setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$memcached->addServer('127.0.0.1', 11211);
$memcached->setSaslAuthData('example-user@ubuntu20', 'strong-password');

// Schlüssel setzen und abrufen, um die Verbindung zu testen
$memcached->set('example', 'Grüße von centron!');
echo $memcached->get('example');
?>

Speichere und schließe die Datei.

Das obige PHP-Skript verbindet sich mit Memcached unter Verwendung der angegebenen Anmeldedaten und des Binärprotokolls. Es erstellt einen Schlüssel namens example mit dem Wert Grüße von centron!, speichert diesen im Arbeitsspeicher von Memcached und ruft ihn über die Variable $memcached wieder ab.

Das PHP-Skript ausführen

Ausgabe:

Grüße von centron!

Wenn diese Ausgabe erscheint, hat das PHP-Skript erfolgreich eine Verbindung zu Memcached hergestellt, den Schlüssel example erzeugt sowie den entsprechenden Wert im Speicher gespeichert und wieder abgerufen.

Fazit

Du hast nun Memcached auf Ubuntu 20.04 installiert und es für eine sichere Integration mit Anwendungsframeworks wie PHP konfiguriert. Memcached steigert die Serverleistung, indem häufig genutzte Daten – beispielsweise Datenbankabfragen – im Arbeitsspeicher zwischengespeichert werden. Dadurch werden Antwortzeiten verkürzt und die Serverlast deutlich reduziert.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: