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