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.
Índice de contenido
- Elección de Hosting
- Denegar la exploración a determinadas carpetas
- Permisos a las carpetas y archivos
- EL prefijo de las tablas de WordPress
- Cambia la ruta de login para acceder al panel de administración
- Instala un plugins de seguridad para bloquear IP, Referer Spam, User-Agent
- Limitar números de intentos de inicio de sesión en la pantalla de login WordPress
- Utilizar un CDN (Red de distribución de contenidos)
- Medidas de seguridad a nivel de .htaccess
- Desactiva la edición de archivos en el panel de administración de WordPress
- Contraseña de acceso WP
- Conclusión
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 o cualquier panel de administración, 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
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
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
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.
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.
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.
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]
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*-
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.