]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/tilecache/templates/default/squid.conf.erb
tilecache: restrict cache control headers to osm.org only
[chef.git] / cookbooks / tilecache / templates / default / squid.conf.erb
index 8c0cdc37eae86bd2d733732c22c8cea4faa59e6d..aa3af2ff900a52d5e63d50f7d62d6589be2b15f4 100644 (file)
@@ -1,19 +1,22 @@
-acl osmtile_sites dstdomain a.tile.openstreetmap.org b.tile.openstreetmap.org c.tile.openstreetmap.org tile.openstreetmap.org a.tile.osm.org b.tile.osm.org c.tile.osm.org tile.osm.org
+acl osmtile_thishost dstdomain <%= node.name %>
+acl osmtile_sites dstdomain <%= node.name %> a.tile.openstreetmap.org b.tile.openstreetmap.org c.tile.openstreetmap.org tile.openstreetmap.org a.tile.osm.org b.tile.osm.org c.tile.osm.org tile.osm.org
 acl osmtiles_png urlpath_regex .png$
 
 acl osmtileScrapers browser ^$
 acl osmtileScrapers browser ^MOBAC
 acl osmtileScrapers browser ^JTileDownloader
 acl osmtileScrapers browser ^Apache\-HttpClient
 acl osmtiles_png urlpath_regex .png$
 
 acl osmtileScrapers browser ^$
 acl osmtileScrapers browser ^MOBAC
 acl osmtileScrapers browser ^JTileDownloader
 acl osmtileScrapers browser ^Apache\-HttpClient
+acl osmtileScrapers browser ^Go-http-client\/
 acl osmtileScrapers browser ^Opera\/10\.00
 acl osmtileScrapers browser ^shipxy01
 acl osmtileScrapers browser ^Opera\/10\.00
 acl osmtileScrapers browser ^shipxy01
-#acl osmtileScrapers browser ^OsmAnd #Victor + Email. Whitelist for 1 week
-#acl osmtileScrapers browser ^apemap #CGI143 + Email. Whitelist for 1 week
+# acl osmtileScrapers browser ^OsmAnd # Victor + Email. Whitelist for 1 week
+# acl osmtileScrapers browser ^apemap # CGI143 + Email. Whitelist for 1 week
 acl osmtileScrapers browser Firefox\/2\.0\.0\.11$
 acl osmtileScrapers browser Firefox\/2\.0\.0\.11$
-#acl osmtileScrapers browser Firefox\/3\.5\.7$ #CGI285 + Email. Whitelist for 1 week
+acl osmtileScrapers browser Firefox\/3\.5\.7$
 acl osmtileScrapers browser Firefox\/3\.6$
 acl osmtileScrapers browser Firefox\/3\.6$
-acl osmtileScrapers browser ^Mozilla\/5\.0$ #QLandkarte unwilling to set a real user-agent.
-acl osmtileScrapers browser ^Mozilla$ #Intentionally faked user-agent
+acl osmtileScrapers browser ^Mozilla\/4\.0$
+acl osmtileScrapers browser ^Mozilla\/5\.0$ # QLandkarte unwilling to set a real user-agent.
+acl osmtileScrapers browser ^Mozilla$ # Intentionally faked user-agent
 acl osmtileScrapers browser ^User\-Agent
 acl osmtileScrapers browser Firefox\/0\.8$
 acl osmtileScrapers browser Firefox\/1\.0$
 acl osmtileScrapers browser ^User\-Agent
 acl osmtileScrapers browser Firefox\/0\.8$
 acl osmtileScrapers browser Firefox\/1\.0$
@@ -24,7 +27,37 @@ acl osmtileScrapers browser MSIE.5.5
 acl osmtileScrapers browser ^LoadOSM\.exe$
 acl osmtileScrapers browser ^app_name$
 acl osmtileScrapers browser ^osmdroid$ # app using osmdroid library not setting app-specific User-Agent
 acl osmtileScrapers browser ^LoadOSM\.exe$
 acl osmtileScrapers browser ^app_name$
 acl osmtileScrapers browser ^osmdroid$ # app using osmdroid library not setting app-specific User-Agent
