Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| anwenderwiki:firewall_lmn7:squidproxy:start [2021/10/25 14:14] – [Problem in der squid.conf] garblixa | anwenderwiki:firewall_lmn7:squidproxy:start [2022/04/12 08:30] (aktuell) – garblixa | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | {{tag> lmn7 squid firewall}} | ||
| + | ====== OPNsense Squid Web-Proxy ====== | ||
| + | ===== Proxy Autodiscovery ===== | ||
| + | ==== wpad.dat erstellen ==== | ||
| + | Damit man auf den Clients in Firefox und Edge nichts bzgl. Proxy einstellen muß kann man eine automatische Proxy Konfigurationsdatei auf der Firewall bereitstellen, | ||
| + | Dazu generiert man diese wpad.dat in der Firewall unter Dienste - WebProxy - Verwaltung - ProxyAuto-Konfiguration: | ||
| + | |||
| + | Zuerst legt man die Übereinstimmung Definitionen(Matches) an: | ||
| + | {{: | ||
| + | |||
| + | * Die Übereinstimmungen(Matches) im Einzelnen | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | Dann die Proxy Definitionen: | ||
| + | {{: | ||
| + | |||
| + | * Die Proxy Definitionen im Einzelnen | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | Zum Schluss werden die Regeln zusammengestellt unter: | ||
| + | {{: | ||
| + | |||
| + | * Regeln | ||
| + | {{: | ||
| + | |||
| + | Mit " | ||
| + | |||
| + | Die fertig generierte wpad.dat: | ||
| + | < | ||
| + | /* | ||
| + | PAC file created via OPNsense | ||
| + | To use this file you have to enter its URL into your browsers network settings. | ||
| + | */ | ||
| + | function FindProxyForURL(url, | ||
| + | |||
| + | if (((!isPlainHostName(host)) && (!dnsDomainIs(host, | ||
| + | return "PROXY firewall.fzi.lan: | ||
| + | } | ||
| + | |||
| + | // If no rule exists - use a direct connection | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== OPNsense Einstellungen ==== | ||
| + | Damit die wpad.dat ausgeliefert werden kann und die Erkennung auch mit Firefox funktioniert, | ||
| + | |||
| + | Oder es bleibt 443 aktiv und wird nur für die Clients im Netz per Firewall Regel gesperrt und eine weitere Regel, welche SSL Zugriff vom Management PC aus erlaubt. | ||
| + | |||
| + | Alternativ kann ein anderer Webserver die wpad.dat über HTTP bereitstellen. | ||
| + | |||
| + | System - Einstellungen - Verwaltung - Weboberfläche: | ||
| + | {{: | ||
| + | |||
| + | ==== Autodiscovery mit DNS ==== | ||
| + | Damit ein Browser erkennen kann, welcher Host die wpad.dat im Netzwerk zur Verfügung stellt, muß es einen DNS A Record " | ||
| + | |||
| + | < | ||
| + | root@server: | ||
| + | </ | ||
| + | |||
| + | Achtung, das folgende bitte nicht machen. Wird für wpad noch ein PTR Record gesetzt, dann funktioniert SSO mit Firefox/ | ||
| + | |||
| + | <del> | ||
| + | Und noch ein PTR Record: | ||
| + | |||
| + | root@server: | ||
| + | </ | ||
| + | |||
| + | Danach zum Test auf einem Client im Netzwerk: | ||
| + | |||
| + | < | ||
| + | root@jupiter: | ||
| + | wpad.fzi.lan has address 10.0.0.254 | ||
| + | |||
| + | root@jupiter: | ||
| + | 254.0.0.10.in-addr.arpa domain name pointer firewall.fzi.lan. | ||
| + | </ | ||
| + | |||
| + | ==== Autodiscovery mit DHCP ==== | ||
| + | Windows Edge sucht sich die wpad.dat via DHCP Eintrag. Deshalb wird auf dem Server, welcher DHCP Server für das Netzwerk ist, die entsprechende globale Option gesetzt: | ||
| + | |||
| + | / | ||
| + | < | ||
| + | ... | ||
| + | option local-proxy-config code 252 = text; | ||
| + | option local-proxy-config " | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | service isc-dhcp-server restart | ||
| + | </ | ||
| + | |||
| + | ==== Windows Client Einstellungen ==== | ||
| + | |||
| + | Systemsteuerung - Internetoptionen - Verbindungen - LAN-Einstellungen: | ||
| + | < | ||
| + | [x] Einstellungen automatisch erkennen | ||
| + | </ | ||
| + | |||
| + | Für Firefox darf nicht gewählt werden " | ||
| + | < | ||
| + | [x] Die Proxy-Einstellungen für dieses Netzwerk automatisch erkennen | ||
| + | </ | ||
| + | |||
| + | ===== Remote ACL / Ferne Zugangskontrollisten ===== | ||
| + | |||
| + | Damit Webseiten mit automatisch generierten ACL gefiltert werden können, wird z.B. die Liste von shallalist.de eingebunden: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Mit "ACLs herunterladen und anwenden" | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Wenn die Kategorien abgewählt wurden, muß man wieder "ACLs herunterladen und anwenden" | ||
| + | |||
| + | Man kann die Liste auch mit Cron regelmäßig abholen. Dazu auf "Plane mit Cron" einen Cronjob erstellen | ||
| + | |||
| + | ===== ACL für einzelne Benutzer und Gruppen ===== | ||
| + | |||
| + | Damit man für die Gruppe " | ||
| + | |||
| + | - Installation des Plugins " | ||
| + | {{: | ||
| + | |||
| + | In diesem Beispiel sind zwei Whitelists definiert: | ||
| + | |||
| + | * students | ||
| + | Dürfen Youtube Videos abrufen, welche sonst durch die shallalist blockiert werden würden | ||
| + | |||
| + | * teachers | ||
| + | Dürfen alles ohne Beschränkungen der shallalist | ||
| + | |||
| + | Die Gruppen müssen im Linuxmuster existieren, weil in den Proxyeinstellungen " | ||
| + | |||
| + | ===== ACL Whitelist/ | ||
| + | Damit die Windowsupdates/ | ||
| + | Dienste - Web-Proxy - Verwaltung - Weiterleitungsproxy - Zugangskontrolliste - Ausnahmeliste die Domains: | ||
| + | |||
| + | < | ||
| + | windowsupdate.com | ||
| + | .windowsupdate.com | ||
| + | mp.microsoft.com | ||
| + | .mp.microsoft.com | ||
| + | metaservices.microsoft.com | ||
| + | .metaservices.microsoft.com | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Damit die ACL vor der Authentifizierung ausgeführt wird legt man an der OPNsense die Datei an: | ||
| + | |||
| + | / | ||
| + | < | ||
| + | # ACL list (Deny) blacklist | ||
| + | http_access deny blackList | ||
| + | |||
| + | # ACL list (Allow) whitelist | ||
| + | http_access allow whiteList | ||
| + | </ | ||
| + | |||
| + | Hier kann man obige Domains in den Abschnitt " | ||
| + | |||
| + | In jedem Fall muss hier irgendeine Domain in White/ | ||
| + | |||
| + | ===== Reihenfolge der ACL in squid.conf ===== | ||
| + | <note important> | ||
| + | |||
| + | Damit die User und Gruppen ACL greift, muß diese vor der shallalist ausgeführt werden. Dazu ändert man / | ||
| + | |||
| + | include / | ||
| + | |||
| + | < | ||
| + | # ACL list (Deny) blacklist | ||
| + | {% if helpers.exists(' | ||
| + | rward.icap.enable == ' | ||
| + | {% if helpers.exists(' | ||
| + | adaptation_access response_mod deny blackList | ||
| + | {% endif %} | ||
| + | {% if helpers.exists(' | ||
| + | adaptation_access request_mod deny blackList | ||
| + | {% endif %} | ||
| + | {% endif %} | ||
| + | http_access deny blackList | ||
| + | {% endif %} | ||
| + | |||
| + | # linuxmuster Aenderung | ||
| + | # Auth plugins | ||
| + | include / | ||
| + | </ | ||
| + | |||
| + | und hier deaktiviert werden: | ||
| + | |||
| + | < | ||
| + | {% if helpers.exists(' | ||
| + | # ACL - Whitelist - User defined (whiteList) | ||
| + | {% for element in OPNsense.proxy.forward.icap.exclude.split("," | ||
| + | {% if ' | ||
| + | %} | ||
| + | acl exclude_icap url_regex {{element|encode_idna}} | ||
| + | {% else %} | ||
| + | acl exclude_icap url_regex {{element|encode_idna|replace(" | ||
| + | {% endif %} | ||
| + | {% endfor %} | ||
| + | {% if helpers.exists(' | ||
| + | adaptation_access response_mod deny exclude_icap | ||
| + | {% endif %} | ||
| + | {% if helpers.exists(' | ||
| + | adaptation_access request_mod deny exclude_icap | ||
| + | {% endif %} | ||
| + | {% endif %} | ||
| + | |||
| + | # linuxmuster Aenderung | ||
| + | # Auth plugins | ||
| + | #include / | ||
| + | </ | ||
| + | |||
| + | Zum Schluß generiert man die Erstellung der angepassten Squid Konfiguration durch eine beliebige " | ||
| + | |||
| + | |||
| + | |||
| + | |||