Aller au contenu

Exigences réseau

Utilisez cette page comme demande de changement pour votre équipe réseau. Le client a besoin d’une seule destination sortante, atteinte à travers votre proxy, et n’ouvre rien en entrée.

Le client tourne sur la machine qui exécute l’agent, dans le cycle de vie de l’agent lui-même. Il contacte OpenLatch pour trois choses : récupérer les politiques avec lesquelles il décide, transmettre l’enregistrement de ce qu’il a décidé, et s’authentifier. Les trois vont vers une seule destination sur un seul port. La télémétrie produit et les rapports de plantage, facultatifs, vont vers cette même destination : OpenLatch n’ajoute aucune autre destination, que vous les laissiez actifs ou que vous les coupiez.

PropriétéValeur
SensSortant uniquement. Le client n’ouvre aucun port d’écoute sur une interface réseau, et rien sur la machine ne devient joignable depuis le réseau
Destinationapp.openlatch.ai, sur TCP 443
TransportHTTPS. TLS est vérifié avec le magasin de confiance du système d’exploitation, plus un paquet de certificats facultatif fusionné par-dessus. La vérification ne peut pas être désactivée
À travers votre proxyOui : HTTP et HTTPS CONNECT, SOCKS5, et configuration automatique de proxy là où le système d’exploitation la prend en charge, avec authentification Basic et Kerberos (Negotiate)
Liste d’adresses IP autoriséesNon prise en charge. Il n’existe aucune plage d’adresses statique : autorisez par nom de domaine complet et par SNI
CertificatsAucun émis par OpenLatch, et aucun exigé de votre part
Machines derrière un proxyUn parc de machines derrière un proxy d’entreprise : une seule destination sortante, rien en entrée.MachineProxy d’entrepriseMachineMachineapp.openlatch.ai:443HTTPS
Figure 1. Un parc de machines derrière un proxy d’entreprise : une seule destination sortante, rien en entrée.

C’est le tableau à coller dans une demande de changement. La première ligne est ce dont OpenLatch a besoin pour fonctionner, et c’est la seule destination qu’une machine qui exécute le client demande à OpenLatch. La deuxième n’est nécessaire que pendant l’installation ou la mise à jour du client ; un parc qui dispose d’un miroir interne de paquets la pointe sur ce miroir. La troisième n’est nécessaire que pour installer avec l’un des deux scripts. La quatrième ne concerne que les navigateurs.

DestinationPortSensProtocoleUsageAutorisation
app.openlatch.aiTCP 443SortantHTTPSPolitiques, enregistrements de décisions, authentification, et la télémétrie produit et les rapports de plantage facultatifsPar nom et SNI. Il n’existe aucune plage d’adresses statique
Votre registre de paquets : registry.npmjs.org, sauf si vous pointez le client sur un miroirTCP 443SortantHTTPSInstaller le client, et télécharger une mise à jour quand vous l’autorisezPar nom, ou par le nom de votre miroir interne. Nécessaire uniquement pendant une installation ou une mise à jour
openlatch.aiTCP 443SortantHTTPSTélécharger le script d’installation, install.sh ou install.ps1, et le rapport d’installation qu’il envoiePar nom. Nécessaire uniquement pour une installation par script
challenges.cloudflare.com, depuis le navigateur de toute personne qui se connecte à la consoleTCP 443SortantHTTPSLa vérification que l’étape e-mail effectue à la connexionPar nom, pour les navigateurs uniquement. Aucune machine qui exécute le client ne le contacte

La connexion à la console commence par une étape e-mail, et cette étape effectue dans le navigateur une courte vérification que le visiteur est une personne. La vérification est servie depuis challenges.cloudflare.com : les navigateurs avec lesquels vos administrateurs se connectent doivent atteindre ce nom sur TCP 443. Un navigateur qui ne peut pas l’atteindre échoue à chaque fois. Cette exigence ne concerne que les navigateurs : app.openlatch.ai reste la seule destination dont une machine qui exécute le client a besoin.

