¿Cómo bloquear usuarios-agentes y referencias no deseados en Apache, Nginx y WordPress?
Bloquea todas esas solicitudes innecesarias que ves en los registros
Supongo que ha mirado los registros de visitantes de su sitio web y está harto de esas solicitudes no deseadas. Puede que no sean necesariamente malos o spam, pero es posible que no agreguen valor al negocio. Imagínese si la mayoría de las visitas provienen de ese usuario-agente o referencias no deseadas y cree que su sitio está recibiendo un buen tráfico, pero en realidad, son inútiles.
La mejor manera de administrarlos es detenerlos en el borde, como dispositivos de red, balanceador de carga, firewall o CDN. Pero entiendo que puede que no sea factible para un blogger personal o sitios web pequeños, y es posible que desee bloquear en un nivel inferior como servidores web, WordPress, etc.
Espero que ya tenga una lista de referer y user-agent que desea bloquear. Vamos a ponerlo en marcha.
Como práctica recomendada, realice una copia de seguridad del archivo de configuración antes de realizar la modificación para poder retroceder cuando algo salga mal.
Nginx
Nginx potencia millones de sitios y es muy popular entre Alojamiento Web. Si está utilizando Nginx, así es como puede detenerlos. Digamos que estás obteniendo mucha automatización.ated solicitudes con el siguiente agente de usuario y ha decidido bloquearlas.
- Java
- rizo
- pitón
if ($http_user_agent ~* "java|curl|python") {
return 403;
}
Si desea que se redireccionen a algún lugar, entonces:
if ($http_user_agent ~* "java|curl|python") {
return 301 https://yoursite.com;
}
La configuración anterior debe estar debajo del server
bloquear.
Y lo siguiente para bloquear por referentes. El siguiente ejemplo que debe ir bajo el location
bloquear para bloquear solicitudes de semalt.com, badsite.net, example.com.
if ($http_referer ~ "semalt\.com|badsite\.net|example\.com") {
return 403;
}
Después de realizar los cambios necesarios, debe guardar el archivo y reiniciar Nginx para que surta efecto.
Para reiniciar Nginx, puede usar:
service nginx restart
Nginx es un servidor web poderoso y si está interesado en aprender, consulte este curso en línea.
Apache HTTP
Para bloquear el agente de usuario en Apache, puede utilizar el mod_rewrite
módulo. Asegúrese de que el módulo esté habilitado y luego agregue lo siguiente en .htaccess
archivo o respectivo .conf
archivo.
Si tiene varios sitios configurados y desea bloquear una URL específica, es posible que desee ponerlos en sus respectivos VirtualHost
.
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} badcrawler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badspider [NC]
RewriteRule . - [R=403,L]
La regla anterior bloqueará cualquier solicitud que contenga user-agent como badcrawler, badbot y badspider.
Y, el siguiente ejemplo para bloquear por el nombre de referencia BlowFish, CatchBot, BecomeBot.
RewriteEngine on
RewriteCond %{HTTP_REFERER} blowfish|CatchBot|BecomeBot [NC]
RewriteRule . - [R=403,L]
Como de costumbre, reinicie el servidor Apache y pruebe los resultados.
WordPress
Si está utilizando WordPress en un alojamiento compartido o no tiene acceso a la configuración del servidor web o no se siente cómodo modificando el archivo, puede usar el complemento WP. Hay muchos Complementos de seguridad de WP, y uno de los más populares para bloquear bots malos son Blackhole para los Bad Bots.
Para Concluir
Espero que los consejos anteriores te ayuden a detener al malo tan legítimo.ate las solicitudes no son impacted. Si busca una protección de seguridad integral, también puede considerar el uso de WAF basado en la nube como Astra or SUCURI.