-#acl osmtileScrapers browser ^Mozilla/5\.0 \(Windows NT 5\.1\)$ # Faked User-Agent
+# acl osmtileScrapers browser ^Mozilla/5\.0 \(Windows NT 5\.1\)$ # Faked User-Agent
+acl osmtileScrapers browser Firefox\/3\.0
+acl osmtileScrapers browser Firefox\/4\.0
+acl osmtileScrapers browser Firefox\/5\.0
+acl osmtileScrapers browser Firefox\/6\.0
+acl osmtileScrapers browser Firefox\/7\.0
+acl osmtileScrapers browser Firefox\/8\.0
+acl osmtileScrapers browser Firefox\/9\.0
+acl osmtileScrapers browser Firefox\/10\.0
+acl osmtileScrapers browser Firefox\/11\.0
+acl osmtileScrapers browser Firefox\/12\.0
+acl osmtileScrapers browser Firefox\/13\.0
+acl osmtileScrapers browser ^Python\-urllib\/
+acl osmtileScrapers browser ^python\-requests\/
+acl osmtileScrapers browser ^node\-fetch\/
+acl osmtileScrapers browser ^R$
+acl osmtileScrapers browser ^Java\/
+acl osmtileScrapers browser ^tiles$
+acl osmtileScrapers browser ^runtastic
+
+acl is_fake_browser browser Firefox\/3\.0
+acl is_fake_browser browser Firefox\/4\.0
+acl is_fake_browser browser Firefox\/5\.0
+acl is_fake_browser browser Firefox\/6\.0
+acl is_fake_browser browser Firefox\/7\.0
+acl is_fake_browser browser Firefox\/8\.0
+acl is_fake_browser browser Firefox\/9\.0
+acl is_fake_browser browser Firefox\/10\.0
+acl is_fake_browser browser Firefox\/11\.0
+acl is_fake_browser browser Firefox\/12\.0
+acl is_fake_browser browser Firefox\/13\.0
 
 http_access deny osmtile_sites osmtileScrapers
 
 
 http_access deny osmtile_sites osmtileScrapers
 
@@ -32,12 +65,24 @@ acl osmtileOverusers referer_regex ^https?://pmap\.kuku\.lu/
 acl osmtileOverusers referer_regex ^https?://[^.]*\.pmap\.kuku\.lu/
 acl osmtileOverusers referer_regex ^https?://fastpokemap\.com/
 acl osmtileOverusers referer_regex ^https?://[^.]*\.fastpokemap\.com/
 acl osmtileOverusers referer_regex ^https?://[^.]*\.pmap\.kuku\.lu/
 acl osmtileOverusers referer_regex ^https?://fastpokemap\.com/
 acl osmtileOverusers referer_regex ^https?://[^.]*\.fastpokemap\.com/
+acl osmtileOverusers referer_regex ^https?://pkget\.com/
+acl osmtileOverusers referer_regex ^https?://[^.]*\.pkget\.com/
+
+# Faked OSM referers
+acl osmtileOverusers referer_regex ^http://www\.openstreetmap\.org/?$
+acl osmtileOverusers referer_regex ^http://openstreetmap\.org/?$
+acl osmtileOverusers referer_regex ^http://www\.osm\.org/?$
+acl osmtileOverusers referer_regex ^http://osm\.org/?$
 
 http_access deny osmtile_sites osmtileOverusers
 
 # Delay pool when !has_referer and is_browser
 acl has_referer referer_regex .
 
 http_access deny osmtile_sites osmtileOverusers
 
 # Delay pool when !has_referer and is_browser
 acl has_referer referer_regex .
-acl is_browser browser Mozilla
+acl is_browser browser Chrome\/
+acl is_browser browser Firefox\/
+acl is_browser browser Trident\/
+acl is_browser browser Safari\/
+acl is_browser browser AppleWebKit\/
 
 acl whitelist_path urlpath_regex ^/cgi-bin/(export|debug)
 acl blacklist_path urlpath_regex ^/cgi-bin/
 
 acl whitelist_path urlpath_regex ^/cgi-bin/(export|debug)
 acl blacklist_path urlpath_regex ^/cgi-bin/
