Ignorar autenticação do Apache para IP específico

1

Estamos usando o Apache como um proxy reverso, portanto, alguns dos nossos servidores internos de desenvolvimento / teste estão acessíveis na Internet aberta para fins de UAT / CAT.

Temos uma configuração de autenticação básica por meio de servidores LDAP, mas temos alguns sites em que precisamos incluir alguns IPs específicos para que eles possam acessar o servidor sem passar pela autenticação.

Não sei se adicionar outra seção como esta, acima da atual, funcionaria:

<proxy *>
 Require all granted
 Require ip x.x.x.x y.y.y.y
</proxy>

Veja como o arquivo .conf se parece atualmente:

<VirtualHost *:80>
  ServerName some.server.url

  ## Vhost docroot
  DocumentRoot "/var/www"

  ## Directories, there should at least be a declaration for /var/www

  <Directory "/var/www">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
  </Directory>

  ## Logging
  ErrorLog "/var/log/httpd/some.server.url_error.log"
  ServerSignature Off
  CustomLog "/var/log/httpd/some.server.url_access.log" combined

  ## Proxy rules
  ProxyRequests Off
  ProxyPreserveHost Off
  ProxyPass /robots.txt !
  ProxyPassReverse /robots.txt !
  ProxyPass / https://some.server.url/ acquire=3000 keepalive=On retry=0 timeout=1800
  ProxyPassReverse / https://some.server.url/

  ## Custom fragment
  <proxy *>
    AuthBasicProvider ldap-client-websites ldap-sidlee-dig
    AuthType Basic
    AuthName "GRM CRHA UAT"
    Require valid-user
  </proxy>

</VirtualHost>
    
por Alex Pilon 23.07.2018 / 20:09

2 respostas

0

Não, não adicione um segundo bloco <proxy *> , pois ele entrará em conflito com o primeiro.

Em vez disso, altere seu bloco <proxy *> existente para isso:

## Custom fragment
<proxy *>
    AuthBasicProvider ldap-client-websites ldap-sidlee-dig
    AuthType Basic
    AuthName "GRM CRHA UAT"
    <RequireAny>
        Require ip x.x.x.x y.y.y.y
        Require valid-user
    </RequireAny>
</proxy>

</VirtualHost>

Desta forma, satisfazer apenas uma das diretivas Require dentro do grupo <RequireAny> é suficiente para permitir o acesso. Assim, qualquer um que tenha um endereço IP correspondente ou será necessária uma autenticação bem-sucedida para permitir o acesso.

    
por 18.11.2018 / 13:43
0

Eu nunca consegui realizar algo assim usando proxy no Apache.

Eu ficaria tentado a configurar um proxy adicional dedicado a outra porta TCP e, em seguida, definir essa segunda porta de maneira semelhante. Você pode então desativar a autenticação da segunda porta.

Essa segunda porta poderia então ter uma regra IPTables criada, que restringiria o acesso ao IP que você deseja permitir no sistema.

Eu aviso que este é um processo um pouco complicado e consideraria cuidadosamente se você de fato quiser seguir esse caminho.

    
por 24.07.2018 / 03:09