Se lee en 6 minutos

En el artículo anterior de este tutorial para Mejorar la seguridad en WordPress (1 de 4) empezamos a ver algunos aspectos básicos para la puesta a punto, mantenimiento y seguridad de nuestro sitio en WordPress. Vamos a profundizar hoy un poco más en todo ello.

Como curiosidad, al día siguiente de la publicación del primer artículo sobre seguridad en WordPress esta web recibió un par de ataques por fuerza bruta. En total fueron cerca de 1000 intentos de logueo fraudulentos. Al final bloqueé las IPs de los atacantes desde el archivo ‘.htaccess’, del que hablo al final del artículo y del que iremos hablando con más detalle en siguientes posts. De momento explicaré brevemente dos vías para bloquear una IP concreta:

– La primera es, como decía, editando el archivo ‘.htaccess’ que se encuentra en la raíz de nuestro sitio. Simplemente tendremos que añadir este código, con la IP concreta que queramos bloquear. Sería algo así:

– Podemos obtener el mismo resultado mediante el plugin ‘Wordfence Security’ https://wordpress.org/plugins/wordfence/.

Se trata de un plugin ideal para monitorizar y gestionar los accesos a nuestra web. Para bloquear una IP concreta, una vez instalado el plugin vamos a su apartado “Bloqued IPS” y veremos un campo de texto en el que podemos escribir (o copiar y pegar) la IP que queremos bloquear. Así de simple. Wordfence Security tiene otra serie de herramientas muy útiles de Escaneo, Tráfico en vivo de nuestra web, etc. Algunas características que incluye son de pago, pero con la versión gratutita nos vale. Una opción muy útil (y gratuita) es la de añadir en “Opciones” una cuenta de correo a la que queremos que nos lleguen avisos cuando haya un intento (fallido o satisfactorio) de logueo en nuestra web. De esta manera sabremos quien accede, desde qué IP y también si estamos siendo atacados. En este caso realizaremos el proceso que acabo de explicar para evitar problemas.

Dicho esto, continuamos con nuevas técnicas para mejorar la seguridad en WordPress:

eliminar_archivos_

Eliminar archivos innecesarios de la instalación de WordPress

· Eliminar archivos innecesarios de la instalación de WordPress: El archivo ‘install.php’ (wp-admin) nos lleva por el proceso de instalación de WordPress. Pero una vez finalizado ya no es necesario y puede representar un problema de seguridad. Accederemos por FTP a la carpeta ‘wp-admin’ y simplemente eliminamos el archivo ‘install.php’. En cada actualización de WordPress se regenera este archivo por lo que tendremos que eliminarlo después de actualizar WordPress.

· Prefijo en el nombre de las tablas: WordPress pone por defecto el prefijo ‘wp_’. Para evitar ataques de ‘inyecciones SQL’ debemos cambiar este prefijo. Si lo dejamos como viene por defecto, el atacante sabrá el nombre de todas nuestras tablas y le será muy fácil acceder a cualquiera de ellas. Este prefijo se puede personalizar durante la instalación de WordPress y esto es lo más fácil y adecuado. Si no lo hemos personalizado durante la instalación, podríamos cambiar el prefijo en el archivo ‘wp-config.php’ y mediante phpMyAdmin lo cambiaríamos también en todas las tablas y entradas utilizando código SQL.
Además existen plugins que facilitan esta tarea como ‘Change DB Prefix’ https://wordpress.org/plugins/db-prefix-change/ o ‘WebsiteDefender WordPress Security’ https://wordpress.org/plugins/websitedefender-wordpress-security/ . Tengo que advertir que este proceso no es recomendable para principiantes y hay que saber bien lo que se está haciendo si no queremos que nuestro WordPress ya instalado deje de funcionar correctamente.

