NinjaFirewall (WP edition) para mejorar la seguridad de WordPress

Por | 2017-01-03T17:00:04+00:00 23/12/2016|WordPress|1 comentario

En este blog hablamos bastante sobre seguridad para WordPress, ya que es un tema del que siempre recalcamos su importancia, ya que WordPress al convertirse en el CMS más popular del mercado también se ha convertido en una diana para muchos hackers que se empeñan en romper su seguridad todos los días.

En el pasado hemos hablado bastante de plugins para mejorar la seguridad de WordPress, incluso tenemos alguna presentación subida a slideshare y hemos dado algún taller sobre el tema, ya que creemos en su importancia.
Uno de los temas de los que hemos hablado es de los WAF para WordPress (Web Application Firewall) y en este artículo vamos a hablar de uno de los mejores plugin WAF para WordPress, un plugin que nos permite proteger nuestro WordPress de ataques externos que pueden llegar a permitir a terceros acceder a las entrañas de nuestro sitio web.

ninjafirewallNinjaFirewall (WP Edition) es un plugin gratuito para WordPress que también dispone de versión Premium o avanzada con algunas funcionalidades añadidas.
NinjaFirewall es uno de los WAF más potentes que hemos visto, pero es que además tiene la ventaja de disponer de versión oficial para WordPress, algo que no podemos decir de otras herramientas como mod_security de Apache.

En este artículo vamos a hablar a fondo del plugin NinjaFirewall (WP Edition), opción por opción, pantalla de configuración por pantalla de configuración.

Queremos destacar que NinjaFirewall (WP Edition) es un plugin que es necesario complementar con otros que permitan analizar la instalación en busca de malware como por ejemplo WordFence Security o Anti-malware & Bruteforce Proteccion; o incluso que permitan proteger el login o autentificación de WordPress.

En este artículo no vamos a explicar exactamente lo que es un WAF (Web Application Firewall), ya que en el pasado ya hemos hablado bastante de este tema: https://raiolanetworks.es/blog/waf-wordpress-web-application-firewall/

 

 

Ventajas de NinjaFirewall (WP Edition)

Antes de nada vamos a explicar las ventajas y funcionalidades que tiene NinjaFirewall (WP Edition), aunque tampoco tiene mucho que explicar, ya que sus funcionalidades son las típicas de un WAF:

  • Implementa un sistema de filtrado avanzado que protege la instalación de ataques XSS, inyecciones SQL, bots y crawlers, ejecuciones maliciosas e inyecciones BASE64 entre otros tipos de ataques externos.
  • Protección mediante reglas preconfiguradas y almacenadas en una base de datos propia en base a casos anteriores.
  • Protección avanzada frente a ataques por fuerza bruta en las distintas partes de WordPress: wp-admin, wp-login.php, etc…
  • Notificación de ataques o eventos con guardado de logs y registros de acceso para toda la instalación.

 

Instalar NinjaFirewall (WP Edition)

Como hemos dicho anteriormente, NinjaFirewall (WP Edition) es un plugin completamente gratuito, aunque existe una versión llamada NinjaFirewall (WP+ Edition) que tiene algunas funcionalidades más que la versión gratuita:

  • Funcionalidades avanzadas de gestión de memoria de intercambio en sistemas Unix.
  • Control de acceso en base a IP de conexión.
  • Bloqueo de bots y crawlers dependiendo de su actividad (rate limit).
  • Control de acceso por geolocalización, es decir, dependiendo del país.
  • Control de acceso de URLS individuales.
  • Control de acceso selectivo para bots y crawlers.
  • Antispam para formularios de contacto y para comentarios.

Si estas funcionalidades mencionadas anteriormente son necesarias para tu proyecto, vas a tener que comprar la licencia de la versión WP+, que tiene un coste de 29 dólares para un solo dominio.

Para instalar la versión gratuita de NinjaFirewall, es decir, NinjaFirewall (WP Edition) podemos hacerlo desde el repositorio de plugins de WordPress, es decir, que podemos instalarlo directamente desde el back-end o panel de administración de WordPress.
En el siguiente video puedes ver como instalar un plugin cualquiera desde el repositorio de plugins de WordPress:

Como ves, la instalación de NinjaFirewall (WP Edition) es muy fácil, solo debemos estar seguros de que elegimos el plugin correcto en el instalador de plugins del panel de administración:

ninjafirewall wp editionUna vez que tenemos NinjaFirewall (WP Edition) instalado se nos añadirá al panel de administración de WordPress un nuevo menú desde donde podemos configurar las opciones de NinjaFirewall.

La pantalla mostrada en la imagen anterior es informativa, nos da unas instrucciones que tenemos que seguir para poder activar el WAF en WordPress.
Un WAF es una herramienta bastante compleja y para poder hacer su trabajo de forma eficiente necesita que se cumplan una serie de requisitos mínimos, por eso NinjaFirewall (WP Edition) tiene un asistente de configuración inicial, esa es exactamente la pantalla que aparece en la imagen anterior donde debería aparecer la configuración del WAF.

 

Configuración inicial de NinjaFirewall (WP Edition)

Como hemos dicho anteriormente, NinjaFirewall (WP Edition) es una herramienta bastante avanzada y requiere cierta configuración inicial y que se cumplan ciertos requisitos para que todo funcione correctamente.

Inicialmente, tras instalar NinjaFirewall (WP Edition) en WordPress nos aparecerá la siguiente ventana:

Debemos pulsar sobre el botón azul rodeado en la imagen anterior para comenzar con la instalación inicial.

Una vez que hemos avanzado, nos saldrá una pantalla con un desplegable donde debemos elegir el tipo de interprete PHP y servidor web que lleva el servidor web donde está alojado el sitio web donde estamos instalando NinjaFirewall (WP Edition).

Las opciones que nos deja elegir NinjaFirewall (WP Edition) son las siguientes:

  • Apache + PHP5 module.
  • Apache + CGI/FastCGI.
  • Apache + suPHP.
  • Nginx + CGI or PHP-FPM.
  • Litespeed.
  • Other webserver + CGI/FastCGI.
  • Other webserver + HHVM.

Para saber exactamente que opción tenemos que configurar basta con que revisemos la configuración PHP de nuestro servidor.
En el caso de nuestros servidores de hosting compartido cPanel, debemos seleccionar la opción “LiteSpeed” ya que usamos módulos de LiteSpeed en CloudLinux.
En algunas de las opciones, al seleccionarlas se nos despliegan algunas opciones más, como en este caso:

Debemos seleccionar la opción “php.ini” y pulsamos el botón “Next step >>”, con esto si todo está correcto, avanzaremos al siguiente paso del asistente, que tiene la siguiente apariencia:

Dejamos todo configurado como está por defecto y acto seguido pulsamos el botón azul “Next step >>”, con esto avanzamos a una pantalla como esta donde podemos probar la configuración inicial que acabamos de hacer en NinjaFirewall (WP Edition).

Al pulsar el botón “Test Firewall” que puedes ver en la imagen anterior, se realizaran las comprobaciones pertinentes y si todo está correcto, nos aparecerá lo siguiente (o similar, ya que dependerá de la configuración):

Con esto ya tendremos acceso a toda la configuración de NinjaFirewall (WP Edition) a la que podremos acceder directamente desde el panel de administración de WordPress:

Y ahora podemos empezar a darle forma a la configuración repasando sección por sección del plugin.

 

Statistics de NinjaFirewall (WP Edition)

Creo que es la sección más evidente, es decir, es la sección que “menos configuración tiene”, solo muestra estadísticas mensuales de bloqueos de ataques clasificados por nivel de peligro.

También debemos prestarle algo de atención a los tiempos de respuesta en los bloqueos, ya que si son demasiado altos podemos tener problemas de rendimiento cuando nuestro sitio web reciba muchos ataques, ya que NinjaFirewall va a consumir muchos recursos y mucho tiempo al bloquearlos.

 

