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" }