Ich habe versucht, eine Whitelist für den https-Proxy zu erstellen, der ssl abfängt. Die zu verwendende Umgebung ist die folgende, die beim letzten Mal erstellt wurde. ** Proxy mit Active Directory-Verknüpfung und SSL-Abfangen mit Squid mit Docker einfach erstellen **
Die Whitelist- und Blacklist-URLs werden wie folgt durch url_regex dargestellt.
** Bei der Darstellung einer bestimmten Domain, einschließlich Subdomains ** Das folgende Beispiel zeigt eine Domain namens qiita.com, die Subdomains enthält.
whitelist
^(https*://)*([^/][^/]*\.)*qiita\.com(:443|:80)*(/.*)*$
** Bei der Darstellung einer bestimmten Domain, einschließlich Subdomains. Wenn Sie also mehrere Domain-Strings zusammenstellen möchten, die etwas gemeinsam haben ** Das folgende Beispiel zeigt eine Domain namens slack.com oder slack-edge, com, die Subdomains enthält.
whitelist
^(https*://)*([^/][^/]*\.)*slack(-edge)*\.com(:443|:80)*(/.*)*$
Bereiten Sie die obige Whitelist als Textdatei vor und laden Sie sie als url_regex unter squid.com
.
squid.com
acl whitelist url_regex -i "/etc/squid/whitelist"
http_access allow whitelist
Wenn Sie nur fqdn auf die Whitelist setzen, werden Sie mit einer schädlichen Site verbunden.
Angenommen, Sie schreiben dies in Ihre Whitelist:
whitelist
qiita\.com
Dies würde jedoch übereinstimmen, wenn der vollständige Pfad oder die Subdomain dieselbe Zeichenfolge hätte.
match_url
https://example.com/qiita.com/exploit.js
https://qiita.com.example.com/exploit.js
Warum schreiben Sie dies dann nicht unter Verwendung der Kontinuität des ersten Protokolls, um einen bestimmten Domänennamen, einschließlich Subdomänen, zuzulassen?
whitelist
^https*://([^/][^/]*\.)*qiita\.com/
Das war nicht gut.
Vielleicht, um ein Zertifikat zu erhalten, versuche ich zuerst, eine Verbindung zu qiita.com: 443
herzustellen.
squid_log
TCP_DENIED/407 4054 CONNECT qiita.com:443 - HIER_NONE/- text/html
TCP_DENIED/407 4424 CONNECT qiita.com:443 - HIER_NONE/- text/html
TCP_DENIED/200 0 CONNECT qiita.com:443 PROSPER2\\USERNAME HIER_NONE/- -
Betrachten wir das Protokoll und die Portnummer in der vorherigen Regel. Wenn es sich um HTTP handelt, können Sie auch dann kommunizieren, wenn Sie Folgendes eingeben: 80. Der Anfang der Zeichenfolge wird mit oder ohne Protokollnotation abgeglichen, und das Ende des vollqualifizierten Domänennamens wird mit oder ohne Portnummer abgeglichen.
whitelist
^(https*://)*([^/][^/]*\.)*qiita\.com(:443|:80)*/
Es war immer noch nutzlos. Es hat sich nicht geändert. Es endet mit einer Portnummer, sodass der letzte Schrägstrich im Weg ist und nicht übereinstimmt.
squid_log
TCP_DENIED/407 4054 CONNECT qiita.com:443 - HIER_NONE/- text/html
TCP_DENIED/407 4424 CONNECT qiita.com:443 - HIER_NONE/- text/html
TCP_DENIED/200 0 CONNECT qiita.com:443 PROSPER2\\USERNAME HIER_NONE/- -
Zusätzlich zur vorherigen Regel gibt es einen Schrägstrich oder keinen Schrägstrich, und die Portnummer oder der vollqualifizierte Domänenname befindet sich am Ende der Zeichenfolge. Und sagte.
whitelist
^(https*://)*([^/][^/]*\.)*qiita\.com(:443|:80)*(/.*)*$
Die Root-Site konnte die Kommunikation sowohl unter https: // qiita.com / als auch unter der Subdomain-Site unter https: // zine.qiita.com / bestätigen. Vielleicht ist das in Ordnung.
Lassen wir auch Slack-Sites zu.
whitelist
^(https*://)*([^/][^/]*\.)*slack\.com(:443|:80)*(/.*)*$
Wenn man es mit einem Browser betrachtet, ist es auf halbem Weg.
Wenn ich mir das Protokoll ansehe, werde ich mit slack-edge.com kommunizieren.
squid_log
TCP_DENIED/407 4082 CONNECT a.slack-edge.com:443 - HIER_NONE/- text/html
TCP_DENIED/407 4452 CONNECT a.slack-edge.com:443 - HIER_NONE/- text/html
TCP_DENIED/407 4082 CONNECT a.slack-edge.com:443 - HIER_NONE/- text/html
TCP_DENIED/200 0 CONNECT a.slack-edge.com:443 PROSPER2\\USERNAME HIER_NONE/- -
Dies bedeutet, dass auf den String-Durchhang der String-Rand ** oder ** nicht ** folgen sollte.
whitelist
^(https*://)*([^/][^/]*\.)*slack(-edge)*\.com(:443|:80)*(/.*)*$
Versuchen wir es noch einmal mit einem Browser. Ja, das sieht okay aus.
** Es ist viel einfacher, dstdomain für Whitelists und Blacklists zu verwenden ** Ich habe jedoch auch versucht, reguläre Ausdrücke durch Versuch und Irrtum zu studieren.
Recommended Posts