HA-Proxy e ACL para http-request deny

1

Executando o ha-proxy 1.6.

Alguém pode me dizer por que a ACL e a negação de solicitação http não estão funcionando?

Eu tentei o modo http, modo tcp, barra final, nenhuma barra no caminho, um path_end, diferentes máscaras de rede, um único ip, etc. Não consigo trabalhar. Simplesmente não há controle de acesso. Eu posso alcançar o diretório e os arquivos de qualquer lugar.

global
  pidfile /var/run/haproxy.pid
  daemon

defaults
  mode tcp
  retries 5
  option redispatch
  option dontlognull
  option tcp-smart-accept
  option tcp-smart-connect


listen front-end
  bind xxx.xxx.xxx.xx1:80
  bind xxx.xxx.xxx.xx2:80
  mode http
  balance roundrobin
  option forceclose
  option http-server-close
  option forwardfor
  maxconn 2000
  timeout http-request 15s
  timeout connect 15s
  timeout server 60s
  timeout client 30s
  timeout http-keep-alive 15s
  acl network_allowed src xxx.xxx.xxx.xx5
  acl inside path_beg,url_dec -i /path/to/directory/
  http-request deny if inside !network_allowed 


  server 1 xxx.xxx.xxx.xx1:80 weight 10 SERVER1 check
  server 2 xxx.xxx.xxx.xx2:80 weight 10 SERVER2 check
  server 3 xxx.xxx.xxx.xx3:80 weight 15 SERVER3 check
    
por user386304 18.11.2016 / 06:10

1 resposta

1

Tente adicionar -m beg :

acl inside path_beg,url_dec -m beg -i /path/to/directory/

Além disso, o que você está tentando alcançar?
Como eu posso ver e verificar o seu no meu servidor: agora de src xxx.xxx.xxx.xx5 você tem acesso a tudo, enquanto de outros endereços você vai ter 403 para /path/to/directory :

curl http://example.com/path/to/directory/
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>

Mas se você adicionar OR ao seu http-request deny :

http-request deny if inside OR !network_allowed

você receberá 403 de todos os endereços, exceto src xxx.xxx.xxx.xx5 e, desse endereço, você receberá 403 para /path/to/directory
Qual comportamento está certo?

    
por 18.11.2016 / 13:01

Tags