PRIVOXY(1)

NAME
privoxy - Privacy Enhancing Proxy

SYNOPSIS
privoxy [--help ] [--version ] [--no-daemon ] [--pidfile pidfile ] [--user user[.group] ] [--chroot ] [configfile ]

OPTIONS

Privoxy may be invoked with the following command line options:

--help
    Print brief usage info and exit.

--version
    Print version info and exit.

--no-daemon
    Don't become a daemon, i.e. don't fork and become process group leader, don't detach from controlling tty, and do all logging there.

--pidfile pidfile
    On startup, write the process ID to pidfile. Delete the pidfile on exit. Failure to create or delete the pidfile is non-fatal. If no --pidfile option is given, no PID file will be used.

--user user[.group]
    After (optionally) writing the PID file, assume the user ID of user and the GID of group, or, if the optional group was not given, the default group of user. Exit if the privileges are not sufficient to do so.

--chroot
    Before changing to the user ID given in the --user option, chroot to that user's home directory, i.e. make the kernel pretend to the Privoxy process that the directory tree starts there. If set up carefully, this can limit the impact of possible vulnerabilities in Privoxy to the files contained in that hierarchy.

If the configfile is not specified on the command line, Privoxy will look for a file named config in the current directory . If no configfile is found, Privoxy will fail to start.

DESCRIPTION

Privoxy is a web proxy with advanced filtering capabilities for protecting privacy, modifying web page data, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk. Privoxy has a very flexible configuration and can be customized to suit individual needs and tastes. Privoxy has application for both stand-alone systems and multi-user networks.

Privoxy is based on Internet Junkbuster (tm).

INSTALLATION AND USAGE

Browsers must be individually configured to use Privoxy as a HTTP proxy. The default setting is for localhost, on port 8118 (configurable in the main config file). To set the HTTP proxy in Netscape and Mozilla, go through: Edit; Preferences; Advanced; Proxies; Manual Proxy Configuration; View.

For Firefox, go through: Tools; Options; General; Connection Settings; Manual Proxy Configuration.

For Internet Explorer, go through: Tools; Internet Properties; Connections; LAN Settings.

The Secure (SSL) Proxy should also be set to the same values, otherwise https: URLs will not be proxied. Note: Privoxy can only proxy HTTP and HTTPS traffic. Do not try it with FTP or other protocols. HTTPS presents some limitations, and not all features will work with HTTPS connections.

For other browsers, check the documentation.

CONFIGURATION

Privoxy can be configured with the various configuration files. The default configuration files are: config, default.filter, and default.action. user.action should be used for locally defined exceptions to the default rules of default.action, and user.filter for locally defined filters. These are well commented. On Unix and Unix-like systems, these are located in /etc/privoxy/ by default.

Privoxy uses the concept of actions in order to manipulate the data stream between the browser and remote sites. There are various actions available with specific functions for such things as blocking web sites, managing cookies, etc. These actions can be invoked individually or combined, and used against individual URLs, or groups of URLs that can be defined using wildcards and regular expressions. The result is that the user has greatly enhanced control and freedom.

The actions list (ad blocks, etc) can also be configured with your web browser at http://config.privoxy.org/. Privoxy's configuration parameters can also be viewed at the same page. In addition, Privoxy can be toggled on/off. This is an internal page, and does not require Internet access.

See the User Manual for a detailed explanation of installation, general usage, all configuration options, new features and notes on upgrading.

SAMPLE CONFIGURATION

