Zmerit i to, jak nas vidi vlastni proxy
Echo sluzba na internetu odpovi verejnou adresu. Jenze volani na vlastni domenu se otaci zpatky na tentyz stroj a reverse proxy pak vidi neco jineho, typicky adresu docker bridge. A prave tu porovnava seznam povolenych IP u sluzeb za toutez proxy, takze verejna adresa muze byt povolena a volani z containeru presto skonci na 403. Zmeri se to tak, ze portal zavola svoji vlastni verejnou adresu (PUBLIC_ORIGIN + ROOT_PATH + /whoami) a precte si, jak k nemu volani doslo. Kruh sam pres sebe, ale nic jineho tuhle adresu nezjisti: mezi container a server se tim dostane ta sama proxy, kterou prochazi volani na sousedni sluzby. Novy /api/whoami je zamerne bez prihlaseni. Vraci volajicimu jeho vlastni adresu, tedy nic, co by uz nevedel, stejne jako kterakoliv echo sluzba. Obe mereni bezi naraz a jsou videt na strance Konektory vedle sebe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4545de8076
commit
6a2e0dc424
@@ -199,6 +199,18 @@ Samotny kod odpovedi nikoho nikam nedovede. Hlaska proto nese tri veci:
|
||||
|
||||
Neni to tajemstvi: kazda volana sluzba tuhle adresu stejne vidi.
|
||||
|
||||
**Mereni jsou dve a je mezi nimi rozdil, ktery rozhoduje.** Echo sluzba na
|
||||
internetu odpovi verejnou adresu. Jenze volani na `services.csbot.cz` se
|
||||
otaci zpatky na tentyz stroj a proxy pak vidi neco jineho, typicky adresu
|
||||
docker bridge. Prave tu porovnava seznam povolenych IP u sluzeb za toutez
|
||||
proxy. Druhe mereni ji zjisti tak, ze portal zavola **svoji vlastni**
|
||||
verejnou adresu (`PUBLIC_ORIGIN` + `ROOT_PATH` + `/whoami`) a precte si,
|
||||
jak k nemu volani doslo. Kruh sam pres sebe, ale nic jineho tuhle adresu
|
||||
nezjisti - mezi container a server se tim dostane ta sama proxy.
|
||||
|
||||
`/whoami` je zamerne bez prihlaseni: vraci volajicimu jeho vlastni adresu,
|
||||
tedy nic, co by uz nevedel.
|
||||
|
||||
Co se **nedela**: sonda na `/health` vedle overeni. `/health` povoleni IP
|
||||
adresy nevyzaduje, takze z toho, ze projde, se o IP nic nedozvis - byla by to
|
||||
veta, ktera zni jako zaver a zadny neni.
|
||||
|
||||
@@ -64,6 +64,13 @@ nepomuze. Duvod pritom sluzba do tela odpovedi napsala, jen se zahodil.
|
||||
v logu. Zjistuje se echo sluzbou podle `EGRESS_IP_URL`, drzi se v pameti
|
||||
po `EGRESS_IP_TTL_MS`, u 401 a 403 se pripoji k zaznamu. Prazdna
|
||||
`EGRESS_IP_URL` funkci vypne.
|
||||
- **Druhe mereni: jak nas vidi nase vlastni proxy.** Echo sluzba odpovi
|
||||
verejnou adresu, jenze volani na vlastni domenu se otaci zpatky na tentyz
|
||||
stroj a proxy pak vidi neco jineho, typicky adresu docker bridge. A prave
|
||||
tu porovnava seznam povolenych IP u sluzeb za toutez proxy. Portal proto
|
||||
zavola svoji vlastni verejnou adresu (`PUBLIC_ORIGIN` + `ROOT_PATH` +
|
||||
`/whoami`) a precte si, jak k nemu volani doslo. Novy endpoint `/api/whoami`
|
||||
je bez prihlaseni: vraci volajicimu jeho vlastni adresu, nic navic.
|
||||
|
||||
### Nedoreseno
|
||||
|
||||
|
||||
Reference in New Issue
Block a user