Internet es un mundo inmenso en el que entra todo tipo de personas, buenas y malas, aquellas que lo usan como una herramienta más y las que intentan aprovecharse de los demás. Con la llegada de WordPress, muchos nos aventuramos a crear nuestra página web, pero la falta de experiencia nos convierte en un objetivo fácil para cualquier hacker, dejando en entredicho la seguridad de nuestro sitio.
Mejoremos la seguridad de nuestra web
Puedes pensar “A mí no me atacarán, no tengo información de interés”, es un pensamiento válido, pero no acertado
La mayoría de los hackers no atacan webs por la información que esta pueda tener. Existen muchas situaciones, como el span si eres de la competencia y perjudicar en el posicionamiento, poner enlaces a su web o productos redirigiendo tu sitio hacia el suyo sin que te des cuenta, propagar un posible virus…
Ninguno estamos libres de que nos pase, pero siguiendo unas normas básicas, podremos estar más protegidos frente a estos ataques y aumentando nuestra seguridad.
Los cambios que propongo están basados en la configuración stándar que propone WordPress a la hora de su instalación, los intrusos lo utilizan para hackearnos la web porque son datos iguales para todos, y la ignorancia de los primerizos les convierte en carne de cañón.
Todos los cambios, menos el primero, pueden realizarse una vez instalado en menos de 10 minutos.
Cambiar el prefijo de las tablas de la base de datos
Este cambio es el único que hay que hacer durante la instalación, tanto si creamos la base de datos manualmente como si seguimos el proceso automático de WordPress.
Por defecto nos creará las tablas con el prefijo “wp_” que la mayoría deja por defecto por no saber que es, pero es fundamental cambiarlo y poner algo como “jcg34m_”, da igual que no te acuerdes, seguramente tampoco sabías que las tablas tenían un prefijo y nunca lo necesitaste.
ACCIÓN CON INSTALADOR:
- Sustituir el prefijo de las tablas de las BD “wp_” por otro.
ACCIÓN MANUAL:
- Crear base de datos manualmente.
- Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, al archivo “wp-config.php” en la raíz de nuestro sitio.
- Copiar el archivo en el escritorio.
- Editarlo y modificar la línea donde indicamos el prefijo de la base de datos indicando el que usaremos:
1 2 3 4 5 6 7 | /** * Prefijo de la base de datos de WordPress. * * Cambia el prefijo si deseas instalar multiples blogs en una sola base de datos. * Emplea solo números, letras y guión bajo. */ $table_prefix = 'wp_'; // Sustituir este prefijo |
No utilizar una cuenta con "admin"
Wordpres utiliza por defecto una cuenta con el nombre "admin", si no lo cambiaste en la instalación, ya estás tardando.
Es el primer punto por el que van a intentar colarse, les estamos dando el 50% del acceso a la web, sólo tienen que probar contraseñas de forma bruta, sabiendo el nombre, prueban combinaciones posibles de contraseñas hasta dar con ella.
ACCIÓN:
- Accede a la pestaña “Usuarios”.
- Crea uno nuevo dándole permisos de “Administrador”.
- Sal y vuelve a entrar con el nuevo usuario.
- Accede de nuevo a “Usuarios” y elimina el usuario “admin” pasando las entradas o post al nuevo usuario cuando te lo pida.
No utilizar el nombre de usuario como firma
Por lo general, WordPress utiliza nuestro “nomre de usuario” por defecto para firmar cada entrada que creamos, y de esta forma estamos dando una información muy valiosa para los atacantes.
Debemos modificar esta opción para que muestre otro nombre que no sea con el que iniciamos sesión.
ACCIÓN:
- Editar el perfil de usuario.
- Rellenar el campo “Alias”, si no lo tenemos, con un seudónimo o nombre que nos represente.
- Seleccionar el seudónimo como el nombre que se mostrará públicamente.
- Pinchar en “Actualizar perfil” para guardar los cambios.
Utilizar una contraseña fuerte
No digo nada nuevo si aconsejo esta práctica para cualquier servicio que usemos en la red, pero de todas formas, debo hacer mención a ello. Siempre asociamos seguridad en internet con tener una contraseña que nadie conozca.
Una contraseña difícil de recordar para nosotros, lo será más difícil para los demás. Utiliza mayúsculas y minúsculas mezcladas con números y caracteres especiales, y cuanto más larga mejor.
De esta forma se lo ponemos complicado a cualquier persona o computadora que quiera descubrirla.
Hay webs en internet que te dicen lo segura que puede llegar a ser tu contraseña. Puedes probar howsecureismypassword, o passwordmeter de la web vpnmentor, para ver lo segura que es tu contraseña.
ACCIÓN:
- Editar el perfil de usuario.
- Deslizarse hasta “Gestión de la cuenta”.
- Generar nueva contraseña.
Tener actualizados el tema y los plugins y eliminar los que no usemos
Cada tema o plugin que tenemos instalado en nuestra web, esté activo o no, es una posible entrada para los invasores de internet.
Las actualizaciones corrigen esas vulnerabilidades que puedan tener, por eso, lo principal es tener la plantilla que utilizamos y los plugins que tengamos instalados, al día con sus actualizaciones y eliminar todo aquello que no utilicemos para negar la entrada a través de ellos a indeseables. Es tan sencillo mejorar la seguridad como hacer click en actualizar.
ACCIÓN PARA ELIMINAR:
- Ir a “Apariencia>Temas” o a “Plugins”
- Seleccionar lo que esté desactivado o no utilicemos (si está activado, hay que desactivarlo primero).
- Pinchar en eliminar, y si pregunta, borrar todos los datos.
ACCIÓN PARA ACUTALIZAR:
- Si tenemos muchas actualizaciones, es recomendable hacer una copia de seguridad de nuestro sitio y realizar las actualizaciones de una en una.
- Ir a “Escritorio>Actualizaciones”
- Seleccionar cada objeto que queremos actualizar.
A partir de aquí necesitaremos acceso a los archivos a través de un cliente FTP como FileZilla o del panel de control del servidor. Si has instalado WordPress tú sólo, no tendrás ningún problema en realizar estos cambios.
Eliminar el acceso al editor desde el panel de control
El editor nos da acceso a modificar archivos importantes para el funcionamiento de WordPress, un punto flaco para nuestra seguridad, si eliminamos esta posibilidad, no podrán cambiar nada en esos archivos si consiguen acceder a nuestro panel de administración de nuestra web, y nosotros no estropearemos nada con nuestras manazas.
ACCIÓN:
- Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, al archivo “wp-config.php” en la raíz de nuestro sitio.
- Copiar el archivo en el escritorio.
- Editarlo y escribir antes de “/* ¡Eso es todo, deja de editar! Feliz blogging */” la siguiente línea:
1 | define('DISALLOW_FILE_EDIT', true); // Desactiva editor |
- Guardar y suubir el archivo al servido sustituyendo el “wp-config.php” existente.
Crear o modificar los valores AUTH/SALT
WordPress utiliza unos códigos especiales de seguridad para encriptar la información que maneja internamente, estos códigos se encuentran especificados en el archivo “wp-config.php”.
Dependiendo de cómo hagamos la instalación, estos datos pueden venir por defecto, si ha sido con el instalador automático, o en blanco si lo hacemos manualmente. Sea de una manera u otra, esta información debemos cambiarla o generarla en este enlace.
ACCIÓN:
Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, al archivo “wp-config.php” en la raíz de nuestro sitio.
- Copiar el archivo en el escritorio.
- Editarlo y buscar donde pone “* Claves únicas de autentificación.”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /**#@+ * Claves únicas de autentificación. * * Define cada clave secreta con una frase aleatoria distinta. * Puedes generarlas usando el {@link https://api.wordpress.org/secret-key/1.1/salt/ servicio de claves secretas de WordPress} * Puedes cambiar las claves en cualquier momento para invalidar todas las cookies existentes. Esto forzará a todos los usuarios a volver a hacer login. * * @since 2.6.0 */ define('AUTH_KEY', '0-034=of2:)Y9xhD/kRAUh0J)Ywh+Y$YY$w1]#w~-%+>]V+ xsxWQR)`c&[^nck;'); define('SECURE_AUTH_KEY', '*+=}!k,JkNWY v],/~q,<%-d}i<oMU[fhf)mHl 9FDR.&;Z8t&V5v`tuz]|mKU))'); define('LOGGED_IN_KEY', ',G^-k-#2/mjHvY2d2X4Rf4EF%:@0(S-bK<Wl?:i,Quw*#c cJ~;-h0~A^lR[2vo_'); define('NONCE_KEY', 'D?F3a|T0zW:cM?^ht3q(a@Xq=;`@(<u>4Ep!a]!ggx0H1au|s&5#lYc/,>2LD=+z'); define('AUTH_SALT', '75M=]lrYI~Kwp%{Llq7lWj=e#N[OtZE |@U3C@g-1U<8uvm*LFY&>vSRHxfT7-,<'); define('SECURE_AUTH_SALT', 'zqH~!EgYQk&on!{?:G%>rvxMdY9pwP>7p]hR3AY0vJfua3FxVX{P#g;;gu%4mHr,'); define('LOGGED_IN_SALT', '7EyvU1Ut4*P_W?gKVdH2iQN({f2&jU*BQta9|}eXvU6t5n/g;+)QHI&F@&|{5B?D'); define('NONCE_SALT', '|8H`I%Ej%una;MVCrP|Ru[7d(=yRJ.@e*+Wz^:)Xfua_cL{u-QdQ.yR9Do(}VZx-'); |
- Generar nuevos códigos con el generador de códigos de WordPress.
- Copiar o sustituir los códigos por defecto por los nuevos generados.
- Guardar y subir el archivo al servido sustituyendo el “wp-config.php” existente.
Desactivar el código HTML de los comentarios
Esta opción no elimina el código HTML que alguien deje como comentario en un artículo, pero si evita que se ejecute. De esta forma evitamos que alguien pueda colocar código malicioso o indeseado en nuestro sitio.
Aquí cabe todo lo que se os ocurra hacer con HTML, hacer redirecciones, solicitar cookies, crear formularios falsos para que se beneficien otros, robar claves…
ACCIÓN:
Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, al archivo “funtions.php” en la carpeta de la plantilla de nuestro sitio, “raíz del sitio\wp-content\themes\nuestro tema”.
- Copiar el archivo en el escritorio.
- Editarlo y escribir al final del todo:
1 | add_filter('pre_comment_content', 'wp_specialchars'); |
- Guardar y subir el archivo al servido sustituyendo el “funtions.php” existente.
Desactivar los errores de acceso
Con esta acción podemos quitar los errores que WordPress muestra con información comprometida y valiosa para hackers. En sustitución podemos poner un mensaje sin contenido que muestre que ha surgido un error de acceso pero sin contenido importante como “La contraseña que introdujo para el usuario xxx no es correcta”.
ACCIÓN:
- Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, al archivo “funtions.php” en la carpeta de la plantilla de nuestro sitio, “raíz del sitio\wp-content\themes\nuestro tema”.
- Copiar el archivo en el escritorio.
- Editarlo y escribir al final del todo:
1 2 3 4 5 | function login_errors_message() { return 'Ooooops!'; } add_filter('login_errors', 'login_errors_message'); |
- Guardar y subir el archivo al servido sustituyendo el “funtions.php” existente.
Generar el archivo “robots.txt” correctamente
Los “crawlers” son programas que se encargan de rastrear internet en busca de contenido para indexarlo (incluirlo) en los buscadores. Si no les ponemos límites, estos rastrearan todo lo que se encuentren por el camino.
Si creamos un archivo “robots.txt” personalizado, estaremos indicando a estos programas que deben y que no deben incluir en sus buscadores.
ACCIÓN:
- Abrir un editor de texto.
- Añadir estas líneas al documento:
1 2 3 4 5 6 7 8 9 | User-agent: * Disallow: /feed/ Disallow: /trackback/ Disallow: /wp-admin/ Disallow: /wp-content/ Disallow: /wp-includes/ Disallow: /xmlrpc.php Disallow: /wp- |
- Guardarlo con el nombre “robots” y la extensión “txt” > robots.txt
- Subirlo a la raíz de nuestro sitio web a través de un cliente FTP o a través del administrador de archivos de nuestro acceso al servidor.
- Este archivo se trata de un ejemplo, habría que valorar si nos interesa evitar todos los rastreos. Si nuestra web es de fotografía y nos interesa que los crawlers nos rastreen las imágenes, no pondríamos la carpeta /wp-includes, o no las posicionaríamos, por ejemplo.
Eliminar el archivo “readme.html”
Este archivo viene por defecto con cada instalación de wordpress, en el viene la versión de WordPress que tenemos instalada y la forma de realizar una instalación. Por poco que parezca, es una información de la que se pueden aprovechar algunos y un acceso contra nuestra seguridad.
ACCIÓN:
- Acceder, via FTP o a través del administrador de archivos de nuestro acceso al servidor, a la carpeta raíz.
- Seleccionar “radme.html” y eliminar.
Me ha parecido muy interesante, la primera parte desde la zona del administrador es fácil de hacer, pero lo de tocar los archivos del servidor me da un poco de miedo.
No debes preocuparte, antes de modificar los archivso debes guardar una copia de seguridad de esos archivos, así si metes la pata, puedes volver a copiar el archivo original en su sitio como si no hubiera pasado nada. Puedes leer este artículo en el que hablo de los plugin que aconsejo tener en una web.