Squid-Kit-1

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Installation

  • apt install squid-openssl
Installiert den Squid Proxy inkl. HTTPS-Unterstützung.
Ohne SSL-Unterstützung funktioniert CONNECT nicht korrekt.

Erste Schritte

Configdir

  • cd /etc/squid
Hier liegt die zentrale Konfigurationsdatei squid.conf.
Alle Anpassungen erfolgen in diesem Verzeichnis.

Default Konfiguration sichern

  • cp squid.conf squid.conf.org
Sichert die Originalkonfiguration.
Ermöglicht schnelles Zurücksetzen bei Fehlern.

Kommentare entfernen

  • grep "^[^#]" squid.conf.org > squid.conf
Entfernt Kommentare für bessere Übersicht.
Zeigt nur aktive Konfiguration.

Bereinigte squid.conf

acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/cache/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
Erlaubt allen internen Netzen Zugriff auf den Proxy.
Am Ende blockiert "deny all" alles nicht explizit Erlaubte.

Prinzip der ACL

  • Squid arbeitet von oben nach unten – erste passende Regel gewinnt.
Falsche Reihenfolge führt häufig zu unerwartetem Verhalten.
Debugging beginnt fast immer hier.

Konfiguration anpassen (eigene Netze)

Ziel ist es, Zugriff gezielt zu steuern.
Die Default-Konfiguration ist zu offen.

Neue squid.conf

# acl localnet src 10.0.0.0/8
# acl localnet src 172.16.0.0/12
# acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
acl it-dmz src 10.88.213.0/24
acl it-lan src 172.26.213.0/24
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
# http_access allow localnet
http_access allow it-dmz
http_access allow it-lan
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/cache/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
RFC1918 wurde entfernt, damit nicht jeder Zugriff bekommt.
Nur definierte Netze dürfen den Proxy nutzen.

First run

läuft squid?

  • ss -lntp | grep 3128
Zeigt ob Squid auf Port 3128 lauscht.
Kein Output = Dienst läuft nicht.

starten

  • systemctl start squid
Startet den Proxy-Dienst.
Fehler stehen im Journal.

Kontrolle

  • tail -f /var/log/squid/access.log
Zeigt Live-Traffic durch den Proxy.
Wichtig zum Debuggen.
TCP_MISS bedeutet kein Cache wurde genutzt.
CONNECT zeigt HTTPS-Tunnelverkehr.

Hinweis

  • HTTPS wird nur getunnelt (CONNECT)
  • Caching ist heute meist irrelevant
Für Inhaltsanalyse wäre SSL-Bump nötig.
In der Praxis dient Squid oft nur als Access-Proxy.