La seguridad en tu web es tan importante como el diseño, en WordPress

seguridad-en-tu-web

Suele pasar que nos preocupa demasiado el diseño, el aspecto de nuestro web, de cómo se verá si colocas un color de fondo que a ti te gusta, si el tipo de letra es el correcto, si la fuente es la adecuada, entre muchos otros aspectos de diseño, que olvidamos lo más esencial y es la SEGURIDAD, y la SEGURIDAD en tu web es tan importante como el diseño.

Así que en esta entrada quiero mencionarte varios aspectos que tienes que tener en cuenta para que tu web sea lo más segura posible.

Elección de Hosting

El primero es elegir el hosting adecuado si no cuentas con un proveedor de hosting que te proporcione seguridad en el servidor donde estará alojada tu web entonces no valdrá la pena que tu sitio este alojado allí.

Porque un servidor que no te proporcione seguridad será vulnerable a ataques de hackers y nadie quiere que su sitio este suspendido temporalmente porque su servidor ha sufrido un ataque y no ha podido responder a eso a tiempo.

Por eso creo que el primer aspecto importante a tomar en cuenta es elegir el hosting adecuado uno que te proporcione tanto niveles básico de seguridad como avanzados.

Opciones como modsecurity que es un firewall de aplicaciones web embebible que se ejecuta en el servidor web, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar tráfico HTTP, entre otras funciones, hoy día es esencial que un servidor cuente y te permita instalar un certificado SSL para que toda la información viaje de forma cifrada.

Denegar la exploración a determinadas carpetas

Por defecto cuando contratas o creas tu cuenta de hosting e inicias sesión en cPanel el directorio está establecido como Index, si te estas adentrando al mundo de tener una página web cuando hablo de directorio me refiero a todas las carpetas que se encuentran en el administrador de archivos.

Si tu web está basada por ejemplo en WordPress y alguien la visita y posee algunos conocimientos técnicos y escribe:

https://www.tudominio.com/wp-includes/

y le aparece el directorio con las carpetas
wp-includes/widgets
wp-includes/css
wp-includes/js

wp-includes-directorio
Es capaz de navegar por todos los directorios donde está alojada tu web tanto donde están subidas las imágenes, tema, los plugins que usas etc, porque no estableciste la norma básica de evitar que vean los archivos de esos directorios. Y nadie quiere que un intruso navegue por todas las carpetas donde está tu web verdad?

Para los hackers encontrar una web y notar que la web está indexando esos directorios es una invitación a que sepan por donde te pueden atacar, por eso debes evitar que si escriben cualquier dirección se puedan ver los archivos de determinadas carpetas.

Para evitar esto debes dirigirte desde cPanel y en entrar a la opción Index y configurar las opciones de las carpetas para “No Indexes”, para que no indexe ningún directorio de la carpeta especificada.

También puedes hacerlo con agregar estas líneas a tu .htaccess

# No permitir ver los directorios
Options -Indexes

Permisos a las carpetas y archivos

Si bien no indexar el directorio de tu web es importante, otro aspecto que pocos toman en cuenta o olvidan. Es configurar los permisos a las carpetas y archivos donde está alojada tu web, tanto las carpetas donde subes tus imágenes, plugins, el tema que usas, etc.

Los distintos directorios y ficheros poseen permisos que especifican quién y qué puede leer, escribir, modificar y acceder.

Esto es importante, puesto que WordPress puede necesitar acceso de escritura a ficheros en tu directorio wp-content para activar ciertas funcionalidades de un plugins, etc.

Por defecto en WordPress la configuración predeterminada que este hace cuando instalas el CMS en el hosting a las carpetas y ficheros que se encuentran en el administrador de archivos es:

  • Carpetas: 755
  • Archivos: 644
permisos ficheros hosting
Tipos de permisos a las carpetas y archivos Hosting.

 

Lo cual es una configuración correcta pero no todas las carpetas y archivos poseen la misma configuración de permisos esto se debe posiblemente a que hayas instalado un nuevo tema, un nuevo plugins o subido un nuevo archivo.

Así que debes revisar los permisos de esas carpetas y archivos que se hayan creado por instalar un nuevo plugins o un nuevo tema, ya que todas deben poseer el mismo acceso 755.

Un plus para proteger los archivos .htaccess y wp-config.php contra modificaciones de código, para que nadie más y solamente tú puedas modificarlos es editar los permisos a:

  • .htaccess: 604
  • wp-config: 600

wp-config-permisos-carpeta

