Seguridad

17 Métodos para mejorar la seguridad de tu WordPress

24/11/2017

¿Por qué es importante reforzar la seguridad de tu página web?

Tener una web insegura implica perjuicios tanto para tí como para los usuarios que la visitan. Los hackers pueden robar la información de los usuarios, contraseñas e incluso pueden instalar malware. Por eso vamos a comentar algunas formas de asegurar WordPress en la medida de lo posible.

17 Métodos para asegurar WordPress

1.- Mantén actualizado WordPress

WordPress se actualiza constantemente, y es importantísimo tener siempre la última versión debido a que estas actualizaciones por lo general suelen corregir fallos de seguridad. Por si esto no fuera motivo suficiente para actualizar WordPress, con cada actualización se hacen públicos los fallos de seguridad que se han corregido, por lo que los hackers podrían aprovecharse de estos fallos de seguridad ya conocidos para atacar webs que no han sido actualizadas.

Se puede conseguir que WordPress se actualice automáticamente introduciendo el siguiente código en el fichero 'wp-config-php':

# Enable all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

2.- Instala la menor cantidad posible de plugins (y temas)

Los plugins (y los temas) son puertas abiertas a tu web. Muchos fallos de seguridad se deben a los plugins; unos porque tienen fallos de seguirdad que no fueron contemplados por sus creadores y otros porque introdujeron código malicioso intencionadamente.

Debes tratar de instalar los plugins que sean imprescindibles. Si un plugin no es imprescindible no lo instales (y si ya lo tienes instalado, desinstálalo, desactivarlo no es suficiente), y desde luego que sea de fuentes fiables. No trates de descargar de forma gratuita un plugin (o tema) que sea de pago, pues a menudo estas descargas vienen con malware incluido.

También es recomendable escanear los plugins y los temas para buscar fallos de seguiridad. Podemos escanear nuestra web introduciendo el dominio en la web de Sucuri Site check, con el plugin Theme Authenticity Checker (TAC) o con el plugin Anti-virus.

Por último mencionar que los plugins y los temas deben ser actualizados a la última versión, al igual que WordPress.

Se puede establecer que tanto los plugins como los temas se actualicen automáticamente. Para ello debemos editar el fichero 'wp-config.php' e introducir el siguiente código:

#Para los plugins
add_filter( 'auto_update_plugin', '__return_true' );
#Para los temas
add_filter( 'auto_update_theme', '__return_true' );

3.- Elimina el editor de plugins y temas

Si no utilizas el editor de plugins y temas del panel de control de WordPress, elimínalo. Los usuarios autorizados tienen acceso a este editor, y si la cuenta de algún usuario autorizado es hackeada, el editor se puede utilizar para tumbar la página simplemente modificando el código.

Puedes eliminar el editor introduciendo este código en el fichero 'wp-config.php':

define( 'DISALLOW_FILE_EDIT', true );

4.- Eliminar el reporte de errores de PHP

Cuando se produce un error, se genera un mensaje de error que contiene la ruta al fichero responsable del error.

Si los hackers ven estos reportes de errores sabrán cómo está montado el servidor. Para desactivar estos reportes, introduce el siguiente código al fichero 'wp-config.php':

error_reporting(0);
@ini_set(‘display_errors’, 0);

5.- Seguir la actividad del panel de control (Dashboard)

Si hay varios usuarios implicados en tu web, es recomendable seguir la pista de las acciones que realizan, no porque puedan tener malas intenciones, sino porque puede cometer algún error que desencadene que caiga la página, por ejemplo. Auditando estas acciones podemos conocer con detalle qué ha causado que caiga la página, y con ese dato, poder resolver el problema.

WordPress crea los logs de forma automática, pero es complicado saber qué indican. Lo más sencillo es utilizar un plugin que nos muestre de forma sencilla los logs. Un buen plugin, y gratuito, para ver los logs es WP Security Audit Log.

Otros plugins buenos son Activity Log y Simple History.

6.- Cambiar la ruta de la página de inicio de sesión

Los hackers suelen atacar páginas como www.tu_web.com/wp-admin o www.tu_web.com/wp-login.php.

Si cambias la ruta, puedes hacer que aumente significativamente tu seguridad en cuanto a ataques de fuerza bruta. Una forma de cambiar estas rutas es utilizando un plugin, como por ejemplo Lockdown WP Admin.

7.- Limitar el número de intentos de inicio de sesión

