Yesterday I posted about caching apple downloads which was great but most of my schools do not have a linux server available nor do they have the spare equipment to setup anything that could be considered reliable enough.
Now we do have plenty of Windows capacity so we need to run squid on a Windows server.
A quick google and yes there is a version of squid for Windows which I installed to D:\Squid.
The default config is pretty good and is 2 line changes away from being a caching server and then only needs the rules for the Apple download servers.
1#2# Recommended minimum configuration:3#45# Example rule allowing access from your local networks.6# Adapt to list your (internal) IP networks from where browsing7# should be allowed8acl localnet src 10.0.0.0/8 # RFC1918 possible internal network9acl localnet src 172.16.0.0/12 # RFC1918 possible internal network10acl localnet src 192.168.0.0/16 # RFC1918 possible internal network11acl localnet src fc00::/7 # RFC 4193 local private network range12acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines1314acl SSL_ports port 44315acl Safe_ports port 80 # http16acl Safe_ports port 21 # ftp17acl Safe_ports port 443 # https18acl Safe_ports port 70 # gopher19acl Safe_ports port 210 # wais20acl Safe_ports port 1025-65535 # unregistered ports21acl Safe_ports port 280 # http-mgmt22acl Safe_ports port 488 # gss-http23acl Safe_ports port 591 # filemaker24acl Safe_ports port 777 # multiling http25acl CONNECT method CONNECT2627#28# Recommended minimum Access Permission configuration:29#30# Deny requests to certain unsafe ports31http_access deny !Safe_ports3233# Deny CONNECT to other than secure SSL ports34http_access deny CONNECT !SSL_ports3536# Only allow cachemgr access from localhost37http_access allow localhost manager38http_access deny manager3940# We strongly recommend the following be uncommented to protect innocent41# web applications running on the proxy server who think the only42# one who can access services on "localhost" is a local user43#http_access deny to_localhost4445#46# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS47#4849# Example rule allowing access from your local networks.50# Adapt localnet in the ACL section to list your (internal) IP networks51# from where browsing should be allowed52http_access allow localnet53http_access allow localhost5455# And finally deny all other access to this proxy56http_access deny all5758# Squid normally listens to port 312859http_port 31286061# Uncomment and adjust the following to add a disk cache directory.62cache_dir ufs /var/cache/squid 10000 16 25663maximum_object_size 5120 MB6465# Leave coredumps in the first cache dir66coredump_dir /var/cache/squid6768#69# Add any of your own refresh_pattern entries above these.70#71refresh_pattern ^ftp: 1440 20% 1008072refresh_pattern ^gopher: 1440 0% 144073refresh_pattern -i (/cgi-bin/|\?) 0 0% 074refresh_pattern . 0 20% 43207576refresh_pattern -i appldnld\.apple\.com 129600 100% 129600 ignore-reload ignore-no-store override-expire override-lastmod ignore-must-revalidate7778refresh_pattern -i phobos\.apple\.com 129600 100% 129600 ignore-reload ignore-no-store override-expire override-lastmod ignore-must-revalidateLanguage js
When I first tried to start squid with this config squid crashed on launch with an error about the cache not having the right folders in it. Running
D:\Squid\bin\squid.exe -z fixed this.
I then used the same PAC file as before modified to point at this proxy server which I hosted on IIS and then pointed all the iPads too.
Its working the same as the other install as at the end of the day it is the same proxy server program just different OS.
My original article has more about what we are actually doing with this config.