Firewall options de NinjaFirewall (WP Edition)

En esta sección es donde empieza la configuración de NinjaFirewall (WP Edition), podemos decir que es una de las secciones de configuración principales.

La configuración que puedes ver en la imagen anterior es aceptable para un buen funcionamiento del firewall, si no sabes que poner, déjala como la tenemos nosotros en la captura anterior.

Como puedes ver en la imagen anterior, en esta sección de configuración hay pocas opciones:

  • Firewall protection: Una opción simple, desde aquí podemos activar y desactivar todas las funcionalidades de NinjaFirewall (WP Edition), podemos decir que es el interruptor de “On” y “Off”.
  • Debugging mode: En caso de problemas el modo debug siempre es útil, desde esta opción podemos activarlo y desactivarlo.
  • HTTP error code to return: Podemos elegir el tipo de error HTTP que recibirá el usuario o bot cuando sea bloqueado por NinjaFirewall, lo normal es que reciba un error 403 Forbidden, pero podemos elegir desde un 404 Not Found (no recomendable por temas de SEO), hasta un 500 o un 503.
  • Blocked user message: Podemos elegir y darle forma incluso con HTML al mensaje que recibirá el usuario indicándole el bloqueo, simplemente para que quede algo más bonito o para dar algo de información a los falsos positivos.
  • Export configuration: ¿Simple, no? Sirve para exportar la configuración de NinjaFirewall (WP Edition).
  • Import configuration: ¿También simple, no? Sirve para importar una configuración de NinjaFirewall (WP Edition) que ha sido exportada previamente por el plugin desde otra instalación.

Esta es la sección desde donde podemos activar y desactivar los efectos del firewall de NinjaFirewall (WP Edition), si queremos desactivarlo simplemente tenemos que tocar el campo “Firewall protection” y toda la protección se desactivara para todo el sitio web.

 

Firewall policies de NinjaFirewall (WP Edition)

Esta sección de la configuración de NinjaFirewall es bastante más densa que la sección anterior y tiene muchas más opciones.

Vamos a ir explicando algunas partes de la configuración de NinjaFirewall (WP Edition), si dejamos todas las opciones por defecto, nuestro sitio va a funcionar correctamente, pero puede que la efectividad de NinjaFirewall no sea la mejor.
En todo caso, para adaptar el funcionamiento de NinjaFirewall (WP Edition) a nuestro sitio web, debemos conocer nuestro sitio web y sus necesidades.

Podemos activar el filtrado del firewall para HTTP, para HTTPS o para ambos casos:

ninjafirewall wp editionPodemos activar el bloqueo de subidas de archivos en formularios desde el front-end, evidentemente este bloqueo debe estar desactivado si tenemos que permitir a nuestros usuarios subir cosas:

ninjafirewall wp editionNinjaFirewall (WP Edition) también nos permite bloquear o permitir distintos tipos de peticiones:

ninjafirewall wp editionDebemos tener mucho cuidado con configurar las opciones de la imagen anterior, porque podemos dejar fuera de combate algunos plugins que necesitan peticiones POST o GET para funcionar, aunque no es lo normal.

También podemos hacer que NinjaFirewall (WP Edition) revise las cookies que instala nuestro sitio web en el navegador de los usuarios:

Y con las siguientes opciones podemos hacer que el firewall revise los user-agents, referers y las cabeceras de las respuestas en busca de algún tipo de indicio sospechoso o de suplantación de identidad:

Evidentemente, como cualquier firewall puede revisar y bloquear IPs en base a unos parámetros, y aunque en la versión Premium del plugin nos ofrece muchas más funcionalidades relacionadas con las direcciones IP de los visitantes, en la versión gratuita también nos deja configurar algunas cosas:

NinjaFirewall también nos deja securizar algunas cosas relacionadas con el intérprete PHP y los mensajes de error, ya que en algunos casos se muestra demasiada información que puede dar lugar a ataques o a intentos de acceso:

Por último, el firewall lleva algunas funcionalidades y opciones que nos permiten proteger específicamente algunas partes de WordPress que pueden llegar a ser más vulnerables:

