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.
#
# 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.confDer 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.
Verwenden Sie die zuvorgenannte Authentifierung nicht in produktiven Umgebungen. Das Passwort wird im Klartext unverschlüsselt übertragen. Wenn Sie eien Web-Proxy mit Authentifizierung einrichten möchten, muss für diesen TLS/HTTPS aktiviert werden.
In der Apache Proxy-Konfiguration werden die erlaubten User nun wie folgt angeben:
Last updated