Provided by: ffproxy_1.6-12_amd64 bug

NAME

     ffproxy.quick — filtering HTTP/HTTPS proxy server quick introduction

DESCRIPTION

     ffproxy is a filtering HTTP/HTTPS proxy server.  It is able to filter by host, URL, and
     header.  Custom header entries can be filtered and added.  It can even drop its privileges
     and optionally chroot(2) to some directory.  Logging to syslog(3) is supported, as is using
     another auxiliary proxy server.  An HTTP accelerator feature (acting as a front-end to an
     HTTP server) is included.  Contacting IPv6 servers as well as binding to IPv6 is supported
     and allows transparent IPv6 over IPv4 browsing (and vice versa).

     This manual describes how to set up a basic HTTP proxy installation.  It is assumed that you
     already have compiled the program or installed it via port or package.

COPYING FILES

     The program comes with default configuration files that contain both examples and suggested
     entries.  You can simply copy them to a directory of your choice.  This directory will
     become the program's working directory.

           mkdir /var/ffproxy
           tar cf - db/ html/ | ( cd /var/ffproxy ; tar xf - )
           cp sample.config /var/ffproxy/ffproxy.conf

     Above example would install all needed files to /var/ffproxy, which is ffproxy's default
     working directory.

SECURING

     The proxy now has its own working directory.  By default, ffproxy does not change UID/GID
     after start.  For security reasons we want to enable it.  You have two choices know: Either
     use existing UID/GID or add custom UID/GID for ffproxy.  See adduser(8) or useradd(8),
     depending on your system, on how to create new IDs.

     Edit ffproxy.conf and change the lines containing uid and gid

           # change UID and GID
           #
           # to use, both uid and gid must be set
           # (disabled by default)
           #uid proxy
           #gid proxy
           uid _ffproxy
           gid _ffproxy

     In addition to changing UID and GID, ffproxy should be executed change-rooted to its working
     directory.  So we change chroot_dir and db_files_path in the configuration file

           # change root to (only in connection with uid and gid change)
           # (disabled by default)
           chroot_dir /var/ffproxy

           # path to db/ and html/ directories
           # (default: /var/ffproxy)
           db_files_path .

     db_files_path must be changed, too, since that is relative to new root.  Finally, we copy
     /etc/resolv.conf to ffproxy's home to enable DNS in chroot and chown /var/ffproxy so the
     proxy's master process can write its PID file

           mkdir /var/ffproxy/etc
           cp /etc/resolv.conf /var/ffproxy/etc/
           chmod 750 /var/ffproxy
           chown _ffproxy._ffproxy /var/ffproxy

ACCESS TO THE PROXY

     By default, nobody is allowed to connect to ffproxy.  Let's say, we want to provide LAN
     users a filtering proxy to shut down malicious content coming from the Internet.  So the
     proxy has to be listening on the local network interface only.  We change bind_ipv4 and
     bind_ipv6 appropiately in ffproxy.conf

           bind_ipv4 martyr.burden.eu.org
           bind_ipv6 martyr.burden.eu.org

     Additionally, we have to change db/access.ip.  By, for example,

           ^192\.168\.10\.

     we allow 192.168.10.0/24 to use our proxy.

STARTING THE PROXY

     Last step is starting ffproxy.  Keep in mind that we run the program change-rooted to
     /var/ffproxy, so files are relative to new root.

           cd /var/ffproxy ; /usr/local/bin/ffproxy -f ffproxy.conf

     starts ffproxy.  Now test if it works correctly.  If not, change ffproxy.conf and/or read
     ffproxy(8) ffproxy.conf(5)

     ffproxy is not running as daemon right know.  If everything seems to work, simply shut down
     the proxy by pressing CTRL-C, set `daemonize yes' in the configuration file and start
     ffproxy again.

TRANSPARENT OPERATION

     The proxy allows transparent operation, that is, HTTP traffic is redirect to the proxy which
     simulates a HTTP server so that the users don't have to specify a proxy server.  Consider
     forced usage of a proxy server as well.  To do that, you will have to configure your NAT
     accordingly.  On OpenBSD you'll want a line like

           rdr on rl0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080

     in /etc/pf.conf.  See your NAT's documentation for details on how to do this.

VERSION

     This manual documents ffproxy 1.6 (2005-01-05).

SEE ALSO

     ffproxy(8), ffproxy.conf(5), pf.conf(5)

                                           Jan 5, 2005