- Wie richte ich einen sicheren und effizienten Webproxy unter Ubuntu 24.04 ein?
- Warum einen Webproxy verwenden?
- Arten von Proxys und deren Verwendung
- Serveranforderungen und Vorbereitung
- Installation und Konfiguration von Squid (HTTP/HTTPS-Forward-Proxy)
- Protokollierung und Protokollverwaltung
- SOCKS5 mit Dante einrichten
- Konfiguration von Nginx als Reverse-Proxy und TLS-Terminierung
- Firewall, Sicherheit und Überwachung
- Praktische Tipps für spezifische Anwendungen (Handel, Gaming, KI, Rendering)
- Betriebs- und Wartungsarbeiten
- Warum sollte man Cloud-Infrastruktur mit mehreren Standorten nutzen?
- Abschließende Sicherheitsempfehlungen
- Abschluss
- Häufig gestellte Fragen
Wie richte ich einen sicheren und effizienten Webproxy unter Ubuntu 24.04 ein?
In dieser Bedienungsanleitung führen wir Sie Schritt für Schritt durch die Installation, Konfiguration und Absicherung eines Webproxys auf einem Server. Ubuntu 24.04 Erläuterung. Beispiele basierend auf Tintenfisch (HTTP/HTTPS-Forward-Proxy), Dante (SOCKS5) und Nginx (Reverse-Proxy und TLS-Terminierung) sowie Firewall-Konfiguration, Authentifizierung, Protokollierung und Leistungsoptimierung.
Warum einen Webproxy verwenden?
Webproxys bieten Vorteile wie: Zugangskontrolle, Content-Caching Um die Bandbreite zu reduzieren, IP-Verbergung Der Kunde und Verkehrsverteilung Bei sensiblen Anwendungen wie Handel oder Glücksspiel kann es sinnvoll sein, den Proxy näher am Zielort zu platzieren. Latenz (Ping) Reduzieren.
Arten von Proxys und deren Verwendung
Zu den gebräuchlichsten Proxy-Typen gehören:
- Forward-Proxy (z. B. Squid)Für den Internetzugang von Clients; geeignet für Steuerung, Zwischenspeicherung und Überwachung.
- Reverse-Proxy (z. B. Nginx): Sitzt vor Webservern, um TLS, Lastausgleich und Caching durchzuführen.
- SOCKS5 (Dante oder SSH -D): Untere Schicht, geeignet für verschiedene Anwendungen und TCP/UDP-Datenverkehr.
- Transparenter Proxy: Zum Abfangen des Netzwerkverkehrs (erfordert NAT/Weiterleitungsänderungen).
Serveranforderungen und Vorbereitung
Aktualisieren Sie zunächst das System und installieren Sie die Basispakete. Die Pakete sollten je nach Bedarf ausgewählt werden; für SOCKS5 verwenden Sie dante-server Und für TLS von certbot Wir verwenden.
sudo apt update && sudo apt upgrade -y
sudo apt install squid apache2-utils dante-server nginx certbot nftables fail2ban -yInstallation und Konfiguration von Squid (HTTP/HTTPS-Forward-Proxy)
In diesem Abschnitt werden die grundlegende Konfiguration, die Aktivierung von HTTPS (CONNECT), die Authentifizierung, ACLs und das Caching erläutert.
Grundkonfiguration
So installieren Sie Squid:
sudo apt install squid -yBevor Sie die Konfigurationsdatei ändern, erstellen Sie eine Sicherungskopie:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bakBeispiel einer einfachen Konfigurationsdatei (/etc/squid/squid.conf):
http_port 3128
# limit logging size
access_log /var/log/squid/access.log squid
# ACLs
acl localhost src 127.0.0.1/32
acl localnet src 10.0.0.0/8 # internal network
acl allowed_ips src 203.0.113.0/24 # example allowed client range
# permissions
http_access allow localhost
http_access allow allowed_ips
http_access deny all
# caching
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/spool/squid 10000 16 256
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320
# DNS
dns_v4_first onNach dem Speichern der Konfiguration:
sudo systemctl restart squid
sudo systemctl enable squidHTTPS (CONNECT) und TLS aktivieren
Für HTTPS-Tunneling verwendet Squid die CONNECT-Berechtigung. Beispiel einer ACL zum Erlauben von CONNECT:
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
http_access allow SSL_portsAuthentifizierung (Basis/LDAP)
Für die Basisauthentifizierung mit htpasswd:
sudo apt install apache2-utils -y
sudo htpasswd -c /etc/squid/passwords usernameFügen Sie in der squid.conf Folgendes hinzu:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticatedACL und Zugriffsbeschränkungen
Gängige Beispiele:
- Beschränkung nach IP-Adresse: acl allowed_ips src xxxx/xx
- Domänen einschränken: acl blocked_sites dstdomain .example.com
- Zeitlimit: acl Öffnungszeiten: Mo-Fr 08:00-18:00
Beispiel für ablehnende Websites:
acl blocked_sites dstdomain .youtube.com .facebook.com
http_access deny blocked_sitesZwischenspeicherung und Leistungsoptimierung
Wichtige Cache-Einstellungen:
- Cache-Speicher: RAM-Speicher zum Zwischenspeichern kleiner Objekte.
- Cache-Verzeichnis: Speicherort auf der Festplatte für den großen Inhaltscache.
- maximale_ObjektgrößeMaximale Größe des speicherbaren Objekts.
- Aktualisierungsmuster: Cache-Gültigkeitskontrolle.
Beispiel für höheres Verkehrsaufkommen:
cache_mem 512 MB
maximum_object_size 20 MB
cache_dir ufs /var/spool/squid 50000 16 256Bei hohem Datenverkehr sollten Sie NVMe- und High-IOPS-Festplatten oder LVM verwenden.
Protokollierung und Protokollverwaltung
Tintenfisch-Logs /var/log/squid/ Beispielkonfiguration für logrotate:
sudo nano /etc/logrotate.d/squid
/var/log/squid/*.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 640 proxy proxy
sharedscripts
postrotate
systemctl reload squid >/dev/null 2>&1 || true
endscript
}Verwenden Sie Tools wie ELK oder Grafana+Prometheus, um Protokolle zu analysieren.
SOCKS5 mit Dante einrichten
Für Anwendungen, die SOCKS benötigen, Dante Das ist eine gute Option.
Installation und Einrichtung:
sudo apt install dante-server -yBeispiel /etc/danted.conf:
logoutput: syslog
internal: 0.0.0.0 port = 1080
external: eth0
method: username none
user.privileged: proxy
user.notprivileged: nobody
client pass {
from: 203.0.113.0/24 to: 0.0.0.0/0
log: connect disconnect error
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
log: connect disconnect error
}sudo systemctl restart danted
sudo systemctl enable dantedBeispieltest mit curl:
curl --socks5-hostname 127.0.0.1:1080 https://checkip.amazonaws.comKonfiguration von Nginx als Reverse-Proxy und TLS-Terminierung
Nginx kann verwendet werden, um die Proxy-Verwaltungsseite oder die TLS-Terminierung für Anwendungen hinter dem Proxy zu hosten.
Beispiel eines Serverblocks:
server {
listen 80;
server_name proxy.example.com;
location / {
proxy_pass http://127.0.0.1:3128;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}So erhalten Sie ein TLS-Zertifikat mit Certbot:
sudo certbot --nginx -d proxy.example.comFirewall, Sicherheit und Überwachung
Zur Gewährleistung der Sicherheit sollten Sie nftables oder ufw, fail2ban sowie Protokollierung und Überwachung einsetzen.
Beispiel für grundlegende nftables-Regeln:
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0 ; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input tcp dport 3128 accept # squid
sudo nft add rule inet filter input tcp dport 1080 accept # dante
sudo nft add rule inet filter input icmp type echo-request acceptImplementieren Sie Leistungsüberwachung und Angriffserkennung mit geeigneten Werkzeugen.
Praktische Tipps für spezifische Anwendungen (Handel, Gaming, KI, Rendering)
Für Händler: Wählen Sie einen Server, der sich in der Nähe des Broker-Servers befindet; verwenden Sie eine feste ausgehende IP-Adresse für die Whitelist und aktivieren Sie Anti-DDoS, wenn die Verbindung kritisch ist.
Für Gamer: Wählen Sie einen VPS mit schnellem Netzwerk und einem Standort in der Nähe des Spielservers und aktivieren Sie BBR:
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbrUm die Einstellungen dauerhaft zu speichern, stellen Sie die Werte auf /etc/sysctl.conf Hinzufügen.
Für KI und Rendering: Nutzen Sie größere Cache- und NVMe-Festplatten zum Herunterladen von Datensätzen und setzen Sie Cloud-GPUs für verteilte Inferenz ein.
Betriebs- und Wartungsarbeiten
Wichtige Wartungstipps:
- Regelmäßige Paketaktualisierungen: sudo apt update && sudo apt upgrade -y
- Sicherheitspatches, Protokollprüfung und Konfigurationssicherung.
- Nutzen Sie Automatisierungstools wie Ansible für eine schnelle Konfiguration und ein schnelles Rollback.
- Testen Sie den Dienst regelmäßig mit curl/wget und richten Sie eine Uptime-Überwachung ein.
Warum sollte man Cloud-Infrastruktur mit mehreren Standorten nutzen?
Durch den Einsatz von Proxys in der Nähe von Nutzern oder Zielservern werden die Ping-Zeiten verkürzt und eine bessere geografische Kontrolle ermöglicht. Der Einsatz von CDN, BGP und Anti-DDoS-Schutz kann Leistung und Sicherheit verbessern.
Abschließende Sicherheitsempfehlungen
Wichtige Sicherheitshinweise:
- Lassen Sie einen öffentlichen Proxy niemals ohne Authentifizierung geöffnet.
- IP- und zeitbasierte Beschränkungen anwenden.
- Überwachung und Alarmierung sind unerlässlich, um Missbrauch aufzudecken.
- Nutzen Sie Anti-DDoS-Schutz und private Netzwerke für sensible Anwendungen.
Abschluss
In dieser Anleitung werden Installation und Konfiguration beschrieben. Tintenfisch Für HTTP/HTTPS einrichten Dante Für SOCKS5 und Einrichtung Nginx Es behandelte Reverse-Proxy und TLS. Außerdem wurden Firewalls, Protokolle und praktische Tipps für Handel, Gaming und KI behandelt.