Como he dicho al principio de esta sección, si dejamos todas las opciones por defecto, el firewall debería funcionar, quizás no va a ser todo lo eficiente que debería, pero al menos no dejara nuestro sitio web fuera de servicio en caso de fallar durante la configuración.

 

File Guard de NinjaFirewall (WP Edition)

NinjaFirewall (WP Edition) implementa un sistema que monitoriza en tiempo real el acceso o modificación de archivos PHP y envía un correo o aviso al administrador del sitio web en base a esos cambios realizados en las carpetas y archivos.

plugin seguridad wordpressComo puedes ver en la imagen anterior, debes configurar exclusiones para que el sistema funcione correctamente, es importante añadir a exclusiones las carpetas de guardado de cache, las carpetas de actualizaciones y las carpetas temporales.

 

File check de NinjaFirewall (WP Edition)

NinjaFirewall (WP Edition) implementa un sistema de monitorización de archivos que comprueba la integridad de los archivos del sitio web, además permite realizar checkeos periódicos cada cierto tiempo en busca de problemas o cambios realizados en archivos que no se suelen modificar continuamente.

Se trata de una funcionalidad muy potente para securizar un sitio web WordPress, pero también debemos ser conscientes de que es una funcionalidad que consume bastantes recursos.
El sistema puede detectar cambios en el contenido del archivo, los permisos del archivo, el dueño del archivo, el tiempo de creación o modificación o detectar si el archivo ha sido borrado.

 

Anti-malware de NinjaFirewall (WP Edition)

Aunque no es una funcionalidad normal en un firewall de aplicación, NinjaFirewall lleva integrado un antimalware que permite analizar la instalación de WordPress (archivos, carpetas y bases de datos) en busca de malware.

plugin seguridad wordpressEl antimalware de NinjaFirewall tiene firmas propias y son bastante completas, además se puede complementar con un Maldet instalado en el servidor Linux.

El objetivo de NinjaFirewall es analizar el sitio web en busca de archivos de malware e iframes en el contenido que puedan cargar archivos maliciosos en el navegador del visitante.

 

Event Notification de NinjaFirewall (WP Edition)

NinjaFirewall (WP Edition) como todos los WAF envía muchos avisos a los administradores del sitio web, ya que lleva un registro de todo lo que ocurre en el servidor.

En la sección de configuración “Event Notification” podemos configurar NinjaFirewall para que nos envié más o menos avisos dependiendo de lo que queramos tener bajo control.

En todo caso, lo que pongamos en esta sección no influye para nada en el buen funcionamiento del firewall, simplemente nos enviara más o menos avisos y alertas.

 

Login protection de NinjaFirewall (WP Edition)

Estas es una de las secciones más importantes de NinjaFirewall (WP Edition), al menos desde mi punto de vista, ya que la parte de login y autentificación de WordPress es una de las partes más machacadas por los atacantes.

El sistema de “login protection” de NinjaFirewall (WP Edition) tiene tres modos de funcionamiento:

  • On
  • Off
  • Yes, if under attack

Evidentemente el modo más seguro y más restrictivo es el modo “Yes, if under attack”, seguido por el modo “On” y posteriormente seguido por el modo “Off” donde la protección está completamente desactivada.

 

Firewall log de NinjaFirewall (WP Edition)

Esta sección simplemente muestra el registro de acciones o bloqueos de NinjaFirewall, queda todo registrado y podemos consultarlo o exportarlo en cualquier momento.

Es útil para comprobar que nuestro firewall de aplicación está funcionando correctamente y que está bloqueando tanto los ataques por fuerza bruta como bots e intentos de intrusiones.

[Total: 4 Promedio: 5]

About the autor:

Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.

Utilizamos cookies propias y de terceros para obtener información estadística, mostrar publicidad personalizada a través del análisis de tu navegación, así como para interactuar en redes sociales. Si continúas navegando, consideramos que aceptas nuestra Política de cookies. ACEPTAR

Aviso de cookies