Configurei meu roteador para redirecionar o tráfego de uma porta específica para um servidor que age como um proxy reverso. O servidor é baseado no CentOS 7 com o Apache 2.4.6. Um dos meus servidores de back-end também é baseado no CentOS e está executando uma instância ownCloud.
Meu objetivo é bloquear IPs públicos, usando o fail2ban, que tem várias tentativas de senha incorreta (força bruta). Para que isso aconteça, certifiquei-me de passar IPs públicos - usando X-Forwarded-For- do proxy reverso para o servidor ownCloud. Também posso ver no status do fail2ban que, de fato, os IPs públicos com várias tentativas de senha incorreta são bloqueados.
Mas ... Como o tráfego está passando do proxy reverso (e não diretamente do mundo externo), os IPs públicos, mesmo que bloqueados no servidor ownCloud, continuarão a ter acesso ao servidor ownCloud.
Existe alguma maneira de bloquear esses IPs públicos na configuração acima? Se não me engano, isso é possível em proxies reversos NGINX, adicionando um "set_real_ip_from rev.proxy.ip.add.", Mas eu não encontrei nada relacionado para o apache.
Configuração do meu proxy, caso seja necessário
ServerName my.domain.com
SSLEngine On
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol -All +TLSv1.2
SSLHonorCipherOrder On
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyRequests Off
ProxyPreserveHost On
SSLCertificateFile /etc/letsencrypt/live/my.domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/my.domain.com/chain.pem
Header always set Strict-Transport-Security "max-age=15552000; includeSubdomains;"
Header always set X-Frame-Options DENY
Header set X-Content-Type-Options "nosniff"
ProxyPass https://backend.ip/
ProxyPassReverse https://backend.ip/