A brief example of what a simple default.action configuration might look like:
 # Define a few useful custom aliases for later use
 {{alias}}
 # Useful aliases that combine more than one action
 +crunch-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
 -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
 +block-as-image = +block +handle-as-image
 # Fragile sites should have the minimum changes
 fragile     = -block -deanimate-gifs -fast-redirects -filter \
               -hide-referer -prevent-cookies -kill-popups
 ## Turn some actions on ################################
 ## NOTE: Actions are off by default, unless explictily turned on
 ## otherwise with the '+' operator.
{ \
-add-header \
-block \
-content-type-overwrite \
-crunch-client-header \
-crunch-if-none-match \
-crunch-outgoing-cookies \
-crunch-incoming-cookies \
-crunch-server-header \
+deanimate-gifs{last} \
-downgrade-http-version \
-fast-redirects \
-filter{js-annoyances} \
-filter{js-events} \
-filter{html-annoyances} \
-filter{content-cookies} \
+filter{refresh-tags} \
-filter{unsolicited-popups} \
-filter{all-popups} \
-filter{img-reorder} \
-filter{banners-by-size} \
-filter{banners-by-link} \
+filter{webbugs} \
-filter{tiny-textforms} \
+filter{jumping-windows} \
-filter{frameset-borders} \
-filter{demoronizer} \
-filter{shockwave-flash} \
-filter{quicktime-kioskmode} \
-filter{fun} \
-filter{crude-parental} \
+filter{ie-exploits} \
-filter{site-specifics} \
-filter{google} \
-filter{yahoo} \
-filter{msn} \
-filter{blogspot} \
-filter{xml-to-html} \
-filter{html-to-xml} \
-filter{no-ping} \
-filter{hide-tor-exit-notation} \
-filter-client-headers \
-filter-server-headers \
-force-text-mode \
-handle-as-empty-document
-handle-as-image \
-hide-accept-language \
-hide-content-disposition \
-hide-if-modified-since \
+hide-forwarded-for-headers \
+hide-from-header{block} \
+hide-referrer{forge} \
-hide-user-agent \
-inspect-jpegs \
-kill-popups \
-limit-connect \
-overwrite-last-modified \
-redirect \
+prevent-compression \
-send-vanilla-wafer \
-send-wafer \
+session-cookies-only \
+set-image-blocker{pattern} \
-treat-forbidden-connects-like-blocks \
}
/ # '/' Match *all* URL patterns

 # Block all URLs that match these patterns
 { +block }
  ad.
  ad[sv].
  .*ads.
  banner?.
  /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
  .hitbox.com
  media./.*(ads|banner)
 # Block, and treat these URL patterns as if they were 'images'.
 # We would expect these to be ads.
 { +block-as-image }
  .ad.doubleclick.net
  .a[0-9].yimg.com/(?:(?!/i/).)*$
  ad.*.doubleclick.net
 # Make exceptions for these harmless ones that would be
 # caught by our +block patterns just above.
 { -block }
  adsl.
  adobe.
  advice.
  .*downloads.
  # uploads or downloads
  /.*loads

Then for a user.action, we would put local, narrowly defined exceptions:
 # Re-define aliases as needed here
 {{alias}}
 # Useful aliases
 -crunch-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies

 # Set personal exceptions to the policies in default.action #######
 # Sites where we want persistent cookies, so allow *all* cookies
 { -crunch-cookies -session-cookies-only }
  .redhat.com
  .sun.com
  .msdn.microsoft.com

 # These sites breaks easily. Use our "fragile" alias here.
 { fragile }
  .forbes.com
  mybank.example.com
 # Replace example.com's style sheet with one of my choosing
 { +redirect{http://localhost/css-replacements/example.com.css} }
  example.com/stylesheet.css

See the comments in the configuration files themselves, or the User Manual for full explanations of the above syntax, and other Privoxy configuration options.

FILES

 /usr/sbin/privoxy
 /etc/privoxy/config
 /etc/privoxy/default.action
 /etc/privoxy/standard.action
 /etc/privoxy/user.action
 /etc/privoxy/default.filter
 /etc/privoxy/user.filter
 /etc/privoxy/trust
 /etc/privoxy/templates/*
 /var/log/privoxy/logfile

Various other files should be included, but may vary depending on platform and build configuration. Additional documentation should be included in the local documentation directory.

SIGNALS

Privoxy terminates on the SIGINT, SIGTERM and SIGABRT signals. Log rotation scripts may cause a re-opening of the logfile by sending a SIGHUP to Privoxy. Note that unlike other daemons, Privoxy does not need to be made aware of config file changes by SIGHUP -- it will detect them automatically.

NOTES

Please see the User Manual on how to contact the developers, for feature requests, reporting problems, and other questions.

SEE ALSO

Other references and sites of interest to Privoxy users:

http://www.privoxy.org/, the Privoxy Home page. http://www.privoxy.org/faq/, the Privoxy FAQ. http://sourceforge.net/projects/ijbswa/, the Project Page for Privoxy on SourceForge. http://config.privoxy.org/, the web-based user interface. Privoxy must be running for this to work. Shortcut: http://p.p/ http://sourceforge.net/tracker/?group_id=11118&atid=460288, to submit ``misses'' and other configuration related suggestions to the developers. http://www.junkbusters.com/ht/en/cookies.html, an explanation how cookies are used to track web users. http://www.junkbusters.com/ijb.html, the original Internet Junkbuster. http://privacy.net/, a useful site to check what information about you is leaked while you browse the web. http://www.squid-cache.org/, a very popular caching proxy, which is often used together with Privoxy. http://tor.eff.org/, Tor can help anonymize web browsing, web publishing, instant messaging, IRC, SSH, and other applications. http://www.privoxy.org/developer-manual/, the Privoxy developer manual.

DEVELOPMENT TEAM
 Fabian Keil, developer
 David Schmidt, developer

 Hal Burgiss
 Ian Cummings
 Roland Rosenfeld

COPYRIGHT AND LICENSE

  COPYRIGHT

Copyright (C) 2001 - 2006 by Privoxy Developers <ijbswa-developers@lists.sourceforge.net>

Some source code is based on code Copyright (C) 1997 by Anonymous Coders and Junkbusters, Inc. and licensed under the GNU General Public License.

  LICENSE

Privoxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, which is available from the Free Software Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA