Benutzer-Werkzeuge

Webseiten-Werkzeuge


squid.conf

squid.conf

vor dem ersten Start oder bei CFG-Änderungen muss dieser Befehl aufgerufen werden:

> squid -z
> squid -z -f /etc/squid/squid.conf

minimal

#
### Erlaubniss-Definitionen
acl MANAGER proto cache_object
acl LOKAL src 127.0.0.1/255.255.255.255
acl ALL src 0.0.0.0/0.0.0.0
acl ERLAUBT src 192.168.1.0/255.255.255.0
#
### Erlaubniss-Regeln
# alle dürfen alles
http_access allow ALL
#
# nur einige dürfen alles
http_access allow ERLAUBT
#
# der Rest darf nichts
http_access deny ALL
#
icp_access allow ALL
#
### unser Proxy-Port
http_port 3128
#
### weiteres
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
coredump_dir /tmp

standard

#
### Erlaubniss-Definitionen
acl MANAGER proto cache_object
acl LOKAL src 127.0.0.1/255.255.255.255
acl ALL src 0.0.0.0/0.0.0.0
acl ERLAUBT src 192.168.1.0/255.255.255.0
#
### Erlaubniss-Regeln
# alle dürfen alles
http_access allow ALL
#
# nur einige dürfen alles
http_access allow ERLAUBT
#
# der Rest darf nichts
http_access deny ALL
#
icp_access allow ALL
#
### unser Proxy-Port
http_port 3128
#
### weiteres
cache_mem 2048 MB
#
# Cache-Verzeichnis soll nur max. 10 GB groß werden
# cache_dir ufs Directory-Name   Mbytes L1 L2  [options]
cache_dir ufs /var/spool/squid   10240  16 256
#cache_dir null /var/spool/squid
#
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
#
memory_pools_limit 1024 MB
coredump_dir /tmp

https proxy für große dateien mit ssl bumping

wichtig: openssl version von squid wird benötigt, gnutls version funktioniert nicht (auf debian squid-openssl statt squid)

  • acl private_network definiert die lokalen ipv6 & ipv4 netze (ip ranges)
  • http_access allow private_network whitelisted die vorher definierte acl
  • http_access deny all am ende verbietet alles was bisher noch nicht gematched wurde (verwandelt sozusagen alle http_access allow zeilen in whitelist einträge)
  • https_port 3128 tls-cert=fullchain.pem tls-key=privkey.pem listened auf port 3128 als https proxy mit einem letsencrypt zertifikat (fullchain ist das vollständige zertifikat und privkey der private key)
  • cache_dir aufs /var/spool/squid 64000 16 256 setzt das cache dir mit dem speichertyp aufs (ufs aber moderner und non blocking), 64gb größe auf hdd/ssd, 16 sub dirs 1. grades, 256 sub dirs 2. grades
  • ssl_bump splice localhost https requests von localhost werden getunnelt
  • ssl_bump bump all alle anderen https requests werden entschlüsselt und neuverschlüsselt (erlaubt caching, aber sehr unsicher, nur in lokalen testumgebungen nutzen)
/etc/squid/squid.conf
include /etc/squid/conf.d/*.conf
 
shutdown_lifetime 10 seconds
 
acl private_network src fe80::/10			# rfc 4291 link local (ipv6)
acl private_network src 169.254.0.0/16			# rfc 3927 link local (ipv4)
acl private_network src fc00::/7			# rfc 4193 unique local (ipv6)
acl private_network src 10.0.0.0/8			# rfc 1918 private (ipv4)
acl private_network src 172.16.0.0/12			# rfc 1918 private (ipv4)
acl private_network src 192.168.0.0/16			# rfc 1918 private (ipv4)
 
acl safe_ports port 80			# http
acl safe_ports port 443			# https
 
acl secure_ports port 443
 
http_access deny !safe_ports
http_access deny CONNECT !secure_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow private_network
http_access deny to_localhost
http_access deny to_linklocal
http_access deny all
 
#ssl_bump splice localhost
ssl_bump bump all
 
#http_port 3128
https_port 3128 tls-cert=fullchain.pem tls-key=privkey.pem
 
coredump_dir /var/spool/squid
cache_dir aufs /var/spool/squid 64000 16 256

Testen:

  • in firefox konfigurieren und interaktiv testen
  • chromium mit cli args starten und interaktiv testen: chromium --incognito --proxy-server="https://proxy.example.com:3128
  • curl auf cli (http): time curl -IL http://httpforever.com -x https://proxy.example.com:3128
  • curl auf cli (https): time curl -L https://cloudflare.com/cdn-cgi/trace -x https://proxy.example.com:3128
  • yt-dlp auf cli (youtube video downloaden und so größeren cache testen): yt-dlp --prefer-free-formats --restrict-filenames --output "%(title)s.%(ext)s" https://youtu.be/dQw4w9WgXcQ --proxy https://proxy.example.com:3128 --force-overwrites
  • curl auf cli (debian iso downloaden und so größeren cache testen): time curl -LO https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.6.0-amd64-netinst.iso -x https://proxy.example.com:3128
/home/http/wiki/data/pages/squid.conf.txt · Zuletzt geändert: von david