Por defecto, WordPress no limita el número de intentos de inicio de sesión. Esto implica que tu web puede ser vulnerable a ataques de fuerza bruta (tratar de averiguar una clave probando todas las combinaciones posibles de caracteres hasta dar con ella).

Los ataques de fuerza bruta pueden ser minimizados en gran medida limitando estos intentos de inicio de sesión.

Esta limitación se puede llevar a cabo de varias formas, la más fácil es descargando un plugin, como por ejemplo Login LockDown.

Tras activar el plugin, ir a 'Ajustes', 'Login LockDown' y ahí se puede cambiar el número máximo de intentos de inicio de sesión, el tiempo que debe esperar el usuario para poder intentar de nuevo loguear, etc.
Configuración Login LockDown

8.- Echar de la sesión a los usuarios inactivos automáticamente

Los usuarios logueados pueden dejarse una sesión abierta que otra persona puede aprovechar para obtener información, robarle la cuenta, etc. Un ejemplo sería cuando un usuario se deja la sesión abierta en un ordenador público (una biblioteca, por ejemplo). Otra persona podría entrar a su cuenta y actuar como si fuese el dueño legítimo. Para evitar (o reducir más bien) esto, podemos echar de la sesión a los usuarios que permanezcan inactivos durante un tiempo determinado.

Necesitas instalar el plugin Idle User Logout. Tras activarlo, despliega la pestaña de 'Ajustes' y después accede a 'Idle User Logout'.
Configuración User Logout
Ahora indica el tiempo de inactividad máximo; también puedes quitar el 'check' y hacer que también afecte al 'backend'.

9.- Añadir pregunta de seguridad

Es aconsejable añadir una pregunta de seguridad en ciertas páginas para añadir más seguridad a la web.

Un plugin interesante (aunque de pago), es WP Security Questions.

Este plugin permite añadir tantas preguntas como queramos en ciertas páginas, como la de inicio de sesión, la de registro o la de recuperar contraseña.

También se pueden seleccionar el número de preguntas que aparece, mostrar un mensaje de error, etc.

Hay una versión de demostración que está limitada, pues sólo nos permite realizar una pregunta de seguridad al azar escogida de una lista que nosotros indiquemos. También podemos seleccionar si queremos que una pregunta se muestre en el inicio de sesión, en el registro o cuando el usuario solicita restablecer la contraseña.

Para acceder a este plugin, tras instalarlo y activarlo vamos al panel de control, y seleccionamos la opción WP Security Questions, y pulsamos en 'Settings'.
Configuración WP Security Questions

10.- Utilizar contraseñas complejas

Utilizar contraseñas seguras tanto para el acceso a WordPress, la base de datos, etc. Las contraseñas pueden ser lo complejas que quieras, pero recomendamos utilizar al menos tres de los siguientes tipos de caracteres: mayúsculas, minúsculas, números y símbolos, además de una longitud no inferior a 8 caracteres.

11.- Cambiar los permisos (en Linux)

Los permisos se componen de 3 números que van de 0 a 7, y cada uno de ellos afecta a un usuario o grupo de usuarios.

El primer número afecta al usuario que sea el propietario del fichero o directorio. El segundo afecta al grupo que ha sido asignado al fichero o directorio. Y por último el tercero afecta a todos los usuarios del sistema.

Los números indican los permisos de cada usuario en código binario, y como ya hemos mencionado, van de 0 a 7.

Número (decimal) Número (binario) Caracteres Permisos
0 000 --- Ninguno
1 001 --x Ejecución
2 010 -w- Escritura
3 011 -wx Escritura y Ejecución
4 100 r-- Lectura
5 101 r-x Lectura y Ejecución
6 110 rw- Lectura y Escritura
7 111 rwx Lectura, Escritura y Ejecución

Para cambiar los permisos se utiliza el comando 'chmod XXX fichero'.

Para los directorios utilizar los permisos 755, para los ficheros utilizar 644, y para el fichero wp-config.php utilizar 600.
Si hay más de un usuario que vaya a acceder a los directorios y ficheros (por ejemplo distintas cuentas de SFTP), dale a los directorios los permisos 775 y a los ficheros 664.

12.- Protege tus ficheros utilizando tu servidor web

En nuestro caso utilizamos apache. El primer paso es proteger el fichero 'wp-config.php', y para conseguirlo tienes que introducir el siguiente código en el fichero '/etc/apache2/apache.conf':

