[LINUX] [proxy https avec squid] Évitez de lire les messages lâches car il s'agissait d'un socket Web.

introduction

J'utilise un proxy https qui intercepte SSL, et j'ai résolu le problème, je vais donc l'enregistrer. L'environnement à utiliser est le suivant qui a été créé la dernière fois. ** Créez facilement un proxy pour la liaison Active Directory et l'interception SSL avec squid avec docker **

Qu'est-il arrivé

Je ne reçois pas de messages dans l'application Slack. Il n'a pas été mis à jour sauf si j'ai cliqué manuellement sur "Charger un nouveau message". Screenshot from Gyazo

Recherche de cause

La collecte d'informations

Tout d'abord, vérifiez les informations officielles.

Slack nécessite une connexion permanente entre le serveur de messagerie de Slack et les applications et navigateurs des membres. Slack utilise WebSocket sur le port 443 pour la connexion. Dans certains cas, un proxy ou un pare-feu peut bloquer cette connexion. Si les utilisateurs de Slack ne parviennent pas à se connecter à partir d'un emplacement spécifique, ou si le test de connexion Slack montre des problèmes WebSocket, modifiez les paramètres de proxy et de pare-feu pour rester connectés à Slack à l'aide des méthodes suivantes: Vous devez le garder ouvert.

Source: ** [Gérer les problèmes de connexion Slack](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) **

Test de connexion

Alors, essayez d'accéder à l'URL de test de connexion https: // [WORKSPACE] .slack.com / help / test. (Remplacez [WORKSPACE] par chaque espace de travail) Le résultat du test est le suivant, websocket semble être inutile. Screenshot from Gyazo

Vérifiez la solution de contournement officielle.

Assurez-vous que le proxy effectue le décryptage SSL. Si vous effectuez un décryptage, prenez en charge WebSocket dans le proxy ou à partir du décryptage SSL \ * .slack-msgs.com, wss-primary.slack.com, wss-backup.slack.com, wss- Vous devez exclure le domaine mobile.slack.com.

Source: ** [Gérer les problèmes de connexion Slack](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) **

Solution

J'ai donc décidé de créer une liste de serveurs qui utilisent websoket et d'exclure SSL_BUMP. Les serveurs cibles sont ceux répertoriés dans le slack officiel.

wslist


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

Laissez squid.conf manger ça.

squid.conf


--------8<-----(snip)-----8<----------
#Créez une liste de cibles Websocket ici
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

#À l'origine, les éléments autres que ceux de la liste blanche ont été exclus de BUMP comme indiqué ci-dessous, mais cela est commenté.
#ssl_bump bump !whitelist

#Inclure une liste de sockets Web sur les sites qui ne sont pas couverts par BUMP
ssl_bump bump !whitelist !wslist

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

Maintenant, essayez à nouveau de tester.

Screenshot from Gyazo

J'ai bien fait. Screenshot from Gyazo

Recommended Posts

[proxy https avec squid] Évitez de lire les messages lâches car il s'agissait d'un socket Web.
[proxy https avec squid] Comment représenter une liste blanche de https avec url_regex
L'accès https via un proxy dans le scraping Web Python était facile avec les demandes