Tenho o seguinte cenário: Um Docker Host com vários projetos CMS e um Traefik instalado e funcionando. Gostaria de filtrar a URL de backend de endereços IP públicos, já que ela só deve ser acessível de intervalos de IP privados.
disponível publicamente: https://www.project.com/xyz https://www.project.com/abc
restrito apenas a IPs internos: https://www.project.com/backend
Posso fazer isso com uma lista de permissões de IP e, por exemplo, 2 roteadores - 1 para acesso público e 1 para acesso de backend?
Eu tentei algo como:
# Backend Router (Restricted Access)
- "traefik.http.routers.project-backend.rule=Host(`${DOMAINNAME}`) && PathPrefix(`/backend`)"
- "traefik.http.routers.project-backend.entrypoints=https"
- "traefik.http.routers.project-backend.tls=true"
- "traefik.http.routers.project-backend.middlewares=backend-ipwhitelist"
- "traefik.http.routers.project-backend.priority=100"
Mas o filtro não funcionou - ainda foi possível acessar o backend.
Alguma sugestão?
Sem ver o resto da sua configuração é difícil identificar o problema. Tentei recriar sua situação com o seguinte
compose.yaml
:Isso proíbe o acesso ao
/backend
caminho como esperado. Uma solicitação para/
from anywhere é bem-sucedida:Enquanto uma solicitação
/backend
for rejeitada:Se eu fizer a mesma solicitação de um sistema na
192.168.1.0/24
rede, ela será bem-sucedida: