
Meu site está usando o Apache httpd para fazer o proxy reverso para um aplicativo em execução no Express (aplicativo Node.js). Tenha 2 servidores expressos, um para backend e outro para hospedagem frontend. No momento, estou tentando bloquear solicitações maliciosas que chegam ao meu site, para que ele retorne uma solicitação 404 ou incorreta.
Meu exemplo some-site-ssl.conf está abaixo, mas não parece estar bloqueando sites maliciosos, qualquer ajuda seria incrível!! Obrigado.
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/some-site.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/some-site.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)?bad-word(-|.).*$ [NC]
RewriteCond %{HTTP_REFERER} ^https://(www\.)?.*(-|.)?bad-word(-|.).*$ [NC]
RewriteRule ^(.*)$ - [F,L]
ProxyRequests On
ProxyPass /api http://some-site.com:3000/api
ProxyPassReverse /api http://some-site.com:3000/api
ProxyPass / http://some-site.com:4226/
ProxyPassReverse / http://some-site.com:4226/
</VirtualHost>
Responder1
Você pode controlar o acesso a qualquer recurso usando a Location
tag e, com ela, desabilitar o acesso de determinados hosts aos seus recursos, como este:
<Location "/denied/resource">
<RequireAll>
Require not ip 1.2.3.4
Require not host spammer.domain
Require all granted
<RequireAll>
</Location>
Os direitos de acesso são herdados de cima para baixo, portanto, negar o acesso /
praticamente bloqueará esse cliente do seu site (a menos, é claro, que o acesso seja concedido a um recurso de nível inferior, portanto é possível não ter acesso a /
, mas ser conseguir acessar /this/one/
). Vera documentação do servidor Apache HTTPpara mais informações.
E como @Freddy disse, você realmente deveria remover essa ProxyRequests On
linha.