<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>

También es recomendable desactivar la opción de visualizar el contenido del directorio en el caso de que apache no encuentre el fichero que va a servir.

Para ello, vamos al fichero '/etc/apache2/apache.conf', buscamos la directiva 'Directory' donde se encuentra WordPress instalado (en apache es <Directory /var/www/>, aunque podemos afinar más y apuntar al directorio exacto en el que está WordPress instalado), e introducimos la instrucción 'Options -Indexes', con lo que quedaría algo como:

<Directory /var/www/>
Options -Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

13.- Deshabilita la ejecución de código PHP en ciertos directorios

Podemos hacer esto en un fichero .htaccess o editando el fichero '/etc/apache2/apache.conf'.

En nuestro caso preferimos hacerlo en apache.conf. Así podemos tener todas las configuraciones en un único fichero. Hacerlo en .htaccess implica crear un .htaccess en cada directorio que se vea afectado (recordad que los ficheros cuyo nombre empieza por un punto son “invisibles”)

Editamos el fichero apache.conf e introducimos el siguiente código:

<Directory /path/to/the/directory>
<Files *.php>
deny from all
</Files>
</Directory>

El código anterior lo hacemos una vez por cada directorio que queramos proteger.

14.- Mantén tu ordenador actualizado

Actualiza tu ordenador para evitar que sea blanco de ataques por parte de los hackers. Los fallos de seguridad más comunes suelen ser por parte del sistema operativo.
Trata de tener un antivirus y un antimalware, además del firewall activado, para tratar de prevenir ataques a tu ordenador.

15.- Cambiar el prefijo de la base de datos

Por defecto, el prefijo que utiliza WordPress para todas la tablas es 'wp_'.

Si cambias el prefijo complicarás el acceso a tu base de datos para los hackers.

Lo ideal es cambiar el prefijo antes de instalar WordPress. Para ello edita el fichero wp-config.php y cambia la directiva:

$table_prefix = 'wp_';

Por la directiva:

$table_prefix = 'PREFIJO_TABLA_QUE_QUIERAS_';

Si ya has instalado WordPress, puedes cambiar el prefijo de la tabla utilizando un plugin. Como por ejemplo WP Prefix Changer.

16.- Desactivar XML-RPC en WordPress

XML-RPC es un protocolo servidor-cliente que utiliza XML como lenguaje para su codificación y HTTP como medio de transmisión.

Desde WordPress 3.5 viene habilitado por defecto en todas las versiones. Debido a lo potente que es esta herramienta (un hacker pueden intentar miles de accesos con unas pocas peticiones), lo recomendable si no se utiliza es desactivarlo.

Para deshabilitarlo podemos hacerlo editando el fichero apache2.conf. Insertamos el siguiente código dentro de un <Directory>

<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>

Otra forma es deshabilitándolo con un plugin como iThemes Security. Vamos a "Ajustes de WordPress", pulsamos sobre "Configurar ajustes" y seleccionamos la opción "Deshabilitar XML-RPC".
Deshabilitar XML-RPC

17.- Hacer copias de seguridad (backup)

Es importante realizar copias de seguridad periódicas, y almacenarlas en otra máquina distinta de aquella en la que se encuentra la web en WordPress. Esta medida no es para prevenir un hackeo, sino para minimizar los daños una vez te han hackeado, aunque en realidad los backups no se hacen pensando en la seguridad, sino que se hacen pensando en la disponibilidad de los datos.

Para realizar un backup puedes seguir estos métodos:

Para terminar

Utilizar todos estos métodos no implica que seamos inmunes al hackeo, ni mucho menos, pero sí refuerzan enormemente la seguridad de nuestra web.

Hay más formas de protegerse frente a hackeos, y no hay que escatimar en medidas de seguridad. Tal vez no necesites utilizar todas estas medidas, pero sí es aconsejable que utilices algunas de ellas, e incluso otras que no hemos mencionado en este post.

Si quieres tener un entorno seguro para WordPress contrata nuestros servicios de hosting WordPress administrado. Con nuestro hosting WordPress administrado tendrás la tranquilidad de tener el apoyo de expertos en seguridad , así como dominios enjaulados, por lo que si en algún momento la seguridad de un dominio se ve comprometida, esto no afectará al resto de dominios.

¿Nos ayudas a mejorar la calidad del blog?
Déjanos una valoración sobre este post para poder seguir mejorando
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


* Campo obligatorio.