Vos agents atteignent leurs points d’accès de modèles exactement comme avant l’installation d’OpenLatch. OpenLatch ne termine ni ne re-signe ce trafic, et n’y ajoute aucune destination. Ces points d’accès doivent rester joignables et être exemptés de la mise en tampon des réponses et de l’inspection des flux, pour qu’une réponse en flux ne soit pas retenue en chemin vers la personne qui l’attend.

Un équipement qui met la réponse en tampon, ou l’analyse comme un corps entier, retient le flux jusqu’à la fin puis le libère d’un bloc. La requête aboutit quand même ; le développeur voit un agent qui semble se figer puis affiche tout d’un coup.

Pour les produits de proxy qui orientent le trafic par application plutôt que par destination, le nom du processus est openlatch sur macOS et Linux et openlatch.exe sur Windows. Utilisez ce nom dans une définition d’application personnalisée.

Répondez contrôle par contrôle. Une ligne « Non » est un choix de conception plutôt qu’un manque, et chacune indique la voie à suivre à la place.

Contrôle réseauPris en chargeTraitementRemarques
Proxy HTTP ou HTTPS CONNECT non authentifiéOuiDécouvert à l’installation, ou fourni à l’installationLa forme courante en entreprise. La route qui fonctionne est enregistrée sur la machine
Authentification BasicOuiL’identifiant est demandé lors d’un défi et conservé dans le magasin d’identifiants du système d’exploitationJamais écrit en clair dans un fichier
Kerberos (Negotiate)OuiUtilise l’identité de la session ouverte, par le mécanisme du système d’exploitationLe principal de service vaut par défaut le service HTTP de l’hôte du proxy et peut être remplacé à l’installation. Un ticket manquant ou expiré est signalé avec son remède
NTLMNonNon pris en charge, par choix de conceptionMicrosoft a déprécié NTLM, et un client qui y redescend discrètement va à l’encontre de ce pour quoi il a été déployé. Utilisez Negotiate, ou un chemin non authentifié pour le client
Configuration automatique de proxy (PAC ou WPAD)Oui, sur Windows et macOSL’URL est confiée au résolveur du système d’exploitationRefusée sur Linux, où aucun résolveur de configuration automatique n’est disponible pour le client. Définissez-y la route explicitement
SOCKS5OuiUne route socks5:// ou socks5h://La résolution de noms reste locale avec socks5 et passe au proxy avec socks5h
Proxy transparentOuiAucune configuration sur la machine ; le trafic est intercepté sur le cheminCombinez-le avec la ligne d’inspection TLS si l’équipement re-signe la connexion
Inspection TLS avec une autorité de certification d’entrepriseOuiLa racine d’interception va dans le magasin de confiance du système d’exploitation, ou est fournie en paquet PEM à l’installationLe paquet est fusionné par-dessus les racines du système, jamais en remplacement, et la vérification n’est jamais désactivée
Certificats clients mTLS vers le proxyNon—Le client ne présente aucun certificat client. Utilisez l’un des modes d’authentification pris en charge
Liste d’adresses IP autorisées pour les flux sortants d’OpenLatchNon—Il n’existe aucune plage d’adresses statique. Autorisez app.openlatch.ai par nom et SNI

Sur la plupart des machines d’entreprise, l’installation trouve la route sans qu’on la lui indique. Elle sonde ce qui est déjà configuré, puis parcourt les réglages du système d’exploitation, y compris la configuration automatique de proxy sur Windows et macOS. Elle ne pose une question que si rien de cela n’atteint la console, une fois, dans un terminal. Une installation sans surveillance qui ne trouve pas de route s’arrête avec un rapport qui nomme chaque candidat essayé, plutôt que de passer en direct sans le dire.

La route qui a permis l’installation est enregistrée sur la machine. C’est important : le client démarre avec la session de l’utilisateur et n’hérite pas des variables du shell d’installation, si bien qu’une route qui n’existait que dans une variable d’environnement serait perdue au redémarrage suivant.

