[LINUX] [https-Proxy mit Tintenfisch] Vermeiden Sie das Lesen von Slack-Nachrichten, da es sich um einen Web-Socket handelt.

Einführung

Ich betreibe einen https-Proxy, der SSL abfängt, und habe das Problem gelöst, sodass ich es aufzeichnen werde. 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 **

Was ist passiert

Ich erhalte keine Nachrichten in der Slack-App. Es wurde nicht aktualisiert, es sei denn, ich habe manuell auf "Neue Nachricht laden" geklickt. Screenshot from Gyazo

Ursachenforschung

Informationsbeschaffung

Überprüfen Sie zunächst die offiziellen Informationen.

Die Verwendung von Slack erfordert eine dauerhafte Verbindung zwischen dem Messaging-Server von Slack und den Mitglieds-Apps und -Browsern. Slack verwendet WebSocket über Port 443 für die Verbindung. In einigen Fällen kann ein Proxy oder eine Firewall diese Verbindung blockieren. Wenn Benutzer von Slack keine Verbindung von einem bestimmten Standort aus herstellen können oder wenn der Slack-Verbindungstest WebSocket-Probleme aufzeigt, ändern Sie die Proxy- und Firewall-Einstellungen, um mit den folgenden Methoden mit Slack verbunden zu bleiben: Sie müssen es offen halten.

Quelle: ** [Probleme mit Slack-Verbindungen verwalten](https://slack.com/intl/ja-jp/help/articles/360001603387-Slack-%E3%81%AE%E6%8E%A5%E7 % B6% 9A% E5% 95% 8F% E9% A1% 8C% E3% 82% 92% E7% AE% A1% E7% 90% 86% E3% 81% 99% E3% 82% 8B) **

Verbindungstest

Versuchen Sie also, auf die Verbindungstest-URL "https: // [WORKSPACE] .slack.com / help / test" zuzugreifen. (Ersetzen Sie [ARBEITSPLATZ] durch jeden Arbeitsbereich.) Das Testergebnis ist wie folgt, Websocket scheint nutzlos zu sein. Screenshot from Gyazo

Überprüfen Sie die offizielle Problemumgehung.

Stellen Sie sicher, dass der Proxy eine SSL-Entschlüsselung durchführt. Wenn Sie eine Entschlüsselung durchführen, unterstützen Sie entweder WebSocket im Proxy oder über die SSL-Entschlüsselung \ * .slack-msgs.com, wss-primary.slack.com, wss-backup.slack.com, wss- Sie müssen die Domain mobile.slack.com ausschließen.

Quelle: ** [Probleme mit Slack-Verbindungen verwalten](https://slack.com/intl/ja-jp/help/articles/360001603387-Slack-%E3%81%AE%E6%8E%A5%E7 % B6% 9A% E5% 95% 8F% E9% A1% 8C% E3% 82% 92% E7% AE% A1% E7% 90% 86% E3% 81% 99% E3% 82% 8B) **

Lösungen

Daher habe ich beschlossen, eine Liste von Servern zu erstellen, die Websoket verwenden und SSL_BUMP ausschließen. Die Zielserver sind diejenigen, die im Slack Official aufgeführt sind.

wslist


^wss-(backup|primary|mobile)\.slack\.com:443$
^([^/][^/]*\.)*slack-msgs\.com:443$

Lassen Sie squid.conf das essen.

squid.conf


--------8<-----(snip)-----8<----------
#Erstellen Sie hier eine Liste der Websocket-Ziele
acl wslist url_regex -i "/etc/squid/wslist"

http_port 8081 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/certs/ssl_bump_ca_cert.pem key=/etc/squid/certs/ssl_bump_ca_privkey.pem
sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/local/squid/ssl_db -M 4MB
sslcrtd_children 5

#Ursprünglich wurden andere als die auf der weißen Liste aufgeführten Elemente wie unten gezeigt von BUMP ausgeschlossen, dies ist jedoch auskommentiert.
#ssl_bump bump !whitelist

#Fügen Sie eine Liste von Web-Sockets auf Websites hinzu, die nicht von BUMP abgedeckt werden
ssl_bump bump !whitelist !wslist

sslproxy_cert_error deny all
--------8<-----(snip)-----8<----------

Versuchen Sie nun erneut zu testen.

Screenshot from Gyazo

Ich hab es gut gemacht. Screenshot from Gyazo

Recommended Posts

[https-Proxy mit Tintenfisch] Vermeiden Sie das Lesen von Slack-Nachrichten, da es sich um einen Web-Socket handelt.
[https-Proxy mit Tintenfisch] So stellen Sie eine Whitelist von https mit url_regex dar
Der HTTP-Zugriff über einen Proxy in Python Web Scraping war bei Anfragen einfach