· Protección de archivos y carpetas: entrando en temas un poco más avanzados, es conveniente cambiar los permisos de algunos archivos de nuestra instalación de WordPress. Mediante un gestor de FTP (yo uso FileZilla) cambiaríamos con botón derecho sobre cada archivo o carpeta sus permisos. Quedaría así:

  • Los permisos del directorio raíz y sus carpetas deben ser: 0755
  • El archivo ‘.htaccess’ tendría el permiso: 0644
  • ‘readme.html’ debe tener el permiso: 044
  • ‘wp-config.php’ deberá tener el permiso: 0644
usuarios_y_roles

Usuarios y roles

Usuarios y roles: en WordPress existen los siguientes perfiles o roles de usuario:

  • Administrador: acceso total al sistema.
  • Editor: puede publicar y editar entradas propias o de otros autores.
  • Autor: sólo puede publicar y editar su propias entradas.
  • Colaborador: puede escribir y editar sus propias entradas, pero no publicarlas.
  • Suscriptor: puede editar su perfil

En este último caso del Suscriptor, se trata de un usuario que accede a nuestro WordPress y tiene un área especial para usuarios. Tendrá acceso a un mayor contenido que alguien que simplemente visite nuestra web sin darse de alta.

Si decidimos que en nuestra web ‘Cualquiera pueda registrarse’ (Ajustes / Generales) tendremos que darles un perfil de Suscriptor como máximo, ya que si por ejemplo diésemos el rol de Colaborador a gente anónima, podrían utilizar este privilegio para escribir entradas con spam. Las entradas no serían publicadas directamente en la web y podríamos ir eliminándolas desde el Panel de Control, pero sería bastante molesto.

Desgraciadamente tácticas como esta son habituales en WordPress, así como el spam masivo en los comentarios, intentos de logueo fraudulento (ataques por fuerza bruta). Para lidiar con todo este tipo de problemas contamos con gran cantidad de plugins, entre los que destaco los siguientes:

Y un larguísimo etcetera…

· Proteger la carpeta ‘wp-admin’: Todos sabemos que para entrar al área de identificación de WordPress la ruta por defecto es “nombrededominio/wp-admin”. Un hacker también sabe que hay que acceder a la carpeta ‘wp-admin’ para identificarse si el sitio al que quiere atacar es un WordPress. Podemos cambiar esta ruta (slug) para complicarle el intento de acceso.
Para cambiar esto existe el plugin HC Custom WP-Admin URL https://wordpress.org/plugins/hc-custom-wp-admin-url/ . Una vez activado, vamos a “Ajustes / Enlaces permanentes” y cambiamos el WP-Admin slug. Así conseguimos que nuestra ruta al área de notificación cambie a algo como por ejemplo “nombrededominio/area_de_identificacion”. Eso si, ¡acuérdate de la nueva ruta para acceder a tu panel de control!

· Proteger el archivo ‘wp-config.php’: Para evitar el acceso ajeno a este archivo fundamental de WordPress crearemos en la raíz de nuestra web un archivo llamado “.htaccess”. Puede que el archivo ya existiese, en cualquier caso se trata de añadir este código al final de dicho archivo:

El archivo ‘.htaccess’ normalmente lo puedes crear o editar desde el propio gestor de FTP (en mi caso FileZilla), que utilizará para ello el Bloc de Notas o similar en Windows y el TextEdit en mac. También podemos descargar el archivo si ya existía o generarlo / editarlo desde programas como  Brackets, Sublime Text, Aptana, Notepad++, Dreamweaver, etc… Con este método se obtendrá un error 403 (acceso denegado) al intentar acceder a él vía URL.

Si quieres completar este tutorial para Mejorar la seguridad en WordPress, aquí tienes el resto de posts:

icon-arrow-circle-right Mejorar la seguridad en WordPress (1 de 4)

icon-arrow-circle-right Mejorar la seguridad en WordPress (3 de 4)

icon-arrow-circle-right Mejorar la seguridad en WordPress (4 de 4)

Suscríbete a tonalidad.es