Quand la découverte ne peut pas fonctionner, ou qu’une installation gérée tourne sans terminal pour poser la question, fournissez la route directement à l’installation. Fournissez en même temps le paquet de certificats si le système d’exploitation n’approuve pas déjà la racine d’interception.

Retenez l’inscription avec OPENLATCH_NO_INIT et lancez-la dans une seconde étape, pour que les options atteignent la commande qui l’effectue. Exportez la variable avant le lancement du script, pour que le shell qui lit le script la porte aussi.

Sur macOS et Linux :

Fenêtre de terminal
export OPENLATCH_NO_INIT=1
curl -LsSf https://openlatch.ai/install.sh | sh
~/.local/bin/openlatch init --proxy http://proxy.corp:8080 --ca-bundle /etc/ssl/corp-root.pem

Sur Windows :

Fenêtre de terminal
$env:OPENLATCH_NO_INIT = "1"
powershell -ExecutionPolicy Bypass -c "irm https://openlatch.ai/install.ps1 | iex"
& "$env:LOCALAPPDATA\openlatch\bin\openlatch.exe" init --proxy http://proxy.corp:8080 --ca-bundle C:\corp\corp-root.pem

Sur une machine qui dispose déjà de Node.js, npx @openlatch/client init accepte les mêmes options en une seule étape :

Fenêtre de terminal
npx @openlatch/client init --proxy http://proxy.corp:8080 --ca-bundle /etc/ssl/corp-root.pem

Une liste d’exceptions peut être fournie avec la route, dans la syntaxe habituelle. Le trafic qui ne quitte pas la machine ne passe pas par le proxy et ne demande aucune exception.

Quand la politique interdit à une machine de sortir sans le proxy, le client peut être configuré pour refuser une connexion directe si aucune route n’est résolue. Il signale alors un échec de route au lieu de contourner discrètement vos contrôles. Configuration du client liste les réglages.

Un identifiant de proxy est conservé dans le magasin d’identifiants du système d’exploitation : le Gestionnaire d’identifiants sur Windows, le Trousseau sur macOS, Secret Service sur Linux, et un fichier chiffré sur un hôte sans interface qui n’en dispose pas. Il n’est jamais écrit en clair dans un fichier de configuration. Partout où une URL de proxy est affichée ou journalisée, elle apparaît sous la forme user:*****@host. Une URL de proxy qui porte un mot de passe en ligne de commande est refusée, car une ligne de commande est lisible par n’importe quel processus de la machine.

La connexion à la console fonctionne sous inspection et ne demande aucune exception. Le client fait des appels HTTPS ordinaires de type requête-réponse, vérifie avec le magasin de confiance du système d’exploitation, et n’épingle aucun certificat. Placez la racine d’interception dans le magasin de confiance là où votre parc le fait déjà, ou fournissez-en une copie PEM à l’installation. Le paquet est fusionné par-dessus les racines du système : une machine continue de faire confiance à tout ce qu’elle approuvait déjà.

Les points d’accès de modèles de vos agents font exception, et la demande y est étroite : exemptez-les de la mise en tampon des réponses et de l’inspection des flux, et laissez le reste de votre politique d’inspection intact.

Le client actualise ses politiques depuis la console en arrière-plan. Chaque décision est prise sur la machine, avec les politiques déjà présentes : aucun appel réseau n’est sur le chemin de décision. C’est ce qui permet à un verdict de survivre à une route coupée.

Là où la machine détient des politiques, elle continue de les appliquer quoi que fasse le réseau. Là où elle n’en détient aucune, elle autorise l’action et marque l’enregistrement pour indiquer que la décision a été prise sans politique. Rien n’échoue en silence.

