====== 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/