K (Textersetzung - „sptable2 spezial“ durch „sptable2 Paketfilter“) |
KKeine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
|[[UTM/APP/HTTP_Proxy-Transparenter_Modus v12.2 | 12.2]] | |[[UTM/APP/HTTP_Proxy-Transparenter_Modus v12.2 | 12.2]] | ||
[[UTM/APP/HTTP_Proxy-Transparenter_Modus v11.7 | 11.7]] | [[UTM/APP/HTTP_Proxy-Transparenter_Modus v11.7 | 11.7]] | ||
|{{Menu-UTM| | |{{Menu-UTM|Anwendungen|HTTP-Proxy|Transparenter Modus}} | ||
}} | }} | ||
---- | |||
=== {{#var:Transparenter Proxy}} === | === {{#var:Transparenter Proxy}} === | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Transparenter Proxy--desc}} | {{#var:Transparenter Proxy--desc}} | ||
<li class="list--element__alert list--element__hint">{{#var: | <li class="list--element__alert list--element__hint">{{#var:Transparenter Proxy--Hinweis}}</li> | ||
</div> | </div> | ||
---- | ---- | ||
=== {{#var:Konfiguration}} === | === {{#var:Konfiguration}} === | ||
Zeile 26: | Zeile 27: | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
<li class="list--element__alert list--element__hint">{{#var:Zertifikat--desc}}</li> | <li class="list--element__alert list--element__hint">{{#var:Zertifikat--desc}}</li> | ||
{{Gallery3|einblenden={{#var:Bild Anleitung anzeigen}} | {{Gallery3|einblenden={{#var:Bild Anleitung anzeigen}} | ||
| {{#var:Zertifikat-hinzufügen--Bild}} | {{#var:Zertifikat-hinzufügen--cap}} | Abb1-header={{Dialog-header|{{#var:CA hinzufügen}}|{{#var:Authentifizierung}}|{{#var:Zertifikate}}|icon=fa-floppy-disk-circle-xmark|icon2=fa-close}} | | {{#var:Zertifikat-hinzufügen--Bild}} | {{#var:Zertifikat-hinzufügen--cap}} | Abb1-header={{Dialog-header|{{#var:CA hinzufügen}}|{{#var:Authentifizierung}}|{{#var:Zertifikate}}|icon=fa-floppy-disk-circle-xmark|icon2=fa-close}} | ||
| {{#var:Zertifikat-fertig--Bild}} | {{#var:Zertifikat-fertig--cap}} | Abb2-header={{Dialog-header|{{#var:Zertifikate}}|{{#var:Authentifizierung}}|icon=fa-save}} |i2=2 | | {{#var:Zertifikat-fertig--Bild}} | {{#var:Zertifikat-fertig--cap}} | Abb2-header={{Dialog-header|{{#var:Zertifikate}}|{{#var:Authentifizierung}}|icon=fa-save}} |i2=2 | ||
|i=3|collapsed=true|layout=dezent}} | |i=3|collapsed=true|layout=dezent}} | ||
< | <br clear=all></div> | ||
{{ | |||
==== {{Reiter|SSL-Interception}} ==== | |||
{{#var: | <div class="Einrücken"> | ||
{{#var:SSL-Interception--desc}} | |||
</div> | </div> | ||
{| class="sptable2 pd5 zh1 Einrücken" | {| class="sptable2 pd5 zh1 Einrücken" | ||
|- | |- | ||
{{:UTM/APP/SSL-Interception}} | {{:UTM/APP/SSL-Interception}} | ||
|} | |} | ||
<br clear=all> | |||
<br clear= | |||
Zeile 53: | Zeile 50: | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Zertifikat dem Browser hinzufügen--desc}} | {{#var:Zertifikat dem Browser hinzufügen--desc}} | ||
{{Einblenden|{{#var: | {{Einblenden| {{#var:show}} | {{#var:hide}} |dezent}} | ||
<br> | <br> | ||
{{#var:Gallery}} | {{#var:Gallery}} | ||
</div></span></div></div> | </div></span></div></div> | ||
==== {{Reiter|{{#var:Transparenter Modus}} }} ==== | |||
{{Bild| {{#var:Transparenter Modus--Bild}} | {{#var:Transparenter Modus--cap}}|| | {{Bild| {{#var:Transparenter Modus--Bild}} |{{#var:Transparenter Modus--cap}}||HTTP-Proxy|{{#var:Anwendungen}}|icon=fa-chart-bar|icon-text=HTTP-Proxy Log|icon2=fa-save|class=Bild-t}} | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Transparenter Modus--desc}} | {{#var:Transparenter Modus--desc}} | ||
<br clear=all> | <br clear=all></div> | ||
===== {{#var:HTTPS-Regel}} ===== | |||
{{#var:HTTPS-Regel--desc}} | |||
{| class="sptable2 pd5 zh1" | ===== {{#var:HTTPS-Regel anlegen}} ===== | ||
<div class="Einrücken"> | |||
{{#var:HTTPS-Regel anlegen--desc}} | |||
</div> | |||
{| class="sptable2 pd5 zh1 Einrücken" | |||
|- | |- | ||
! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ||
| class="Bild" rowspan=" | | class="Bild" rowspan="7" | {{Bild| {{#var:HTTPS-Regel anlegen--Bild}} |{{#var:HTTPS-Regel anlegen--cap}}||{{#var:Transparente Regel hinzufügen}}|{{#var:Anwendungen}}|HTTP-Proxy|icon=fa-floppy-disk-circle-xmark|icon2=fa-close}} | ||
|- | |- | ||
| {{b|{{#var:Protokoll}}: }} || {{Button|HTTPS|dr}} || {{#var:Protokoll--desc}} | | {{b|{{#var:Protokoll}}:}} || {{Button|HTTPS|dr|class=available}} || {{#var:Protokoll--desc}} | ||
|- | |- | ||
| {{b|{{#var:Typ}}: }} || {{Button|Include|dr}}<br>{{Button|Exclude|dr}} || {{#var:Typ--desc}} | | {{b|{{#var:Typ}}:}} || {{Button|Include|dr|class=available}}<br> {{Button|Exclude|dr|class=available}} || {{#var:Typ--desc}} | ||
|- | |- | ||
| {{b|{{#var:Quelle}}: }} || {{Button|internal-network|dr}} || {{#var:Quelle--desc}} | | {{b|{{#var:Quelle}}:}} || {{Button|internal-network|dr|class=mw10}} || {{#var:Quelle--desc}} | ||
|- | |- | ||
| {{b|{{#var:Ziel}}: }} || {{Button|internet|dr}} || {{#var:Ziel--desc}} | | {{b|{{#var:Ziel}}:}} || {{Button|internet|dr|class=available}} || {{#var:Ziel--desc}} | ||
|- class="Leerzeile" | |||
| colspan="3" | {{#var:Speichern--desc}} | |||
|- class="Leerzeile" | |||
| | |||
|} | |} | ||
==== {{#var:Paketfilterregeln}} ==== | |||
==== {{#var: | |||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var: | {{#var:Paketfilterregeln--desc}} | ||
</div> | |||
{| class="Einrücken sptable2 Paketfilter pd5 tr--bc__white zh1" | {| class="Einrücken sptable2 Paketfilter pd5 tr--bc__white zh1" | ||
|- class="bold small no1cell" | |- class="bold small no1cell" | ||
| class="Leerzeile bc__default" | || ||<nowiki>#</nowiki> || style="min-width:12em;"| {{#var:Quelle}} || style="min-width:12em;"| {{#var:Ziel}} || style="min-width:12em;"| {{#var:Dienst}} || style="min-width:6em;"| NAT || {{#var:Aktion}} || {{#var:Aktiv}} ||style="min-width:5em;"| | | class="Leerzeile bc__default" | || ||<nowiki>#</nowiki> || style="min-width:12em;"| {{#var:Quelle}} || style="min-width:12em;"| {{#var:Ziel}} || style="min-width:12em;"| {{#var:Dienst}} || style="min-width:6em;"| NAT || {{#var:Aktion}} || {{#var:Aktiv}} ||style="min-width:5em;"| | ||
|- | |- | ||
| class="bc__default" | | | class="bc__default" | || {{spc|drag|o|-}} || 2 || {{spc|net|o|-}} internal-network || {{spc|interface|o|-}} internal-interface || {{spc|dienste|o|-}} proxy || || {{Kasten|Accept|grün}} || {{ButtonAn|{{#var:ein}} }} || {{Button||copy|fs=14}}{{Button||w|fs=14}}{{Button||trash|fs=14}} | ||
|} | |} | ||
==== {{#var:Beispiele für Ausnahmen für Windows-Updateserver}} ==== | ==== {{#var:Beispiele für Ausnahmen für Windows-Updateserver}} ==== | ||
Zeile 102: | Zeile 103: | ||
{{#var:Beispiele für Ausnahmen für Windows-Updateserver--desc}} | {{#var:Beispiele für Ausnahmen für Windows-Updateserver--desc}} | ||
</div> | </div> | ||
---- | |||
=== | === Troubleshooting === | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{:UTM/APP/HTTP_Proxy-Host-header-forgery}} | {{:UTM/APP/HTTP_Proxy-Host-header-forgery}} | ||
</div> | </div> |
Aktuelle Version vom 5. Juni 2024, 11:47 Uhr
- Aktualisierung zum Redesign des Webinterfaces
Funktionsweise des transparenten Proxys
Der transparente Proxy sorgt dafür, dass Webseitenaufrufe auch ohne Einstellungen im Browser über den HTTP-Proxy geleitet werden, so dass der Virenscanner und der Webfilter auf diese Verbindungen angewendet werden können.
Um auch SSL-Verschlüsselte Verbindungen auf Viren und Schadsoftware überprüfen zu können, muss sich der Proxy als Client gegenüber dem Webserver im Internet ausgeben, so dass die Daten schon auf der Firewall entschlüsselt werden können.
Diese sollen anschließend natürlich wieder verschlüsselt an den eigentlichen Client im internen Netzwerk weitergeleitet werden.
Um dieses zu erreichen wird das Feature SSL-Interception genutzt.
Konfiguration
Zertifikat
SSL-Interception
Konfiguration unter SSL-Interception
BereichBeschriftung | Wert | Beschreibung | UTMbenutzer@firewall.name.fqdnAnwendungen |
---|---|---|---|
Aktiviert: | Die SSL-Interception ist ausgeschaltet | ||
Bei Aktivierung werden vom Webfilter blockierte Verbindungen abgefangen. Dadurch wird das Problem umgangen, daß es Seiten gibt, die ein Unterbrechen der Verschlüsselung nicht tolerieren (z.B. Banking-Software), ohne das man dafür extra eine Ausnahme definieren muss. | |||
Aktiviert die SSL-Interception | |||
SNI validieren: | Ja | Bei Aktivierung wird eine sich ggf. im ClientHello des TLS-Handshake befindliche SNI geprüft. Dabei wird der enthaltene Hostname aufgelöst und die Adressen im Ergebnis mit der Zieladresse des abgefangenen Requests abgeglichen. Bei Nichtübereinstimmung wird die Verbindung geschlossen. Ohne Server Name Indication Validierung können Clients die SNI beliebig manipulieren, um den Webfilter zu passieren. Diese Einstellung sollte nur als eine letzte Möglichkeit betrachtet werden, wenn es unmöglich scheint, die DNS-Einstellungen zwischen Clients des HTTP-Proxy und der UTM zu vereinheitlichen. Verwenden Client und UTM unterschiedliche DNS-Server, kann es dabei zu false-positives kommen.
| |
Nicht erkannte Protokolle erlauben: | Ja | Wenn dieser Schalter deaktiviert ist, werden nicht erkannte Protokolle blockiert. | |
CA-Zertifikat: | CA-SSL-Interception | Hier muss eine CA ausgewählt werden, die die Verbindung nach dem entschlüsseln (und scannen) wieder verschlüsseln kann. Der Public-Key der CA muss auf allen Client Rechnern, die SSL-Interception nutzen sollen, installiert werden. Herunterladen kann hier direkt mit erfolgen. | |
Der Public-Key sollte auf den Clients, die die SSL-Interception nutzen sollen installiert werden, um Zertifikatsfehler zu vermeiden | |||
Zertifikatsverifizierung: nicht bei Nur Webfilter basiert |
Ein | Sollte unbedingt aktiviert werden! Damit überprüft der HTTP-Proxy, ob das Zertifikat der aufgerufenen Seite vertrauenswürdig ist. Da der Browser nur noch das lokale Zertifikat sieht, ist eine Überprüfung durch den Browser nicht mehr möglich. | |
Ausnahmen für SSL-Interception nicht bei Nur Webfilter basiert |
Aus | Es besteht die Möglichkeit Ausnahmen im Format der Regular Expressions zu definieren. Da hier aber nur https ankommen kann, wird hier, anders als bei dem Virenscanner, nicht auf Protokolle gefiltert. Mit werden neue Ausnahmen hinzu gefügt. Eine Ausnahme für www.securepoint.de würde also lauten:
.*\.securepoint\.de" | |
Ausnahmen mit SNI abgleichen: Verfügbar, wenn SNI validieren aktiv ist. |
Aus | Wendet die Server Name Indication Validierung nur auf aktivierte Ausnahmen für SSL-Interception an. | |
Ausnahmen für Zertifikatsverifizierung nur bei aktivierter Zertifikatsverifizierung |
Aus | Hier können Ausnahmen für die Zertifikatsverifizierung im Regex-Format hinzugefügt werden. |
Zertifikat dem Browser hinzufügen
Dazu wird der öffentliche Teil des CA über den Button heruntergeladen.
Entweder dadurch, dass sich von jedem einzelnen Client auf der UTM einloggen um auf diesen das CA zu speichern oder es wird einmal heruntergeladen und auf einem USB-Stick oder einem Netzwerkspeicher abgelegt. Anschließend wird über diesen Weg dem Browser das Zertifikat hinzugefügt.
Transparenter Modus
UTMbenutzer@firewall.name.fqdnAnwendungen
Aktivierung unter Transparenter Modus mit Transparenter Modus Ein
Bereich
HTTPS-Regel anlegen
In der Standard Einstellung ist der transparente Modus für das HTTP Protokoll über Port 80 schon aktiviert.
Um diesen auch für das HTTPS Protokoll und Port 443 einzurichten, wird durch einen Klick auf die Schaltfläche eine weitere Regel hinzugefügt.
Paketfilterregeln
Paketfilterregel für Zugriff auf DNS-Auflösung
# | Quelle | Ziel | Dienst | NAT | Aktion | Aktiv | |||
2 | internal-network | internal-interface | proxy | Accept | Ein |
Beispiele für Ausnahmen für Windows-Updateserver
Weitere Beispiele zur Einrichtung der SSL-Interception, Authentifizierungsausnahmen, Virenscanner und Webfilter bezüglich Windows Updates gibt es im Knowledge Base Artikel Windows Updates mit HTTP-Proxy und Webfilter
Troubleshooting
Situation
- UTM mit aktivem transparenten HTTP-Proxy für HTTP und HTTPS.
- Die SSL-Interception läuft im Modus "Webfilterbasierend".
Fehlermeldung im Browser
ERROR_SSL_PROTOCOL_ERROR
oder
ssl_error_rx_record_too_long
Logmeldung in der UTM
Logmdeldung des Squid (Menü
2021-09-15T16:50:20.003+02:00|squid|8933|1631717419.981 1 192.0.2.192 NONE/200 0 CONNECT 104.96.47.5:443 - HIER_NONE/- -
2021-09-15T16:50:20.007+02:00|squid|8933|1631717420.007 27 192.0.2.192 NONE_ABORTED/409 12387 CONNECT loadbalancing.ttt-point.de:443 - HIER_NONE/- text/html
2021-09-15T16:50:20.007+02:00|squid|8933|1631717420.007 27 192.0.2.192 NONE_ABORTED/409 12387 CONNECT loadbalancing.ttt-point.de:443 - HIER_NONE/- text/html
2021-09-15T16:50:22.652+02:00|squid|8933|SECURITY ALERT: Host header forgery detected on local=192.0.2.22:443 remote=192.168.175.10:28144 FD 9 flags=33 (local IP does not match any domain IP)
2021-09-15T16:50:22.654+02:00|squid|8933|SECURITY ALERT: on URL: loadbalancing.ttt-point.de:443
Bedeutung
- Der Client startet eine TCP-Verbindung zu einem HTTPS-Server
- Die Verbindung wird durch die UTM → Transparenter Proxy abgefangen
- Der HTTP-Proxy (Squid) prüft die Verbindung und analysiert den TLS-Handshake.
- Die gewonnen Informationen wie der SNI werden dabei aufgelöst und mit der ursprünglichen IP-Adresse verglichen
- In diesem Fall stimmen ursprüngliche IP und die aufgelöste IP für den SNI (Hostnamen) nicht überein und werden daher durch den HTTP-Proxy blockiert und es kommt zu oben stehender Fehlermeldung
Ursache
Dieses Verhalten ist bei Hostnamen mit einer intensiven Lastenverteilung zu beobachten.
Wenn der Anbieter in kurzer Zeit unterschiedliche Antworten auf DNS-Anfragen gibt, können sich die Ergebnisse in der DNS-Auflösung zwischen Client und UTM unterscheiden.
Dieses Verhalten kann hervorgerufen werden durch:
- Unterschiedliche DNS-Server auf Client und UTM
- Hostnamen, die mit einer sehr kleinen TTL durch intensive Lastenverteilung, von UTM und Client unterschiedlich aufgelöst werden.
- Nutzung von DNS-Servern an unterschiedlichen geografischen Standorten.
Dabei kann über den entfernten Standort für die aufgerufenen Hostnamen eine andere IP-Adresse zurückgegeben werden als am lokalen Standort der UTM. (Geographic DNS Routing)
Lösung
- Best Practice:
Auf dem Client wird die UTM als globaler Proxy-Server und ggf. für jede Anwendung als Proxy-Server eingetragen. - Workaround:
Auf Client und UTM werden die gleichen DNS-Server eingetragen.
Zusätzlich muss darauf geachtet werden, daß auch keine DNS-Server verwendet werden, die selber bereits über Geographic DNS Routing angesprochen werden.
Die Google-Server z.B. unterscheiden sich trotz identischer IP-Adresse je nach Region, von der aus sie aufgerufen werden!