SituationCe que fait la machineCe que vous voyez
La console est injoignableContinue d’appliquer les politiques qu’elle détient et réessaie en arrière-plan. Les enregistrements sont conservés sur la machineLa machine cesse de se signaler. openlatch status la montre déconnectée, avec des politiques présentes
Les politiques de la machine n’ont pas été actualisées depuis un momentContinue de les appliquer. Les politiques n’expirent pasUn avertissement de péremption. La péremption est signalée, jamais suivie d’effet
L’identifiant de la vague est révoqué ou renouvelé, et la console le refuseCesse de récupérer les mises à jour, continue d’appliquer ce qu’elle détient, et reprend seule dès qu’un identifiant valide est en placeUn avertissement d’authentification sur la machine, et plus aucun signalement dans la console
Votre organisation n’a encore publié aucune politiqueMaintient en vigueur ce qu’elle détient déjàLa machine se signale comme connectée, sans rien à récupérer
Une mise à jour arrive endommagée ou sous une forme que la machine ne reconnaît pasLa rejette et garde les politiques précédentes. Une mise à jour endommagée ne prend jamais effetUn avertissement d’intégrité sur la machine, avec les politiques précédentes toujours en vigueur
La copie locale des politiques est modifiée sur la machineLa supprime. La machine fonctionne sans politique jusqu’à la prochaine actualisation réussieChaque verdict est marqué comme décidé sans politique, et la machine signale la perte
Aucune politique n’a jamais atteint la machineRend Allow : une machine ne bloque jamais sans politiqueChaque verdict est marqué comme décidé sans politique
Le client ne tourne pasL’action se poursuit et n’est pas retenueopenlatch status signale que le client ne tourne pas, et la console ne montre aucune activité récente pour la machine
Les enregistrements ne peuvent pas être transmisRéessaie, puis les conserve sur la machine et les envoie quand la console redevient joignableUn trou dans la console qui se referme quand la machine se reconnecte. La réserve est bornée : au-delà de sa limite de taille, les enregistrements non envoyés les plus anciens sont abandonnés, et le journal du daemon consigne un avertissement OL-1204
Vous passez toutes les politiques en Monitor depuis la consoleChaque machine applique le changement à sa prochaine actualisation, et consigne ce qu’elle aurait faitLe changement, dans la console, sans accès nécessaire à une machine. Les décisions continuent d’être enregistrées

Lancez ces commandes sur la première machine avant la vague, puis sur toute machine qui signale un problème de connexion.

Fenêtre de terminal
openlatch status
openlatch doctor
openlatch system proxy test
CommandeCe qu’elle prouve
openlatch statusSi la machine est connectée à la console, si des politiques sont présentes, et quels agents sont raccordés. Elle répond même quand la route est coupée, c’est-à-dire exactement quand vous en avez besoin
openlatch doctorLa machine entière, avec une cause et un remède pour chaque point relevé. Elle signale le saut par votre proxy séparément de la connexion à la console : un proxy hors service et une console injoignable ne ressemblent jamais à la même panne
openlatch system proxy testLa route elle-même, sondée saut par saut. Elle s’arrête au saut qui échoue et le nomme

Déployer le client couvre son installation, et Vérifier et déployer la vérification complète d’une machine.

  • Approuvez une seule entrée pour les machines : app.openlatch.ai sur TCP 443, en sortie. Aucun port entrant.
  • Les navigateurs qui se connectent à la console ont aussi besoin de challenges.cloudflare.com sur TCP 443. Aucune machine qui exécute le client ne le contacte.
  • Autorisez par nom et SNI, pas par adresse. Il n’existe aucune plage d’adresses statique.
  • Vos agents atteignent leurs points d’accès de modèles comme avant. Gardez ces points d’accès joignables et exemptés de la mise en tampon des réponses et de l’inspection des flux.
  • L’inspection TLS ne demande aucune exception pour la connexion à la console. Les proxys Basic, Kerberos, SOCKS5, transparents et à configuration automatique sont pris en charge. NTLM ne l’est pas : prévoyez un chemin Negotiate ou non authentifié.
  • Une route coupée dégrade l’acheminement, pas l’application. La machine continue de décider avec les politiques qu’elle détient, les enregistrements attendent que la console soit joignable, et les deux états apparaissent dans openlatch status.