From a7b06058cb2a83b20feb9990c3cc42e77022abf5 Mon Sep 17 00:00:00 2001 From: Jack Ivanov Date: Fri, 21 Apr 2017 00:00:17 +0200 Subject: [PATCH] remove the proxy role #440 (#457) * remove the proxy role #440 * Separate facts. Make roles more independent from each other move openssl to local tasks move unneeded tasks --- README.md | 8 +- config.cfg | 4 +- deploy.yml | 5 - docs/setup-roles.md | 4 - playbooks/common.yml | 7 +- playbooks/facts/main.yml | 42 + roles/dns_adblocking/tasks/main.yml | 3 +- roles/proxy/handlers/main.yml | 12 - roles/proxy/meta/main.yml | 5 - roles/proxy/tasks/main.yml | 115 - roles/proxy/templates/000-default.conf.j2 | 11 - .../apache2_100-CustomLimitations.conf.j2 | 4 - roles/proxy/templates/default.filter.j2 | 0 roles/proxy/templates/pagespeed.conf.j2 | 369 --- roles/proxy/templates/ports.conf.j2 | 13 - .../privoxy_100-CustomLimitations.conf.j2 | 4 - roles/proxy/templates/privoxy_config.j2 | 2107 ----------------- roles/proxy/templates/usr.sbin.privoxy.j2 | 15 - roles/security/tasks/main.yml | 2 + roles/ssh_tunneling/tasks/main.yml | 3 - roles/vpn/tasks/main.yml | 23 +- users.yml | 4 - 22 files changed, 53 insertions(+), 2707 deletions(-) create mode 100644 playbooks/facts/main.yml delete mode 100644 roles/proxy/handlers/main.yml delete mode 100644 roles/proxy/meta/main.yml delete mode 100644 roles/proxy/tasks/main.yml delete mode 100644 roles/proxy/templates/000-default.conf.j2 delete mode 100644 roles/proxy/templates/apache2_100-CustomLimitations.conf.j2 delete mode 100644 roles/proxy/templates/default.filter.j2 delete mode 100644 roles/proxy/templates/pagespeed.conf.j2 delete mode 100644 roles/proxy/templates/ports.conf.j2 delete mode 100644 roles/proxy/templates/privoxy_100-CustomLimitations.conf.j2 delete mode 100644 roles/proxy/templates/privoxy_config.j2 delete mode 100644 roles/proxy/templates/usr.sbin.privoxy.j2 diff --git a/README.md b/README.md index 5f9ddaf..635ae52 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Algo VPN is a set of Ansible scripts that simplify the setup of a personal IPSEC * Supports only IKEv2 with strong crypto: AES-GCM, SHA2, and P-256 * Generates Apple profiles to auto-configure iOS and macOS devices * Includes a helper script to add and remove users -* Blocks ads with a local DNS resolver and HTTP proxy (optional) +* Blocks ads with a local DNS resolver (optional) * Sets up limited SSH users for tunneling traffic (optional) * Based on current versions of Ubuntu and strongSwan * Installs to DigitalOcean, Amazon EC2, Microsoft Azure, Google Compute Engine, or your own server @@ -79,7 +79,7 @@ You can now setup clients to connect it, e.g. your iPhone or laptop. Proceed to "\"# Config files and certificates are in the ./configs/ directory. #\"", "\"# Go to https://whoer.net/ after connecting #\"", "\"# and ensure that all your traffic passes through the VPN. #\"", - "\"# Local DNS resolver and Proxy IP address: 172.16.0.1 #\"", + "\"# Local DNS resolver 172.16.0.1 #\"", "\"# The p12 and SSH keys password is XXXXXXXX #\"", "\"#----------------------------------------------------------------------#\"", ``` @@ -180,9 +180,9 @@ Use the example command below to start an SSH tunnel by replacing `user` and `ip To SSH into the Algo server for administrative purposes you can use the example command below by replacing `ip` with your own: `ssh ubuntu@ip -i ~/.ssh/algo.pem` - + If you find yourself regularly logging into Algo then it will be useful to load your Algo ssh key automatically. Add the following snippet to the bottom of `~/.bash_profile` to add it to your shell environment permanently. - + `ssh-add ~/.ssh/algo > /dev/null 2>&1` diff --git a/config.cfg b/config.cfg index b869dd2..b0fdefe 100644 --- a/config.cfg +++ b/config.cfg @@ -28,7 +28,7 @@ dns_servers: - 2001:4860:4860::8888 - 2001:4860:4860::8844 -# IP address for the proxy and the local dns resolver +# IP address for the local dns resolver local_service_ip: 172.16.0.1 pkcs12_PayloadCertificateUUID: "{{ 900000 | random | to_uuid | upper }}" @@ -45,7 +45,7 @@ congrats: "# Config files and certificates are in the ./configs/ directory. #" "# Go to https://whoer.net/ after connecting #" "# and ensure that all your traffic passes through the VPN. #" - "# Local DNS resolver and Proxy IP address: {{ local_service_ip }} #" + "# Local DNS resolver {{ local_service_ip }} #" p12_pass: | "# The p12 and SSH keys password is {{ easyrsa_p12_export_password }} #" ca_key_pass: | diff --git a/deploy.yml b/deploy.yml index 3d6966e..5623c25 100644 --- a/deploy.yml +++ b/deploy.yml @@ -41,13 +41,8 @@ include: playbooks/common.yml tags: [ 'digitalocean', 'ec2', 'gce', 'azure', 'local', 'pre' ] - - set_fact: - cloud_deployment: true - tags: ['cloud'] - roles: - { role: security, tags: [ 'security' ] } - - { role: proxy, tags: [ 'proxy', 'adblock' ] } - { role: dns_adblocking, tags: ['dns', 'adblock' ] } - { role: ssh_tunneling, tags: [ 'ssh_tunneling' ] } - { role: vpn, tags: [ 'vpn' ] } diff --git a/docs/setup-roles.md b/docs/setup-roles.md index 2e224c1..697fc5f 100644 --- a/docs/setup-roles.md +++ b/docs/setup-roles.md @@ -17,10 +17,6 @@ * Enables [unattended-upgrades](https://help.ubuntu.com/community/AutomaticSecurityUpdates) to ensure available patches are always applied * Modify features like core dumps, kernel parameters, and SUID binaries to limit possible attacks * Enhances SSH with modern ciphers and seccomp, and restricts access to old or unwanted features like X11 forwarding and SFTP -* **Proxy-based Adblocking and Compression** - * Installs [Privoxy](https://www.privoxy.org/) with an ad blocking ruleset - * Installs Apache with [mod_pagespeed](http://modpagespeed.com/) as an HTTP proxy - * Constrains Privoxy and Apache with AppArmor and cgroups CPU and memory limitations * **DNS-based Adblocking** * Install the [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) local resolver with a blacklist for advertising domains * Constrains dnsmasq with AppArmor and cgroups CPU and memory limitations diff --git a/playbooks/common.yml b/playbooks/common.yml index 3308fa7..04a3966 100644 --- a/playbooks/common.yml +++ b/playbooks/common.yml @@ -12,9 +12,4 @@ include: freebsd.yml when: '"FreeBSD" in OS.stdout' -- name: Ensure the algo ssh key exist on the server - authorized_key: - user: "{{ ansible_ssh_user }}" - state: present - key: "{{ lookup('file', '{{ SSH_keys.public }}') }}" - tags: [ 'cloud' ] +- include: facts/main.yml diff --git a/playbooks/facts/main.yml b/playbooks/facts/main.yml new file mode 100644 index 0000000..d66f15c --- /dev/null +++ b/playbooks/facts/main.yml @@ -0,0 +1,42 @@ +--- + +- name: Gather Facts + setup: + +- name: Ensure the algo ssh key exist on the server + authorized_key: + user: "{{ ansible_ssh_user }}" + state: present + key: "{{ lookup('file', '{{ SSH_keys.public }}') }}" + tags: [ 'cloud' ] + +- name: Enable IPv6 + set_fact: + ipv6_support: true + when: ansible_default_ipv6.gateway is defined + +- name: Set facts if the deployment in a cloud + set_fact: + cloud_deployment: true + tags: ['cloud'] + +- name: Generate password for the CA key + local_action: + module: shell + openssl rand -hex 16 + become: no + register: CA_password + +- name: Define password facts + set_fact: + easyrsa_p12_export_password: "{{ p12_export_password|default((ansible_date_time.iso8601_basic|sha1|to_uuid).split('-')[0]) }}" + easyrsa_CA_password: "{{ CA_password.stdout }}" + +- name: Define the commonName + set_fact: + IP_subject_alt_name: "{{ IP_subject_alt_name }}" + +- name: Change the algorithm to RSA + set_fact: + algo_params: "rsa:2048" + when: Win10_Enabled is defined and Win10_Enabled == "Y" diff --git a/roles/dns_adblocking/tasks/main.yml b/roles/dns_adblocking/tasks/main.yml index 90a86ee..f2f0aeb 100644 --- a/roles/dns_adblocking/tasks/main.yml +++ b/roles/dns_adblocking/tasks/main.yml @@ -1,5 +1,4 @@ -- name: Gather Facts - setup: +--- - name: Dnsmasq installed package: name=dnsmasq diff --git a/roles/proxy/handlers/main.yml b/roles/proxy/handlers/main.yml deleted file mode 100644 index a31941b..0000000 --- a/roles/proxy/handlers/main.yml +++ /dev/null @@ -1,12 +0,0 @@ -- name: restart privoxy - service: name=privoxy state=restarted - -- name: daemon-reload - shell: systemctl daemon-reload - -- name: restart apparmor - service: name=apparmor state=restarted - -- name: restart apache2 - service: name=apache2 state=restarted - diff --git a/roles/proxy/meta/main.yml b/roles/proxy/meta/main.yml deleted file mode 100644 index ef71a47..0000000 --- a/roles/proxy/meta/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -dependencies: - - { role: common, tags: common } - - { role: vpn, tags: vpn } diff --git a/roles/proxy/tasks/main.yml b/roles/proxy/tasks/main.yml deleted file mode 100644 index 0af30df..0000000 --- a/roles/proxy/tasks/main.yml +++ /dev/null @@ -1,115 +0,0 @@ -- name: Gather Facts - setup: - -- name: Privoxy installed - apt: name=privoxy state=latest - -- name: Privoxy configured - template: src="{{ item.src }}" dest="{{ item.dest }}" - with_items: - - { src: privoxy_config.j2, dest: /etc/privoxy/config } - - { src: default.filter.j2, dest: /etc/privoxy/default.filter } - notify: - - restart privoxy - -- name: Privoxy profile for apparmor configured - template: src=usr.sbin.privoxy.j2 dest=/etc/apparmor.d/usr.sbin.privoxy owner=root group=root mode=0600 - when: apparmor_enabled is defined and apparmor_enabled == true - notify: - - restart privoxy - -- name: Enforce the privoxy AppArmor policy - shell: aa-enforce usr.sbin.privoxy - when: apparmor_enabled is defined and apparmor_enabled == true - tags: ['apparmor'] - -- name: Ensure that the privoxy service directory exist - file: path=/etc/systemd/system/privoxy.service.d/ state=directory mode=0755 owner=root group=root - -- name: Setup the cgroup limitations for the privoxy daemon - template: src=privoxy_100-CustomLimitations.conf.j2 dest=/etc/systemd/system/privoxy.service.d/100-CustomLimitations.conf - notify: - - daemon-reload - - restart privoxy - -- meta: flush_handlers - -- name: Privoxy enabled and started - service: name=privoxy state=started enabled=yes - -# PageSpeed - -- name: Apache installed - apt: name=apache2 state=latest - -- name: PageSpeed installed for x86_64 - apt: deb=https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb - when: ansible_architecture == "x86_64" - -- name: PageSpeed installed for i386 - apt: deb=https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb - when: ansible_architecture != "x86_64" - -- name: PageSpeed configured - template: src=pagespeed.conf.j2 dest=/etc/apache2/mods-available/pagespeed.conf - notify: - - restart apache2 - -- name: Modules enabled - apache2_module: state=present name="{{ item }}" - with_items: - - proxy_http - - pagespeed - - cache - - proxy_connect - - proxy_html - - rewrite - notify: - - restart apache2 - -- name: VirtualHost configured for the PageSpeed module - template: src=000-default.conf.j2 dest=/etc/apache2/sites-enabled/000-default.conf - notify: - - restart apache2 - -- name: Apache ports configured - template: src=ports.conf.j2 dest=/etc/apache2/ports.conf - notify: - - restart apache2 - -- name: Ensure that the apache2 service directory exist - file: path=/etc/systemd/system/apache2.service.d/ state=directory mode=0755 owner=root group=root - -- name: Setup the cgroup limitations for the apache2 daemon - template: src=apache2_100-CustomLimitations.conf.j2 dest=/etc/systemd/system/apache2.service.d/100-CustomLimitations.conf - notify: - - daemon-reload - - restart apache2 - -- meta: flush_handlers - -- name: Set facts for mobileconfigs - set_fact: - proxy_enabled: true - -- name: Register p12 PayloadContent - shell: > - cat /{{ easyrsa_dir }}/easyrsa3//pki/private/{{ item }}.p12 | base64 - register: PayloadContent - with_items: "{{ users }}" - -- name: Register CA PayloadContent - shell: > - cat /{{ easyrsa_dir }}/easyrsa3/pki/ca.crt | base64 - register: PayloadContentCA - -- name: Build the mobileconfigs - template: src=roles/vpn/templates/mobileconfig.j2 dest=/{{ easyrsa_dir }}/easyrsa3//pki/private/{{ item.0 }}_proxy.mobileconfig mode=0600 - with_together: - - "{{ users }}" - - "{{ PayloadContent.results }}" - no_log: True - -- name: Fetch users mobileconfig - fetch: src=/{{ easyrsa_dir }}/easyrsa3//pki/private/{{ item }}_proxy.mobileconfig dest=configs/{{ IP_subject_alt_name }}_{{ item }}_proxy.mobileconfig flat=yes - with_items: "{{ users }}" diff --git a/roles/proxy/templates/000-default.conf.j2 b/roles/proxy/templates/000-default.conf.j2 deleted file mode 100644 index 7aa917b..0000000 --- a/roles/proxy/templates/000-default.conf.j2 +++ /dev/null @@ -1,11 +0,0 @@ - - - Order deny,allow - Allow from all - - RewriteEngine On - RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [NC,P] - ProxyPass / http://$1 - ProxyPassReverse / http://$1 - ProxyPreserveHost On - diff --git a/roles/proxy/templates/apache2_100-CustomLimitations.conf.j2 b/roles/proxy/templates/apache2_100-CustomLimitations.conf.j2 deleted file mode 100644 index 5e9774e..0000000 --- a/roles/proxy/templates/apache2_100-CustomLimitations.conf.j2 +++ /dev/null @@ -1,4 +0,0 @@ -[Service] -MemoryLimit=134217728 -CPUAccounting=true -CPUQuota=15% diff --git a/roles/proxy/templates/default.filter.j2 b/roles/proxy/templates/default.filter.j2 deleted file mode 100644 index e69de29..0000000 diff --git a/roles/proxy/templates/pagespeed.conf.j2 b/roles/proxy/templates/pagespeed.conf.j2 deleted file mode 100644 index 026a686..0000000 --- a/roles/proxy/templates/pagespeed.conf.j2 +++ /dev/null @@ -1,369 +0,0 @@ - - # Turn on mod_pagespeed. To completely disable mod_pagespeed, you - # can set this to "off". - ModPagespeed on - - # We want VHosts to inherit global configuration. - # If this is not included, they'll be independent (except for inherently - # global options), at least for backwards compatibility. - ModPagespeedInheritVHostConfig on - - # Direct Apache to send all HTML output to the mod_pagespeed - # output handler. - AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html - - # If you want mod_pagespeed process XHTML as well, please uncomment this - # line. - # AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER application/xhtml+xml - - # The ModPagespeedFileCachePath directory must exist and be writable - # by the apache user (as specified by the User directive). - ModPagespeedFileCachePath "/var/cache/mod_pagespeed/" - - # LogDir is needed to store various logs, including the statistics log - # required for the console. - ModPagespeedLogDir "/var/log/pagespeed" - - # The locations of SSL Certificates is distribution-dependent. - ModPagespeedSslCertDirectory "/etc/ssl/certs" - - - # If you want, you can use one or more memcached servers as the store for - # the mod_pagespeed cache. - # ModPagespeedMemcachedServers localhost:11211 - - # A portion of the cache can be kept in memory only, to reduce load on disk - # (or memcached) from many small files. - # ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200 - - # Override the mod_pagespeed 'rewrite level'. The default level - # "CoreFilters" uses a set of rewrite filters that are generally - # safe for most web pages. Most sites should not need to change - # this value and can instead fine-tune the configuration using the - # ModPagespeedDisableFilters and ModPagespeedEnableFilters - # directives, below. Valid values for ModPagespeedRewriteLevel are - # PassThrough, CoreFilters and TestingCoreFilters. - # - ModPagespeedRewriteLevel CoreFilters - - ModPagespeedEnableFilters combine_heads - ModPagespeedEnableFilters combine_javascript - ModPagespeedEnableFilters convert_jpeg_to_webp - ModPagespeedEnableFilters convert_png_to_jpeg - ModPagespeedEnableFilters inline_preview_images - ModPagespeedEnableFilters make_google_analytics_async - ModPagespeedEnableFilters move_css_above_scripts - ModPagespeedEnableFilters move_css_to_head - ModPagespeedEnableFilters resize_mobile_images - ModPagespeedEnableFilters sprite_images - - ModPagespeedEnableFilters defer_iframe - ModPagespeedEnableFilters defer_javascript - ModPagespeedEnableFilters lazyload_images - - # Explicitly disables specific filters. This is useful in - # conjunction with ModPagespeedRewriteLevel. For instance, if one - # of the filters in the CoreFilters needs to be disabled for a - # site, that filter can be added to - # ModPagespeedDisableFilters. This directive contains a - # comma-separated list of filter names, and can be repeated. - # - # ModPagespeedDisableFilters rewrite_images - - # Explicitly enables specific filters. This is useful in - # conjunction with ModPagespeedRewriteLevel. For instance, filters - # not included in the CoreFilters may be enabled using this - # directive. This directive contains a comma-separated list of - # filter names, and can be repeated. - # - # ModPagespeedEnableFilters rewrite_javascript,rewrite_css - # ModPagespeedEnableFilters collapse_whitespace,elide_attributes - - # Explicitly forbids the enabling of specific filters using either query - # parameters or request headers. This is useful, for example, when we do - # not want the filter to run for performance or security reasons. This - # directive contains a comma-separated list of filter names, and can be - # repeated. - # - # ModPagespeedForbidFilters rewrite_images - - # How long mod_pagespeed will wait to return an optimized resource - # (per flush window) on first request before giving up and returning the - # original (unoptimized) resource. After this deadline is exceeded the - # original resource is returned and the optimization is pushed to the - # background to be completed for future requests. Increasing this value will - # increase page latency, but might reduce load time (for instance on a - # bandwidth-constrained link where it's worth waiting for image - # compression to complete). If the value is less than or equal to zero - # mod_pagespeed will wait indefinitely for the rewrite to complete before - # returning. - # - # ModPagespeedRewriteDeadlinePerFlushMs 10 - - # ModPagespeedDomain - # authorizes rewriting of JS, CSS, and Image files found in this - # domain. By default only resources with the same origin as the - # HTML file are rewritten. For example: - # - ModPagespeedDomain * - # - # This will allow resources found on http://cdn.myhost.com to be - # rewritten in addition to those in the same domain as the HTML. - # - # Other domain-related directives (like ModPagespeedMapRewriteDomain - # and ModPagespeedMapOriginDomain) can also authorize domains. - # - # Wildcards (* and ?) are allowed in the domain specification. Be - # careful when using them as if you rewrite domains that do not - # send you traffic, then the site receiving the traffic will not - # know how to serve the rewritten content. - - # If you use downstream caches such as varnish or proxy_cache for caching - # HTML, you can configure pagespeed to work with these caches correctly - # using the following directives. Note that the values for - # ModPagespeedDownstreamCachePurgeLocationPrefix and - # ModPagespeedDownstreamCacheRebeaconingKey are deliberately left empty here - # in order to force the webmaster to choose appropriate value for these. - # - # ModPagespeedDownstreamCachePurgeLocationPrefix - # ModPagespeedDownstreamCachePurgeMethod PURGE - # ModPagespeedDownstreamCacheRewrittenPercentageThreshold 95 - # ModPagespeedDownstreamCacheRebeaconingKey - - # Other defaults (cache sizes and thresholds): - # - # ModPagespeedFileCacheSizeKb 102400 - # ModPagespeedFileCacheCleanIntervalMs 3600000 - # ModPagespeedLRUCacheKbPerProcess 1024 - # ModPagespeedLRUCacheByteLimit 16384 - # ModPagespeedCssFlattenMaxBytes 102400 - # ModPagespeedCssInlineMaxBytes 2048 - # ModPagespeedCssImageInlineMaxBytes 0 - # ModPagespeedImageInlineMaxBytes 3072 - # ModPagespeedJsInlineMaxBytes 2048 - # ModPagespeedCssOutlineMinBytes 3000 - # ModPagespeedJsOutlineMinBytes 3000 - # ModPagespeedMaxCombinedCssBytes -1 - # ModPagespeedMaxCombinedJsBytes 92160 - - # Limit the number of inodes in the file cache. Set to 0 for no limit. - # The default value if this parameter is not specified is 0 (no limit). - ModPagespeedFileCacheInodeLimit 500000 - - # Bound the number of images that can be rewritten at any one time; this - # avoids overloading the CPU. Set this to 0 to remove the bound. - # - # ModPagespeedImageMaxRewritesAtOnce 8 - - # You can also customize the number of threads per Apache process - # mod_pagespeed will use to do resource optimization. Plain - # "rewrite threads" are used to do short, latency-sensitive work, - # while "expensive rewrite threads" are used for actual optimization - # work that's more computationally expensive. If you live these unset, - # or use values <= 0 the defaults will be used, which is 1 for both - # values when using non-threaded MPMs (e.g. prefork) and 4 for both - # on threaded MPMs (e.g. worker and event). These settings can only - # be changed globally, and not per virtual host. - # - # ModPagespeedNumRewriteThreads 4 - # ModPagespeedNumExpensiveRewriteThreads 4 - - # Randomly drop rewrites (*) to increase the chance of optimizing - # frequently fetched resources and decrease the chance of optimizing - # infrequently fetched resources. This can reduce CPU load. The default - # value of this parameter is 0 (no drops). 90 means that a resourced - # fetched once has a 10% probability of being optimized while a resource - # that is fetched 50 times has a 99.65% probability of being optimized. - # - # (*) Currently only CSS files and images are randomly dropped. Images - # within CSS files are not randomly dropped. - # - # ModPagespeedRewriteRandomDropPercentage 90 - - # Many filters modify the URLs of resources in HTML files. This is typically - # harmless but pages whose JavaScript expects to read or modify the original - # URLs may break. The following parameters prevent filters from modifying - # URLs of their respective types. - # - # ModPagespeedJsPreserveURLs on - # ModPagespeedImagePreserveURLs on - # ModPagespeedCssPreserveURLs on - - # When PreserveURLs is on, it is still possible to enable browser-specific - # optimizations (for example, webp images can be served to browsers that - # will accept them). They'll be served with Vary: Accept or Vary: - # User-Agent headers as appropriate. Note that this may require configuring - # reverse proxy caches such as varnish to handle these headers properly. - # - # ModPagespeedFilters in_place_optimize_for_browser - - # Internet Explorer has difficulty caching resources with Vary: headers. - # They will either be uncached (older IE) or require revalidation. See: - # http://blogs.msdn.com/b/ieinternals/archive/2009/06/17/vary-header-prevents-caching-in-ie.aspx - # As a result we serve them as Cache-Control: private instead by default. - # If you are using a reverse proxy or CDN configured to cache content with - # the Vary: Accept header you should turn this setting off. - # - # ModPagespeedPrivateNotVaryForIE on - - # Settings for image optimization: - # - # Lossy image recompression quality (0 to 100, -1 just strips metadata): - # ModPagespeedImageRecompressionQuality 85 - # - # Jpeg recompression quality (0 to 100, -1 uses ImageRecompressionQuality): - # ModPagespeedJpegRecompressionQuality -1 - # ModPagespeedJpegRecompressionQualityForSmallScreens 70 - - ModPagespeedJpegRecompressionQuality 75 - - # - # WebP recompression quality (0 to 100, -1 uses ImageRecompressionQuality): - # ModPagespeedWebpRecompressionQuality 80 - # ModPagespeedWebpRecompressionQualityForSmallScreens 70 - # - # Timeout for conversions to WebP format, in - # milliseconds. Negative values mean no timeout is applied. The - # default value is -1: - # ModPagespeedWebpTimeoutMs 5000 - # - # Percent of original image size below which optimized images are retained: - # ModPagespeedImageLimitOptimizedPercent 100 - # - # Percent of original image area below which image resizing will be - # attempted: - # ModPagespeedImageLimitResizeAreaPercent 100 - - # Settings for inline preview images - # - # Setting this to n restricts preview images to the first n images found on - # the page. The default of -1 means preview images can appear anywhere on - # the page (if those images appear above the fold). - # ModPagespeedMaxInlinedPreviewImagesIndex -1 - - # Sets the minimum size in bytes of any image for which a low quality image - # is generated. - # ModPagespeedMinImageSizeLowResolutionBytes 3072 - - # The maximum URL size is generally limited to about 2k characters - # due to IE: See http://support.microsoft.com/kb/208427/EN-US. - # Apache servers by default impose a further limitation of about - # 250 characters per URL segment (text between slashes). - # mod_pagespeed circumvents this limitation, but if you employ - # proxy servers in your path you may need to re-impose it by - # overriding the setting here. The default setting is 1024 - # characters. - # - # ModPagespeedMaxSegmentLength 250 - - # Uncomment this if you want to prevent mod_pagespeed from combining files - # (e.g. CSS files) across paths - # - # ModPagespeedCombineAcrossPaths off - - # Renaming JavaScript URLs can sometimes break them. With this - # option enabled, mod_pagespeed uses a simple heuristic to decide - # not to rename JavaScript that it thinks is introspective. - # - # You can uncomment this to let mod_pagespeed rename all JS files. - # - # ModPagespeedAvoidRenamingIntrospectiveJavaScript off - - # Certain common JavaScript libraries are available from Google, which acts - # as a CDN and allows you to benefit from browser caching if a new visitor - # to your site previously visited another site that makes use of the same - # libraries as you do. Enable the following filter to turn on this feature. - # - # ModPagespeedEnableFilters canonicalize_javascript_libraries - - # The following line configures a library that is recognized by - # canonicalize_javascript_libraries. This will have no effect unless you - # enable this filter (generally by uncommenting the last line in the - # previous stanza). The format is: - # ModPagespeedLibrary bytes md5 canonical_url - # Where bytes and md5 are with respect to the *minified* JS; use - # js_minify --print_size_and_hash to obtain this data. - # Note that we can register multiple hashes for the same canonical url; - # we do this if there are versions available that have already been minified - # with more sophisticated tools. - # - # Additional library configuration can be found in - # pagespeed_libraries.conf included in the distribution. You should add - # new entries here, though, so that file can be automatically upgraded. - # ModPagespeedLibrary 43 1o978_K0_LNE5_ystNklf http://www.modpagespeed.com/rewrite_javascript.js - - # Explicitly tell mod_pagespeed to load some resources from disk. - # This will speed up load time and update frequency. - # - # This should only be used for static resources which do not need - # specific headers set or other processing by Apache. - # - # Both URL and filesystem path should specify directories and - # filesystem path must be absolute (for now). - # - # ModPagespeedLoadFromFile "http://example.com/static/" "/var/www/static/" - - - # Enables server-side instrumentation and statistics. If this rewriter is - # enabled, then each rewritten HTML page will have instrumentation javascript - # added that sends latency beacons to /mod_pagespeed_beacon. These - # statistics can be accessed at /mod_pagespeed_statistics. You must also - # enable the mod_pagespeed_statistics and mod_pagespeed_beacon handlers - # below. - # - # ModPagespeedEnableFilters add_instrumentation - - # The add_instrumentation filter sends a beacon after the page onload - # handler is called. The user might navigate to a new URL before this. If - # you enable the following directive, the beacon is sent as part of an - # onbeforeunload handler, for pages where navigation happens before the - # onload event. - # - # ModPagespeedReportUnloadTime on - - # Uncomment the following line so that ModPagespeed will not cache or - # rewrite resources with Vary: in the header, e.g. Vary: User-Agent. - # Note that ModPagespeed always respects Vary: headers on html content. - # ModPagespeedRespectVary on - - # Uncomment the following line if you want to disable statistics entirely. - # - # ModPagespeedStatistics off - - # These handlers are central entry-points into the admin pages. - # By default, pagespeed_admin and pagespeed_global_admin present - # the same data, and differ only when - # ModPagespeedUsePerVHostStatistics is enabled. In that case, - # /pagespeed_global_admin sees aggregated data across all vhosts, - # and the /pagespeed_admin sees data only for a particular vhost. - # - # You may insert other "Allow from" lines to add hosts you want to - # allow to look at generated statistics. Another possibility is - # to comment out the "Order" and "Allow" options from the config - # file, to allow any client that can reach your server to access - # and change server state, such as statistics, caches, and - # messages. This might be appropriate in an experimental setup. - - Order allow,deny - Allow from localhost - Allow from 127.0.0.1 - SetHandler pagespeed_admin - - - Order allow,deny - Allow from localhost - Allow from 127.0.0.1 - SetHandler pagespeed_global_admin - - - # Enable logging of mod_pagespeed statistics, needed for the console. - ModPagespeedStatisticsLogging on - - # Page /mod_pagespeed_message lets you view the latest messages from - # mod_pagespeed, regardless of log-level in your httpd.conf - # ModPagespeedMessageBufferSize is the maximum number of bytes you would - # like to dump to your /mod_pagespeed_message page at one time, - # its default value is 100k bytes. - # Set it to 0 if you want to disable this feature. - ModPagespeedMessageBufferSize 100000 - diff --git a/roles/proxy/templates/ports.conf.j2 b/roles/proxy/templates/ports.conf.j2 deleted file mode 100644 index eb6be22..0000000 --- a/roles/proxy/templates/ports.conf.j2 +++ /dev/null @@ -1,13 +0,0 @@ -# If you just change the port or add more ports here, you will likely also -# have to change the VirtualHost statement in -# /etc/apache2/sites-enabled/000-default.conf - -Listen {{ local_service_ip }}:8080 - - - Listen {{ local_service_ip }}:443 - - - - Listen {{ local_service_ip }}:443 - diff --git a/roles/proxy/templates/privoxy_100-CustomLimitations.conf.j2 b/roles/proxy/templates/privoxy_100-CustomLimitations.conf.j2 deleted file mode 100644 index cd9b628..0000000 --- a/roles/proxy/templates/privoxy_100-CustomLimitations.conf.j2 +++ /dev/null @@ -1,4 +0,0 @@ -[Service] -MemoryLimit=33554432 -CPUAccounting=true -CPUQuota=15% diff --git a/roles/proxy/templates/privoxy_config.j2 b/roles/proxy/templates/privoxy_config.j2 deleted file mode 100644 index dcbe348..0000000 --- a/roles/proxy/templates/privoxy_config.j2 +++ /dev/null @@ -1,2107 +0,0 @@ -# Sample Configuration File for Privoxy -# -# Id: config,v -# -# Copyright (C) 2001-2014 Privoxy Developers http://www.privoxy.org/ -# -#################################################################### -# # -# Table of Contents # -# # -# I. INTRODUCTION # -# II. FORMAT OF THE CONFIGURATION FILE # -# # -# 1. LOCAL SET-UP DOCUMENTATION # -# 2. CONFIGURATION AND LOG FILE LOCATIONS # -# 3. DEBUGGING # -# 4. ACCESS CONTROL AND SECURITY # -# 5. FORWARDING # -# 6. MISCELLANEOUS # -# 7. WINDOWS GUI OPTIONS # -# # -#################################################################### -# -# -# I. INTRODUCTION -# =============== -# -# This file holds Privoxy's main configuration. Privoxy detects -# configuration changes automatically, so you don't have to restart -# it unless you want to load a different configuration file. -# -# The configuration will be reloaded with the first request after -# the change was done, this request itself will still use the old -# configuration, though. In other words: it takes two requests -# before you see the result of your changes. Requests that are -# dropped due to ACL don't trigger reloads. -# -# When starting Privoxy on Unix systems, give the location of this -# file as last argument. On Windows systems, Privoxy will look for -# this file with the name 'config.txt' in the current working -# directory of the Privoxy process. -# -# -# II. FORMAT OF THE CONFIGURATION FILE -# ==================================== -# -# Configuration lines consist of an initial keyword followed by a -# list of values, all separated by whitespace (any number of spaces -# or tabs). For example, -# -# actionsfile default.action -# -# Indicates that the actionsfile is named 'default.action'. -# -# The '#' indicates a comment. Any part of a line following a '#' is -# ignored, except if the '#' is preceded by a '\'. -# -# Thus, by placing a # at the start of an existing configuration -# line, you can make it a comment and it will be treated as if it -# weren't there. This is called "commenting out" an option and can -# be useful. Removing the # again is called "uncommenting". -# -# Note that commenting out an option and leaving it at its default -# are two completely different things! Most options behave very -# differently when unset. See the "Effect if unset" explanation in -# each option's description for details. -# -# Long lines can be continued on the next line by using a `\' as the -# last character. -# -# -# 1. LOCAL SET-UP DOCUMENTATION -# ============================== -# -# If you intend to operate Privoxy for more users than just -# yourself, it might be a good idea to let them know how to reach -# you, what you block and why you do that, your policies, etc. -# -# -# 1.1. user-manual -# ================= -# -# Specifies: -# -# Location of the Privoxy User Manual. -# -# Type of value: -# -# A fully qualified URI -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# http://www.privoxy.org/version/user-manual/ will be used, -# where version is the Privoxy version. -# -# Notes: -# -# The User Manual URI is the single best source of information -# on Privoxy, and is used for help links from some of the -# internal CGI pages. The manual itself is normally packaged -# with the binary distributions, so you probably want to set -# this to a locally installed copy. -# -# Examples: -# -# The best all purpose solution is simply to put the full local -# PATH to where the User Manual is located: -# -# user-manual /usr/share/doc/privoxy/user-manual -# -# The User Manual is then available to anyone with access to -# Privoxy, by following the built-in URL: http:// -# config.privoxy.org/user-manual/ (or the shortcut: http://p.p/ -# user-manual/). -# -# If the documentation is not on the local system, it can be -# accessed from a remote server, as: -# -# user-manual http://example.com/privoxy/user-manual/ -# -# WARNING!!! -# -# If set, this option should be the first option in the -# config file, because it is used while the config file is -# being read. -# -user-manual /usr/share/doc/privoxy/user-manual -# -# 1.2. trust-info-url -# ==================== -# -# Specifies: -# -# A URL to be displayed in the error page that users will see if -# access to an untrusted page is denied. -# -# Type of value: -# -# URL -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# No links are displayed on the "untrusted" error page. -# -# Notes: -# -# The value of this option only matters if the experimental -# trust mechanism has been activated. (See trustfile below.) -# -# If you use the trust mechanism, it is a good idea to write up -# some on-line documentation about your trust policy and to -# specify the URL(s) here. Use multiple times for multiple URLs. -# -# The URL(s) should be added to the trustfile as well, so users -# don't end up locked out from the information on why they were -# locked out in the first place! -# -#trust-info-url http://www.example.com/why_we_block.html -#trust-info-url http://www.example.com/what_we_allow.html -# -# 1.3. admin-address -# =================== -# -# Specifies: -# -# An email address to reach the Privoxy administrator. -# -# Type of value: -# -# Email address -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# No email address is displayed on error pages and the CGI user -# interface. -# -# Notes: -# -# If both admin-address and proxy-info-url are unset, the whole -# "Local Privoxy Support" box on all generated pages will not be -# shown. -# -#admin-address privoxy-admin@example.com -# -# 1.4. proxy-info-url -# ==================== -# -# Specifies: -# -# A URL to documentation about the local Privoxy setup, -# configuration or policies. -# -# Type of value: -# -# URL -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# No link to local documentation is displayed on error pages and -# the CGI user interface. -# -# Notes: -# -# If both admin-address and proxy-info-url are unset, the whole -# "Local Privoxy Support" box on all generated pages will not be -# shown. -# -# This URL shouldn't be blocked ;-) -# -#proxy-info-url http://www.example.com/proxy-service.html -# -# 2. CONFIGURATION AND LOG FILE LOCATIONS -# ======================================== -# -# Privoxy can (and normally does) use a number of other files for -# additional configuration, help and logging. This section of the -# configuration file tells Privoxy where to find those other files. -# -# The user running Privoxy, must have read permission for all -# configuration files, and write permission to any files that would -# be modified, such as log files and actions files. -# -# -# 2.1. confdir -# ============= -# -# Specifies: -# -# The directory where the other configuration files are located. -# -# Type of value: -# -# Path name -# -# Default value: -# -# /etc/privoxy (Unix) or Privoxy installation dir (Windows) -# -# Effect if unset: -# -# Mandatory -# -# Notes: -# -# No trailing "/", please. -# -confdir /etc/privoxy -# -# 2.2. templdir -# ============== -# -# Specifies: -# -# An alternative directory where the templates are loaded from. -# -# Type of value: -# -# Path name -# -# Default value: -# -# unset -# -# Effect if unset: -# -# The templates are assumed to be located in confdir/template. -# -# Notes: -# -# Privoxy's original templates are usually overwritten with each -# update. Use this option to relocate customized templates that -# should be kept. As template variables might change between -# updates, you shouldn't expect templates to work with Privoxy -# releases other than the one they were part of, though. -# -#templdir . -# -# 2.3. temporary-directory -# ========================= -# -# Specifies: -# -# A directory where Privoxy can create temporary files. -# -# Type of value: -# -# Path name -# -# Default value: -# -# unset -# -# Effect if unset: -# -# No temporary files are created, external filters don't work. -# -# Notes: -# -# To execute external filters, Privoxy has to create temporary -# files. This directive specifies the directory the temporary -# files should be written to. -# -# It should be a directory only Privoxy (and trusted users) can -# access. -# -#temporary-directory . -# -# 2.4. logdir -# ============ -# -# Specifies: -# -# The directory where all logging takes place (i.e. where the -# logfile is located). -# -# Type of value: -# -# Path name -# -# Default value: -# -# /var/log/privoxy (Unix) or Privoxy installation dir (Windows) -# -# Effect if unset: -# -# Mandatory -# -# Notes: -# -# No trailing "/", please. -# -logdir /var/log/privoxy -# -# 2.5. actionsfile -# ================= -# -# Specifies: -# -# The actions file(s) to use -# -# Type of value: -# -# Complete file name, relative to confdir -# -# Default values: -# -# match-all.action # Actions that are applied to all sites and maybe overruled later on. -# -# default.action # Main actions file -# -# user.action # User customizations -# -# Effect if unset: -# -# No actions are taken at all. More or less neutral proxying. -# -# Notes: -# -# Multiple actionsfile lines are permitted, and are in fact -# recommended! -# -# The default values are default.action, which is the "main" -# actions file maintained by the developers, and user.action, -# where you can make your personal additions. -# -# Actions files contain all the per site and per URL -# configuration for ad blocking, cookie management, privacy -# considerations, etc. -# -actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. -actionsfile default.action # Main actions file -actionsfile user.action # User customizations -# -# 2.6. filterfile -# ================ -# -# Specifies: -# -# The filter file(s) to use -# -# Type of value: -# -# File name, relative to confdir -# -# Default value: -# -# default.filter (Unix) or default.filter.txt (Windows) -# -# Effect if unset: -# -# No textual content filtering takes place, i.e. all +filter{name} -# actions in the actions files are turned neutral. -# -# Notes: -# -# Multiple filterfile lines are permitted. -# -# The filter files contain content modification rules that use -# regular expressions. These rules permit powerful changes on -# the content of Web pages, and optionally the headers as well, -# e.g., you could try to disable your favorite JavaScript -# annoyances, re-write the actual displayed text, or just have -# some fun playing buzzword bingo with web pages. -# -# The +filter{name} actions rely on the relevant filter (name) -# to be defined in a filter file! -# -# A pre-defined filter file called default.filter that contains -# a number of useful filters for common problems is included in -# the distribution. See the section on the filter action for a -# list. -# -# It is recommended to place any locally adapted filters into a -# separate file, such as user.filter. -# -filterfile default.filter -filterfile user.filter # User customizations -# -# 2.7. logfile -# ============= -# -# Specifies: -# -# The log file to use -# -# Type of value: -# -# File name, relative to logdir -# -# Default value: -# -# Unset (commented out). When activated: logfile (Unix) or -# privoxy.log (Windows). -# -# Effect if unset: -# -# No logfile is written. -# -# Notes: -# -# The logfile is where all logging and error messages are -# written. The level of detail and number of messages are set -# with the debug option (see below). The logfile can be useful -# for tracking down a problem with Privoxy (e.g., it's not -# blocking an ad you think it should block) and it can help you -# to monitor what your browser is doing. -# -# Depending on the debug options below, the logfile may be a -# privacy risk if third parties can get access to it. As most -# users will never look at it, Privoxy only logs fatal errors by -# default. -# -# For most troubleshooting purposes, you will have to change -# that, please refer to the debugging section for details. -# -# Any log files must be writable by whatever user Privoxy is -# being run as (on Unix, default user id is "privoxy"). -# -# To prevent the logfile from growing indefinitely, it is -# recommended to periodically rotate or shorten it. Many -# operating systems support log rotation out of the box, some -# require additional software to do it. For details, please -# refer to the documentation for your operating system. -# -logfile logfile -# -# 2.8. trustfile -# =============== -# -# Specifies: -# -# The name of the trust file to use -# -# Type of value: -# -# File name, relative to confdir -# -# Default value: -# -# Unset (commented out). When activated: trust (Unix) or -# trust.txt (Windows) -# -# Effect if unset: -# -# The entire trust mechanism is disabled. -# -# Notes: -# -# The trust mechanism is an experimental feature for building -# white-lists and should be used with care. It is NOT -# recommended for the casual user. -# -# If you specify a trust file, Privoxy will only allow access to -# sites that are specified in the trustfile. Sites can be listed -# in one of two ways: -# -# Prepending a ~ character limits access to this site only (and -# any sub-paths within this site), e.g. ~www.example.com allows -# access to ~www.example.com/features/news.html, etc. -# -# Or, you can designate sites as trusted referrers, by -# prepending the name with a + character. The effect is that -# access to untrusted sites will be granted -- but only if a -# link from this trusted referrer was used to get there. The -# link target will then be added to the "trustfile" so that -# future, direct accesses will be granted. Sites added via this -# mechanism do not become trusted referrers themselves (i.e. -# they are added with a ~ designation). There is a limit of 512 -# such entries, after which new entries will not be made. -# -# If you use the + operator in the trust file, it may grow -# considerably over time. -# -# It is recommended that Privoxy be compiled with the -# --disable-force, --disable-toggle and --disable-editor -# options, if this feature is to be used. -# -# Possible applications include limiting Internet access for -# children. -# -#trustfile trust -# -# 3. DEBUGGING -# ============= -# -# These options are mainly useful when tracing a problem. Note that -# you might also want to invoke Privoxy with the --no-daemon command -# line option when debugging. -# -# -# 3.1. debug -# =========== -# -# Specifies: -# -# Key values that determine what information gets logged. -# -# Type of value: -# -# Integer values -# -# Default value: -# -# 0 (i.e.: only fatal errors (that cause Privoxy to exit) are -# logged) -# -# Effect if unset: -# -# Default value is used (see above). -# -# Notes: -# -# The available debug levels are: -# -# debug 1 # Log the destination for each request Privoxy let through. See also debug 1024. -# debug 2 # show each connection status -# debug 4 # show I/O status -# debug 8 # show header parsing -# debug 16 # log all data written to the network -# debug 32 # debug force feature -# debug 64 # debug regular expression filters -# debug 128 # debug redirects -# debug 256 # debug GIF de-animation -# debug 512 # Common Log Format -# debug 1024 # Log the destination for requests Privoxy didn't let through, and the reason why. -# debug 2048 # CGI user interface -# debug 4096 # Startup banner and warnings. -# debug 8192 # Non-fatal errors -# debug 32768 # log all data read from the network -# debug 65536 # Log the applying actions -# -# To select multiple debug levels, you can either add them or -# use multiple debug lines. -# -# A debug level of 1 is informative because it will show you -# each request as it happens. 1, 1024, 4096 and 8192 are -# recommended so that you will notice when things go wrong. The -# other levels are probably only of interest if you are hunting -# down a specific problem. They can produce a hell of an output -# (especially 16). -# -# If you are used to the more verbose settings, simply enable -# the debug lines below again. -# -# If you want to use pure CLF (Common Log Format), you should -# set "debug 512" ONLY and not enable anything else. -# -# Privoxy has a hard-coded limit for the length of log messages. -# If it's reached, messages are logged truncated and marked with -# "... [too long, truncated]". -# -# Please don't file any support requests without trying to -# reproduce the problem with increased debug level first. Once -# you read the log messages, you may even be able to solve the -# problem on your own. -# -#debug 1 # Log the destination for each request Privoxy let through. See also debug 1024. -#debug 1024 # Actions that are applied to all sites and maybe overruled later on. -#debug 4096 # Startup banner and warnings -#debug 8192 # Non-fatal errors -# -# 3.2. single-threaded -# ===================== -# -# Specifies: -# -# Whether to run only one server thread. -# -# Type of value: -# -# 1 or 0 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Multi-threaded (or, where unavailable: forked) operation, i.e. -# the ability to serve multiple requests simultaneously. -# -# Notes: -# -# This option is only there for debugging purposes. It will -# drastically reduce performance. -# -#single-threaded 1 -# -# 3.3. hostname -# ============== -# -# Specifies: -# -# The hostname shown on the CGI pages. -# -# Type of value: -# -# Text -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# The hostname provided by the operating system is used. -# -# Notes: -# -# On some misconfigured systems resolving the hostname fails or -# takes too much time and slows Privoxy down. Setting a fixed -# hostname works around the problem. -# -# In other circumstances it might be desirable to show a -# hostname other than the one returned by the operating system. -# For example if the system has several different hostnames and -# you don't want to use the first one. -# -# Note that Privoxy does not validate the specified hostname -# value. -# -#hostname hostname.example.org -# -# 4. ACCESS CONTROL AND SECURITY -# =============================== -# -# This section of the config file controls the security-relevant -# aspects of Privoxy's configuration. -# -# -# 4.1. listen-address -# ==================== -# -# Specifies: -# -# The address and TCP port on which Privoxy will listen for -# client requests. -# -# Type of value: -# -# [IP-Address]:Port -# -# [Hostname]:Port -# -# Default value: -# -# 127.0.0.1:8118 -# -# Effect if unset: -# -# Bind to 127.0.0.1 (IPv4 localhost), port 8118. This is -# suitable and recommended for home users who run Privoxy on the -# same machine as their browser. -# -# Notes: -# -# You will need to configure your browser(s) to this proxy -# address and port. -# -# If you already have another service running on port 8118, or -# if you want to serve requests from other machines (e.g. on -# your local network) as well, you will need to override the -# default. -# -# You can use this statement multiple times to make Privoxy -# listen on more ports or more IP addresses. Suitable if your -# operating system does not support sharing IPv6 and IPv4 -# protocols on the same socket. -# -# If a hostname is used instead of an IP address, Privoxy will -# try to resolve it to an IP address and if there are multiple, -# use the first one returned. -# -# If the address for the hostname isn't already known on the -# system (for example because it's in /etc/hostname), this may -# result in DNS traffic. -# -# If the specified address isn't available on the system, or if -# the hostname can't be resolved, Privoxy will fail to start. -# -# IPv6 addresses containing colons have to be quoted by -# brackets. They can only be used if Privoxy has been compiled -# with IPv6 support. If you aren't sure if your version supports -# it, have a look at http://config.privoxy.org/show-status. -# -# Some operating systems will prefer IPv6 to IPv4 addresses even -# if the system has no IPv6 connectivity which is usually not -# expected by the user. Some even rely on DNS to resolve -# localhost which mean the "localhost" address used may not -# actually be local. -# -# It is therefore recommended to explicitly configure the -# intended IP address instead of relying on the operating -# system, unless there's a strong reason not to. -# -# If you leave out the address, Privoxy will bind to all IPv4 -# interfaces (addresses) on your machine and may become -# reachable from the Internet and/or the local network. Be aware -# that some GNU/Linux distributions modify that behaviour -# without updating the documentation. Check for non-standard -# patches if your Privoxy version behaves differently. -# -# If you configure Privoxy to be reachable from the network, -# consider using access control lists (ACL's, see below), and/or -# a firewall. -# -# If you open Privoxy to untrusted users, you will also want to -# make sure that the following actions are disabled: -# enable-edit-actions and enable-remote-toggle -# -# Example: -# -# Suppose you are running Privoxy on a machine which has the -# address 192.168.0.1 on your local private network -# (192.168.0.0) and has another outside connection with a -# different address. You want it to serve requests from inside -# only: -# -# listen-address 192.168.0.1:8118 -# -# Suppose you are running Privoxy on an IPv6-capable machine and -# you want it to listen on the IPv6 address of the loopback -# device: -# -# listen-address [::1]:8118 -# -# -listen-address {{ local_service_ip }}:8118 -# -# 4.2. toggle -# ============ -# -# Specifies: -# -# Initial state of "toggle" status -# -# Type of value: -# -# 1 or 0 -# -# Default value: -# -# 1 -# -# Effect if unset: -# -# Act as if toggled on -# -# Notes: -# -# If set to 0, Privoxy will start in "toggled off" mode, i.e. -# mostly behave like a normal, content-neutral proxy with both -# ad blocking and content filtering disabled. See -# enable-remote-toggle below. -# -toggle 1 -# -# 4.3. enable-remote-toggle -# ========================== -# -# Specifies: -# -# Whether or not the web-based toggle feature may be used -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# The web-based toggle feature is disabled. -# -# Notes: -# -# When toggled off, Privoxy mostly acts like a normal, -# content-neutral proxy, i.e. doesn't block ads or filter -# content. -# -# Access to the toggle feature can not be controlled separately -# by "ACLs" or HTTP authentication, so that everybody who can -# access Privoxy (see "ACLs" and listen-address above) can -# toggle it for all users. So this option is not recommended for -# multi-user environments with untrusted users. -# -# Note that malicious client side code (e.g Java) is also -# capable of using this option. -# -# As a lot of Privoxy users don't read documentation, this -# feature is disabled by default. -# -# Note that you must have compiled Privoxy with support for this -# feature, otherwise this option has no effect. -# -enable-remote-toggle 0 -# -# 4.4. enable-remote-http-toggle -# =============================== -# -# Specifies: -# -# Whether or not Privoxy recognizes special HTTP headers to -# change its behaviour. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Privoxy ignores special HTTP headers. -# -# Notes: -# -# When toggled on, the client can change Privoxy's behaviour by -# setting special HTTP headers. Currently the only supported -# special header is "X-Filter: No", to disable filtering for the -# ongoing request, even if it is enabled in one of the action -# files. -# -# This feature is disabled by default. If you are using Privoxy -# in a environment with trusted clients, you may enable this -# feature at your discretion. Note that malicious client side -# code (e.g Java) is also capable of using this feature. -# -# This option will be removed in future releases as it has been -# obsoleted by the more general header taggers. -# -enable-remote-http-toggle 0 -# -# 4.5. enable-edit-actions -# ========================= -# -# Specifies: -# -# Whether or not the web-based actions file editor may be used -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# The web-based actions file editor is disabled. -# -# Notes: -# -# Access to the editor can not be controlled separately by -# "ACLs" or HTTP authentication, so that everybody who can -# access Privoxy (see "ACLs" and listen-address above) can -# modify its configuration for all users. -# -# This option is not recommended for environments with untrusted -# users and as a lot of Privoxy users don't read documentation, -# this feature is disabled by default. -# -# Note that malicious client side code (e.g Java) is also -# capable of using the actions editor and you shouldn't enable -# this options unless you understand the consequences and are -# sure your browser is configured correctly. -# -# Note that you must have compiled Privoxy with support for this -# feature, otherwise this option has no effect. -# -enable-edit-actions 0 -# -# 4.6. enforce-blocks -# ==================== -# -# Specifies: -# -# Whether the user is allowed to ignore blocks and can "go there -# anyway". -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Blocks are not enforced. -# -# Notes: -# -# Privoxy is mainly used to block and filter requests as a -# service to the user, for example to block ads and other junk -# that clogs the pipes. Privoxy's configuration isn't perfect -# and sometimes innocent pages are blocked. In this situation it -# makes sense to allow the user to enforce the request and have -# Privoxy ignore the block. -# -# In the default configuration Privoxy's "Blocked" page contains -# a "go there anyway" link to adds a special string (the force -# prefix) to the request URL. If that link is used, Privoxy will -# detect the force prefix, remove it again and let the request -# pass. -# -# Of course Privoxy can also be used to enforce a network -# policy. In that case the user obviously should not be able to -# bypass any blocks, and that's what the "enforce-blocks" option -# is for. If it's enabled, Privoxy hides the "go there anyway" -# link. If the user adds the force prefix by hand, it will not -# be accepted and the circumvention attempt is logged. -# -# Examples: -# -# enforce-blocks 1 -# -enforce-blocks 0 -# -# 4.7. ACLs: permit-access and deny-access -# ========================================= -# -# Specifies: -# -# Who can access what. -# -# Type of value: -# -# src_addr[:port][/src_masklen] [dst_addr[:port][/dst_masklen]] -# -# Where src_addr and dst_addr are IPv4 addresses in dotted -# decimal notation or valid DNS names, port is a port number, -# and src_masklen and dst_masklen are subnet masks in CIDR -# notation, i.e. integer values from 2 to 30 representing the -# length (in bits) of the network address. The masks and the -# whole destination part are optional. -# -# If your system implements RFC 3493, then src_addr and dst_addr -# can be IPv6 addresses delimited by brackets, port can be a -# number or a service name, and src_masklen and dst_masklen can -# be a number from 0 to 128. -# -# Default value: -# -# Unset -# -# If no port is specified, any port will match. If no -# src_masklen or src_masklen is given, the complete IP address -# has to match (i.e. 32 bits for IPv4 and 128 bits for IPv6). -# -# Effect if unset: -# -# Don't restrict access further than implied by listen-address -# -# Notes: -# -# Access controls are included at the request of ISPs and -# systems administrators, and are not usually needed by -# individual users. For a typical home user, it will normally -# suffice to ensure that Privoxy only listens on the localhost -# (127.0.0.1) or internal (home) network address by means of the -# listen-address option. -# -# Please see the warnings in the FAQ that Privoxy is not -# intended to be a substitute for a firewall or to encourage -# anyone to defer addressing basic security weaknesses. -# -# Multiple ACL lines are OK. If any ACLs are specified, Privoxy -# only talks to IP addresses that match at least one -# permit-access line and don't match any subsequent deny-access -# line. In other words, the last match wins, with the default -# being deny-access. -# -# If Privoxy is using a forwarder (see forward below) for a -# particular destination URL, the dst_addr that is examined is -# the address of the forwarder and NOT the address of the -# ultimate target. This is necessary because it may be -# impossible for the local Privoxy to determine the IP address -# of the ultimate target (that's often what gateways are used -# for). -# -# You should prefer using IP addresses over DNS names, because -# the address lookups take time. All DNS names must resolve! You -# can not use domain patterns like "*.org" or partial domain -# names. If a DNS name resolves to multiple IP addresses, only -# the first one is used. -# -# Some systems allow IPv4 clients to connect to IPv6 server -# sockets. Then the client's IPv4 address will be translated by -# the system into IPv6 address space with special prefix -# ::ffff:0:0/96 (so called IPv4 mapped IPv6 address). Privoxy -# can handle it and maps such ACL addresses automatically. -# -# Denying access to particular sites by ACL may have undesired -# side effects if the site in question is hosted on a machine -# which also hosts other sites (most sites are). -# -# Examples: -# -# Explicitly define the default behavior if no ACL and -# listen-address are set: "localhost" is OK. The absence of a -# dst_addr implies that all destination addresses are OK: -# -# permit-access localhost -# -# Allow any host on the same class C subnet as www.privoxy.org -# access to nothing but www.example.com (or other domains hosted -# on the same system): -# -# permit-access www.privoxy.org/24 www.example.com/32 -# -# Allow access from any host on the 26-bit subnet 192.168.45.64 -# to anywhere, with the exception that 192.168.45.73 may not -# access the IP address behind www.dirty-stuff.example.com: -# -# permit-access 192.168.45.64/26 -# deny-access 192.168.45.73 www.dirty-stuff.example.com -# -# Allow access from the IPv4 network 192.0.2.0/24 even if -# listening on an IPv6 wild card address (not supported on all -# platforms): -# -# permit-access 192.0.2.0/24 -# -# This is equivalent to the following line even if listening on -# an IPv4 address (not supported on all platforms): -# -# permit-access [::ffff:192.0.2.0]/120 -# -# -# 4.8. buffer-limit -# ================== -# -# Specifies: -# -# Maximum size of the buffer for content filtering. -# -# Type of value: -# -# Size in Kbytes -# -# Default value: -# -# 4096 -# -# Effect if unset: -# -# Use a 4MB (4096 KB) limit. -# -# Notes: -# -# For content filtering, i.e. the +filter and +deanimate-gif -# actions, it is necessary that Privoxy buffers the entire -# document body. This can be potentially dangerous, since a -# server could just keep sending data indefinitely and wait for -# your RAM to exhaust -- with nasty consequences. Hence this -# option. -# -# When a document buffer size reaches the buffer-limit, it is -# flushed to the client unfiltered and no further attempt to -# filter the rest of the document is made. Remember that there -# may be multiple threads running, which might require up to -# buffer-limit Kbytes each, unless you have enabled -# "single-threaded" above. -# -buffer-limit 4096 -# -# 4.9. enable-proxy-authentication-forwarding -# ============================================ -# -# Specifies: -# -# Whether or not proxy authentication through Privoxy should -# work. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Proxy authentication headers are removed. -# -# Notes: -# -# Privoxy itself does not support proxy authentication, but can -# allow clients to authenticate against Privoxy's parent proxy. -# -# By default Privoxy (3.0.21 and later) don't do that and remove -# Proxy-Authorization headers in requests and Proxy-Authenticate -# headers in responses to make it harder for malicious sites to -# trick inexperienced users into providing login information. -# -# If this option is enabled the headers are forwarded. -# -# Enabling this option is not recommended if there is no parent -# proxy that requires authentication or if the local network -# between Privoxy and the parent proxy isn't trustworthy. If -# proxy authentication is only required for some requests, it is -# recommended to use a client header filter to remove the -# authentication headers for requests where they aren't needed. -# -enable-proxy-authentication-forwarding 0 -# -# 5. FORWARDING -# ============== -# -# This feature allows routing of HTTP requests through a chain of -# multiple proxies. -# -# Forwarding can be used to chain Privoxy with a caching proxy to -# speed up browsing. Using a parent proxy may also be necessary if -# the machine that Privoxy runs on has no direct Internet access. -# -# Note that parent proxies can severely decrease your privacy level. -# For example a parent proxy could add your IP address to the -# request headers and if it's a caching proxy it may add the "Etag" -# header to revalidation requests again, even though you configured -# Privoxy to remove it. It may also ignore Privoxy's header time -# randomization and use the original values which could be used by -# the server as cookie replacement to track your steps between -# visits. -# -# Also specified here are SOCKS proxies. Privoxy supports the SOCKS -# 4 and SOCKS 4A protocols. -# -# -# 5.1. forward -# ============= -# -# Specifies: -# -# To which parent HTTP proxy specific requests should be routed. -# -# Type of value: -# -# target_pattern http_parent[:port] -# -# where target_pattern is a URL pattern that specifies to which -# requests (i.e. URLs) this forward rule shall apply. Use / to -# denote "all URLs". http_parent[:port] is the DNS name or IP -# address of the parent HTTP proxy through which the requests -# should be forwarded, optionally followed by its listening port -# (default: 8000). Use a single dot (.) to denote "no -# forwarding". -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# Don't use parent HTTP proxies. -# -# Notes: -# -# If http_parent is ".", then requests are not forwarded to -# another HTTP proxy but are made directly to the web servers. -# -# http_parent can be a numerical IPv6 address (if RFC 3493 is -# implemented). To prevent clashes with the port delimiter, the -# whole IP address has to be put into brackets. On the other -# hand a target_pattern containing an IPv6 address has to be put -# into angle brackets (normal brackets are reserved for regular -# expressions already). -# -# Multiple lines are OK, they are checked in sequence, and the -# last match wins. -# -# Examples: -# -# Everything goes to an example parent proxy, except SSL on port -# 443 (which it doesn't handle): -# -# forward / parent-proxy.example.org:8080 -# forward :443 . -# -# Everything goes to our example ISP's caching proxy, except for -# requests to that ISP's sites: -# -# forward / caching-proxy.isp.example.net:8000 -# forward .isp.example.net . -# -# Parent proxy specified by an IPv6 address: -# -# forward / [2001:DB8::1]:8000 -# -# Suppose your parent proxy doesn't support IPv6: -# -# forward / parent-proxy.example.org:8000 -# forward ipv6-server.example.org . -# forward <[2-3][0-9a-f][0-9a-f][0-9a-f]:*> . -forward / {{ local_service_ip }}:8080 -forward :443 . -# -# -# 5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t -# ========================================================================= -# -# Specifies: -# -# Through which SOCKS proxy (and optionally to which parent HTTP -# proxy) specific requests should be routed. -# -# Type of value: -# -# target_pattern socks_proxy[:port] http_parent[:port] -# -# where target_pattern is a URL pattern that specifies to which -# requests (i.e. URLs) this forward rule shall apply. Use / to -# denote "all URLs". http_parent and socks_proxy are IP -# addresses in dotted decimal notation or valid DNS names ( -# http_parent may be "." to denote "no HTTP forwarding"), and -# the optional port parameters are TCP ports, i.e. integer -# values from 1 to 65535 -# -# Default value: -# -# Unset -# -# Effect if unset: -# -# Don't use SOCKS proxies. -# -# Notes: -# -# Multiple lines are OK, they are checked in sequence, and the -# last match wins. -# -# The difference between forward-socks4 and forward-socks4a is -# that in the SOCKS 4A protocol, the DNS resolution of the -# target hostname happens on the SOCKS server, while in SOCKS 4 -# it happens locally. -# -# With forward-socks5 the DNS resolution will happen on the -# remote server as well. -# -# forward-socks5t works like vanilla forward-socks5 but lets -# Privoxy additionally use Tor-specific SOCKS extensions. -# Currently the only supported SOCKS extension is optimistic -# data which can reduce the latency for the first request made -# on a newly created connection. -# -# socks_proxy and http_parent can be a numerical IPv6 address -# (if RFC 3493 is implemented). To prevent clashes with the port -# delimiter, the whole IP address has to be put into brackets. -# On the other hand a target_pattern containing an IPv6 address -# has to be put into angle brackets (normal brackets are -# reserved for regular expressions already). -# -# If http_parent is ".", then requests are not forwarded to -# another HTTP proxy but are made (HTTP-wise) directly to the -# web servers, albeit through a SOCKS proxy. -# -# Examples: -# -# From the company example.com, direct connections are made to -# all "internal" domains, but everything outbound goes through -# their ISP's proxy by way of example.com's corporate SOCKS 4A -# gateway to the Internet. -# -# forward-socks4a / socks-gw.example.com:1080 www-cache.isp.example.net:8080 -# forward .example.com . -# -# A rule that uses a SOCKS 4 gateway for all destinations but no -# HTTP parent looks like this: -# -# forward-socks4 / socks-gw.example.com:1080 . -# -# To chain Privoxy and Tor, both running on the same system, you -# would use something like: -# -# forward-socks5t / 127.0.0.1:9050 . -# -# Note that if you got Tor through one of the bundles, you may -# have to change the port from 9050 to 9150 (or even another -# one). For details, please check the documentation on the Tor -# website. -# -# The public Tor network can't be used to reach your local -# network, if you need to access local servers you therefore -# might want to make some exceptions: -# -# forward 192.168.*.*/ . -# forward 10.*.*.*/ . -# forward 127.*.*.*/ . -# -# Unencrypted connections to systems in these address ranges -# will be as (un)secure as the local network is, but the -# alternative is that you can't reach the local network through -# Privoxy at all. Of course this may actually be desired and -# there is no reason to make these exceptions if you aren't sure -# you need them. -# -# If you also want to be able to reach servers in your local -# network by using their names, you will need additional -# exceptions that look like this: -# -# forward localhost/ . -# -# -# 5.3. forwarded-connect-retries -# =============================== -# -# Specifies: -# -# How often Privoxy retries if a forwarded connection request -# fails. -# -# Type of value: -# -# Number of retries. -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Connections forwarded through other proxies are treated like -# direct connections and no retry attempts are made. -# -# Notes: -# -# forwarded-connect-retries is mainly interesting for socks4a -# connections, where Privoxy can't detect why the connections -# failed. The connection might have failed because of a DNS -# timeout in which case a retry makes sense, but it might also -# have failed because the server doesn't exist or isn't -# reachable. In this case the retry will just delay the -# appearance of Privoxy's error message. -# -# Note that in the context of this option, "forwarded -# connections" includes all connections that Privoxy forwards -# through other proxies. This option is not limited to the HTTP -# CONNECT method. -# -# Only use this option, if you are getting lots of -# forwarding-related error messages that go away when you try -# again manually. Start with a small value and check Privoxy's -# logfile from time to time, to see how many retries are usually -# needed. -# -# Examples: -# -# forwarded-connect-retries 1 -# -forwarded-connect-retries 0 -# -# 6. MISCELLANEOUS -# ================= -# -# 6.1. accept-intercepted-requests -# ================================= -# -# Specifies: -# -# Whether intercepted requests should be treated as valid. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Only proxy requests are accepted, intercepted requests are -# treated as invalid. -# -# Notes: -# -# If you don't trust your clients and want to force them to use -# Privoxy, enable this option and configure your packet filter -# to redirect outgoing HTTP connections into Privoxy. -# -# Note that intercepting encrypted connections (HTTPS) isn't -# supported. -# -# Make sure that Privoxy's own requests aren't redirected as -# well. Additionally take care that Privoxy can't intentionally -# connect to itself, otherwise you could run into redirection -# loops if Privoxy's listening port is reachable by the outside -# or an attacker has access to the pages you visit. -# -# Examples: -# -# accept-intercepted-requests 1 -# -accept-intercepted-requests 0 -# -# 6.2. allow-cgi-request-crunching -# ================================= -# -# Specifies: -# -# Whether requests to Privoxy's CGI pages can be blocked or -# redirected. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Privoxy ignores block and redirect actions for its CGI pages. -# -# Notes: -# -# By default Privoxy ignores block or redirect actions for its -# CGI pages. Intercepting these requests can be useful in -# multi-user setups to implement fine-grained access control, -# but it can also render the complete web interface useless and -# make debugging problems painful if done without care. -# -# Don't enable this option unless you're sure that you really -# need it. -# -# Examples: -# -# allow-cgi-request-crunching 1 -# -allow-cgi-request-crunching 0 -# -# 6.3. split-large-forms -# ======================= -# -# Specifies: -# -# Whether the CGI interface should stay compatible with broken -# HTTP clients. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# The CGI form generate long GET URLs. -# -# Notes: -# -# Privoxy's CGI forms can lead to rather long URLs. This isn't a -# problem as far as the HTTP standard is concerned, but it can -# confuse clients with arbitrary URL length limitations. -# -# Enabling split-large-forms causes Privoxy to divide big forms -# into smaller ones to keep the URL length down. It makes -# editing a lot less convenient and you can no longer submit all -# changes at once, but at least it works around this browser -# bug. -# -# If you don't notice any editing problems, there is no reason -# to enable this option, but if one of the submit buttons -# appears to be broken, you should give it a try. -# -# Examples: -# -# split-large-forms 1 -# -split-large-forms 0 -# -# 6.4. keep-alive-timeout -# ======================== -# -# Specifies: -# -# Number of seconds after which an open connection will no -# longer be reused. -# -# Type of value: -# -# Time in seconds. -# -# Default value: -# -# None -# -# Effect if unset: -# -# Connections are not kept alive. -# -# Notes: -# -# This option allows clients to keep the connection to Privoxy -# alive. If the server supports it, Privoxy will keep the -# connection to the server alive as well. Under certain -# circumstances this may result in speed-ups. -# -# By default, Privoxy will close the connection to the server if -# the client connection gets closed, or if the specified timeout -# has been reached without a new request coming in. This -# behaviour can be changed with the connection-sharing option. -# -# This option has no effect if Privoxy has been compiled without -# keep-alive support. -# -# Note that a timeout of five seconds as used in the default -# configuration file significantly decreases the number of -# connections that will be reused. The value is used because -# some browsers limit the number of connections they open to a -# single host and apply the same limit to proxies. This can -# result in a single website "grabbing" all the connections the -# browser allows, which means connections to other websites -# can't be opened until the connections currently in use time -# out. -# -# Several users have reported this as a Privoxy bug, so the -# default value has been reduced. Consider increasing it to 300 -# seconds or even more if you think your browser can handle it. -# If your browser appears to be hanging, it probably can't. -# -# Examples: -# -# keep-alive-timeout 300 -# -keep-alive-timeout 5 -# -# 6.5. tolerate-pipelining -# ========================= -# -# Specifies: -# -# Whether or not pipelined requests should be served. -# -# Type of value: -# -# 0 or 1. -# -# Default value: -# -# None -# -# Effect if unset: -# -# If Privoxy receives more than one request at once, it -# terminates the client connection after serving the first one. -# -# Notes: -# -# Privoxy currently doesn't pipeline outgoing requests, thus -# allowing pipelining on the client connection is not guaranteed -# to improve the performance. -# -# By default Privoxy tries to discourage clients from pipelining -# by discarding aggressively pipelined requests, which forces -# the client to resend them through a new connection. -# -# This option lets Privoxy tolerate pipelining. Whether or not -# that improves performance mainly depends on the client -# configuration. -# -# If you are seeing problems with pages not properly loading, -# disabling this option could work around the problem. -# -# Examples: -# -# tolerate-pipelining 1 -# -tolerate-pipelining 1 -# -# 6.6. default-server-timeout -# ============================ -# -# Specifies: -# -# Assumed server-side keep-alive timeout if not specified by the -# server. -# -# Type of value: -# -# Time in seconds. -# -# Default value: -# -# None -# -# Effect if unset: -# -# Connections for which the server didn't specify the keep-alive -# timeout are not reused. -# -# Notes: -# -# Enabling this option significantly increases the number of -# connections that are reused, provided the keep-alive-timeout -# option is also enabled. -# -# While it also increases the number of connections problems -# when Privoxy tries to reuse a connection that already has been -# closed on the server side, or is closed while Privoxy is -# trying to reuse it, this should only be a problem if it -# happens for the first request sent by the client. If it -# happens for requests on reused client connections, Privoxy -# will simply close the connection and the client is supposed to -# retry the request without bothering the user. -# -# Enabling this option is therefore only recommended if the -# connection-sharing option is disabled. -# -# It is an error to specify a value larger than the -# keep-alive-timeout value. -# -# This option has no effect if Privoxy has been compiled without -# keep-alive support. -# -# Examples: -# -# default-server-timeout 60 -# -#default-server-timeout 60 -# -# 6.7. connection-sharing -# ======================== -# -# Specifies: -# -# Whether or not outgoing connections that have been kept alive -# should be shared between different incoming connections. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# None -# -# Effect if unset: -# -# Connections are not shared. -# -# Notes: -# -# This option has no effect if Privoxy has been compiled without -# keep-alive support, or if it's disabled. -# -# Notes: -# -# Note that reusing connections doesn't necessary cause -# speedups. There are also a few privacy implications you should -# be aware of. -# -# If this option is effective, outgoing connections are shared -# between clients (if there are more than one) and closing the -# browser that initiated the outgoing connection does no longer -# affect the connection between Privoxy and the server unless -# the client's request hasn't been completed yet. -# -# If the outgoing connection is idle, it will not be closed -# until either Privoxy's or the server's timeout is reached. -# While it's open, the server knows that the system running -# Privoxy is still there. -# -# If there are more than one client (maybe even belonging to -# multiple users), they will be able to reuse each others -# connections. This is potentially dangerous in case of -# authentication schemes like NTLM where only the connection is -# authenticated, instead of requiring authentication for each -# request. -# -# If there is only a single client, and if said client can keep -# connections alive on its own, enabling this option has next to -# no effect. If the client doesn't support connection -# keep-alive, enabling this option may make sense as it allows -# Privoxy to keep outgoing connections alive even if the client -# itself doesn't support it. -# -# You should also be aware that enabling this option increases -# the likelihood of getting the "No server or forwarder data" -# error message, especially if you are using a slow connection -# to the Internet. -# -# This option should only be used by experienced users who -# understand the risks and can weight them against the benefits. -# -# Examples: -# -# connection-sharing 1 -# -#connection-sharing 1 -# -# 6.8. socket-timeout -# ==================== -# -# Specifies: -# -# Number of seconds after which a socket times out if no data is -# received. -# -# Type of value: -# -# Time in seconds. -# -# Default value: -# -# None -# -# Effect if unset: -# -# A default value of 300 seconds is used. -# -# Notes: -# -# The default is quite high and you probably want to reduce it. -# If you aren't using an occasionally slow proxy like Tor, -# reducing it to a few seconds should be fine. -# -# Examples: -# -# socket-timeout 300 -# -socket-timeout 300 -# -# 6.9. max-client-connections -# ============================ -# -# Specifies: -# -# Maximum number of client connections that will be served. -# -# Type of value: -# -# Positive number. -# -# Default value: -# -# 128 -# -# Effect if unset: -# -# Connections are served until a resource limit is reached. -# -# Notes: -# -# Privoxy creates one thread (or process) for every incoming -# client connection that isn't rejected based on the access -# control settings. -# -# If the system is powerful enough, Privoxy can theoretically -# deal with several hundred (or thousand) connections at the -# same time, but some operating systems enforce resource limits -# by shutting down offending processes and their default limits -# may be below the ones Privoxy would require under heavy load. -# -# Configuring Privoxy to enforce a connection limit below the -# thread or process limit used by the operating system makes -# sure this doesn't happen. Simply increasing the operating -# system's limit would work too, but if Privoxy isn't the only -# application running on the system, you may actually want to -# limit the resources used by Privoxy. -# -# If Privoxy is only used by a single trusted user, limiting the -# number of client connections is probably unnecessary. If there -# are multiple possibly untrusted users you probably still want -# to additionally use a packet filter to limit the maximal -# number of incoming connections per client. Otherwise a -# malicious user could intentionally create a high number of -# connections to prevent other users from using Privoxy. -# -# Obviously using this option only makes sense if you choose a -# limit below the one enforced by the operating system. -# -# One most POSIX-compliant systems Privoxy can't properly deal -# with more than FD_SETSIZE file descriptors at the same time -# and has to reject connections if the limit is reached. This -# will likely change in a future version, but currently this -# limit can't be increased without recompiling Privoxy with a -# different FD_SETSIZE limit. -# -# Examples: -# -# max-client-connections 256 -# -#max-client-connections 256 -# -# 6.10. handle-as-empty-doc-returns-ok -# ===================================== -# -# Specifies: -# -# The status code Privoxy returns for pages blocked with -# +handle-as-empty-document. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Privoxy returns a status 403(forbidden) for all blocked pages. -# -# Effect if set: -# -# Privoxy returns a status 200(OK) for pages blocked with -# +handle-as-empty-document and a status 403(Forbidden) for all -# other blocked pages. -# -# Notes: -# -# This directive was added as a work-around for Firefox bug -# 492459: "Websites are no longer rendered if SSL requests for -# JavaScripts are blocked by a proxy." -# (https://bugzilla.mozilla.org/show_bug.cgi?id=492459), the bug -# has been fixed for quite some time, but this directive is also -# useful to make it harder for websites to detect whether or not -# resources are being blocked. -# -#handle-as-empty-doc-returns-ok 1 -# -# 6.11. enable-compression -# ========================= -# -# Specifies: -# -# Whether or not buffered content is compressed before delivery. -# -# Type of value: -# -# 0 or 1 -# -# Default value: -# -# 0 -# -# Effect if unset: -# -# Privoxy does not compress buffered content. -# -# Effect if set: -# -# Privoxy compresses buffered content before delivering it to -# the client, provided the client supports it. -# -# Notes: -# -# This directive is only supported if Privoxy has been compiled -# with FEATURE_COMPRESSION, which should not to be confused with -# FEATURE_ZLIB. -# -# Compressing buffered content is mainly useful if Privoxy and -# the client are running on different systems. If they are -# running on the same system, enabling compression is likely to -# slow things down. If you didn't measure otherwise, you should -# assume that it does and keep this option disabled. -# -# Privoxy will not compress buffered content below a certain -# length. -# -#enable-compression 1 -# -# 6.12. compression-level -# ======================== -# -# Specifies: -# -# The compression level that is passed to the zlib library when -# compressing buffered content. -# -# Type of value: -# -# Positive number ranging from 0 to 9. -# -# Default value: -# -# 1 -# -# Notes: -# -# Compressing the data more takes usually longer than -# compressing it less or not compressing it at all. Which level -# is best depends on the connection between Privoxy and the -# client. If you can't be bothered to benchmark it for yourself, -# you should stick with the default and keep compression -# disabled. -# -# If compression is disabled, the compression level is -# irrelevant. -# -# Examples: -# -# # Best speed (compared to the other levels) -# compression-level 1 -# -# # Best compression -# compression-level 9 -# -# # No compression. Only useful for testing as the added header -# # slightly increases the amount of data that has to be sent. -# # If your benchmark shows that using this compression level -# # is superior to using no compression at all, the benchmark -# # is likely to be flawed. -# compression-level 0 -# -# -#compression-level 1 -# -# 6.13. client-header-order -# ========================== -# -# Specifies: -# -# The order in which client headers are sorted before forwarding -# them. -# -# Type of value: -# -# Client header names delimited by spaces or tabs -# -# Default value: -# -# None -# -# Notes: -# -# By default Privoxy leaves the client headers in the order they -# were sent by the client. Headers are modified in-place, new -# headers are added at the end of the already existing headers. -# -# The header order can be used to fingerprint client requests -# independently of other headers like the User-Agent. -# -# This directive allows to sort the headers differently to -# better mimic a different User-Agent. Client headers will be -# emitted in the order given, headers whose name isn't -# explicitly specified are added at the end. -# -# Note that sorting headers in an uncommon way will make -# fingerprinting actually easier. Encrypted headers are not -# affected by this directive. -# -#client-header-order Host \ -# Accept \ -# Accept-Language \ -# Accept-Encoding \ -# Proxy-Connection \ -# Referer \ -# Cookie \ -# DNT \ -# If-Modified-Since \ -# Cache-Control \ -# Content-Length \ -# Content-Type -# -# -# 7. WINDOWS GUI OPTIONS -# ======================= -# -# Privoxy has a number of options specific to the Windows GUI -# interface: -# -# -# -# If "activity-animation" is set to 1, the Privoxy icon will animate -# when "Privoxy" is active. To turn off, set to 0. -# -#activity-animation 1 -# -# -# -# If "log-messages" is set to 1, Privoxy copies log messages to the -# console window. The log detail depends on the debug directive. -# -#log-messages 1 -# -# -# -# If "log-buffer-size" is set to 1, the size of the log buffer, i.e. -# the amount of memory used for the log messages displayed in the -# console window, will be limited to "log-max-lines" (see below). -# -# Warning: Setting this to 0 will result in the buffer to grow -# infinitely and eat up all your memory! -# -#log-buffer-size 1 -# -# -# -# log-max-lines is the maximum number of lines held in the log -# buffer. See above. -# -#log-max-lines 200 -# -# -# -# If "log-highlight-messages" is set to 1, Privoxy will highlight -# portions of the log messages with a bold-faced font: -# -#log-highlight-messages 1 -# -# -# -# The font used in the console window: -# -#log-font-name Comic Sans MS -# -# -# -# Font size used in the console window: -# -#log-font-size 8 -# -# -# -# "show-on-task-bar" controls whether or not Privoxy will appear as -# a button on the Task bar when minimized: -# -#show-on-task-bar 0 -# -# -# -# If "close-button-minimizes" is set to 1, the Windows close button -# will minimize Privoxy instead of closing the program (close with -# the exit option on the File menu). -# -#close-button-minimizes 1 -# -# -# -# The "hide-console" option is specific to the MS-Win console -# version of Privoxy. If this option is used, Privoxy will -# disconnect from and hide the command console. -# -#hide-console -# -# -# diff --git a/roles/proxy/templates/usr.sbin.privoxy.j2 b/roles/proxy/templates/usr.sbin.privoxy.j2 deleted file mode 100644 index 5f8d9dd..0000000 --- a/roles/proxy/templates/usr.sbin.privoxy.j2 +++ /dev/null @@ -1,15 +0,0 @@ -#include - -/usr/sbin/privoxy { - #include - #include - - capability setgid, - capability setuid, - - /etc/privoxy/* r, - /etc/privoxy/templates/* r, - /run/privoxy.pid w, - /var/log/privoxy/logfile w, - -} diff --git a/roles/security/tasks/main.yml b/roles/security/tasks/main.yml index aed7576..3ccef36 100644 --- a/roles/security/tasks/main.yml +++ b/roles/security/tasks/main.yml @@ -1,3 +1,5 @@ +--- + - name: Install tools apt: name="{{ item }}" state=latest with_items: diff --git a/roles/ssh_tunneling/tasks/main.yml b/roles/ssh_tunneling/tasks/main.yml index 578fb79..5e1f273 100644 --- a/roles/ssh_tunneling/tasks/main.yml +++ b/roles/ssh_tunneling/tasks/main.yml @@ -1,8 +1,5 @@ --- -- set_fact: - IP_subject_alt_name: "{{ IP_subject_alt_name }}" - - name: Ensure that the sshd_config file has desired options blockinfile: dest: /etc/ssh/sshd_config diff --git a/roles/vpn/tasks/main.yml b/roles/vpn/tasks/main.yml index 006479d..8785635 100644 --- a/roles/vpn/tasks/main.yml +++ b/roles/vpn/tasks/main.yml @@ -1,25 +1,4 @@ -- name: Gather Facts - setup: - -- name: Enable IPv6 - set_fact: - ipv6_support: true - when: ansible_default_ipv6.gateway is defined - -- name: Generate password for the CA key - shell: > - openssl rand -hex 16 - register: CA_password - -- set_fact: - easyrsa_p12_export_password: "{{ p12_export_password|default((ansible_date_time.iso8601_basic|sha1|to_uuid).split('-')[0]) }}" - easyrsa_CA_password: "{{ CA_password.stdout }}" - IP_subject_alt_name: "{{ IP_subject_alt_name }}" - -- name: Change the algorithm to RSA - set_fact: - algo_params: "rsa:2048" - when: Win10_Enabled is defined and Win10_Enabled == "Y" +--- - name: Ensure that the strongswan group exist group: name=strongswan state=present diff --git a/users.yml b/users.yml index b4cdf74..d6e9399 100644 --- a/users.yml +++ b/users.yml @@ -40,10 +40,6 @@ - name: Common pre-tasks include: playbooks/common.yml - - set_fact: - IP_subject_alt_name: "{{ IP_subject }}" - easyrsa_p12_export_password: "{{ p12_export_password|default((ansible_date_time.iso8601_basic|sha1|to_uuid).split('-')[0]) }}" - roles: - { role: ssh_tunneling, tags: [ 'ssh_tunneling' ], when: ssh_tunneling_enabled is defined and ssh_tunneling_enabled == "y" }