Site icon bintorosoft.com

Multi-Tenant Hosting: Websites sicher voneinander isolieren

A tiny penguin chick sits on a keyboard, exploring the computer. Its fluffy appearance and curious expression create a delightful scene.

Beim Hosting mehrerer Websites auf einem einzigen Server steht die Sicherheit und Isolation der einzelnen Websites im Vordergrund. Multi-Tenant Hosting ermöglicht es, dass verschiedene Kunden oder Projekte auf demselben Server betrieben werden, ohne dass ein kompromittiertes System Zugriff auf die Daten oder Ressourcen anderer Websites erhält. Dieser Leitfaden zeigt Einsteigern, IT-Studierenden und Junior Network Engineers praxisnahe Methoden, um Websites effektiv voneinander zu isolieren und gleichzeitig Performance und Verwaltung zu optimieren.

Grundprinzipien der Isolation

Isolation kann auf verschiedenen Ebenen erreicht werden: Benutzerrechte, Dateisysteme, Prozesse, Netzwerk und Datenbanken. Die Kombination dieser Maßnahmen stellt sicher, dass ein Sicherheitsvorfall in einem Tenant keinen Einfluss auf andere Tenants hat.

Benutzer- und Gruppenmanagement

Eigene Systembenutzer pro Website

Jede Website sollte unter einem eigenen Linux-Benutzer laufen:

sudo adduser web1
sudo adduser web2

Die Webserver-Prozesse können diesen Benutzer beim Start zugeordnet bekommen, sodass die Prozesse nur auf die eigenen Ressourcen zugreifen können.

Dateirechte konfigurieren

Das Home-Verzeichnis jeder Website wird dem jeweiligen Benutzer zugewiesen:

sudo chown -R web1:web1 /var/www/web1
sudo chmod -R 750 /var/www/web1

So wird sichergestellt, dass andere Benutzer keinen direkten Zugriff auf fremde Webverzeichnisse haben.

Webserver-Isolation

Nginx/Apache Virtual Hosts

Separate Server- oder Virtual Hosts für jede Website:

# Nginx
server {
    listen 80;
    server_name web1.example.com;
    root /var/www/web1;
    ...
}

Dies verhindert, dass Konfigurationen oder Zugriff auf eine Website unkontrolliert andere Sites beeinflussen.

PHP-FPM Pools

Für PHP-Websites empfiehlt sich ein eigener FPM-Pool pro Tenant:

[web1]
user = web1
group = web1
listen = /run/php/php8.1-fpm-web1.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 10

So werden Prozesse getrennt und Ressourcen isoliert.

Datenbank-Isolation

Eigene Benutzer und Datenbanken

Jeder Tenant bekommt separate Datenbanken und Benutzer:

CREATE DATABASE web1_db;
CREATE USER 'web1_user'@'localhost' IDENTIFIED BY 'securepassword';
GRANT ALL PRIVILEGES ON web1_db.* TO 'web1_user'@'localhost';
FLUSH PRIVILEGES;

Damit kann ein kompromittierter Webprozess nicht auf Daten anderer Tenants zugreifen.

Verbindung über Unix-Sockets oder TCP

TCP-Ports können pro Tenant limitiert werden, alternativ sind Unix-Sockets mit restriktiven Rechten empfehlenswert:

sudo chown web1:web1 /var/run/mysqld/web1.sock
sudo chmod 660 /var/run/mysqld/web1.sock

Containerisierung als Isolationsebene

Container wie Docker oder Podman können zusätzliche Isolation bieten:

Firewall und Netzwerkregeln

Netzwerkzugriffe zwischen Tenants und zum externen Internet sollten kontrolliert werden:

# UFW Beispiel
sudo ufw allow from 203.0.113.0/24 to any port 3306 comment 'DB Access für Tenant'
sudo ufw deny from any to any port 3306 comment 'Zugriff sonst blockieren'

So werden Datenbankzugriffe und interne Kommunikation streng geregelt.

Monitoring und Logging

Separate Logs für jeden Tenant erleichtern die Überwachung und das Troubleshooting:

# Nginx
access_log /var/log/nginx/web1.access.log;
error_log /var/log/nginx/web1.error.log;

PHP-FPM

php_admin_value[error_log] = /var/log/php-fpm/web1.log

Dies hilft auch bei Sicherheitsvorfällen, da jeder Tenant isolierte Logdaten besitzt.

Automatisierte Deployments

Um die Sicherheit zu wahren, sollten Deployments isoliert erfolgen:

Zusammenfassung der Isolationsebenen

Durch die Kombination dieser Maßnahmen können Webserver mehrere Tenants sicher betreiben, Risiken minimieren und gleichzeitig die Performance gewährleisten. Ein strukturiertes Multi-Tenant Setup schützt Daten, isoliert Prozesse und sorgt für einen wartbaren Webserverbetrieb.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version