Ir al contenido principal
BlogSeguridadCómo hacer que WordPress sea seguro: Pasos avanzados

Cómo hacer que WordPress sea seguro: Pasos avanzados

Seguridad avanzada en WordPress

El equipo de desarrollo de WordPress se toma muy en serio la seguridad. Los parches de seguridad y las actualizaciones se publican con frecuencia para ayudar a garantizar que WordPress siga el ritmo de un entorno online cada vez más desafiante. Como parte de estos esfuerzos, WordPress lleva a cabo un programa de divulgación responsable de vulnerabilidades, para que estos problemas no queden sin resolver.

Aparte de los esfuerzos del equipo de desarrollo de WordPress, los usuarios individuales también deberían tomar medidas para minimizar sus riesgos de seguridad, lo que a menudo se conoce como "endurecer WordPress". Varias victorias rápidas pueden asegurar su sitio web de WordPress, y cubrimos estos pasos fáciles de implementar en un post reciente, Cómo mantener WordPress seguro: Lo básico.

Más allá de los pasos básicos, también hay técnicas de seguridad más avanzadas que se pueden emplear para asegurar aún más su sitio web de WordPress, así como lo que se debe y no se debe hacer cuando se administra un sitio web de WordPress.

Veamos algunas de ellas.

SFTP - Conexión a su servidor

En primer lugar, es crucial asegurarse de que cuando te conectes a tu servidor web, lo hagas utilizando SFTP, que es similar a FTP, excepto que tu contraseña y otros datos están encriptados mientras viajan entre tú y tu servidor. FileZilla es una excelente aplicación de transferencia de archivos que soporta varios protocolos de transferencia de archivos, incluyendo SFTP. Puedes averiguar cómo instalar y transferir archivos a tu Linode utilizando FileZilla aquí.

Prevención de ataques de fuerza bruta

Los ataques de fuerza bruta se producen cuando un atacante envía repetida y sistemáticamente diferentes nombres de usuario y contraseñas para intentar acceder a un sitio web. Es importante señalar que los ataques de fuerza bruta no son endémicos de WordPress. Todas las aplicaciones web son susceptibles.

La primera defensa contra este tipo de ataques es asegurarse de que su contraseña es segura. El objetivo final de un ataque de fuerza bruta es ganar la entrada a su sitio web. La elección de una contraseña difícil de descifrar se discutió en nuestro artículo anterior sobre la seguridad de WordPress, así que no entraremos en más detalles. Basta con decir que debes asegurarte de que tu contraseña es buena. También vale la pena habilitar la autenticación en dos pasos dentro de su instancia de WordPress.

A continuación, utiliza un plugin para limitar el número de intentos de inicio de sesión secuenciales en tu sitio. Un plugin popular es Limit Login Attempts Reloaded, que tiene más de 1 millón de descargas. Limita el número de intentos de inicio de sesión que son posibles a través del inicio de sesión normal, así como XMLRPC, WooCommerce y páginas de inicio de sesión personalizadas.

Otra opción es cambiar la ubicación de inicio de sesión de wp-admin. Por defecto, todos los sitios web de WordPress tienen sus páginas de inicio de sesión ubicadas en /wp-admin (por ejemplo, www.examplesite.com/wp-admin.) Los robots que realizan ataques de fuerza bruta suelen apuntar inmediatamente a esta página. Utiliza WPS Hide Login para ayudar.

Como siempre, antes de instalar plugins nuevos y no probados, conviene hacer una copia de seguridad de tu sitio. Aunque la mayoría de los plugins más populares no dañarán tu sitio web, siempre existe la posibilidad de una incompatibilidad. Una copia de seguridad te da la tranquilidad de que cualquier daño hecho por un plugin errante puede ser revertido rápida y fácilmente.

Autenticación HTTP del administrador de WordPress

Puedes bloquear aún más tu WP Admin añadiendo autenticación básica HTTP. Este proceso requerirá que el usuario introduzca un nombre de usuario y una contraseña antes de llegar a la página de inicio de sesión de WP, lo que puede ayudar a detener a los bots de fuerza bruta en su camino.

Para ello, tendrá que crear un archivo .htpasswd. Intenta usar un gran recurso gratuito de Hosting Canada para hacerlo. Tendrás que introducir el nombre de usuario que quieres utilizar junto con una contraseña, seleccionar un método de encriptación en el cuadro desplegable y hacer clic en "Generar contraseña". Se generará una larga cadena de texto. Cópiala y pégala en un nuevo archivo de texto. Guarda este archivo simplemente como '.htpasswd'. 

A continuación, inicie sesión en su servidor y diríjase a la carpeta wp-admin de WordPress. Ábrela y en wp-admin crea una nueva carpeta llamada 'htpasswd'. A continuación, suba a esta carpeta el archivo .htpasswd que hemos creado anteriormente. Debe transferir sus archivos usando sólo el modo 'ASCII' y no el modo 'BINARIO'. 

