Memcached mit SASL auf Ubuntu 20.04 installieren und absichern

Memcached ist ein kostenloses, verteiltes In-Memory-Caching-System, das häufig genutzte Daten und Objekte – wie Datenbankabfragen, API-Antworten, Sitzungsinformationen oder Berechnungsergebnisse – im Arbeitsspeicher speichert. Dadurch werden wiederholte Vorgänge wie Datenbankabfragen reduziert, was die Anwendungsleistung verbessert und die Serverlast verringert.

Diese Anleitung erklärt, wie Sie Memcached auf Ubuntu 20.04 installieren und so konfigurieren, dass SASL (Simple Authentication and Security Layer) für sichere Client-Verbindungen verwendet wird.

Voraussetzungen

  • Ein Ubuntu-20.04-Server
  • SSH-Zugang als Nicht-Root-Benutzer mit sudo-Rechten
  • Sicherstellen, dass der Server aktualisiert ist

Memcached installieren

Memcached ist in den Standard-Paketquellen von Ubuntu 20.04 enthalten und kann mit APT installiert werden. Alternativ lässt sich auch eine bestimmte Version aus dem Quellcode kompilieren. Die folgenden Schritte beschreiben die Installation von Memcached und wie Sie es so einrichten, dass es automatisch beim Serverstart ausgeführt wird.

Paketindex aktualisieren

Memcached und erforderliche Tools installieren

$ sudo apt install memcached libmemcached-tools -y

Installierte Memcached-Version prüfen

Beispielausgabe:

Memcached für automatischen Start aktivieren

$ sudo systemctl enable memcached

Memcached-Dienst starten

$ sudo systemctl start memcached

Memcached konfigurieren

Die Konfigurationsdatei für Memcached befindet sich unter /etc/memcached.conf. Dort können Sie Optionen wie Portnummer, Speichergröße, Verbindungsbegrenzungen und die IP-Adresse, auf der Memcached lauscht, anpassen. Führen Sie die folgenden Schritte aus, um die Einstellungen zu ändern und sicherzustellen, dass Memcached korrekt läuft.

Konfigurationsdatei bearbeiten

$ sudo nano /etc/memcached.conf

SASL-Authentifizierung aktivieren

Fügen Sie -S am Ende der Datei nach -P /var/run/memcached/memcached.pid ein, um SASL zu aktivieren:

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

Ausführliche Protokollierung aktivieren

Gleichzeitige Verbindungen begrenzen

Memcached-Port überprüfen

# Standard-Port für Verbindungen ist 11211
-p 11211

Remote-Zugriff einschränken oder erlauben

Stellen Sie sicher, dass die -l-Direktive auf 127.0.0.1 gesetzt ist, um den Zugriff auf lokale Verbindungen zu beschränken. Um entfernten Zugriff zu ermöglichen, ändern Sie den Wert auf die öffentliche IP-Adresse Ihres Servers:

Konfigurationsänderungen übernehmen

$ sudo systemctl restart memcached

Memcached mit SASL absichern

Standardmäßig erzwingt Memcached keine Authentifizierung. Durch das Aktivieren von SASL wird sichergestellt, dass nur authentifizierte Benutzer Zugriff erhalten. Gehen Sie wie folgt vor, um diese Sicherheitsebene hinzuzufügen.

SASL-Paket installieren

$ sudo apt install sasl2-bin -y

Verzeichnis für SASL-Anmeldedaten erstellen

SASL-Konfigurationsdatei erstellen

$ sudo nano /etc/sasl2/memcached.conf

Fügen Sie den folgenden Inhalt ein:

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

Diese Konfiguration:

  • log_level: Aktiviert detailliertes Logging auf Stufe 5.
  • mech_list: Gibt die Authentifizierungsmethode an; plain ermöglicht einfache Benutzername-Passwort-Authentifizierung.
  • sasldb_path: Definiert den Speicherort der Memcached-SASL-Datenbank für die Authentifizierung.

SASL-Benutzer erstellen

Ersetzen Sie example-user durch den gewünschten Benutzernamen:

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

Vergeben Sie ein starkes Passwort, wenn Sie dazu aufgefordert werden.

Eigentümerrechte für die SASL-Datenbank setzen

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

Memcached neu starten, um Änderungen zu übernehmen

$ sudo systemctl restart memcached

Status des Memcached-Dienstes prüfen

$ sudo systemctl status memcached

Alle SASL-Benutzer auflisten

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

Beispielausgabe:

example-user@ubuntu20: userPassword

Neue Benutzeranmeldedaten testen

Ersetzen Sie example-user@ubuntu20 und strong-password durch Ihre tatsächlichen Daten:

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

Wenn die Konfiguration korrekt ist, sollte eine Ausgabe ähnlich der folgenden erscheinen:

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 funktioniert mit vielen Anwendungs-Frameworks wie PHP, Perl, Python, Ruby und Java. Um die Verbindung mit PHP zu testen, gehen Sie wie folgt vor.

PHP und Memcached-Modul installieren

$ sudo apt install php php-memcached -y

Beispiel-PHP-Skript erstellen

Fügen Sie folgenden PHP-Code ein. Ersetzen Sie example-user@ubuntu20 und strong-password durch Ihre Zugangsdaten:

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

// Wert setzen und abrufen, um die Verbindung zu testen
$memcached->set('example', 'Greetings from centron!');
echo $memcached->get('example');
?>

Dieses Skript verbindet sich mit Memcached unter Verwendung der angegebenen Benutzerdaten und des Binärprotokolls. Es legt einen neuen Schlüssel example mit dem Wert „Greetings from centron!“ an und ruft diesen anschließend aus dem Speicher ab.

PHP-Skript ausführen

Beispielausgabe:

Die Ausgabe bestätigt, dass das PHP-Skript erfolgreich eine Verbindung zu Memcached hergestellt, den Schlüssel example gespeichert und den Wert „Greetings from centron!“ abgerufen hat.

Fazit

Sie haben Memcached auf Ubuntu 20.04 installiert und so konfiguriert, dass es sicher mit Anwendungs-Frameworks wie PHP zusammenarbeitet. Durch das Zwischenspeichern häufig genutzter Daten wie Datenbankabfragen im Arbeitsspeicher trägt Memcached dazu bei, die Serverleistung zu verbessern und die Last zu reduzieren.

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:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Passbolt auf Linux installieren & sicher konfigurieren

Security, Tutorial
Passbolt auf Linux-Distributionen installieren und einrichten Passbolt ist ein Open-Source-Passwortmanager, der die sichere Speicherung und Verwaltung von Passwörtern sowie sensiblen Daten mit Ende-zu-Ende-Verschlüsselung ermöglicht. Er funktioniert hauptsächlich als Browser-Erweiterung für…