Você pode tentar usar mod_extract_forwarded
em vez de mod_rpaf
- ele suporta MEFaccept all
(e se você usar o RHEL / CentOS / other-clone, o pacote já está no EPEL). Uma desvantagem de mod_extract_forwarded
é que os nomes dos cabeçalhos X-Forwarded-For
e Forwarded-For
são codificados e não configuráveis como em mod_rpaf
.
Não há suporte para intervalos IP mesmo em mod_extract_forwarded
, mas você pode configurar um firewall para permitir acesso direto ao Apache apenas de alguns intervalos de IP ou verificar a variável de ambiente MEF_RPROXY_ADDR
em mod_rewrite
rules.
Depois de pensar um pouco mais sobre isso, encontrei um problema com este mod_extract_forwarded
config - enquanto mod_rpaf
não suporta cadeias de vários proxies e pega apenas o último endereço do cabeçalho X-Forwarded-For
, mod_extract_forwarded
tenta suportar isso e usa o último endereço que não pertence à lista de proxy confiável (para que, se a solicitação passar por vários proxies confiáveis, o endereço real do cliente seja usado em vez do segundo ao último endereço de proxy). Infelizmente, usar MEFaccept all
significa que mod_extract_forwarded
confiará em todos os proxies, portanto, se os proxies ELB apenas anexarem seus dados ao cabeçalho X-Forwarded-For
e não o substituirem completamente, os clientes poderão passar qualquer IP falsificado enviando pedidos com seus próprios X-Forwarded-For
headers.
No entanto, encontrei outro módulo para analisar X-Forwarded-For
cabeçalhos. As versões recentes (instáveis) do Apache têm o módulo mod_remoteip , que aparentemente suporta máscaras de sub-rede para endereços de proxy. Existe um backport para o Apache 2.2 e um arquivospec para o Fedora ; infelizmente, a solicitação para incluir o pacote no Fedora está parada.