Forum: PC Hard- und Software Proxy Caching Server


von Guest (Gast)


Lesenswert?

Hallo!

Bin Admin eines kleinen Netzwerkes in einer Einrichtung für 
Erwachsenenbildung.

In diesem Netzwerk sind durchschnittlich 8 aber höchstens 15 PCs 
angeschlossen.

Bis jetzt ist nichts spektakuläres im Netzwerk angehängt, nur Router, 
DLAN-Einspeisung und 2x DLAN-WLAN-Adapter und eben die PCs (eig. 
Laptops)

Nun werden auf diesen PCs oft die gleichen Sachen geschaut und die 
Laptops (mit Win 7) brauchen auch oft gleichzeitig ihre Updates.

Deshalb dachte ich, wie schön es doch wäre, einen kleinen Proxyserver zu 
installieren, der den Traffic Cache-t.

Und wenn er schon da ist, könnte der auch Druckserver und Fileserver 
spielen. (Für kleine Worddateien, und ähnliches nichts großartiges...)

Am liebsten würde ich einen Raspi oder BPi dafür einsetzen, wenn 
möglich.

Wenn nicht, sollte es aber trotzdem günstig bleiben und mit Linux 
laufen.

Danke für alle Tipps und Hinweise im Voraus!

Gruß!

von Guest (Gast)


Lesenswert?

PS: Was ich noch vergessen habe zu erwähnen, ist, dass die Laptops teils 
mitgebrachte, private Laptops sind und teils welche der 
Bildungseinrichtung, die aber auch in anderen Filialen eingesetzt 
werden.

Es soll also nichts so verstellt werden müssen (weder für's Browsen noch 
für die Updates), dass die PCs nur mehr in unserem Netzwerk 
funktionieren.

Am schönsten wäre eine Weiterleitung durch den Router oder ähnliches...

von J. L. (lindenbaum)


Lesenswert?

Caching von Windows-Updates und vielen Webseiten kannst du vergessen 
wenn diese via HTTPS ausgeliefert werden, da der Traffic verschlüsselt 
ist - und zwar für jeden Clienten einzeln. Ein Proxy hat da keine Chance 
irgendwas zu cachen außer du steigst quasi per Man-In-The-Middle mit 
eigenen Zertifikaten in diese Kommunikation ein (machen Firmen-Proxys 
so).

Wenn du Windows-Updates an viele PCs verteilen willst, beleibt 
eigentlich nur ein WSUS-Server.

Edith: Ohne Konfigurationsänderung ist ein WSUS aber nicht machbar.

: Bearbeitet durch User
von Roland P. (pram)


Lesenswert?

Ich hab früher dafür einen transparenten Squid verwendet. Jeglicher 
Traffic über Port 80 würde dabei mit IPtables über den Squid geroutet, 
somit war keine Einstellung am Endgerät erforderlich

Seit aber nun schon fast jede Seite HTTPs verwendet, bringt dies kaum 
noch was.

Für Windows  Updates eignet sich WSUS, dies läuft aber nicht am RPi.

Windows 10 hätte  glaub ich einen P2P Modus,  der die Updates dann im 
lokalen LAN verteilt.

Gruß Roland

von Guest (Gast)


Lesenswert?

Cache-t Squid auch die Windows Updates? (Ohne zutun, rein durch die 
Umleitung über den Squid Server durch den Router)

von TestX (Gast)


Lesenswert?

Nein...läuft auch alles über SSL.

Ganz ehrlich...für so eine Zielgruppe lohnt sich das nicht bzw. bringt 
aus o.g. Gründen nichts.

von oszi40 (Gast)


Lesenswert?

Proxy wird für diesen Zweck kaum helfen. Den kannst Du nur auf 
"Durchzug" schalten. Sinnvoller wäre evtl. eigener Webserver, der Deine 
Schulungsseiten speichert. Aber ein ganzes Klassenzimmer im WLAN hat uns 
im praktischen Betrieb nie glücklich gemacht. Schon die ständigen 
Updates brauchen Bandbreite. Bis die durch sind, ist Deine Stunde 
vorbei. Wer Funk kennt, nimmt Kabel.

von greg (Gast)


Lesenswert?

Ich würde wenn es ein Problem ist glatt während des Betriebes sowas wie 
Update-Server blocken. Die der Einrichtung gehörenden Laptops müssen 
dann natürlich zu anderen Zeiten mit Updates versorgt werden.

von Marek W. (ma_wa)


Lesenswert?

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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.