Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
In der komplexen Welt der Webserver-Technologien hat sich Zoraxy als leistungsstarker und vielseitiger HTTP-Reverse-Proxy etabliert. Dieser umfassende Leitfaden bietet eine tiefgehende Einführung in die Installation, Konfiguration und fortgeschrittene Verwaltung von Zoraxy auf einem Ubuntu 24.04 Server.
Von grundlegenden Installationsschritten bis hin zu fortgeschrittenen Sicherheitsaudits und Best Practices deckt diese Anleitung alle wichtigen Aspekte ab. Sie richtet sich sowohl an Einsteiger, die ihre ersten Schritte in der Welt der Webserver machen, als auch an erfahrene Administratoren, die eine effiziente und skalierbare Proxy-Lösung suchen.
Zoraxy ist ein in der Programmiersprache Go geschriebener, vielseitiger HTTP-Reverse-Proxy und Weiterleitungstool. Um dies besser zu verstehen, lass uns die Begriffe aufschlüsseln:
HTTP: Das Hypertext Transfer Protocol, das Grundprotokoll für die Datenübertragung im Web.
Reverse-Proxy: Ein Server, der als Vermittler zwischen Clientanfragen und Backend-Servern fungiert.
Weiterleitungstool: Eine Software, die Anfragen von einem Ort zu einem anderen umleitet.
Zoraxy bietet mehrere überzeugende Gründe für seinen Einsatz:
Vereinfachte HTTPS-Konfiguration: Zoraxy erleichtert die Einrichtung von TLS/SSL-Zertifikaten erheblich, was die Sicherheit deiner Websites verbessert
Konsolidierung mehrerer Webserver: Mit nur einer öffentlichen IP-Adresse kannst du den Datenverkehr nahtlos auf mehrere Webserver verteilen, die dieselben ausgehenden Ports (z.B. 80/443) nutzen
Effiziente Konfigurationsänderungen: Du musst nicht mehr manuell Apache- oder Nginx-Konfigurationsdateien anpassen, wenn du neue Test-Webdienste bereitstellst
Flexible Zugriffskontrolle: Zoraxy bietet einfache Möglichkeiten zur Implementierung von Blacklisting/Whitelisting und grundlegender Authentifizierung
Intuitive Benutzeroberfläche: Die benutzerfreundliche Oberfläche macht die Verwaltung auch für Netzwerk-Neulinge zugänglich
Während Nginx Proxy Manager (NPM) eine beliebte Wahl für Reverse-Proxying ist, bietet Zoraxy einige Vorteile:
Leichtgewichtigkeit: Zoraxy ist auf Effizienz ausgelegt und verbraucht weniger Systemressourcen
Hohe Konfigurierbarkeit: Zoraxy lässt sich nahtlos in bestehende Systeme integrieren und bietet umfangreiche Anpassungsmöglichkeiten
Intuitive Benutzeroberfläche: Die Bedienung von Zoraxy ist sowohl für Anfänger als auch für erfahrene Benutzer einfach und übersichtlich gestaltet
Umfassende Dokumentation: Zoraxy bietet eine ausführliche Dokumentation und eine aktive Community-Unterstützung, was die Problemlösung erleichtert
Bevor du mit der Installation von Zoraxy beginnst, stelle sicher, dass dein System die folgenden Voraussetzungen erfüllt:
Docker macht die Installation von Zoraxy besonders einfach. Hier ist eine Schritt-für-Schritt-Anleitung:
Kopiere die folgenden Befehle in dein Terminal und führe sie nacheinander aus:
sudo apt update
sudo apt install apt-transport-https curl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Diese Befehle installieren Docker auf deinem System.
Führe diesen Befehl aus, um Zoraxy zu starten:
docker run -d \
--name=zoraxy \
-p 80:80 \
-p 443:443 \
-p 8000:8000 \
-v /home/deinbenutzername/zoraxy-config:/opt/zoraxy/data/ \
zoraxydocker/zoraxy:latest
Ersetze "deinbenutzername" durch deinen tatsächlichen Benutzernamen auf dem Server.
Tippe docker ps
ein und drücke Enter. Du solltest einen Eintrag für Zoraxy sehen.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 zoraxydocker/zoraxy:latest "/zoraxy" 10 minutes ago Up 10 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8000->8000/tcp zoraxy
Lass uns das Ergebnis im Detail betrachten:
┌─────────────┬──────────────────────────┬─────────┬────────────────┬──────────────┬───────────────────────────────────────────────────────────┬───────┐
│ CONTAINER ID│ IMAGE │ COMMAND │ CREATED │ STATUS │ PORTS │ NAMES │
├─────────────┼──────────────────────────┼─────────┼────────────────┼──────────────┼───────────────────────────────────────────────────────────┼───────┤
│ a1b2c3d4e5f6│ zoraxydocker/zoraxy:latest│ "/zoraxy"│ 10 minutes ago │ Up 10 minutes│ 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8000->8000/tcp│ zoraxy│
└─────────────┴──────────────────────────┴─────────┴────────────────┴──────────────┴───────────────────────────────────────────────────────────┴───────┘
Erklärung der Spalten:
Diese Ausgabe zeigt, dass Zoraxy erfolgreich läuft und die wichtigen Ports (80 für HTTP, 443 für HTTPS und 8000 für die Admin-Oberfläche) korrekt zugeordnet sind.
Für diejenigen, die eine direktere Kontrolle über ihre Serverumgebung bevorzugen, bietet die native Installation von Zoraxy mehr Flexibilität.
Hier ist eine ausführlichere Anleitung:
Stelle sicher, dass dein System auf dem neuesten Stand ist:
sudo apt update && sudo apt upgrade -y
Besuche die Zoraxy Releases-Seite und kopiere den Link zur neuesten Version für Linux (amd64).
wget https://github.com/tobychui/zoraxy/releases/download/v3.x.x/zoraxy_linux_amd64
Ersetze „v3.x.x“ durch die aktuelle Versionsnummer.
chmod +x zoraxy_linux_amd64
sudo mkdir -p /opt/zoraxy/data
sudo mv zoraxy_linux_amd64 /usr/local/bin/zoraxy
Erstelle eine Service-Datei:
sudo nano /etc/systemd/system/zoraxy.service
Füge folgenden Inhalt ein:
[Unit]
Description=Zoraxy HTTP Reverse Proxy
After=network.target
[Service]
ExecStart=/usr/local/bin/zoraxy -port=:8000 -data=/opt/zoraxy/data
Restart=always
User=root
[Install]
WantedBy=multi-user.target
sudo systemctl enable zoraxy.service
sudo systemctl start zoraxy.service
sudo systemctl status zoraxy.service
Du solltest eine Ausgabe sehen, die anzeigt, dass der Dienst aktiv und läuft.
Öffne einen Webbrowser und navigiere zu http://deine-server-ip:8000
. Folge den Anweisungen zur Einrichtung des Admin-Kontos.
Zoraxy unterstützt automatische SSL-Zertifikate über Let’s Encrypt. Konfiguriere dies in der Weboberfläche unter „Settings“ > „SSL“.
sudo journalctl -u zoraxy.service
# Für ein kontinuierliches Log:
sudo journalctl -u zoraxy.service -f
{
"server": {
"addr": ":80",
"tls_addr": ":443"
},
"routes": [
{
"domain": "example.com",
"target": "http://wordpress-server:80",
"ssl": {
"email": "admin@example.com",
"provider": "letsencrypt"
},
"headers": {
"X-Frame-Options": "SAMEORIGIN",
"X-XSS-Protection": "1; mode=block",
"X-Content-Type-Options": "nosniff"
},
"cache": {
"enabled": true,
"ttl": "1h",
"ignore_query": true
}
}
]
}
{
"server": {
"addr": ":80",
"tls_addr": ":443"
},
"routes": [
{
"domain": "app.example.com",
"target": "http://nodejs-server:3000",
"ssl": {
"email": "admin@example.com",
"provider": "letsencrypt"
},
"websocket": true,
"headers": {
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload"
}
}
]
}
{
"server": {
"addr": ":80",
"tls_addr": ":443"
},
"routes": [
{
"domain": "api.example.com",
"path": "/users",
"target": "http://user-service:8080"
},
{
"domain": "api.example.com",
"path": "/products",
"target": "http://product-service:8081"
},
{
"domain": "api.example.com",
"path": "/orders",
"target": "http://order-service:8082"
},
{
"domain": "api.example.com",
"ssl": {
"email": "admin@example.com",
"provider": "letsencrypt"
},
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS"
}
}
]
}
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8000/tcp
sudo ufw reload
# HTTP (Port 80)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# HTTPS (Port 443)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Zoraxy Admin Interface (Port 8000)
sudo iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
# Speichern der Regeln (Debian/Ubuntu)
sudo /sbin/iptables-save | sudo tee /etc/iptables/rules.v4
# Für andere Distributionen könnte der Befehl variieren, z.B.:
# sudo service iptables save
Wichtige Hinweise zu IPtables:
Der Nachfolger von IPtables in neueren Systemen
sudo nft add rule inet filter input tcp dport 80 accept
sudo nft add rule inet filter input tcp dport 443 accept
sudo nft add rule inet filter input tcp dport 8000 accept
# Regeln speichern
sudo nft list ruleset > /etc/nftables.conf
Zugriffsbeschränkung für das Admin-Interface:
Es ist oft ratsam, den Zugriff auf das Admin-Interface (Port 8000) auf bestimmte IP-Adressen zu beschränken:
sudo ufw delete allow 8000/tcp
sudo ufw allow from YOUR_IP_ADDRESS to any port 8000 proto tcp
sudo iptables -D INPUT -p tcp --dport 8000 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8000 -s YOUR_IP_ADDRESS -j ACCEPT
sudo nft delete rule inet filter input tcp dport 8000 accept
sudo nft add rule inet filter input ip saddr YOUR_IP_ADDRESS tcp dport 8000 accept
Ersetze YOUR_IP_ADDRESS
durch deine tatsächliche IP-Adresse.
Führe regelmäßig Audits deiner Firewall-Konfiguration durch:
sudo ufw status verbose # Für UFW
sudo iptables -L -v -n # Für IPtables
sudo nft list ruleset # Für nftables
Aktiviere Logging für verdächtige Aktivitäten:
sudo ufw logging on
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: "
sudo nft add rule inet filter input log prefix "nftables-dropped: "
Halte dein Firewall-System aktuell:
sudo apt update && sudo apt upgrade -y
Erwäge die Implementierung von Port Knocking für zusätzliche Sicherheit. Dies kann mit allen drei Firewall-Systemen konfiguriert werden, erfordert aber zusätzliche Software und Konfiguration.
Erwäge die Installation von Fail2Ban, um wiederholte Anmeldeversuche zu blockieren:
sudo apt install fail2ban
a) Erstelle zuerst eine neue Filter-Datei für Zoraxy:
sudo nano /etc/fail2ban/filter.d/zoraxy.conf
b) Füge folgenden Inhalt in die Datei ein:
[INCLUDES]
before = common.conf
[Definition]
failregex = ^<HOST> .* "(GET|POST|HEAD).*" (401|403|404) .*$
ignoreregex =
Diese Regex erkennt fehlgeschlagene Zugriffe (401, 403, 404 Fehler) in den Zoraxy-Logs.
c) Erstelle nun einen Jail für Zoraxy in der jail.local Datei:
sudo nano /etc/fail2ban/jail.local
d) Füge folgende Konfiguration hinzu:
[zoraxy]
enabled = true
port = http,https
filter = zoraxy
logpath = /opt/zoraxy/data/logs/*.log
maxretry = 5
bantime = 3600
findtime = 600
Passe den logpath
an, falls deine Zoraxy-Logs an einem anderen Ort gespeichert sind.
e) Starte Fail2Ban neu, um die Änderungen zu übernehmen:
sudo systemctl restart fail2ban
f) Überprüfe, ob der Zoraxy-Jail aktiv ist:
sudo fail2ban-client status zoraxy
Diese Konfiguration wird Fail2Ban anweisen, die Zoraxy-Logs auf verdächtige Aktivitäten zu überwachen. Wenn ein Client innerhalb von 10 Minuten (findtime)
5 mal (maxretry)
einen 401, 403 oder 404 Fehler verursacht, wird seine IP-Adresse für eine Stunde (bantime)
gesperrt.
Beachte, dass du möglicherweise die Regex und die Logpfade anpassen musst, je nachdem, wie Zoraxy seine Logs strukturiert und wo es sie speichert. Es kann nützlich sein, einige Beispielzeilen aus den Zoraxy-Logs zu analysieren, um sicherzustellen, dass die Regex korrekt funktioniert.
Zusätzlich könntest du erwägen, separate Jails für verschiedene Arten von Angriffen (z.B. Brute-Force auf das Admin-Interface, Scans nach verwundbaren Pfaden) einzurichten, indem du spezifischere Regex-Muster verwendest.
Erstelle ein Skript namens zoraxy_backup.sh:
#!/bin/bash
BACKUP_DIR="/path/to/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="zoraxy_backup_$DATE.tar.gz"
# Stoppe Zoraxy
sudo systemctl stop zoraxy
# Erstelle Backup
tar -czf $BACKUP_DIR/$BACKUP_FILE /opt/zoraxy/data
# Starte Zoraxy wieder
sudo systemctl start zoraxy
# Lösche alte Backups (älter als 30 Tage)
find $BACKUP_DIR -name "zoraxy_backup_*" -mtime +30 -delete
Mache das Skript ausführbar:
chmod +x zoraxy_backup.sh
Bearbeite die Crontab:
crontab -e
Füge hinzu:
0 2 * * * /path/to/zoraxy_backup.sh
Dies führt das Backup täglich um 2 Uhr morgens aus.
Erstelle ein Wiederherstellungsskript restore_zoraxy.sh:
#!/bin/bash
BACKUP_FILE=$1
if [ -z "$BACKUP_FILE" ]; then
echo "Bitte gib den Pfad zur Backup-Datei an."
exit 1
fi
# Stoppe Zoraxy
sudo systemctl stop zoraxy
# Sichere aktuelle Konfiguration
mv /opt/zoraxy/data /opt/zoraxy/data_old
# Stelle Backup wieder her
tar -xzf $BACKUP_FILE -C /
# Starte Zoraxy wieder
sudo systemctl start zoraxy
echo "Wiederherstellung abgeschlossen. Alte Konfiguration wurde als /opt/zoraxy/data_old gesichert."
Mache das Skript ausführbar:
chmod +x restore_zoraxy.sh
Zur Wiederherstellung:
./restore_zoraxy.sh /path/to/zoraxy_backup_YYYYMMDD_HHMMSS.tar.gz
Für die Konfiguration und Verwaltung von Zoraxy in Produktionsumgebungen
Diese umfassende Anleitung zu Zoraxy bietet dir einen tiefen Einblick in die Installation, Konfiguration und Verwaltung dieses leistungsstarken HTTP-Reverse-Proxys. Von grundlegenden Einrichtungsschritten bis hin zu fortgeschrittenen Sicherheitsaudits und Best Practices deckt sie alle wichtigen Aspekte ab.
Die detaillierten Beispielkonfigurationen und Optimierungstipps ermöglichen es dir, ob Einsteiger oder erfahrener Administrator, Zoraxy effektiv in verschiedenen Umgebungen einzusetzen. Mit diesem Wissen kannst du eine robuste, sichere und skalierbare Proxy-Infrastruktur aufbauen, die modernen Webanforderungen gerecht wird.
Denk daran: Regelmäßige Updates und Sicherheitsüberprüfungen bleiben entscheidend für den langfristigen Erfolg deiner Zoraxy-Installation.