Estos archivos son esenciales en tu instalación de WordPress, es por decir, son el corazón de tu web si alguien llegase a modificar el nombre o la contraseña de tu base de datos en el wp-config.php o modificar alguna línea que contiene el .htaccess u otro aspecto de tu web, la misma dejaría de funcionar correctamente y sería un total desastre.

EL prefijo de las tablas de WordPress

Crear un prefijo diferente al que te proporciona por defecto WordPress, un prefijo personalizado aumenta más la seguridad de la base de datos ya que se le dificultara a un atacante saber cuál es y no el predeterminado prefijo wp_ de WordPress que usa para las tablas por ejemplo wp_pots, wp_terms, wp_comments, wp_links, etc.

Así que cuando estas instalando WordPress, escribiendo el nombre del dominio, tu usuario y contraseña, debes cambiar el prefijo por defecto de tu base de datos por otro de tu elección, por ejemplo safewp_ o lo que se te ocurra con tal de que cumpla con el límite de caracteres y no dejar el prefijo por defecto.

Cambiar el prefijo por defecto wp_ añadirá una nueva capa de seguridad para impedir a posibles atacantes usar técnicas de SQL Injection para tomar el control de nuestro servidor.

Recuerda que por ser un CMS muy popular es propenso a ataques.

NOTA: Si el prefijo wp_ no lo cambiaste durante la instalación de WordPress y llevas tiempo usando el CMS, y decides cambiar el prefijo se recomienda realizar un backup de la base de datos antes de realizar este tipo de cambios.

Cambia la ruta de login para acceder al panel de administración

En una instalación habitual de WordPress para acceder al panel de administración la dirección URL por defecto seria:

https://www.tudominio.com/wp-admin/

Alguien que quiere hackear tu web intentara a acceder a tu panel de administración de esa manera si le es posible. Es por ello que siempre recomiendo cambiar la dirección de acceso por defecto a una personalizada mediante la instalación de algún plugins lo cual es la manera más fácil de hacerlo.

Por ejemplo una dirección personalizada para acceder a tu panel de administración utilizando un plugins quedaría de esta forma:

https://www.tudominio.com/mi-panel-de-administracion-personalizado

O cualquier cosa que se te ocurra.

Nota: La dirección personalizada para acceder a tu panel de administración de WordPress no la debes compartir con nadie solamente debes saberla tú o las personas que también administran tu web.

Instala un plugins de seguridad para bloquear IP, Referer Spam, User-Agent

Instalar un plugins de seguridad te facilita la tarea de tener que editar el fichero .htaccess para agregar algunas medidas de seguridad.

La mayoría de los plugins de seguridad te muestran el tráfico en vivo de tu web, comprueban si ha habido cambios en algún archivo de tu instalación WordPress, te permiten aplicar ajustes para evitar los ataques de fuerza bruta, bloqueo de IP de visitantes sospechosos, bloqueo de user-agent, etc.

Existen distintos plugins de seguridad en el repertorio de WordPress pero entre los más instalados y recomendables están:

Limitar números de intentos de inicio de sesión en la pantalla de login WordPress

Si nuestra dirección para acceder al panel de administrador de WordPress se viera comprometida por intentos de ataques de fuerza bruta, puedes instalar un plugins denominado “Limit Login Attempts Reloaded”, que nos permitirá bloquear el acceso de posibles atacantes que intenten realizar ataques de fuerza bruta a nuestra web, además de:

  • Limitar el número de intentos por dirección IP
  • Limitar el número de intentos por cookie
  • Registro opcional de los intentos realizados
  • Posibilidad de utilizar una lista blanca de direcciones IP

Si has instalado el Plugins de seguridad WordFence este ya cuenta con la opción “Limit Login Attempts” solo debes especificar cuantos intentos por minutos tendrá una dirección IP para acceder al panel, tiempo de bloqueo, etc.

Utilizar un CDN (Red de distribución de contenidos)

Usar un servicio CDN (Red de distribución de contenidos) no solo mejorara la seguridad de tu web sino también que acelerara la velocidad de carga de la misma, servicios como CloudFlare además de ofrecerte un sistema de cache muy bueno, por ser un CloudProxy también incorpora medidas de protección como:

  • Bloqueo de direcciones IP a visitantes sospechosos.
  • Tu web siempre estará online, si en algún momento tu proveedor de alojamiento web sufre una caída por objeto de un ataque en curso, CloudFlare mostrara una versión en cache de tu web hasta que vuelva a estar disponible.
  • Ofuscación de email, evitando la captura del email en algún comentario por parte de un robot.

