Windows Update Cache



  • Guten Tag,

    da mir mittlerweile beim jedem Microsoft Update Day immer die Leitung gesprengt wird, wollte ich mal sehen wie es mit einem Update Cache für die Windows Updates aussieht. Gefunden habe ich leider nur ein etwas älteres Howto im englischen Forum, was nicht mehr ganz aktuell schien.

    Gibt es da mittlerweile Neuerungen im Bezug auf Squid? Hat das jemand zufällig die letzte Zeit konfiguriert und könnte mir schildern wie es geht? Auch ein aktuelles Howto würde schon reichen.

    Seitdem bei Windows 10 per default nur automatische Updates gehen, ist die Leitung regelmäßig dicht. Aber ganz auf Updates möchte man wiederum auch nicht verzichten. Ich hoffe jemand kann mir da helfen.

    Gruß


  • LAYER 8 Moderator

    Gehts dabei um privaten Bereich? Ansonsten wäre im Firmenumfeld ggf ein WSUS anzuraten um auch die Updates besser zu steuern.

    Gruß



  • Nee geht eher um Firma. Ich habe leider keine Domäne und das Geld für eine Windows Server Lizenz will mir auch keiner geben. Bisher konnte ich dafür aber auch keine Alternative finden.

    Man muss wissen: In meiner Firma wird eine strikte Open-Source-Linie gefahren. Aber auf Windows als Client und Office will man auch nicht verzichten. ::)



  • Hey, wir haben in einem anderen Fred ja schon mal kurz drüber gesprochen, bei unserer kleinen Firma klappt das bislang ganz gut.

    Ich habe im squid dynamischen content aktiviert und einen 3 zeiler drin,  der für Microsoft.com und ähnliche URLs dann sämtliche Pakete cached. Also ein refresh pattern.

    Das im squid wiki empfohlene fortsetzen jeder beliebigen Datei musste ich jedoch entfernen.

    http://wiki.squid-cache.org/SquidFaq/WindowsUpdate

    Es hat dazu geführt das die Leitung permanent unter Volllast lief weil jeder Murks von überall zu ende geladen wurde selbst wenn kein PC mehr in Betrieb war  :o

    Derzeit werden von den meisten Updates die meisten "Abschnitte" scheinbar aus dem Cache bedient. Zumindest scheint es so, da die Updates recht ruckartig fertig werden. Ich werde das bei Gelegenheit mal auswerten mit Lightsquid oder so.

    Grüße



  • Hallo sebden.

    kannst du dein refresh pattern einmal posten? Ich suche seit Jahren eine gute conf. die funkioniert für Windows Updatet



  • Hallo,
    ich probiere auch schon einige Zeit rum. Um hier voranzukommen stelle ich meine squid.conf zur Diskussion.
    Hardware APU2C4 mit mSATA 60Gb im privaten Umfeld.

    # This file is automatically generated by pfSense
    # Do not edit manually !
    
    http_port 192.168.1.1:3128
    http_port 192.168.178.1:3128
    http_port 127.0.0.1:3128 intercept
    icp_port 0
    digest_generation off
    dns_v4_first on
    pid_filename /var/run/squid/squid.pid
    cache_effective_user squid
    cache_effective_group proxy
    error_default_language en
    icon_directory /usr/local/etc/squid/icons
    visible_hostname localhost
    cache_mgr admin@localhost
    access_log /var/squid/logs/access.log
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    netdb_filename /var/squid/logs/netdb.state
    pinger_enable on
    pinger_program /usr/local/libexec/squid/pinger
    
    logfile_rotate 0
    debug_options rotate=0
    shutdown_lifetime 3 seconds
    # Allow local network(s) on interface(s)
    acl localnet src  192.168.1.0/24 192.168.178.0/24
    forwarded_for transparent
    uri_whitespace strip
    
    refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    refresh_pattern -i windows.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    refresh_pattern ([^.]+.|)avast.com/.* 4320 100% 43200 reload-into-ims
    refresh_pattern ([^.]+.|)avg.com/.*\.(bin) 4320 100% 43200 reload-into-ims
    refresh_pattern -i .*\.microsoft\.com\/filestreamingservice\/files\/.* 4320 80% 43200 reload-into-ims
    refresh_pattern -i .*\.marketplacecontent\.windowsphone.com\/public\/.* 4320 80% 43200 reload-into-ims
    
    cache_mem 2048 MB
    maximum_object_size_in_memory 1024 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    minimum_object_size 0 KB
    maximum_object_size 5000 MB
    cache_dir ufs /var/squid/cache 6000 16 256
    offline_mode off
    cache_swap_low 90
    cache_swap_high 95
    cache allow all
    # Add any of your own refresh_pattern entries above these.
    refresh_pattern ^ftp:    1440  20%  10080
    refresh_pattern ^gopher:  1440  0%  1440
    refresh_pattern -i (/cgi-bin/|\?) 0  0%  0
    refresh_pattern .    0  20%  4320
    
    #Remote proxies
    
    # Setup some default acls
    # ACLs all, manager, localhost, and to_localhost are predefined.
    acl allsrc src all
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 444 3128 3129 1025-65535 
    acl sslports port 443 563 444 
    
    acl purge method PURGE
    acl connect method CONNECT
    
    # Define protocols used for redirects
    acl HTTP proto HTTP
    acl HTTPS proto HTTPS
    acl whitelist dstdom_regex -i "/var/squid/acl/whitelist.acl"
    http_access allow manager localhost
    
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports
    
    # Always allow localhost connections
    http_access allow localhost
    
    quick_abort_min 0 KB
    quick_abort_max 0 KB
    quick_abort_pct 70
    request_body_max_size 0 KB
    reply_body_max_size 6291456 KB allsrc 
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    delay_access 1 allow allsrc
    
    # Reverse Proxy settings
    
    deny_info TCP_RESET allsrc
    
    # Package Integration
    url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf
    url_rewrite_bypass off
    url_rewrite_children 16 startup=8 idle=4 concurrency=0
    
    # Custom options before auth
    
    # Always allow access to whitelist domains
    http_access allow whitelist
    # Setup allowed ACLs
    # Allow local network(s) on interface(s)
    http_access allow localnet
    # Default block all to be sure
    http_access deny allsrc
    
    icap_enable on
    icap_send_client_ip on
    icap_send_client_username on
    icap_client_username_encode off
    icap_client_username_header X-Authenticated-User
    icap_preview_enable on
    icap_preview_size 1024
    
    icap_service service_avi_req reqmod_precache icap://127.0.0.1:1344/squid_clamav bypass=off
    adaptation_access service_avi_req allow all
    icap_service service_avi_resp respmod_precache icap://127.0.0.1:1344/squid_clamav bypass=on
    adaptation_access service_avi_resp allow all
    

    Es funktioniert ganz gut aber nicht optimal. Manche Updates über microsoft.com/filestreamingservice/files werden nicht geladen. Die Einträge von Avast und AVG sind notwerndig für die Virenscanner im Haus.



  • hm meinige sieht so ähnlich aus.
    Woher weist du denn das der Cache funktioniert  ?
    Ich schaue mir zwar immer die HIT an aber wenn ich WAN Eingang und LAN Ausgang anschaue, bin ich nur um einbar MB in Vorsprung  ???
    Obwohl Lightsquid mir was anderes zeigt

    		Accessed site	                      Connect	 Bytes	    %
    1	who	7.tlu.dl.delivery.mp.microsoft.com	18 922	10.7 G	16.0%
    2	who	download.windowsupdate.com	        26 786	  6.5 G	  9.8%
    3	who	2.tlu.dl.delivery.mp.microsoft.com	10 588	  6.4 G	  9.6%
    4	who	au.download.windowsupdate.com	10 246	  5.4 G	  8.0%
    5	who	fullproduct.download.microsoft.com	3	          5.2 G	   7.7%
    
    

    squid.conf:

    # This file is automatically generated by pfSense
    # Do not edit manually !
    
    http_port 10.0.0.251:3128
    http_port 127.0.0.1:3128 intercept
    icp_port 0
    dns_v4_first off
    pid_filename /var/run/squid/squid.pid
    cache_effective_user squid
    cache_effective_group proxy
    error_default_language de
    icon_directory /usr/local/etc/squid/icons
    visible_hostname pfsense
    cache_mgr 
    access_log /var/squid/logs/access.log
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    netdb_filename /var/squid/logs/netdb.state
    pinger_enable on
    pinger_program /usr/local/libexec/squid/pinger
    
    logfile_rotate 7
    debug_options rotate=7
    shutdown_lifetime 3 seconds
    # Allow local network(s) on interface(s)
    acl localnet src  10.0.0.0/24
    forwarded_for on
    uri_whitespace strip
    
    acl windowsupdate dstdomain windowsupdate.microsoft.com
    acl windowsupdate dstdomain .update.microsoft.com
    acl windowsupdate dstdomain download.windowsupdate.com
    acl windowsupdate dstdomain redir.metaservices.microsoft.com
    acl windowsupdate dstdomain images.metaservices.microsoft.com
    acl windowsupdate dstdomain c.microsoft.com
    acl windowsupdate dstdomain www.download.windowsupdate.com
    acl windowsupdate dstdomain wustat.windows.com
    acl windowsupdate dstdomain crl.microsoft.com
    acl windowsupdate dstdomain sls.microsoft.com
    acl windowsupdate dstdomain productactivation.one.microsoft.com
    acl windowsupdate dstdomain ntservicepack.microsoft.com
    
    acl CONNECT method CONNECT
    acl wuCONNECT dstdomain www.update.microsoft.com
    acl wuCONNECT dstdomain sls.microsoft.com
    
    http_access allow CONNECT wuCONNECT localnet
    http_access allow windowsupdate localnet
    
    refresh_pattern -i microsoft.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    refresh_pattern -i windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    refresh_pattern -i windows.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
    range_offset_limit 200 MB windowsupdate
    maximum_object_size 200 MB
    quick_abort_min -1
    
    refresh_pattern \^ftp:           1440    20%     10080
    refresh_pattern \^gopher:        1440    0%      1440
    refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
    refresh_pattern .               0       20%     4320
    
    cache_mem 3500 MB
    maximum_object_size_in_memory 3072 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    minimum_object_size 0 KB
    maximum_object_size 6000 MB
    cache_dir ufs /HDD1/cache 300000 16 256
    offline_mode off
    cache_swap_low 90
    cache_swap_high 95
    cache allow all
    # Add any of your own refresh_pattern entries above these.
    refresh_pattern ^ftp:    1440  20%  10080
    refresh_pattern ^gopher:  1440  0%  1440
    refresh_pattern -i (/cgi-bin/|\?) 0  0%  0
    refresh_pattern .    0  20%  4320
    
    #Remote proxies
    
    # Setup some default acls
    # ACLs all, manager, localhost, and to_localhost are predefined.
    acl allsrc src all
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 3129 1025-65535 
    acl sslports port 443 563  
    
    acl purge method PURGE
    acl connect method CONNECT
    
    # Define protocols used for redirects
    acl HTTP proto HTTP
    acl HTTPS proto HTTPS
    http_access allow manager localhost
    
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports
    
    # Always allow localhost connections
    http_access allow localhost
    
    quick_abort_min 0 KB
    quick_abort_max 0 KB
    request_body_max_size 0 KB
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    # Throttle extensions matched in the url
    acl throttle_exts urlpath_regex -i "/var/squid/acl/throttle_exts.acl"
    delay_access 1 allow throttle_exts
    delay_access 1 deny allsrc
    
    # Reverse Proxy settings
    
    # Custom options before auth
    
    # Setup allowed ACLs
    # Allow local network(s) on interface(s)
    http_access allow localnet
    # Default block all to be sure
    http_access deny allsrc
    
    


  • @pommes:

    Hallo sebden.

    kannst du dein refresh pattern einmal posten? Ich suche seit Jahren eine gute conf. die funkioniert für Windows Updatet

    negative_ttl 5 second;
    negative_dns_ttl 5 second;

    refresh_pattern -i microsoft.com/..(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip|psf|appx|esd) 43200 80% 43200 override-lastmod override-expire ignore-reload ignore-must-revalidate ignore-private
    refresh_pattern -i windowsupdate.com/.
    .(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip|psf|appx|esd) 43200 80% 43200 override-lastmod override-expire ignore-reload ignore-must-revalidate ignore-private
    refresh_pattern -i windows.com/.*.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip|psf|appx|esd) 43200 80% 43200 override-lastmod override-expire ignore-reload ignore-must-revalidate ignore-private
    refresh_pattern -i .(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private
    refresh_pattern -i .(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-no-store ignore-private
    refresh_pattern -i .(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|bz|gz|bz2|xz|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private
    refresh_pattern -i .index.(html|htm)$ 0 40% 10080
    refresh_pattern -i .(html|htm|css|js)$ 1440 40% 40320

    Entschuldige das es gedauert hat, treibe mich nicht regelmäßig hier rum.

    Merken tun wir es, indem nach einigen Wochen Anlernphase, die Updates sehr sprunghaft rein kommen, teilweise also neue Windows 7 Clients im Sekundentakt die Anzahl der Updates hochzählen, die sie heruntergeladen haben. Und das bei DSL 6000  :-X

    Zugegeben, nicht jedes Update lässt sich cachen meine ich. Einzelne Parts sind dennoch immer neu zu laden was sicher  mit der Methode zu tun hat, mit der MS die ausrollt bzw. lagert.

    Falls du mal neue Windows 7 Clients hast die ewig nach Updates suchen, auch dafür gab es schon Hilfe hier im Forum. Es fehlen dann 3-6 bestimmte Updates u.a. für das Updateprogramm selber. Die müssen dann mal händisch rauf.



  • Danke
    Ich Teste mal deine konf. mal schauen ob was läuft mit Windows Update  ;)


Log in to reply