Inhaltsverzeichnis

Proxy squid

http://whatismyip.network/detect-isp-proxy-tool/

Eine Beispielhafte Minimal-Konfiguration, für einen komplett offenen Proxy, finden Sie hier: squid.conf

Unter Ubuntu liegt die Konfigurationsdatei hier: "/etc/squid/squid.conf"

Beschreibung

Proxy steht hinter Proxy

Wenn unser Proxy hinter einem oder mehreren anderen Proxy's steht, dann muss der oder die Proxy's in dieser Form eingetragen werden. Jeder nutzbare Proxy bekommt eine eigene Zeile:

### dieser Proxy steht auch nur hinter Proxy's (192.168.1.1, 192.168.1.2, 192.168.1.3)
cache_peer 192.168.1.1 parent 3128 3130
cache_peer 192.168.1.2 parent 3128 3130
cache_peer 192.168.1.3 parent 3128 3130

Zugriffsrechte

Die Zugriffsrechte werden als ACL's bezeichnet. Den einzelnen ACL's wird hier ein Name gegeben.

allgemeine ACLs

Diese braucht man praktisch immer.

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443          # https
acl SSL_ports port 873          # rsync
acl Safe_ports port 21          # ftp
acl Safe_ports port 80          # http
acl Safe_ports port 443         # https
acl Safe_ports port 873         # rsync
acl purge method PURGE
acl CONNECT method CONNECT

Definitionen

Auf diese Weise kann man recht komplexe Konfigurationen sehr übersichtlich halten.

Quellen werden definiert
acl hosts.allow src "/etc/squid/acls/hosts.allow"
acl hosts.deny src "/etc/squid/acls/hosts.deny"
acl hosts.admin src "/etc/squid/acls/hosts.admin"
acl localnet src "/etc/squid/acls/localnet"
acl kinder.allow src "/etc/squid/acls/kinder.allow"
Ziele werden definiert
acl whitelist.ip dst "/etc/squid/acls/whitelist.ip"
acl whitelist.url url_regex "/etc/squid/acls/whitelist.url"
acl blacklist.ip dst "/etc/squid/acls/blacklist.ip"
acl blacklist.url url_regex "/etc/squid/acls/blacklist.url"
acl kinder.url url_regex "/etc/squid/acls/kinder.url"

Zugriffsregeln

Hier werden entsprechend, die oben definierten Quellen bzw. Ziele, erlaubt oder verboten.

Die Regel-Zeilen werden von oben nach unten abgearbeitet und mit einem logischen ODER verknüpft. Regeln in einer Zeile dagegen werden mit einem logischen UND verknüpft.

allgemeine Regeln

Diese braucht man praktisch immer.

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost

spezielle Regeln

http_access deny hosts.deny
http_access allow hosts.admin
http_access deny blacklist.ip
http_access deny blacklist.url
http_access deny hosts.allow !whitelist.ip
http_access allow hosts.allow
http_access allow kinder.allow kinder.url
http_access deny all

allgemeiner Block

Dieses braucht man praktisch immer.

icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Package(.gz)*)$        0       20%     2880
refresh_pattern .               0       20%     4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /var/spool/squid

Speichernutzung

für den Squid nutzbarer Arbeitsspeicher

### soviel RAM darf der Proxy nutzen
cache_mem 256 MB

für den Squid nutzbarer Plattenplatz

### soviel Speicherplatz darf der Proxy auf der Platte nutzen
# 512: gesammter Plattenplatz in MB für den Cache
#  64: Anzahl der Verzeichnisse, die in erster Ebene
# 256: Anzahl der Verzeichnisse, die in zweiter Ebene
cache_dir ufs /var/spool/squid 512 64 256

der Squid nutzt keinen Plattenplatz

# ohne Cache, er darf keinen Speicherplatz auf der Platte nutzen
cache_dir null /var/spool/squid

Dateien des Regelwerkes

Als erstes müssen wir das Verzeichnis anlegen, in dem die Dateien des Regelwerkes abgelegt werden können:

# mkdir -p /etc/squid/acls/

/etc/squid/acls/hosts.allow

192.168.1.0/24

/etc/squid/acls/hosts.deny

192.168.1.13

/etc/squid/acls/localnet

10.0.0.0/8
192.168.0.0/16

/etc/squid/acls/whitelist.ip

192.168.1.100

/etc/squid/acls/whitelist.url

http://www.google.de
http://de.finance.yahoo.com/
http://de.wetter.yahoo.com/
http://www.daswetter.net/

/etc/squid/acls/blacklist.ip

192.168.1.200

/etc/squid/acls/blacklist.url

http://de.yahoo.com/

/etc/squid/acls/hosts.admin

Diese Rechner dürfen über all hin:

192.168.25.8 		# Laptop
192.168.25.18		# Workstation

/etc/squid/acls/kinder.allow

Diese Rechner werden von Kindern verwendet.

192.168.30.100		# Laptop
192.168.30.101		# Workstation

/etc/squid/acls/kinder.url

Auf diese Web-Seiten dürfen die Kinder zugreifen.

http://www.toggolino.de/ http://www.spielen.com/ http://www.fragfinn.de/ http://www.blinde-kuh.de/