Esta empresa posee otra serie de herramientas más para proteger tu web. Sin embargo no por usar CloudFlare vas a dejar de usar un plugins de seguridad, dejar de hacer copias de seguridad o eliminar líneas en el htaccess. Recuerda este CDN solo es una ayuda más.

Medidas de seguridad a nivel de .htaccess

Es como un oficial de seguridad donde puedes agregar muchas cosas en esta entrada voy a mencionarte algunas líneas que deberías colocar en un .htaccess para que tu web sea un poco más segura contra ataques.

Importante: Algunas de las siguientes lineas de códigos puedes activarlas con algunos plugins del repertorio de WordPress, asegúrese de no tener activa ninguna en su .htaccess antes de copiar y pegar alguno en su fichero, porque podría causar un error interno.

Protege el archivo .htaccess

Para que nadie pueda modificarlo solamente tú puedes hacer cambios en el.

# proteger el htaccess
<files .htaccess>
order allow,deny
deny from all
</files>

Evitar el hotlinking

# Evitar hotlinking 
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?tudominio.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?duckduckgo.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ - [NC,F,L]
Importante: Debes cambiar tudominio.com por el verdadero nombre de tu dominio, los dominios google, bing, yahoo, duckduckgo que aparecen allí simplemente es para que aparezcan tu imágenes en esos buscadores, en dado caso que no quieres que esos buscadores muestren las imágenes elimina las lineas correspondiente a cada uno.

Debes proteger el archivo wp-config.php

# Proteger wp-config
<Files wp-config.php>
order allow,deny
deny from all
</Files>

Proteger el archivo xmlrpc.

Este archivo es uno de lo que más buscan los atacantes para dañar tu web. Por eso es esencial que bloquees el acceso a el, tanto que es un archivo que es poco probable que lo uses.

# proteger xmlrpc
<Files xmlrpc.php>
	Order Deny,Allow
	Deny from all
</Files>

También debes proteger el directorio includes de tu instalación WordPress.

# Bloqueo acceso al directorio includes
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]

Protege la carpeta uploads para que nadie pueda subir o inyectar ningún script, php, en ella. Es recomendable crear otro .htaccess en la propia carpeta uploads para implementar el siguiente código.

# Proteger carpeta uploads

<Files ~ ".*..*">
	Order Allow,Deny
	Deny from all
</Files>
<FilesMatch ".(jpg|jpeg|jpe|gif|png|bmp|tif|tiff|doc|pdf|rtf|xls|numbers|odt|pages|key|zip|rar)$">
	Order Deny,Allow
	Allow from all
</FilesMatch>

Desactiva la edición de archivos en el panel de administración de WordPress

Si no editaras ningún código de tu tema o algun plugins desde el panel de administración de WordPress, bloquear la edición de archivos es recomendable, añadiendo la siguiente línea en el archivo wp-config.php:

define (‘DISALLOW_FILE_EDIT’ , true);

Contraseña de acceso WP

Y no menos importante, la contraseña. Debes crear un contraseña fuerte que no sea fácil de adivinar, que posea tantos caracteres numéricos como alfabéticos, símbolos, letras mayúsculas y minúsculas.

Ejemplo algo como MiWeb%segura123*-

Algo que puedas recordar fácilmente pero que a la vez sea difícilmente de adivinar o descifrar para lo demás.

Conclusión

Mantén tu versión de WordPress actualizada.
Según este disponible en el hosting para mejorar la velocidad de WordPress ten activada la ultima versión PHP 7 o superior. Siempre actualiza los plugins y temas instalados, no descargues e instales nuevos temas o plugins de directorios no oficiales.
Borra temas o plugins que no utilices y siempre realiza copias de seguridad.

Espero que estos consejos de seguridad te sean muy útiles.

Comparte esto en:

Ayúdame a mejorar, califica este artículo con un voto

(3 votos, promedio: 5,00 de 5)
Cargando…

También te puede interesar

Deja un comentario

Tenga en cuenta que todos los comentarios de este blog se moderan de acuerdo con la política de comentarios, y su dirección de correo electrónico NO se publicará, así que transcurrirá un tiempo entre su escritura y publicación. NO use palabras clave en el campo de Nombre. Y por favor no envíe su comentario dos veces.

Información básica sobre Protección de Datos
Responsable: Samuel Marcano +info
Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info
Legitimación: Consentimiento del interesado +info
Destinatarios: No se comunicarán datos a persona u organización alguna. +info
Derechos: Tiene derecho a Acceder, rectificar, así como otros derechos, como se explica en la información adicional. +info
Plazo de conservación de los datos: Indefinidamente.
Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en la Política de Privacidad +info