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