SysAdmin-Leitfaden · 1 Min Lesezeit

Squid-Proxy-Setup und -Konfiguration

Squid ist der klassische Linux HTTP/HTTPS-Caching-Proxy, der unzählige Unternehmensgateways antreibt. Hier ist eine saubere Installation, eine zugriffskontrollierte squid.conf, Authentifizierung und die CONNECT-Regel, die HTTPS durchlässt.

Wofür Squid ist

Squid ist ein ausgerechter, funktionsreicher Caching-Proxy für HTTP und HTTPS. Im Gegensatz zu dem kleinen 3proxy oder dem nur SOCKS-fähigen Dante ist Squid auf Webverkehr ausgelegt: Es kann Antworten cachen, nach Zugriffskontrolllisten filtern, Benutzer authentifizieren und detailliert protokollieren. Das macht es zur Standardwahl für ein unternehmensinternes Gateway, eine Caching-Schicht für ein stark frequentiertes Netzwerk oder einen kontrollierten HTTP CONNECT-Proxy. Es unterstützt kein SOCKS – dafür würden Sie 3proxy oder Dante verwenden (siehe bauen Sie Ihren eigenen Proxy).

Die beiden Dinge, über die Neulinge immer stolpern, sind die Zugriffskontrolle (Squid verweigert standardmäßig alles) und HTTPS (was die Erlaubnis der CONNECT-Methode benötigt). Die folgende Konfiguration behandelt beides.

Eine gesicherte squid.conf

Authentifizierter Forward-Proxy auf Port 3128 mit einer ACL, CONNECT für HTTPS erlaubt und sichere Ports eingeschränkt. Passen Sie die Pfade für Ihre Distribution an.

bash
apt update && apt install -y squid apache2-utils
# create a password file for basic auth:
htpasswd -c /etc/squid/passwd USER   # prompts for password

cat > /etc/squid/squid.conf <<'CFG'
http_port 3128

# --- authentication ---
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm s4m-proxy
acl authenticated proxy_auth REQUIRED

# --- safe ports / CONNECT for HTTPS ---
acl SSL_ports port 443
acl Safe_ports port 80 443 21 1025-65535
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# --- allow only authenticated users, deny the rest ---
http_access allow authenticated
http_access deny all

# --- small cache ---
cache_dir ufs /var/spool/squid 1000 16 256
coredump_dir /var/spool/squid
CFG

squid -k parse            # validate config
systemctl restart squid

# test:  curl -x http://USER:PASS@YOUR.VPS.IP:3128 https://api.ipify.org

ACLs, HTTPS und ehrliche Grenzen

Die Stärke von Squid ist sein ACL-Modell: Sie erlauben oder verweigern den Zugriff basierend auf der Quell-IP, dem Ziel, dem Port, der Tageszeit oder dem authentifizierten Benutzer, und die Regeln werden von oben nach unten ausgewertet, wobei der erste Treffer gewinnt. Die http_access deny all-Zeile am Ende ist entscheidend — ohne eine Standardverweigerung wird ein falsch konfiguriertes Squid zu einem offenen Relay. Für HTTPS denken Sie daran, dass Squid CONNECT verwendet, um verschlüsselten Verkehr zu tunneln, den es nicht lesen kann; die SSL_ports-ACL beschränkt, welche Ports dieses Tunnel erreichen darf. (Squid kann auch TLS-Interception mit einer lokalen CA durchführen, aber für einen einfachen Forward-Proxy möchten Sie das nicht.)

Wenn Sie Squid selbst betreiben, haben Sie einen kontrollierten Datacenter-Ausgang und umfangreiche Protokollierung, müssen jedoch die Wartung übernehmen. Wenn Sie nur einen authentifizierten HTTP-Ausgang benötigen, ohne einen Server zu betreiben, bietet der s4m HTTP Proxy auf proxy.s4m.online:3128 genau das, mit einer dedizierten IP-Option und API. Wenn eine Anfrage 407 zurückgibt, überprüfen Sie die Anmeldeinformationen — siehe die 407-Anleitung.

Share this page
FAQ

Fragen, beantwortet

Warum blockiert Squid nach der Installation meinen gesamten Datenverkehr?

Squid verweigert standardmäßig alles, bis Sie http_access allow-Regeln hinzufügen. Sie benötigen eine ACL, die Ihren Benutzern oder Quell-IP-Adressen entspricht, und eine Erlauben-Zeile über dem endgültigen Verweigern aller. Die Standardverweigerung ist eine Sicherheitsfunktion, die verhindert, dass Squid zu einem offenen Relay wird.

Wie geht Squid mit HTTPS um?

Durch die CONNECT-Methode: Squid öffnet einen Roh-Tunnel zum Ziel auf Port 443 und leitet verschlüsselte Bytes weiter, ohne sie zu lesen. Du musst CONNECT zu deiner SSL_ports ACL erlauben. Squid kann auch TLS mit einer lokalen CA abfangen, aber ein einfacher Forward-Proxy benötigt das nicht.

Überspringen Sie die Wartung

Führe Squid für volle Kontrolle aus oder weise deinen Client auf den authentifizierten s4m HTTP-Proxy auf Port 3128 für einen verwalteten Datacenter-Ausgang — mit einer dedizierten IP und API, wenn du sie benötigst.

Menschen fanden diese Seite durch die Suche nach

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.