1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Seguridad ¿Ataque? miles de entradas en error_log Apache

Tema en 'Asuntos Técnicos' iniciado por ClusterIP, 2 Jul 2015.

  1. ClusterIP

    ClusterIP Usuario activo

    Hola,

    Desde hace dos días vengo notando que el VPS anda más lento.
    Revisando error_log de Apache me encuentro con miles de peticiones fallidas como las que muestro a continuación:
    CODE, HTML o PHP Insertado:
    [Tue Jun 30 11:50:27 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/buy-cheap-ezetimibe
    [Tue Jun 30 11:50:27 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/buy-cheap-ezetimibe
    [Tue Jun 30 11:50:27 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:27 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:28 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/buy-cheap-ezetimibe
    [Tue Jun 30 11:50:29 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/buy-cheap-ezetimibe
    [Tue Jun 30 11:50:29 2015] [error] [client 162.158.255.28] File does not exist: /var/www/vhosts/default/htdocs/lamictal-400-mg-daily
    [Tue Jun 30 11:50:30 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:30 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:32 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:33 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:38 2015] [error] [client 69.41.230.6] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:50:40 2015] [error] [client 69.41.230.6] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:50:48 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:48 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:50 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:50 2015] [error] [client 162.158.254.35] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:50:54 2015] [error] [client 50.23.121.140] File does not exist: /var/www/vhosts/default/htdocs/lamictal-400-mg-daily
    [Tue Jun 30 11:50:58 2015] [error] [client 219.94.203.165] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:51:12 2015] [error] [client 69.41.230.6] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:51:12 2015] [error] [client 69.73.168.248] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:51:13 2015] [error] [client 69.41.230.6] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:51:13 2015] [error] [client 69.73.168.248] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:51:16 2015] [error] [client 192.185.4.111] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:51:17 2015] [error] [client 192.185.4.111] File does not exist: /var/www/vhosts/default/htdocs/what-is-dulcolax-5mg
    [Tue Jun 30 11:51:20 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:51:20 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    [Tue Jun 30 11:51:22 2015] [error] [client 192.185.4.53] File does not exist: /var/www/vhosts/default/htdocs/alli-canada-pharmacy
    También adjunto una captura de pantalla de Plesk y otra de top en momento álgido.
    ¿Alguna idea para mitigar el ataque? ¿Cómo puedo bloquear este tipo de peticiones?

    Gracias
    Un saludo
     

    Adjuntos:

    • 01.PNG
      01.PNG
      Tamaño de archivo:
      36,5 KB
      Visitas:
      706
    • 02.PNG
      02.PNG
      Tamaño de archivo:
      24,5 KB
      Visitas:
      728
  2.  
  3. Estudiseno

    Estudiseno Usuario activo

    Hola,

    prueba a crear o modificar el htaccess para evitar eso y nos cuentas,

    Un saludo.
     
    A nonamef191118 le gusta esto.
  4. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Tiene pinta de un bot/ataque, con mod_security podrías bloquearlo fácilmente, o bien como te dijeron antes, usando algunas reglas de bloqueo en .htaccess.

    Un saludo
     
    A nonamef191118 le gusta esto.
  5. Puede que sean peticiones trace y track para ello un .htaccess y:

    CODE, HTML o PHP Insertado:
    RewriteEngine on
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
        RewriteRule .* - [F]
    Lo puedes poner tanto en el virtualhost del dominio desde donde te lanzan las peticiones o en la config del httpd.conf que afecta a nivel global.

    Instala también como ya te han comentado mod_security.
     
  6. jmginer

    jmginer Usuario activo

    En la config de CSF Firewall, configura las variables:

    LF_APACHE_404
    LF_APACHE_404_PERM

    Para definir un bloqueo a quien genere una cantidad determinada de errores 404

    Pero no te olvides de poner en csf.ignore las IPs de Google, pues si algún cliente tuyo cambia las URL de su web, el propio buscador generará muchos errores 404 rastreando páginas que ya no existen y no es plan de bloquear a Google :)
     
  7. ClusterIP

    ClusterIP Usuario activo

    Gracias a todos. Me estoy preparando para LPIC-1 101 y este tipo de cuestiones de momento se me escapan por completo. Solicito vuestra ayuda por favor.

    Tengo instalado mod_security y el dia que detecté el problema instalé mod_evasive. ModSecurity está configurado con las reglas básicas de Atomic y mod_evasive por defecto.

    Desde la instalación de evasive se ha mitigado un poco el impacto sobre el uso CPU de Apache que ahora no supera nunca el 15%. Sin embargo me preocupa, pues las peticiones continúan y el archivo access_log ha llegado a pesar 800 Mb. y error_log 750 Mb.

    También generé un .htaccess como sugirió inicialmente Estudiseno y lo incluí en /var/www/vhosts/default

    Contenido de .htaccess:
    CODE, HTML o PHP Insertado:
    # Bloqueo de IP´s (posible bot)
    
    <Limit GET POST>
    Order allow, deny
    Deny from 185.62.188.192
    Deny from 192.3.176.138
    Deny from 198.23.142.122
    Allow from
    </Limit>
    Línea de error_log (hay más de 4 millones como esta)
    CODE, HTML o PHP Insertado:
    [Tue Jul 14 10:36:51 2015] [alert] [client 198.23.142.122] /var/www/vhosts/default/.htaccess: order takes one argument, 'allow,deny', 'deny,allow', or 'mutual-failure'
    También he bloqueado mediante una regla del firewall de Plesk las 3 IP´s que lanzan las peticiones pero no tiene efecto. No las bloquea.

    Voy a probar añadiendo el código que apunta f.villalba al .htaccess a ver si es posible...

    De momento no se que más acciones tomar y el tiempo sigue corriendo en mi contra y las peticiones no cesan.

    Gracias, un saludo
     
  8. Estudiseno

    Estudiseno Usuario activo

    Si has copiado y pegado quita el espacio entre allow, deny tal que así allow,deny
     
  9. ClusterIP

    ClusterIP Usuario activo

    Eliminado el espacio Estudiseno y agregado el aporte de f.villalba al .htaccess. En unas horas informaré de la situación.

    Gracias por tu rapidísima contestación Estudiseno.
     
  10. Estudiseno

    Estudiseno Usuario activo

    y añade allow from all no solo allow from
     
    A ClusterIP y justice13 les gusta esto.
  11. justice13

    justice13 Usuario activo

    Y creo que el último Allow from está incompleto. O se pone IP o se quita pero ponerlo vacío creo que ocasiona error. En este caso, aunque no soy experto en este código, creo que habría que poner from all para habilitar todos y que el deny filtre, ¿no?

    Edito: no había leído tu último comentario jaja. Nos hemos pisado :)
     
    A Estudiseno le gusta esto.
  12. Estudiseno

    Estudiseno Usuario activo

    ajaja si me di cuenta luego
     
    A justice13 le gusta esto.
  13. ClusterIP

    ClusterIP Usuario activo

    Gracias Estudiseno, así está de momento el .htaccess:
    CODE, HTML o PHP Insertado:
    # Bloqueo de IP´s (bots,spammers...)
    
    Order allow,deny
    Deny from 185.62.188.192
    Deny from 192.3.176.138
    Deny from 198.23.142.122
    Allow from all
    
    RewriteEngine on
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
        RewriteRule .* - [F]
     
  14. Aplica la segunda parte al archivo httpd.conf que aplica a nivel global.

    Salu2,
     
    A ClusterIP le gusta esto.
  15. ClusterIP

    ClusterIP Usuario activo

    Hola f.villalba. gracias por tu aporte. No ha detenido las 3 IP´s que lanzaban las peticiones. Revisando ahora el error_log veo (4885617 líneas):
    CODE, HTML o PHP Insertado:
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    [Tue Jul 14 19:56:59 2015] [error] [client 185.62.188.192] client denied by server configuration: /var/www/vhosts/default/htdocs/plugins
    Esta IP apunta a algún cliente de blazingfast.io, quien está realizando este tipo de peticiones a mi servidor. ¿Cómo puedo detener este tipo de peticiones masivas? ¿Se os ocurre algo más? Web Tech apuntaba que desde mod_security es fácil bloquearlo. Me tiene desquiciado.
     
  16. ClusterIP

    ClusterIP Usuario activo

    Hola WebTech, te importaría indicarme alguna de las reglas que comentas para detener estas peticiones?

    Gracias, saludos
     
  17. Hola @ClusterIP.

    Veo que es la misma dirección IP. Crea una regla en iptables bloqueando el tráfico de entrada "INPUT".

    CODE, HTML o PHP Insertado:
    iptables -A INPUT -s "ip" -j DROP
    En caso de que fueran varias intenta con mod_evasive como ya te han comentado los compañeros.
     
    A ClusterIP le gusta esto.
  18. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Si el ataque viene desde una sola IP o muy pocas, puedes denegarlo usando una simple regla allow/deny:
    http://www.htaccess-guide.com/deny-visitors-by-ip-address/

    O bien como dijo antes @f.villalba, usando iptables.

    Un saludo
     
  19. ClusterIP

    ClusterIP Usuario activo

    Son 3 IP´s diferentes, pero 1 es sin duda ninguna la más persistente (más de 5000000 de peticiones)
    Una de ellas la bloquea fail2ban mediante el jail plesk-apache.
    Para la más persistente cree hace 72 horas una regla en iptables pero consigue eludirla:
    CODE, HTML o PHP Insertado:
    /sbin/iptables -A INPUT -p udp -s 185.62.188.192 -j DROP
    /sbin/iptables -A INPUT -p tcp -s 185.62.188.192 -j DROP
    /sbin/ip6tables -A INPUT -p udp -s ::ffff:185.62.188.192 -j DROP
    /sbin/ip6tables -A INPUT -p tcp -s ::ffff:185.62.188.192 -j DROP
    Voy a localizar la documentación oficial de mod_evasive a ver si ajustando la configuración...

    Gracias
     
  20. ClusterIP

    ClusterIP Usuario activo

    El problema es que después de haber aplicado en .htaccess:
    CODE, HTML o PHP Insertado:
    Order allow,deny
    Deny from 185.62.188.192
    Deny from 192.3.176.138
    Deny from 198.23.142.122
    Allow from All
    y en httpd.conf como sugirió @f.villalba:
    CODE, HTML o PHP Insertado:
    RewriteEngine on
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
        RewriteRule .* - [F]
    Continúo recibiendo la ingente cantidad de peticiones.
     
  21. ClusterIP

    ClusterIP Usuario activo

    El tema me tiene muy mosca precisamente por que no encuentro la forma de atajar el aparente problema. Sin embargo el servidor está funcionando muy fino después de ajustar Apache y MySQL como podéis ver en la captura de top adjunta. Tiene 31 dominios alojados, de los cuales hay 3 tiendas en Prestashop que tienen movimiento.

    Si se os ocurre algo más... Esta noche he soñado con la IP en cuestión. Y como ya os imagináis he googleado lo inimaginable. No pararé hasta hallar la solución.

    Gracias a todos
    Un saludo
     

    Adjuntos:



Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·