@@ -66,60 +111,72 @@ http_access allow osmtile_sites requestMethodGet
 acl osmtile_nocache_url urlpath_regex \.png/(status|dirty)$
 cache deny osmtile_sites osmtile_nocache_url
 
 acl osmtile_nocache_url urlpath_regex \.png/(status|dirty)$
 cache deny osmtile_sites osmtile_nocache_url
 
+<% @caches.each do |cache| -%>
+<% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
+acl tile_caches src <%= address %>
+<% end -%>
+<% end -%>
+
+# Siblings
 <% node[:tilecache][:tile_siblings].each do |sibling| -%>
 <% node[:tilecache][:tile_siblings].each do |sibling| -%>
-cache_peer <%= sibling %> sibling 3128 3130 weight=1500
+cache_peer <%= sibling %> sibling 3128 4827 htcp weight=1500
+<% end -%>
+
+# Primary Parent
+<% if node[:squid][:version] < 4 -%>
+cache_peer <%= node[:tilecache][:tile_parent] %> parent 443 0 no-query originserver name=osmtileAccel login=PASS connect-timeout=120 no-digest weight=1000 ssl ssldomain=render.openstreetmap.org
+<% else -%>
+cache_peer <%= node[:tilecache][:tile_parent] %> parent 443 0 no-query originserver name=osmtileAccel login=PASS connect-timeout=120 no-digest weight=1000 tls tlsdomain=render.openstreetmap.org standby=32
 <% end -%>
 <% end -%>
-#Primary Parent
-cache_peer <%= node[:tilecache][:tile_parent] %> parent 80 0 no-query originserver name=osmtileAccel login=PASS connect-timeout=120 no-digest weight=1000
 cache_peer_access osmtileAccel allow osmtile_sites
 
 cache_peer_access osmtileAccel allow osmtile_sites
 
-#Backup Parents
+# Backup Parents
 <% @renders.each do |renders| -%>
 <% @renders.each do |renders| -%>
-cache_peer <%= renders[:hostname] %>.render.openstreetmap.org parent 80 0 no-query originserver name=osmtileAccelBackup<%= renders[:hostname] %> login=PASS connect-timeout=60 no-digest weight=10
+<% if node[:squid][:version] < 4 -%>
+cache_peer <%= renders[:hostname] %>.render.openstreetmap.org parent 443 0 no-query originserver name=osmtileAccelBackup<%= renders[:hostname] %> login=PASS connect-timeout=60 no-digest weight=10 ssl ssldomain=render.openstreetmap.org
+<% else -%>
+cache_peer <%= renders[:hostname] %>.render.openstreetmap.org parent 443 0 no-query originserver name=osmtileAccelBackup<%= renders[:hostname] %> login=PASS connect-timeout=60 no-digest weight=10 tls tlsdomain=render.openstreetmap.org
+<% end -%>
 cache_peer_access osmtileAccelBackup<%= renders[:hostname] %> allow osmtile_sites
 <% end -%>
 
 cache_peer_access osmtileAccelBackup<%= renders[:hostname] %> allow osmtile_sites
 <% end -%>
 
-#----------------------------------
-#Create an unlimited pool for cache IP addresses
+# ----------------------------------
+# Create an unlimited pool for cache IP addresses
 acl pool_unlimited src 127.0.0.1
 <% @caches.each do |cache| -%>
 <% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
 acl pool_unlimited src <%= address %>
 acl pool_unlimited src 127.0.0.1
 <% @caches.each do |cache| -%>
 <% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
 acl pool_unlimited src <%= address %>
-acl tile_caches src <%= address %>
 <% end -%>
 <% end -%>
 <% end -%>
 <% end -%>
-#AOL External (London Hack Weekend)
-acl pool_unlimited src 64.236.163.23
-#SoTM-US 2014
-acl pool_unlimited src 66.78.217.141
-#SoTM-US 2014 Hack Day Red Cross
-acl pool_unlimited src 162.6.86.34
-acl pool_unlimited src 162.6.86.35
-acl pool_unlimited src 162.6.86.36
-#Telenav Whitelist - mvexel
-acl pool_unlimited src 108.60.98.6
-#SoTM-EU 2014
-acl pool_unlimited src 185.52.244.32/29
+
+# Juno Minsk office - me@komzpa.net
+acl pool_unlimited src 212.98.173.54
+<% if node[:squid][:version] < 4 -%>
+
+#Allow tile_caches HTCP access
+htcp_access allow tile_caches
 
 #Allow tile_caches ICP access
 icp_access allow tile_caches
 
 #Allow tile_caches ICP access
 icp_access allow tile_caches
