Restringir o acesso back-end do apache apenas ao proxy reverso nginx?

2

Eu tenho a configuração nginx como um proxy reverso para um grupo de back-ends apache (LAMP) que estão escutando na porta 8080.

Também configurei o arquivo mod_rpaf.conf de cada servidor de back-end para incluir o IP do proxy do servidor nginx:

<IfModule mod_rpaf.c>
  RPAF_Enable       On
  RPAF_ProxyIPs     127.0.0.1 192.168.0.1 # <- nginx server IP
  RPAF_Header       X-Forwarded-For
  RPAF_SetHostName  On
  RPAF_SetHTTPS     On
  RPAF_SetPort      On
</IfModule>

Como posso configurar o httpd.conf para recusar qualquer conexão que não venha do nginx?

Eu tentei o seguinte:

<Directory "/var/www/html">

    Order allow,deny
    Allow from 192.168.0.1
    Allow from 127
    Deny from all

</Directory>

Mas isso parece restringir o acesso ao próprio proxy nginx, assim como a qualquer outro IP.

Isso é devido mod_rpaf encaminhando o IP do cliente? Em caso afirmativo, como faço para obter isso?

    
por Elijah Paul 12.10.2013 / 05:21

2 respostas

2

Como o módulo mod_rpaf encaminha o IP do cliente real, não é possível bloquear o acesso público ao servidor de back-end do apache por meio de seu próprio arquivo httpd.conf .

A configuração de algumas regras de IPtables bloqueará o acesso à porta 8080 para todos (acesso público), exceto o proxy reverso nginx, sem afetar o encaminhamento do IP real do cliente:

Executar:

#iptables -A INPUT -p tcp --dport 8080 -s 192.168.0.1 -j ACCEPT
#iptables -A INPUT -p tcp --dport 8080 -j DROP

#service iptables save
#service iptables restart

O acesso ao servidor back-end do apache na porta 8080 agora está restrito apenas ao proxy nginx.

    
por 13.10.2013 / 06:21
0

Acho que você deve alterar a ordem dos seus / deny_statements permitidos:

<Directory "/var/www/html">

    Order deny,allow
    Deny from all
    Allow from 192.168.0.1
    Allow from 127

</Directory>

porque ( order-docs )

  • O pedido é um dos seguintes:

    Permitir, negar - Primeiro, todas as diretivas Permitir são avaliadas; pelo menos um deve corresponder ou o pedido é rejeitado. Em seguida, todas as diretivas Deny são avaliadas. Se houver alguma correspondência, a solicitação será rejeitada. Por último, quaisquer pedidos que não correspondem a uma diretiva Permitir ou Negar são negadas por padrão.

    Negar, permitir - Primeiro, todas as diretivas do Deny são avaliadas; se alguma correspondência, o pedido é negado, a menos que também corresponda a uma diretiva Allow. Alguma solicitação que não correspondem a nenhuma das diretivas Permitir ou Negar.

exemplo dos documentos :

O uso do Pedido permitirá que você tenha certeza de que está realmente restringindo as coisas ao grupo que deseja permitir, combinando as diretivas Negar e Permitir:

Order deny,allow
Deny from all
Allow from dev.example.com
    
por 12.10.2013 / 11:28