Apache Web-Proxy

Es muss nicht immer Squid sein! Auch mit Apache kann man einen Web-Proxy einrichten.

Mit dem nachfolgenden Beispiel installieren Sie den Apache Webserver und konfigurieren diesen als Web-Proxy, welcher dann von Browsern und anderen HTTP-Klienten für den Internetzugang genutzt werden kann.

/srv/salt/apache-proxy/init.sls
#
# Build and maintain a Web-Proxy based on Apache
#

{% set port = 8045 %}

apache-packages:
  pkg.installed:
    - pkgs:
      - apache2
      - apache2-utils
      - libapache2-mod-authnz-external
      - pwauth

{% for module in ['proxy','proxy_connect','proxy_http'] %}
enable-mod-{{ module }}:
  apache_module.enabled:
    - name: {{ module }}
    - require: 
      - pkg: apache-packages
{% endfor %}

Disable default site:
  apache_site.disabled:
    - name: 000-default

#
# Disable Port 80. We don't serve content with Apache
#
Enable Port {{port}}:
  file.append:
    - name: /etc/apache2/ports.conf
    - text: Listen {{port}}
  
Disable Port 80:
  file.replace:
    - name: /etc/apache2/ports.conf
    - pattern: ^Listen 80$
    - repl: >-
        #Listen 80

#
# Copy a proxy config. The build-in state 
# https://docs.saltproject.io/en/latest/ref/states/all/salt.states.apache.html
# cannot handle proxy configurations
#
/etc/apache2/sites-available/proxy.conf:
  file.managed:
    - source: salt://apache-proxy/proxy.conf
    - template: jinja
    - defaults:
      port: {{port}}

Enable proxy:
  apache_site.enabled:
    - name: proxy

apache2:
  service.running:
    - enable: True
    - watch:
      - file: /etc/apache2/sites-available/proxy.conf
      - file: /etc/apache2/ports.conf

Der Apache-Proxy kann auch filtern und Zugriff auf bestimmte Domänen verbieten. Fügen Sie dazu innerhalb des virtuellen Hosts eine Zeile mit gesperrten Domains ein. Z. B. ProxyBlock www.google.de facebook

Eine Liste mit erlaubten Proxy-Usern »zusammenbauen« aus dem User-Pillar.

In der Apache Proxy-Konfiguration werden die erlaubten User nun wie folgt angeben:

Last updated