web_fetch dell’assistente AI) vengono recuperati dal servizio linked-url-proxy all’interno di ogni pod di Ayakaleaf Pro. Rifiuta gli indirizzi non pubblici, quindi gli utenti non possono leggere i servizi interni attraverso di esso. La funzionalità e le sue impostazioni sono descritte in URL esterno.
Configurazione
30-config.yaml (additions)
Cosa viene bloccato su Kubernetes
Il proxy rifiuta ogni indirizzo che non sia un indirizzo unicast pubblico: loopback, link-local (incluso l’indirizzo dei metadati cloud169.254.169.254), gli intervalli privati 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16, l’intervallo carrier-grade NAT 100.64.0.0/10 e i loro equivalenti IPv6. Le reti dei Pod e dei Service in questi intervalli, che è l’impostazione predefinita per kubeadm, flannel, Calico e la maggior parte dei cluster gestiti, sono quindi bloccate senza alcuna impostazione, così come i nomi interni al cluster come redis o git-bridge che vi si risolvono.
Gli indirizzi pubblici sono consentiti. Se i tuoi nodi o il tuo load balancer hanno indirizzi pubblici, aggiungili a OVERLEAF_LINKED_URL_BLOCKED_NETWORKS (separati da spazi o virgole), in modo che gli utenti non possano recuperare attraverso di essi i NodePort o una pagina di stato.
Con OVERLEAF_LINKED_URL_OUTBOUND_PROXY impostato, i nomi host vengono risolti dal proxy, quindi vengono verificati solo gli URL che contengono un indirizzo IP: il proxy deve bloccare autonomamente le tue reti interne.
Più repliche
Non serve altro: ogni pod effettua i download con il proprio linked-url-proxy e le stesse impostazioni.Testato su Kubernetes
Su Kubernetes 1.37 con tre repliche, la rete dei pod di flannel10.244.0.0/16 e la rete dei servizi di kubeadm 10.96.0.0/12, il proxy ha rifiutato i download dal ClusterIP di un Service, dai nomi interni al cluster redis, garage e overleaf-1.overleaf-hl.overleaf.svc.cluster.local e dall’indirizzo di un nodo, senza alcun OVERLEAF_LINKED_URL_BLOCKED_NETWORKS. I nostri test end-to-end vengono superati anche per il rifiuto del loopback e dell’indirizzo dei metadati cloud tramite l’Import API, e per l’assistente AI che legge solo le pagine consentite da OVERLEAF_LINKED_URL_ALLOWED_RESOURCES.
