generated files in cvs is a nono.
[privoxy.git] / config
1 #  Sample Configuration file for Privoxy
2
3 #
4 # $Id: config,v 1.30 2002/03/24 11:37:39 jongfoster Exp $
5 #
6
7 #  Table of Contents
8 #
9 #       1. INTRODUCTION
10 #       2. FORMAT OF THE CONFIGURATION FILE
11 #       3. OTHER CONFIGURATION FILES
12 #       4. GENERAL OPTIONS
13 #       5. WINDOWS GUI OPTIONS
14 #
15 #  1. INTRODUCTION
16 #
17 #  This file holds the Privoxy configuration.  If you modify this
18 #  file, you will need to send a couple of requests to the proxy
19 #  before any changes take effect.
20 #
21 #  When starting Privoxy on Unix systems, give the name of this
22 #  file as an argument.  On Windows systems, Privoxy will look for
23 #  this file with the name 'config.txt' in the same directory where
24 #  Privoxy is installed.
25 #
26 #  2. FORMAT OF THE CONFIGURATION FILE
27 #
28 #  Configuration lines consist of an initial keyword followed by a list
29 #  of values, all separated by whitespace (any number of spaces or
30 #  tabs).  For example,
31 #
32 #  actionsfile default.action
33 #
34 #  Indicates that the actionsfile is named 'default.action'.
35 #
36 #  The '#' indicates a comment.  Any part of a line following a '#' is
37 #  ignored, except if the '#' is preceded by a '\'.
38 #
39 #  Thus, by placing a # at the start of an existing configuration line,
40 #  you can make it a comment and it will be treated as if it weren't there. 
41 #  This is called "commenting out" an option and can be useful to turn
42 #  off features: If you comment out the "logfile" line, Privoxy will
43 #  not log to a file at all. Watch for the "default:" section in each 
44 #  explanation to see what happens if the option is left unset (or 
45 #  commented out). 
46 #
47 #  Long lines can be continued on the next line by using a `\' as
48 #  the last character.
49 #
50 #  3. OTHER CONFIGURATION FILES
51 #
52 #  Privoxy uses a number of other files to tell it what ads to
53 #  block, what cookies to accept, etc.  This section of the
54 #  configuration file tells Privoxy where to find all those other
55 #  files.
56 #
57 #  Privoxy looks for these files in the directory specified with
58 #  "confdir" option.
59 #
60 #  (Note that on Windows, Privoxy usually starts with the current
61 #  directory (".") being the same directory as the executable)
62 #
63 #  An absolute path name can be used to avoid problems.
64 #
65 #  While we go modular and multiuser, the blocker, filter, and 
66 #  per-user config will be stored in subdirectories of confdir.
67 #  Now, only confdir/templates is used for storing HTML templates
68 #  for CGI results.
69 #
70 #  No trailing /, please.
71 confdir .
72
73 #
74 #  The directory where all logging (i.e. logfile and jarfile) takes place
75 #  No trailing /, please.
76 #
77 logdir .
78
79 #  Note that all file specifications below are relative to 
80 #  the above two directories!!!
81
82 #  The actions file contains patterns to specify the
83 #  actions to apply to requests for each site.
84 #
85 #  Default: Cookies to and from all destinations are filtered.
86 #           Popups are disabled for all sites.
87 #           All sites are filtered if filterfile specified.
88 #           No sites are blocked.  Nothing is an image.
89 #
90 actionsfile default.action
91
92 #  The filterfile contains content modification rules.  These rules
93 #  permit powerful changes on the content of Web pages, e.g., you
94 #  could disable your favourite JavaScript annoyances, rewrite the
95 #  actual content, or just have some fun replacing "Microsoft"
96 #  with "Microsuck" wherever it appears on a Web page.
97 #
98 #  Default: content modification. (see '+-filter' in actionsfile)
99 #
100 filterfile default.filter
101
102 #
103 #  The logfile is where all logging and error messages are written.
104 #  The logfile can be useful for tracking down a problem with
105 #  Privoxy (e.g., it's not blocking an ad you think it should
106 #  block) but in most cases you probably will never look at it.
107 #
108 #  Your logfile will grow indefinitely, and you will probably want to
109 #  periodically remove it.  On Unix systems, you can do this with a
110 #  cron job (see 'man cron').
111 #
112 #  On SuSE Linux systems, you can place a line like
113 #  "/var/log/privoxy.* +1024k 644 nobody.nogroup" in /etc/logfiles,
114 #  with the effect that cron.daily will automatically archive, gzip,
115 #  and empty the log, when it exceeds 1M size.
116 #
117 #  Default: Log to the standard error channel, not to a file
118 #
119 logfile logfile
120
121 #
122 #  The jarfile defines where Privoxy stores the cookies it
123 #  intercepts.  Note that if you use a jarfile, it may grow quite
124 #  large. 
125 #
126 #  Default: Don't store intercepted cookies
127 #
128 jarfile jarfile
129
130 #
131 #  If you specify a trustfile, Privoxy will only allow access
132 #  to sites that are named in the trustfile. You can also mark
133 #  sites as trusted referrers, with the effect that access to
134 #  untrusted sites will be granted, if a link from a trusted
135 #  referrer was used. The link target will then be added to the
136 #  trustfile.
137 #  Note that this is a very restrictive feature that typical users
138 #  most propably want to leave disabled.
139 #
140 #  Default: Don't use the trust mechanism
141 #
142 #trustfile trust
143
144 #
145 #  If you use the trust mechanism, it is a good idea to write up
146 #  some online documentation about your blocking policy and to
147 #  specify the URL(s) here. They will appear on the page that
148 #  your users receive when they try to access untrusted content.
149 #  Use multiple times for multiple URLs.
150 #
151 #  Default: Don't display links on the "untrusted" info page.
152 #
153 trust-info-url http://www.your-site.com/why_we_block.html
154 trust-info-url http://www.your-site.com/what_we_allow.html
155
156 #  4. OPTIONS
157 #
158 #  This part of the configuration file contains options that control
159 #  how Privoxy operates.
160 #
161
162 #  Admin-address should be set to the email address of the proxy
163 #  administrator. It is used in many of the proxy-generated pages.
164 #
165 #  Default: Do not display an e-mail address
166 #
167 admin-address fill@me.in.please
168
169 #
170 #  Proxy-info-url can be set to a URL that contains more info about
171 #  this Privoxy installation, it's configuration and policies.
172 #  It is used in many of the proxy-generated pages and its use is
173 #  highly recommended, since your users will want to know why certain
174 #  content is blocked or modified.
175 #
176 #  Default: Don't show a link to online documentation
177 #
178 proxy-info-url http://www.your-site.com/proxy.html
179
180 #
181 #  Listen-address specifies the address and port where Privoxy will
182 #  listen for connections from your Web browser.  The default is to
183 #  listen on the local host on port 8118, and this is suitable for
184 #  most users.  (In your web browser, under proxy configuration, list
185 #  the proxy server as 'localhost' and the port as '8118').
186
187 #  If you already have another service running on port 8118, or if you
188 #  want to serve requests from other machines (e.g. on your local
189 #  network) as well, you will need to override the default. The syntax
190 #  is "listen-address [<ip-address>]:<port>" If you leave out the ip
191 #  adress, Privoxy will bind to all interfaces (addresses) on your
192 #  machine and may become reachable from the internet. In that case,
193 #  consider using access control lists (acl's) (see "aclfile" above).
194 #
195 #  For example, suppose you are running Privoxy on a machine which
196 #  has the address 192.168.0.1 on your local private network
197 #  (192.168.0.0) and has another outside connection with a different
198 #  address. You want it to serve requests from inside only:
199 #
200 #     listen-address 192.168.0.1:8118
201 #
202 #  If you want it to listen on all addresses (including the outside
203 #  connection):
204 #
205 #     listen-address :8118
206 #
207 #  If you do this, consider using acls (see "aclfile" above).
208 #
209 #  Note: you will need to point your browser(s) to the address
210 #  and port that you have configured here.
211 #
212 #  Default:  listen-address    localhost:8118 
213 #            listen-address    127.0.0.1:8118
214 #
215 listen-address 127.0.0.1:8118
216
217 #
218 #  The debug option sets the level of debugging information to log in
219 #  the logfile (and to the console in the Windows version).  A debug
220 #  level of 1 is informative because it will show you each request as
221 #  it happens.  Higher levels of debug are probably only of interest
222 #  to developers.
223 #
224 #   debug         1 # GPC  = show each GET/POST/CONNECT request
225 #   debug         2 # CONN = show each connection status
226 #   debug         4 # IO   = show I/O status
227 #   debug         8 # HDR  = show header parsing
228 #   debug        16 # LOG  = log all data into the logfile
229 #   debug        32 # FRC  = debug force feature
230 #   debug        64 # REF  = debug regular expression filter 
231 #   debug       128 #      = debug fast redirects
232 #   debug       256 #      = debug GIF deanimation
233 #   debug       512 # CLF  = Common Log Format
234 #   debug     1024 #        = debug kill popups
235 #   debug      4096 # INFO = Startup banner and warnings.
236 #   debug      8192 # ERROR = Non-fatal errors
237 #
238 #  It is *highly recommended* that you enable ERROR
239 #  reporting.  (debug 8192).
240 #
241 #  The reporting of FATAL errors (i.e. ones which crash 
242 #  Privoxy) is always on and cannot be disabled.
243 #
244 #  If you want to use CLF, you should set "debug 512" ONLY,
245 #  do not enable anything else.
246 #
247 #  Multiple "debug" directives, are OK - they're logical-OR'd
248 #  together. 
249 #
250 #   debug         15 # same as setting the first 4 listed above
251 #
252 #  Default: 0, i.e. log nothing but fatal errors
253 #
254 debug   1    # URLs
255 debug   4096 # Info
256 debug   8192 # Errors - *we highly recommended enabling this*
257
258 #
259 #  Privoxy normally uses "multi-threading", a software technique
260 #  that permits it to handle many different requests simultaneously.
261 #  In some cases you may wish to disable this -- particularly if
262 #  you're trying to debug a problem.  The 'single-threaded' option
263 #  forces Privoxy to handle requests sequentially.
264 #
265 #  Default: Multithreaded mode
266 #
267 #single-threaded
268
269 #
270 #    'toggle' allows you to temporarily disable all Privoxy's 
271 #    filtering.  Just set "toggle 0".
272 #    
273 #    This can now be toggled remotely, through the web-based config
274 #    interface.  There is no reason to edit this file any more.
275 #
276 #    The Windows version of Privoxy puts an icon in the system
277 #    tray, which allows you to change this option without having
278 #    to edit this file.  If you right-click on that icon (or select
279 #    the 'Options' menu), one choice is "Enable".  Clicking on enable
280 #    toggles Privoxy on and off.  This is useful if you want to
281 #    temporarily disable Privoxy, e.g., to access a site that
282 #    requires cookies which you normally have blocked.
283 #
284 #    'toggle 1' means Privoxy runs normally, 'toggle 0' means
285 #    that Privoxy becomes a non-anonymizing non-blocking
286 #    proxy.
287 #
288 #  Default: 1
289 #
290 toggle 1
291
292 #
293 #  For content filtering, i.e. the +filter and +deanimate-gif
294 #  actions, it is neccessary that Privoxy buffers up the
295 #  whole document body. This can be potentially dangerous, since
296 #  a server could just keep sending data indefinitely and wait
297 #  for your RAM to exhaust.
298 #  The buffer-limit option lets you set the size in Kbytes that
299 #  each buffer may use at maximum. When the documents buffer
300 #  exceeds that size, it is flushed to the client unfiltered and 
301 #  no further attempt to filter the rest of it is taken.
302 #  Remember that there may multiple threads running, which might
303 #  require up to buffer-limit Kbytes *each*, unless you have set
304 #  single-threaded below.
305 #
306 #  Default: 4069, i.e. 4 MB
307 #
308 buffer-limit 4069
309
310
311 #
312 #  Enable the web-based actionsfile editor.  Set to 1 to enable,
313 #  0 to disable.  Note that you must have compiled Privoxy
314 #  with support for this feature, otherwise this option has no
315 #  effect.
316 #
317 #  Security note:  If this is enabled, anyone who can use the proxy
318 #  can edit the actions file, and their changes will affect all users.
319 #  For shared proxies, you probably want to disable this.
320 #
321 #  Default: Disabled
322 #
323 enable-edit-actions 1
324
325
326 #
327 #  Allow Privoxy to be toggled on and off remotely, using your
328 #  web browser.  Set to 1 to enable, 0 to disable.  Note that you
329 #  must have compiled Privoxy with support for this feature,
330 #  otherwise this option has no effect.
331 #
332 #  Security note:  If this is enabled, anyone who can use the proxy
333 #  can toggle it on or off, and their changes will affect all users.
334 #  For shared proxies, you probably want to disable this.
335 #
336 #  Default: Disabled
337 #
338 enable-remote-toggle 1
339
340 #############################################################################
341 # Access Control List
342 #############################################################################
343 #
344 # Access controls are included at the request of some ISPs and systems
345 # administrators, and are not usually needed by individual users.
346 # Please note the warnings in the FAQ that this proxy is not
347 # intended to be a substitute for a firewall or to encourage anyone
348 # to defer addressing basic security weaknesses.
349 # For details see the documentation
350 #
351 # If no access settings are specified, the proxy talks to anyone that
352 # connects.  If any access settings file are specified, then the proxy
353 # talks only to IP addresses permitted somewhere in this file and not
354 # denied later in this file.
355 #
356 # Summary -- if using an ACL:
357 #
358 #  Client must have permission to receive service
359 #  LAST match in ACL wins
360 #  Default behavior is to deny service
361 #
362 # Syntax for an entry in the Access Control List is:
363 #
364 # ACTION    SRC_ADDR[/SRC_MASKLEN]    [ DST_ADDR[/DST_MASKLEN] ]
365 #
366 # where the fields are
367 #
368 # ACTION      = "permit-access" | "deny-access"
369 #
370 # SRC_ADDR    = client hostname or dotted IP address
371 # SRC_MASKLEN = number of bits in the subnet mask for the source
372 #
373 # DST_ADDR    = server or forwarder hostname or dotted IP address
374 # DST_MASKLEN = number of bits in the subnet mask for the target
375 #
376 # field separator (FS) is whitespace (space or tab)
377 #
378 # IMPORTANT NOTE
379 # ==============
380 # If Privoxy is using a forwarder or a gateway for a particular 
381 # destination URL, the DST_ADDRR that is examined is the address of
382 # the forwarder or the gateway and NOT the address of the ultimate target.
383 # This is necessary because it may be impossible for the local
384 # Privoxy to determine the address of the ultimate target
385 # (that's often what gateways are used for).
386 #
387 # Here are a few examples to show how the ACL works:
388 #
389 # localhost is OK --  no DST_ADDR implies that ALL destination addresses are OK
390 # permit-access localhost
391 #
392 # a silly example to illustrate:
393 #
394 # permit any host on the class-C subnet with our web server to go
395 # anywhere
396 #
397 # permit-access www.example.com/24
398 #
399 # except deny one particular IP address from using it at all
400 #
401 # deny-access      hacker.example.com
402 #
403 # another example
404 #
405 # You can specify an explicit network address and subnet mask.
406 # Explicit addresses do not have to be resolved to be used.
407 #
408 # permit-access 207.153.200.0/24
409 #
410 # a subnet mask of 0 matches anything, so the next line permits everyone.
411 #
412 # permit-access 0.0.0.0/0
413 #
414 # Note:  you cannot say
415 #
416 # permit-access .org
417 #
418 # to allow all .org domains; every IP-address listed must resolve fully.
419 #
420 # An ISP may want to provide a Privoxy that is accessible by "the world"
421 # and yet restrict use of some of their private content to hosts on its
422 # internal network (i.e. its own subscribers).  Say, for instance the
423 # ISP owns the Class-B IP address block 123.124.0.0 (a 16 bit netmask).
424 # This is how they could do it:
425 #
426 # permit-access 0.0.0.0/0   0.0.0.0/0   # other clients can go anywhere 
427 #                                       # with the following exceptions:
428 #
429 # deny-access   0.0.0.0/0   123.124.0.0/16 # block all external requests for
430 #                                          # sites on the ISP's network
431 #
432 # permit 0.0.0.0/0   www.my_isp.com # except for the ISP's main web site
433 #
434 # permit 123.124.0.0/16 0.0.0.0/0   # the ISP's clients can go anywhere
435 #
436 # Note that some hostnames may be listed with multiple IP addresses;
437 # the primary value returned by gethostbyname() is used.
438 #
439 # Default: Anyone can access the proxy.
440
441
442 #############################################################################
443 # Forwarding
444 #############################################################################
445 #
446 #
447 # This feature allows routing of HTTP requests via multiple proxies.
448 # It can be used to better protect privacy and confidentiality when
449 # accessing specific domains by routing requests to those domains
450 # to a special purpose filtering proxy such as lpwa.com
451 #
452 # It can also be used in an environment with multiple networks to route
453 # requests via multiple gateways allowing transparent access to multiple
454 # networks without having to modify browser configurations.
455 #
456 # Also specified here are SOCKS proxies.  We support SOCKS 4 and SOCKS 4A.
457 # The difference is that SOCKS 4A will resolve the target hostname using
458 # DNS on the SOCKS server, not our local DNS client.
459 #
460 # The syntax of each line is
461 #
462 # forward target_domain[:port] http_proxy_host[:port]
463 # forward-socks4  target_domain[:port] socks_proxy_host[:port] http_proxy_host[:port]
464 # forward-socks4a target_domain[:port] socks_proxy_host[:port] http_proxy_host[:port]
465 #
466 # If http_proxy_host is ".", then requests are not forwarded to
467 # a HTTP proxy but are made directly to the web servers.
468 #
469 # Lines are checked in turn, and the last match wins.
470 #
471 # There is an implicit line equivalent to the following, which specifies that
472 # anything not finding a match on the list is to go out without forwarding
473 # or gateway protocol; like so:
474 #    forward .*   .  # implicit
475 #
476 # In the following common configuration, everything goes to Lucent's LPWA,
477 # except SSL on port 443 (which it doesn't handle)
478 #    forward .*    lpwa.com:8118
479 #    forward :443 .
480 #
481 # See the FAQ for instructions on how to automate the login procedure for LPWA.
482 # Some users have reported difficulties related to LPWA's use of . as the
483 # last element of the domain, and have said that this can be fixed with this:
484 #    forward lpwa.  lpwa.com:8118
485 # (NOTE: the syntax for specifiying target_domain has changed since the
486 # previous paragraph weas written - it will not work now.  More information
487 # is welcome.)
488 #
489 # In this fictitious example, everything goes via an ISP's caching proxy,
490 # except requests to that ISP:
491 #
492 # forward .* caching.myisp.net:8118
493 # forward myisp.net .
494 #
495 # For the @home network, we're told the forwarding configuration is this:
496 # forward .* proxy:8080
497 # Also, we're told they insist on getting cookies and Javascript, so you need
498 # to add home.com to the cookie file. We consider Javascript a security risk;
499 # see our page on cookies. Java need not be enabled.
500 #
501 # In this example direct connections are made to all "internal" domains,
502 # but everything else goes through Lucent's LPWA by way of the company's
503 # SOCKS gateway to the Internet.
504 #
505 # forward-socks4 .* lpwa.com:8118 firewall.my_company.com:1080
506 # forward my_company.com .
507 #
508 # This is how you could set up a site that always uses SOCKS but no forwarders
509 #
510 # forward-socks4a .* . firewall.my_company.com:1080
511 #
512 # An advanced example for network administrators:
513 #
514 # If you have links to multiple ISPs that provide various special content to
515 # their subscribers, you can configure forwarding to pass requests to the
516 # specific host that's connected to that ISP so that everybody can see all
517 # of the content on all of the ISPs.
518 #
519 # This is tricky, but here's a sample:
520
521 # host-a has a PPP connection to isp-a.com
522 # host-b has a PPP connection to isp-b.com
523 #
524 # host-a can run Privoxy with forwarding like this:
525 #   forward .* .
526 #   forward isp-b.com host-b:8118
527 #
528 # host-b can run Privoxy with forwarding like this:
529 #   forward .* .
530 #   forward isp-a.com host-a:8118
531 #
532 # Now, *anyone* on the Internet (including users on host-a and host-b)
533 # can set their browser's proxy to *either* host-a or host-b and
534 # be able to browse the content on isp-a or isp-b.
535 #
536 #
537 # Here's another practical example, for University of Kent at
538 # Canterbury students with a network connection in their room, who
539 # need to use the University's Squid web cache.
540 #
541 #   forward *. ssbcache.ukc.ac.uk:3128 # Use the proxy, except for:
542 #   forward .ukc.ac.uk            . # Anything on the same domain as us
543 #   forward *                     . # Host with no domain specified
544 #   forward 129.12.*.*            . # A dotted IP on our /16 network.
545 #   forward 127.*.*.*             . # Loopback address
546 #   forward localhost.localdomain . # Loopback address
547 #   forward www.ukc.mirror.ac.uk  . # Specific host
548 #
549 #
550 # Note: If you intend to chain Privoxy and squid locally, the chain
551 #       broswer -> squid -> Privoxy is the recommended way.
552 #
553 #       Your squid configuration could then look like this:
554 #
555 #       # Define Privoxy as parent cache 
556 #       cache_peer 127.0.0.1 8118 parent 0 no-query 
557 #
558 #       # Define ACL for protocol FTP 
559 #       acl FTP proto FTP 
560 #
561 #       # Do not forward ACL FTP to Privoxy 
562 #       always_direct allow FTP 
563 #
564 #       # Do not forward ACL CONNECT (https) to Privoxy 
565 #       always_direct allow CONNECT 
566 #
567 #       # Forward the rest to Privoxy 
568 #       never_direct allow all 
569 #
570
571 #############################################################################
572 #  5. WINDOWS GUI OPTIONS
573 #############################################################################
574 #
575 #  Privoxy has a number of options specific to the Windows GUI
576 #  interface:
577 #
578 #    activity-animation      {1 or 0}
579 #
580 #    If set to 1, the Privoxy icon will animate when Privoxy is
581 #    active.
582 #
583 #Win32-only: activity-animation      1
584
585 #    log-messages            {1 or 0}
586 #
587 #    If set to 1, Privoxy will log messages to the console window.
588 #
589 #Win32-only: log-messages            1
590
591 #    log-buffer-size         {1 or 0}?
592 #
593 #    If log-buffer-size is set to 1, the size of the log buffer, that
594 #    is the amount of memory used for the log messages displayed in
595 #    the console window, will be limited to 'log-max-lines' (see below).
596 #
597 #    Warning: Setting this to 0 will result in the buffer to grow
598 #             infinitely and eat up all your memory!
599 #
600 #Win32-only: log-buffer-size   1
601
602 #    log-max-lines   {number of lines, e.g., '200'}
603 #
604 #    Maximum number of lines held in the log buffer. See above.
605 #
606 #Win32-only: log-max-lines   200
607
608 #    log-highlight-messages  {1 or 0}
609 #
610 #    If set to 1, Privoxy will highlight portions of the log
611 #    messages with a bold-faced font.
612 #
613 #Win32-only: log-highlight-messages  1
614
615 #    log-font-name           {font name, e.g., 'Comic Sans MS'}
616 #
617 #    The font used in the console window.
618 #
619 #Win32-only: log-font-name           Comic Sans MS
620
621 #    log-font-size           {font size in points, e.g., '8'}
622 #
623 #    Font size used in the console window.
624 #
625 #Win32-only: log-font-size           8
626
627 #    show-on-task-bar        {1 or 0}
628 #
629 #    Controls whether or not Privoxy will appear as a button on the Task
630 #    bar when minimized.
631 #
632 #Win32-only: show-on-task-bar        0
633
634
635 #    close-button-minimizes  1
636 #
637 #    If set, the Windows close button will minimize Privoxy instead
638 #    of closing the program (close with the exit option on the File
639 #    menu).
640 #
641 #Win32-only: close-button-minimizes  1
642
643
644 #
645 #  This option is specific to the Win32 console version of Privoxy:
646 #
647 #    hide-console
648 #
649 #    If this option is used, Privoxy will disconnect from and hide 
650 #    the command console.
651 #
652 #Win32-only: #hide-console
653
654
655 # Note: Privoxy is distributed under the GNU General Public License (GPL)
656 #       For details, see http://www.gnu.org/copyleft/gpl.html