Moin moin,
Die Idee mit dem Proxyserver ist gut, allerdings vergiss hierfür bitte
den RasPi, der ist für andere Dinge besser geeignet.
Besorge dir eine nicht zu alte X86er Hardware mit 2-4GB RAM und einer
großen ODER schnellen (SSD) Festplatte. Wenn Du etwas Geld übrig hast,
wäre diese Hardware nicht die Schlechteste.
http://www.amazon.de/PC-Engines-Nachfolger-erfolgreichen-ALIX-Board/dp/B00NXU0R7A
Die ist zwar primär als Firewall besser geeignet, kann aber auch gut für
eine kombinierte Firewall/Proxylösung genutzt werden. Besser geeignet
wäre ggf. ein kleiner Intel mit zwei Kernen, 2-4GB RAM, 500GB HDD oder
250GB SSD und mindestens 2x Ethernet.
Auf der Appliance installierst du dir Pfsense (https://www.pfsense.org/)
und richtest dieses als Firewall mit zwei Schnittstellen ein (WAN/LAN).
Danach installierst du als Modul den Proxyserver Squid und richtest
diesen als transparenten Proxy ein.
https://doc.pfsense.org/index.php/Setup_Squid_as_a_Transparent_Proxy
Wenn das durch ist, und der Pfsense als Gateway in deinem Netzwerk
fungiert, hast du einen transparenten Proxyserver, der ohne Umstellungen
der Clients genutzt wird. Hier fehlen danach noch einige Einstellungen
um den Proxy gierig einzustellen, aber dazu später mehr.
Denn jetzt ist es an der Zeit das Squidguard-Modul zu installieren und
mit einer Filterliste einzurichten.
https://doc.pfsense.org/index.php/SquidGuard_package
https://www.howtoforge.com/pfsense-squid-squidguard-traffic-shaping-tutorial
Im letzten Dokument findest du auch die Einstellung um Downloads zu
drosseln. Als Filterliste für den SquidGuard empfehle ich dir die
Blacklist http://www.shallalist.de/ zur Installation. Hier bitte die
Lizenzbedingungen beachten.
Da jetzt sicherlich die Ersten aufgeheult haben, warum man einen Filter
installiert, hier der Grund. Du aktivierst mindestens die Filterliste
"ad" um Werbung und Trackingpoints zu filtern und damit Bandbreite und
Verbindungsaufbau zu reduzieren. Alles andere bleibt dir überlassen,
lass dir dort auch nicht reinreden.
Wenn das bis hierher alles funktioniert, hast du schon mal einen Proxy,
der mindestens 50-80% der sinnlosen Neuverbindungen unterdrückt und
schon kleiner Sachen zwischenspeichert. Jetzt kommen noch einige
Optimierungen.
Zuerst solltest die maximale Größe der zu speichernden Elemente hoch
setzten. Dieser Wert ist abhängig vom Ziel und von der Größe deiner
Festplatte. Werte zwischen 128MB und 750MB (CD-Größe) haben sich bei mir
bewährt.
Hier eine Custom ACL für den Squid, die du kopieren und mit der du
starten kannst:
1 | icap_service_failure_limit -1
|
2 | # Windows Updates Cachen
|
3 | refresh_pattern ([^.]+.|)(download|(windows|)update|).(microsoft.|)com/.*\.(cab|exe|msi|msp) 4320 100% 43200 reload-into-ims
|
4 | refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|asf|wma|dat|zip)$ 220000 100% 259200
|
5 | refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|asf|wma|dat|zip)$ 220000 100% 259200
|
6 | refresh_pattern -i windows.com/.*\.(cab|exe|ms[i|u|f]|asf|wma|dat|zip)$ 220000 100% 259200
|
7 | range_offset_limit -1
|
8 |
|
9 | # MAC Updates Cachen
|
10 | refresh_pattern ([^.]+.|)(download|adcdownload).(apple.|)com/.*\.(pkg|dmg) 4320 100% 43200 reload-into-ims
|
11 |
|
12 | # Diverse AV-Updates
|
13 | refresh_pattern ([^.]+.|)avg.com/.*\.(bin) 4320 100% 43200 reload-into-ims
|
14 | refresh_pattern ([^.]+.|)spywareblaster.net/.*\.(dtb) 4320 100% 64800 reload-into-ims
|
15 | refresh_pattern ([^.]+.|)symantecliveupdate.com/.*\.(zip|exe) 43200 100% 43200 reload-into-ims
|
16 | refresh_pattern ([^.]+.|)avast.com/.*\.(vpu|vpaa) 4320 100% 43200 reload-into-ims
|
17 |
|
18 |
|
19 | refresh_pattern -i \.(jpg|gif|png|webp|jpeg|ico|bmp|tiff|bif|ver|pict|pixel|bs)$ 220000 90% 300000 override-expire ignore-no-store ignore-private ignore-auth refresh-ims
|
20 | refresh_pattern -i \.(js|css|class|swf|wav|dat|zsci|do|ver|advcs|woff|eps|ttf|svg|svgz|ps|acsm|wma)$ 220000 90% 300000 override-expire ignore-no-store ignore-private ignore-auth refresh-ims
|
21 | refresh_pattern -i \.(html|htm|crl)$ 220000 90% 259200 override-expire ignore-no-store ignore-private ignore-auth refresh-ims
|
22 | refresh_pattern -i \.(xml|flow)$ 0 90% 100000
|
23 | refresh_pattern -i \.(json)$ 1440 90% 5760
|
24 | refresh_pattern -i ^http:\/\/liveupdate.symantecliveupdate.com.*\(zip)$ 0 0% 0
|
25 | refresh_pattern -i \.(bin|deb|rpm|drpm|exe|zip|tar|tgz|bz2|ipa|bz|ram|rar|bin|uxx|gz|crl|msi|dll|hz|cab|psf|vidt|apk|wtex|hz|ipsw)$ 220000 90% 500000 override-expire ignore-no-store ignore-private ignore-auth refresh-ims
|
26 | refresh_pattern -i \.(ppt|pptx|doc|docx|pdf|xls|xlsx|csv|txt)$ 220000 90% 259200 override-expire ignore-no-store ignore-private ignore-auth refresh-ims
|
27 | refresh_pattern -i ^ftp: 66000 90% 259200
|
28 | refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
|
29 | refresh_pattern -i . 0 90% 259200
|
Die ist sicherlich nicht perfekt, vielleicht gibt es hier ja weitere
Tipps dazu oder du nimmst es als Einstiegspunkt für Google.
Zum Abschluss solltest du auch noch Firewall konfigurieren und nur
Dienste nach außen zulassen, die gewollt sind. Also SMTPS, IMAPS. POP3S,
SSH, ...
Den Lohn dieser Mühe konnte ich erst letztens wieder bei einem Kunden
(Schulungsunternehmen) sehen. 2Mbit Leitung und 30 bis 60 Teilnehmer im
Netzwerk. Nachdem alle über den Proxy gezwungen werden, sind zwar große
Downloads weiterhin ein Problem, aber man kann wieder im Internet surfen
und wartet sich keinen Wolf.
In den Einstellungen oben ist auch das Cachen von Windows und
MAC-Updates enthalten. Lass dir hier nichts falsches erzählen, beide
Unternehmen liefern derzeitig die Updates über HTTP aus und das wird
auch noch eine Weile so bleiben.