Как ограничить доступ бэкэнда только к внутренней сети - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть HAProxy с более чем двадцатью бэкэндами, и мне нужно ограничить доступ к одному конкретному бэкэнду, CP-API.MACKMIL.COM, для следующих подсетей внутренней сети:

10.10.0.0/16
10.20.0.0/16
10.30.0.0/16
10.40.0.0/16

В настоящее время сследующий запрос, этот домен, CP-API.MACKMIL.COM, может быть доступен из внешнего мира, но я хочу ограничить это.

curl -vvv -H'Host: cp-api.mackmil.com' https://api.mackmil.com/initializations

Моя конфигурация Haproxy выглядит следующим образом:

frontend http-https
bind :80 accept-proxy
bind :443 accept-proxy ssl crt /etc/pki/tls/private/wildcard.mackmil.com.pem crt /etc/pki/tls/private/wildcard.mackmil.de.pem

acl host_cp  hdr(host) -i cp-api.mackmil.com
acl host_cp  hdr(host) -i cp-api.prod.mackmil.com


use_backend app_cp   if host_cp

backend app_cp
server swarm-worker_10.10.30.199 10.10.30.199:64042 check
server swarm-worker_10.10.40.114 10.10.40.114:64042 check
server swarm-worker_10.20.40.159 10.20.40.159:64042 check
server swarm-worker_10.20.30.190 10.20.30.190:64042 check
server swarm-worker_10.30.40.143 10.30.40.143:64042 check
server swarm-worker_10.30.40.161 10.30.40.161:64042 check
server swarm-worker_10.40.40.107 10.40.40.107:64042 check
server swarm-worker_10.40.40.107 10.40.40.107:64042 check

Я пытаюсь применить это ограничение в режиме HTTP / HTTPS только для этой конечной точки.Как я могу применить это ограничение для этого бэкэнда?

1 Ответ

0 голосов
/ 15 ноября 2018

Исправлено, если поместить в этот бэкэнд:

acl internal_subnets src 10.10.0.0/16
acl internal_subnets src 10.20.0.0/16
acl internal_subnets src 10.30.0.0/16
acl internal_subnets src 10.40.0.0/16
http-request deny if ! internal_subnets
...