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
$ sudo apt update
Memcached und erforderliche Tools installieren
$ sudo apt install memcached libmemcached-tools -y
Installierte Memcached-Version prüfen
$ memcached --version
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:
-v
Verbindungsgrenzen festlegen
Entkommentiere und passe die folgende Zeile an, um die maximale Anzahl gleichzeitiger Verbindungen zu definieren:
-c 1024
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:
-l 127.0.0.1
-l ::1
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
$ nano memcached.php
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
$ php memcached.php
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.