+<% end %>
 
 
-<% (0..127).each do |i| %>
+<% (0..127).each do |i| -%>
 acl pool_<%= sprintf("%03d", 2*i) %> src <%= 2*i %>.0.0.0/7
 <% end %>
 
 delay_pools 256
 delay_initial_bucket_level 25
 
 acl pool_<%= sprintf("%03d", 2*i) %> src <%= 2*i %>.0.0.0/7
 <% end %>
 
 delay_pools 256
 delay_initial_bucket_level 25
 
-<% (0..255).each do |i| %>
-delay_class <%= i+1 %> 3
+<% (1..256).each do |i| -%>
+delay_class <%= i %> 3
 <% end %>
 #bit mask
 # xxxxxxx- -------- xxxxxxxx xxxxxxxx
 
 # small pools for !has_referer && is_browser - designed to slow down anyone
 # using no-referer to bypass blocks due to abusive levels of use.
 <% end %>
 #bit mask
 # xxxxxxx- -------- xxxxxxxx xxxxxxxx
 
 # small pools for !has_referer && is_browser - designed to slow down anyone
 # using no-referer to bypass blocks due to abusive levels of use.
-<% (0..127).each do |i| %>
+<% (0..127).each do |i| -%>
+delay_access <%= i+1 %> allow pool_<%= sprintf("%03d", 2*i) %> !pool_unlimited is_fake_browser osmtile_sites
 delay_access <%= i+1 %> allow pool_<%= sprintf("%03d", 2*i) %> !pool_unlimited !has_referer is_browser osmtile_sites
 delay_access <%= i+1 %> deny all
 delay_parameters <%= i+1 %> -1/-1 <%= node[:tilecache][:net_bucket_refill] / 10 %>/<%= node[:tilecache][:net_bucket_size] / 10 %> <%= node[:tilecache][:ip_bucket_refill] / 10 %>/<%= node[:tilecache][:ip_bucket_size] / 10 %>
 delay_access <%= i+1 %> allow pool_<%= sprintf("%03d", 2*i) %> !pool_unlimited !has_referer is_browser osmtile_sites
 delay_access <%= i+1 %> deny all
 delay_parameters <%= i+1 %> -1/-1 <%= node[:tilecache][:net_bucket_refill] / 10 %>/<%= node[:tilecache][:net_bucket_size] / 10 %> <%= node[:tilecache][:ip_bucket_refill] / 10 %>/<%= node[:tilecache][:ip_bucket_size] / 10 %>
@@ -128,7 +185,7 @@ delay_parameters <%= i+1 %> -1/-1 <%= node[:tilecache][:net_bucket_refill] / 10
 # bigger pools for users providing a referer (assuming it's not blocked)
 # or non-browser users.
 <% (0..127).each do |i| %>
 # bigger pools for users providing a referer (assuming it's not blocked)
 # or non-browser users.
 <% (0..127).each do |i| %>
-delay_access <%= i+129 %> allow pool_<%= sprintf("%03d", 2*i)) %> !pool_unlimited osmtile_sites
+delay_access <%= i+129 %> allow pool_<%= sprintf("%03d", 2*i) %> !pool_unlimited osmtile_sites
 delay_access <%= i+129 %> deny all
 delay_parameters <%= i+129 %> -1/-1 <%= node[:tilecache][:net_bucket_refill] %>/<%= node[:tilecache][:net_bucket_size] %> <%= node[:tilecache][:ip_bucket_refill] %>/<%= node[:tilecache][:ip_bucket_size] %>
 <% end %>
 delay_access <%= i+129 %> deny all
 delay_parameters <%= i+129 %> -1/-1 <%= node[:tilecache][:net_bucket_refill] %>/<%= node[:tilecache][:net_bucket_size] %> <%= node[:tilecache][:ip_bucket_refill] %>/<%= node[:tilecache][:ip_bucket_size] %>
 <% end %>