La última etapa consiste en crear un nuevo archivo que contenga lo siguiente:

AuthName "Admins Only"
AuthUserFile /home/public_html/wp-admin/htpasswd/.htpasswd
AuthType basic
Require user yourusername

<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

Tendrá que actualizar la ubicación de AuthUserFile con la URL completa del directorio de su archivo .htpasswd, así como su nombre de usuario con el nombre de usuario que utilizó para el archivo .htpasswd. Guarde este archivo como .htaccess y suba este archivo .htaccess a su carpeta wp-admin en su servidor, y eso es todo. La próxima vez que inicie sesión en su sitio en www.examplesite.com/wp-admin se le pedirá su nombre de usuario y contraseña antes de que aparezca la pantalla de inicio de sesión de WordPress Admin.

Consejo útil: Si no conoces la url completa del directorio de tu archivo .htpasswd, un truco muy útil es utilizar un pequeño script PHP:

<?php
    echo "Absolute path: ", getcwd();
?>

Cree un archivo que contenga este script llamado testpath.php y cárguelo en el archivo htpasswd y luego visite esta url (por ejemplo, www.example.com/wp-admin/htpasswd/testpath.php) para obtener la ruta completa de su archivo .passwd.

 Asegurar wp-includes

Hay scripts específicos incluidos en su instalación de WordPress a los que no se pretende acceder. Sin embargo, ofrecen una posible vía de acceso a su sitio por parte de los hackers. Por ello, puede valer la pena bloquearlos. Puede bloquear el acceso a estos archivos con un mod_rewrite en el archivo .htaccess. Para ello, añada el siguiente código a su archivo .htaccess (normalmente situado en la raíz del documento de su sitio de WordPress) fuera de las etiquetas # BEGIN WordPress y # END WordPress; de lo contrario, WordPress podría sobrescribirlo:

# Block the include-only files.
<IfModule mod_rewrite.c>
    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]
</IfModule>
 
# BEGIN WordPress

Desactivar la edición de archivos

Muchos aspectos de la seguridad de un sitio web de WordPress giran en torno a dificultar la vida de un posible pirata informático. De la misma manera que un ladrón buscará una casa en una calle sin luz y sin alarma o luces de seguridad, un hacker prefiere atacar un sitio web que carece de características básicas de seguridad en lugar de uno donde las ventanas y puertas metafóricas están firmemente cerradas.

Por defecto, WordPress permite a los administradores editar archivos PHP como temas y plugins desde el Dashboard. Como esta característica permite la ejecución de código, es un objetivo obvio para un hacker. Para la mayoría de los desarrolladores web, los cambios en el código se hacen con un editor de texto como Sublime y no desde el Dashboard. Tiene sentido "atornillar" esta ventana particular de WordPress y, al hacerlo, eliminar otro punto potencial de acceso para un hacker.

Para ello, coloque esta línea de código en el archivo wp-config.php. Esta línea elimina las capacidades 'edit_themes', 'edit_plugins', y 'edit_files' de todos los usuarios:

define(‘DISALLOW_FILE_EDIT’, true);

Aunque esto no evitará que un hacker cargue archivos maliciosos en su sitio, ayudará a detener algunos ataques en su camino.

Utilice un cortafuegos

Un firewall es una excelente manera de ayudar a prevenir que un atacante llegue a su sitio web de WordPress. Hay un par de opciones:

Un plugin de cortafuegos

Varios buenos plugins de cortafuegos funcionan restringiendo el acceso a nivel del servidor Apache antes de que WordPress lo procese. Un buen ejemplo es All In One WP Security & Firewall o WordFence. Ambos buscan filtrar las peticiones entrantes para asegurar que ningún tráfico malicioso pueda llegar a tu instalación de WordPress.

Cortafuegos intermedios

Plugins como WordFence filtran el tráfico a nivel de servidor. Un enfoque alternativo es interceptar el tráfico en su camino a su servidor antes de filtrarlo y luego enviar la solicitud a su servidor utilizando un producto como Cloudflare. Este enfoque es popular porque todo lo que necesita hacer es alterar sus registros DNS para enviar el tráfico a través de un intermediario sin necesidad de hacer cambios en su servidor. 

Próximos pasos

La seguridad de WordPress sigue siendo un tema popular. Si todo esto le parece un trabajo duro, considere la posibilidad de utilizar un alojamiento de WordPress gestionado como Pressidium, que puede hacer gran parte del trabajo pesado por usted. Y, por último, haga copias de seguridad periódicas de su sitio web para poder dormir tranquilo sabiendo que siempre podrá restaurar su sitio.


Comentarios (2)

  1. Author Photo
    Atul Kumar Pandey

    Excellent tips. Strong password and using limit login attempts are the quick fix for any WP blog. Being in the same industry I would like to add one more tip – use only trusted and highly rated themes and plugins.

  2. Author Photo

    A good password is great. Also, hiding or changing the wp-admin slug is really helps.

Dejar una respuesta

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