]> git.ipfire.org Git - thirdparty/squid.git/blob - doc/release-notes/release-3.3.sgml
Ported: urllogin ACL from squid 2.7
[thirdparty/squid.git] / doc / release-notes / release-3.3.sgml
1 <!doctype linuxdoc system>
2 <article>
3 <title>Squid 3.3.0.1 release notes</title>
4 <author>Squid Developers</author>
5
6 <abstract>
7 This document contains the release notes for version 3.3 of Squid.
8 Squid is a WWW Cache application developed by the National Laboratory
9 for Applied Network Research and members of the Web Caching community.
10 </abstract>
11
12 <toc>
13
14 <sect>Notice
15 <p>
16 The Squid Team are pleased to announce the release of Squid-3.3.0.1 for testing.
17
18 This new release is available for download from <url url="http://www.squid-cache.org/Versions/v3/3.3/"> or the <url url="http://www.squid-cache.org/Mirrors/http-mirrors.html" name="mirrors">.
19
20 While this release is not deemed ready for production use, we believe it is ready for wider testing by the community.
21
22 We welcome feedback and bug reports. If you find a bug, please see <url url="http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-7067fc0034ce967e67911becaabb8c95a34d576d"> for how to submit a report with a stack trace.
23
24 <sect1>Known issues
25 <p>
26 Although this release is deemed good enough for use in many setups, please note the existence of <url url="http://www.squid-cache.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;target_milestone=3.3&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=bugs.bug_severity&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=" name="open bugs against Squid-3.3">.
27
28 <sect1>Changes since earlier releases of Squid-3.3
29 <p>
30 The 3.3 change history can be <url url="http://www.squid-cache.org/Versions/v3/3.3/changesets/" name="viewed here">.
31
32 <sect>Major new features since Squid-3.2
33 <p>Squid 3.3 represents a new feature release above 3.2.
34
35 <p>The most important of these new features are:
36 <itemize>
37 <item>SQL Database logging helper
38 <item>Time-Quota session helper
39 <item>SSL-Bump Server First
40 <item>Server Certificate Mimic
41 <item>Custom HTTP request headers
42 </itemize>
43
44 Most user-facing changes are reflected in squid.conf (see below).
45
46 <sect1>SQL Database logging helper
47 <p><em>log_db_daemon</em> - Database logging daemon for Squid
48
49 <p>This program writes Squid access.log entries to an SQL database.
50 Written in Perl it can utilize any database supported by the Perl
51 database abstraction layer.
52
53 <p>NOTE: Presently it only accepts the Squid native log format.
54
55
56 <sect1>Time-Quota session helper
57 <p><em>ext_time_quota_acl</em> - Time quota external ACL helper.
58
59 <p>Allows an administrator to define time budgets (quota) for the
60 users of Squid to limit the time using Squid.
61
62 <p>This is useful for corporate lunch time allocations, wifi portal
63 pay-per-minute installations or for parental control of children.
64
65 <p>The administrator can define a time budget (e.g. 1 hour per day)
66 which is enforced through this helper using session estimations
67 of their browsing time. A 'pause' threshold is given in seconds
68 and defines the period between two requests to be treated as part
69 of the same session. Pauses shorter than this value will be
70 counted against the quota, longer ones ignored.
71
72
73 <sect1>SSL-Bump Server First
74 <p>Details at <url url="http://wiki.squid-cache.org/Features/BumpSslServerFirst">.
75
76 <p>When an intercepted connection is received, Squid first connects
77 to the server using SSL and receives the server certificate.
78 Squid then uses the host name inside the true server certificate
79 to generate a fake one and impersonates the server while still
80 using the already established secure connection to the server.
81
82 <p>Bumping server first is essentially required for handling
83 intercepted HTTPS connections but the same scheme should be used
84 for most HTTP CONNECT requests because it offers a few advantages
85 compared to the old bump-client-first approach:
86
87 <itemize>
88 <item>When Squid knows valid server certificate details, it can
89 generate its fake server certificate with those details.
90 With the bump-client-first scheme, all those details are lost.
91 In general, browsers do not care about those details but there
92 may be HTTP clients (or even human users) that require or could
93 benefit from knowing them.
94
95 <item>When a server sends a bad certificate, Squid may be able to
96 replicate that brokenness in its own fake certificate, giving
97 the HTTP client control whether to ignore the problem or
98 terminate the transaction. With bump-client-furst, it is
99 difficult to support similar dynamic, user-directed opt out;
100 Squid itself has to decide what to do when the server
101 certificate cannot be validated.
102
103 <item>When a server asks for a client certificate, Squid may be
104 able to ask the client and then forward the client certificate
105 to the server. Such client certificate handling may not be
106 possible with the bump-client-first scheme because it would
107 have to be done after the SSL handshake.
108
109 <item>Some clients (e.g., Rekonq browser v0.7.x) do not send host
110 names in CONNECT requests. Such clients require bump-server-first
111 even in forward proxying mode. Unfortunately, there are other
112 problems with fully supporting such clients (i.e., Squid does
113 not know whether the IP address in the CONNECT request is what
114 the user have typed into the address bar) so not all features
115 will work well for them until more specialized detection code
116 is added.
117 </itemize>
118
119 <sect1>Server Certificate Mimic
120 <p>Details at <url url="http://wiki.squid-cache.org/Features/MimicSslServerCert">.
121
122 <p>One of the SslBump features serious drawbacks is the loss of
123 information embedded in SSL server certificate.
124 This certificate mimic feature passes original SSL server
125 certificate information to the user. Allowing the user to
126 make an informed decision on whether to trust the server
127 certificate.
128
129
130 <sect1>Custom HTTP request headers
131 <p>The <em>request_header_add</em> option is added to insert
132 HTTP header fields to outgoing HTTP requests (i.e.,
133 request headers sent by Squid to the next HTTP hop such as a
134 cache peer or an origin server). The option has no effect on
135 cache hit traffic or requests serviced by Squid and ICAP.
136
137 <p>WARNING: If a standard HTTP header name is used, Squid does not check whether
138 the new header conflicts with any existing headers or violates
139 HTTP rules. If the request to be modified already contains a
140 field with the same name, the old field is preserved but the
141 header field values are not merged.
142
143 <p>Field-value set can be either a token or a quoted string. If quoted
144 string format is used, then the surrounding quotes are removed
145 while escape sequences and %macros are processed.
146
147 <p>In theory, all of the <em>logformat</em> codes can be used as %macros.
148 However, unlike logging (which happens at the very end of
149 transaction lifetime), the transaction may not yet have enough
150 information to expand a macro when the new header value is needed.
151 And some information may already be available to Squid but not yet
152 committed where the macro expansion code can access it (please report
153 such instances!). The macro will be expanded into a single dash
154 ('-') in such cases. Not all macros have been tested.
155
156 <p>One or more Squid ACLs may be specified to restrict header
157 injection to matching requests. As always in squid.conf, all
158 ACLs in an option ACL list must be satisfied for the insertion
159 to happen. The <em>request_header_add</em> option supports fast ACLs only.
160
161
162 <sect>Changes to squid.conf since Squid-3.2
163 <p>
164 There have been changes to Squid's configuration file since Squid-3.2.
165
166 This section gives a thorough account of those changes in three categories:
167
168 <itemize>
169 <item><ref id="newtags" name="New tags">
170 <item><ref id="modifiedtags" name="Changes to existing tags">
171 <item><ref id="removedtags" name="Removed tags">
172 </itemize>
173 <p>
174
175 <sect1>New tags<label id="newtags">
176 <p>
177 <descrip>
178 <tag>request_header_add</tag>
179 <p>New directive to add custom headers on HTTP traffic sent to upstream servers.
180
181 <tag>sslproxy_cert_sign</tag>
182 <p>New option to determine how the client certificate sent to upstream servers is signed.
183
184 <tag>sslproxy_cert_adapt</tag>
185 <p>New option to adapt certain properties of outgoing SSL certificates generated for use when bumping SSL to an upstream server.
186
187
188 </descrip>
189
190 <sect1>Changes to existing tags<label id="modifiedtags">
191 <p>
192 <descrip>
193 <tag>acl</tag>
194 <p><em>myport</em> and <em>myip</em>ACL types replaced with <em>localport</em> and <em>localip</em> respecitively.
195 To reflect that it matches the TCP connection details and not the squid.conf port.
196 This matters when dealing with interecepted traffic, where the Squid receiving port differs from the TCP connection IP:port.
197 Always use <em>myportname</em> type to match the squid.conf port details.
198 <p>New default built-in ACLs for testing SSL certificate properties.
199 <p><em>ssl::certHasExpired</em>,
200 <em>ssl::certNotYetValid</em>,
201 <em>ssl::certDomainMismatch</em>,
202 <em>ssl::certUntrusted</em>,
203 <em>ssl::certSelfSigned</em>.
204
205 <tag>logformat</tag>
206 <p>New token <em>%ssl::bump_mode</em> to log the SSL-bump mode type performed on a request.
207 Logs values of: <em>-</em>, <em>none</em>, <em>client-first</em>, or <em>server-first</em>.
208 <p>New token of <em>%ssl::&gt;cert_subject</em> to log the Subject field of a SSL certficate received from the client.
209 <p>New token of <em>%ssl::&gt;cert_issuer</em> to log the Issuer field of a SSL certficate received from the client.
210
211 <tag>ssl_bump</tag>
212 <p>New action types <em>none</em>, <em>client-first</em>, <em>server-first</em>. The default is <em>none</em>.
213 <p>Use of <em>allow</em>/<em>deny</em> is now deprecated and they should be removed as soon as possible.
214 To retain the exact same behaviour between 3.3 and older releases replace <em>deny</em> with <em>none</em>,
215 and <em>allow</em> with <em>client-first</em>. However an upgrade to <em>server-first</em> is the recommended.
216 <p><em>NOTE</em>: Mixing of allow/deny with the new action types is prohibited and will cause Squid to exit with a FATAL error.
217
218 </descrip>
219
220 <sect1>Removed tags<label id="removedtags">
221 <p>
222 <descrip>
223 <p><em>There are no removed squid.conf tags in Squid-3.3.</em>
224
225 </descrip>
226
227
228 <sect>Changes to ./configure options since Squid-3.2
229 <p>
230 There have been some changes to Squid's build configuration since Squid-3.2.
231
232 This section gives an account of those changes in three categories:
233
234 <itemize>
235 <item><ref id="newoptions" name="New options">
236 <item><ref id="modifiedoptions" name="Changes to existing options">
237 <item><ref id="removedoptions" name="Removed options">
238 </itemize>
239
240
241 <sect1>New options<label id="newoptions">
242 <p>
243 <descrip>
244 <p><em>There are no new ./configure options in Squid-3.3.</em>
245
246 </descrip>
247
248 <sect1>Changes to existing options<label id="modifiedoptions">
249 <p>
250 <descrip>
251 <p><em>There are no changed ./configure options in Squid-3.3.</em>
252
253 </descrip>
254 </p>
255
256 <sect1>Removed options<label id="removedoptions">
257 <p>
258 <descrip>
259 <tag>--enable-ntlm-fail-open</tag>
260 <p>This has not been supported by Squid for several versions.
261
262 </descrip>
263
264
265 <sect>Regressions since Squid-2.7
266
267 <p>Some squid.conf and ./configure options which were available in Squid-2.7 are not yet available in Squid-3.3
268
269 <p>If you need something to do then porting one of these from Squid-2 to Squid-3 is most welcome.
270
271 <sect1>Missing squid.conf options available in Squid-2.7
272 <p>
273 <descrip>
274 <tag>broken_vary_encoding</tag>
275 <p>Not yet ported from 2.6
276
277 <tag>cache_dir</tag>
278 <p><em>COSS</em> storage type is lacking stability fixes from 2.6
279 <p>COSS <em>overwrite-percent=</em> option not yet ported from 2.6
280 <p>COSS <em>max-stripe-waste=</em> option not yet ported from 2.6
281 <p>COSS <em>membufs=</em> option not yet ported from 2.6
282 <p>COSS <em>maxfullbufs=</em> option not yet ported from 2.6
283
284 <tag>cache_peer</tag>
285 <p><em>idle=</em> not yet ported from 2.7
286 <p><em>monitorinterval=</em> not yet ported from 2.6
287 <p><em>monitorsize=</em> not yet ported from 2.6
288 <p><em>monitortimeout=</em> not yet ported from 2.6
289 <p><em>monitorurl=</em> not yet ported from 2.6
290
291 <tag>cache_vary</tag>
292 <p>Not yet ported from 2.6
293
294 <tag>collapsed_forwarding</tag>
295 <p>Not yet ported from 2.6
296
297 <tag>error_map</tag>
298 <p>Not yet ported from 2.6
299
300 <tag>external_acl_type</tag>
301 <p><em>%ACL</em> format tag not yet ported from 2.6
302 <p><em>%DATA</em> format tag not yet ported from 2.6
303
304 <tag>external_refresh_check</tag>
305 <p>Not yet ported from 2.7
306
307 <tag>http_port</tag>
308 <p><em>act-as-origin</em> not yet ported from 2.7
309
310 <tag>ignore_ims_on_miss</tag>
311 <p>Not yet ported from 2.7
312
313 <tag>location_rewrite_access</tag>
314 <p>Not yet ported from 2.6
315
316 <tag>location_rewrite_children</tag>
317 <p>Not yet ported from 2.6
318
319 <tag>location_rewrite_concurrency</tag>
320 <p>Not yet ported from 2.6
321
322 <tag>location_rewrite_program</tag>
323 <p>Not yet ported from 2.6
324
325 <tag>refresh_pattern</tag>
326 <p><em>stale-while-revalidate=</em> not yet ported from 2.7
327 <p><em>ignore-stale-while-revalidate=</em> not yet ported from 2.7
328 <p><em>negative-ttl=</em> not yet ported from 2.7
329
330 <tag>refresh_stale_hit</tag>
331 <p>Not yet ported from 2.7
332
333 <tag>storeurl_access</tag>
334 <p>Not yet ported from 2.7
335
336 <tag>storeurl_rewrite_children</tag>
337 <p>Not yet ported from 2.7
338
339 <tag>storeurl_rewrite_concurrency</tag>
340 <p>Not yet ported from 2.7
341
342 <tag>storeurl_rewrite_program</tag>
343 <p>Not yet ported from 2.7
344
345 <tag>update_headers</tag>
346 <p>Not yet ported from 2.7
347
348 </descrip>
349
350 </article>