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 verbietenarrow-up-right. 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.

triangle-exclamation

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

Last updated