Instalar WordPress: aspectos básicos de seguridad

En este artículo se describen los aspectos básicos de seguridad a tener en cuenta durante la instalación de WordPress.

Como ya comenté en la entrada anterior, Instalar WordPress correctamente, doy por supuesto que el lector conoce los pasos básicos de instalación de WordPress, que en resumidas cuentas son los siguientes:


Descargar WordPress desde http://www.wordpress.org
Descomprimir y subir los archivos al servidor
Crear una base de datos

Para más info sobre la instalación básica de WordPress, acude a https://es.wordpress.org/

Suponiendo que dichos pasos ya se han realizado, haremos lo siguiente:

Decir que algunos de los pasos aquí descritos se pueden también realizar a través del instalador de WordPress de manera cómoda y sin necesidad de tocar el código. Yo prefiero realizarlos directamente en el código para asegurarme de que no haya problemas con el instalador. Además, de la manera aquí explicada, estos pasos se pueden realizar también tras la instalación de WordPress y no solo durante ésta.

Configuración básica: el fichero wp-config.php

Renombramos el archivo wp-config-sample.php por wp-config.php y lo abrimos para editar. Dicho archivo lo encontramos en la carpeta donde hayamos subido los archivos de WordPress.

En dicho archivo encontramos una sección como ésta, en la que copiaremos los datos necesarios para la conexión a la base de datos que previamente hemos creado.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Obviamente, la contraseña aquí deberá ser larga y aleatoria así como incluir mayusculas, minúsuculas, números, signos de puntuación.. No sólo la contraseña: lo ideal es que tanto el nombre de la base de datos como el usuario sean también lo más seguros posible.

Hasta aquí nada nuevo, esto lo mínimo imprescindible para poder instalar el CMS. Lo importante, y lo que casi todo el mundo olvida, viene ahora.

Establecer el prefijo de la base de datos

Por defecto, todas las tablas de la base de datos se crearán con el prefijo “wp_”.
Por motivos de seguridad, es recomendable cambiar dicho prefijo, ya que mientras menos conozcan los atacantes de nuestro sistema, mucho mejor. El momento ideal para hacerlo es justo ahora, antes de realizar la instalación.

Hay dos opciones para cambiar dicho prefijo: editando el archivo wp-config.php o mientras realizamos la instalación, durante la cual el propio instalador de WordPress nos dará la opción de cambiarlo.

Si optamos por la primera opción, el prefijo lo cambiaremos en esta linea:

/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each a unique
* prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';

Decir que este paso, aunque no sin riesgos, se puede realizar también una vez que WordPress esté instalado. Para éso editamos el archivo wp-config.php en la misma forma citada anteriormente, y manualmente cambiaremos el prefijo de nuestras tablas en la base de datos.
Encriptación de Cookies

WordPress incorpora un sistema bastante avanzado de seguridad en cuanto a la administración de sesiones se refiere, pero hay que configurarlo para que funcione, cosa que muchos desconocen.

Un aspecto clave de dicha seguridad es el cifrado de las cookies para que estas no puedan ser usadas tan fácilmente en nuestra contra por posibles atacantes.

En wp-config.php, encontramos algo parecido a esto:

/**
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

Ahí podemos colocar las claves que queramos, que lo que harán es añadir en cada cookie una clave aleatoria que dificulte el crackeo de las contraseñas guardadas en dicha cookie.

Lo ideal es usar claves alfanuméricas largas y aleatorias. Para facilitarnos el trabajo, WordPress nos proporciona una herramienta que genera automáticamente dichas claves, las cuales únicamente hemos de copiar y pegar: https://api.wordpress.org/secret-key/1.1/salt/

Este paso también lo podemos realizar sin problemas en cualquier momento y tantas veces como queramos, antes o después de instalar WordPress.


Desabilitar el editor

El editor de WordPress nos permite modificar el código de temas y plugins de manera cómoda y rápida, aunque eso sí, los errores que comentamos en él pueden tener fatales consecuencias.

Lo ideal es siempre editar los archivos via (s)FTP y tras haber probado los cambios en una instalación local. Por lo tanto, es recomendable desactivar el editor de la siguiente manera:

En wp-config.php, al final del archivo, añadiremos la siguiente linea:

define(‘DISALLOW_FILE_EDIT’, ‘true’);

Ejecutando el instalador


Una vez que hayamos terminado lo anterior, podemos comenzar con la instalación. Para éso, bastará con acceder a nuestro servidor o a donde tengamos los archivos de WordPress desde el navegador. Si no nos aparece nada o nos aparece la página por defecto de nuestro servidor, añadiremos “/index.php” o “/install.php” al final de la dirección.

Veremos que muchos de los pasos descritos anteriormente se pueden modificar aquí de manera cómoda. Prácticamente, lo único que queda por hacer es elegir el usuario y la contraseña.

El usuario será el nombre con el que accedas al panel de administración, y no el que los lectores verán. Por motivos de seguridad, no intentes escoger un nombre de usuario fácil de adivinar como “admin”, tu nombre o el nombre de tu página. Piensa que para acceder a tu cuenta se necesitan dos cosas: usuario y contraseña, por lo que si alguien quiere acceder a tu cuenta y ya conoce tu nombre de usuario, ya tiene el 50% del trabajo hecho.

En las últimas versiones, WordPress proporciona un generador de contraseñas. Úsalo para tener una contraseña fuerte y aleatoria.

Y no te olvides de, una vez se haya creado tu cuenta y WordPress esté instalado, ir a tu perfil y cambiar tu nombre público (el que los visitantes ven) por otro diferente al nombre de usuario con el que te registraste. Lo ideal es también cambiar la contraseña con cierta frecuencia.

Si algo no te te ha quedado claro o crees que me he dejado algo en el tintero, no dudes en usar los comentarios.

Comentarios

Entradas populares de este blog

HTTPScan: ver los datos de una URL