Máxima Seguridad en tu WordPress Login Personalizado

Marcos Séculi

La semana pasada, en una charla muy entretenida sobre la seguridad de WordPress con uno de mis clientes, Marc me preguntaba por qué tenía ataques constantes en su web. No entendía por qué alguien quería acceder al WordPress login de su web.

Marc es autónomo y vive de la venta de sus servicios a través de su web en WordPress, por lo que no se puede permitir que un hacker entre a su página web.

Así fue como decidí redactar este artículo en el que os quiero contar todo lo que tenéis que saber sobre el WordPress login, plugins para mejorar la pantalla de acceso, la seguridad, y otros temas relacionados.

Vamos a ello.

¿Qué es el WordPress login?

Es la pantalla a través de la cual accedemos al entorno de edición del contenido de WordPress, también conocido como admin de WordPress.

WordPress Login

Cambiar la URL de login

Puedes cambiar la URL del login a través de un plugin o hacerlo manualmente. ¿Qué ventajas tiene cada opción? Ahora mismo te lo explico:

La principal diferencia entre uno y otro es que, si más adelante cambias la plantilla, no tendrás que hacer ninguna modificación si has instalado un plugin. Si has cambiado la URL sin plugins, tendrás que volver a aplicar los cambios a la nueva plantilla.

Otro tema a considerar es que el uso masivo de plugins puede ralentizar la carga de tu web y ofrecer una mala experiencia de usuario (algo que a Google y a tus usuarios no les gustará nada).

Por eso, personalmente, prefiero siempre trabajar sin plugins.

De hecho, tengo una lista de todos los códigos que uso en mis plantillas, y como son todas 100% personalizadas y hechas por mi, simplemente copio y pego esta lista cuando creo una nueva plantilla de WordPress y elimino los códigos que no necesito.

Cambiar URL de login sin plugins

Existen 2 formas de hacerlo. A través del archivo .htaccess o mediante la creación de un nuevo archivo en PHP.

A partir de aquí, el contenido es para usuarios avanzados y expertos. Si consideras que no tienes conocimientos suficientes, por favor, no apliques los cambios a tu web ya que podría quedar inutilizable.

Nuevo archivo PHP

Para cambiar la URL del WordPress login creando un archivo nuevo sigue estos pasos:

  1. Abre el archivo wp-login.php con tu editor de código. Yo uso Sublime Text.
  2. Copia y pega todo el código en una nueva página y guárdala como más te guste. Te recomiendo usar un nombre fácil de recordar y que atienda a la lógica, por ejemplo, acceso-web.php.
  3. Usa el buscador de strings (cadenas de texto) para reemplazar “wp-login.php” por el nombre del archivo nuevo. En mi caso “acceso-web.php”.
  4. Guarda el archivo “wp-login.php” en un disco local (puedes guardarlo en tu ordenador), y elimínalo del servidor.
  5. A partir de ahora ya puedes probar el acceso a www.tuweb.com/nombre-del-archivo.php. Cualquier intento de acceso a través del /wp-login o de /wp-admin dará un error 404.

Para evitar ese error 404 añade este código en el functions.php de tu plantilla.

add_action('init','custom_login');
function custom_login(){
   global $pagenow;
   if( 'wp-login.php' == $pagenow ) {
   wp_redirect('http://tudominio.com/');
   exit();
   }
}

Ten en cuenta que deberás hacer este cambio cada vez que actualices WordPress, por lo que es algo que tendrás que apuntar para no olvidarte.

WordPress Login wp-login

.htaccess

Existe una forma menos segura que creando un nuevo archivo pero más sencilla; es a través del .htaccess.

Abre el archivo .htaccess y escribe lo siguiente:

RewriteRule ^nuevoacceso$ http://www.yoursite.com/wp-login.php [NC,L]

Ahora ya puedes acceder al WordPress login a través de www.tuweb.com/nuevoacceso

Cambiar URL de login con plugins

En la base de datos de WordPress existen muchos plugins que puedes usar para cambiar la URL de login. Aquí tienes una lista:

  • Custom Login URL
  • Rename wp-admin
  • Rename wp-login.php
  • WPS Hide Login

Te recomiendo que sigas las instrucciones que indica cada desarrollador y si tienes cualquier duda contactes conmigo.

Extra Seguridad al WordPress Login

No está de más complicar la vida a los hackers con estos consejos para tener un extra de seguridad en tu login de WordPress, ¿verdad?. Estos son mis sugerencias:

  • Usa contraseñas complicadas. Sí, son difíciles de recordar, pero te aseguro que poner una contraseña complicada hará que tengas una web WordPress más segura. Pero ojo, complicada no quiere decir que sea difícil de escribir, sino de que la escriba un algoritmo. No uses cadenas de textos como nombres, ciudades, animales, números… Añade guiones, guiones bajos, caracteres extraños… $%_·”+ o cualquier cosa que se te ocurra.
  • Autentificación en 2 pasos. También conocido como el 2-step autentification. Con Apache puedes indicar qué usuarios pueden acceder a determinadas páginas. Aquí tienes más información.
  • Limita el acceso. Delimita el acceso al login de WordPress para evitar ataques masivos.

¿Qué plugins WordPress podemos usar en el login?

Gracias a los plugins podemos personalizar por completo la pantalla de login de WordPress.

Por ejemplo, podemos permitir a los usuarios el registro a través de Facebook u otras redes sociales usando el WordPress Social Login plugin.

También podemos hacer todo esto:

  1. Añadir un fondo personalizado.
  2. Reemplazar el logo de WordPress por nuestro logo.
  3. Personalizar el diseño o look&feel del formulario.
  4. Cambiar el enlace del logo.
  5. Eliminar el link de “¿Has olvidado tu contraseña?”.
  6. Eliminar el link de “Volver”.
  7. Esconder el mensaje de error.
  8. Eliminar las animaciones cuando fallas la contraseña.
  9. Cambiar la redirección de la URL (la página a la que llegas después de hacer login).
  10. Establecer el botón de “Recuérdame” como marcado.

Puedes buscar “customize wordpress admin page plugin” en Google para ver todos los plugins disponibles.

Deja un comentario o contacta conmigo si quieres que personalice tu login de WordPress.

Personalizar el WordPress Login con CSS

Si sabes maquetar con CSS o simplemente quieres aprender, sigue estos pasos.

  1. Crea una nueva carpeta llamada “login” dentro de la carpeta de tu plantilla.
  2. Dentro de esta nueva carpeta crea un archivo css que se llame custom-login.css.
  3. Añade el siguiente código al archivo functions.php de tu plantilla y añade el código css que desees.
function ms_login() {
    echo '<link rel="stylesheet" type="text/css" href="' . get_bloginfo('stylesheet_directory') . '/login/custom-login.css" />';
    }
add_action('login_head', 'ms_login');

Conclusiones

Hoy hemos visto:

  • El login de WordPress ha de tener una contraseña fuerte y segura.
  • Se puede cambiar la URL del WordPress login con o sin plugins.
  • Gracias a un pequeño fragmento de código podemos personalizar por completo la pantalla de login de nuestra web en WordPress.

  • Muy interesante el tutorial. Como no quiero utilizar plugins, había intentado lo de cambiar el .htaccess sin que me funcionara. El sistema de crear un nuevo archivo php sí me funciona. Sin embargo, al hacerlo, pierdo los estilos de la página de login. ¿Tendrías la amabilidad de indicarme qué cambios tendría que hacer y dónde para conservar la apariencia de la página? Desde ya, muchas gracias por el contenido tan bueno.

    • Buenas tardes Eduardo,

      Lo podrás solucionar comprobando que la Hoja de Estilos (.css) esté correctamente enlazada desde tu nueva página.
      ¿Puedes comprobarlo a través del código fuente?

      Un saludo,

      • Hola. Gracias por responder tan rápido, Marcos.

        He seguido los pasos del apartado “Personalizar el WP login con CSS” de este mismo artículo. Luego, sencillamente, he copiado el contenido de login.css de la ruta wp-admin/css de mi web al nuevo archivo custom-login.css de la carpeta login que he creado dentro del theme que utilizo. He añadido el código que indicas a function.php.

        Al comprobar el código fuente, veo que hay un link de stylesheet que se dirige al archivo custom-login.css por la ruta correcta. Sin embargo, la página de login sigue saliendo sin ningún estilo, totalmente desconfigurada. Se ve mi logo, pero, superpuesto al mismo, el título de la imagen. Luego los campos de login y clave, pero ocupan todo el ancho de la pantalla. Vamos, que no sale el cuadrito mono habitual, jaja.

        ¿Se te ocurre qué podría ser?

        • Hernán Zapata

          Bueno yo lo solucione al poner ./ en inicio del link por ejemplo entre en functions.php del tema y agregue: /login/custom-login.css Lo mismo hice para colocar imagen de fondo al login, dentro de la carpeta login cree una carpeta image y alli guarde la imagen y entre en custom-login.css y la llame asi: ./images/home-office-01.jpg

  • Hernán Zapata

    Hola Marcos felicitaciones, esta genial el tutorial, en el caso del tutorial

    “Cambiar URL de login sin plugins” hice todo y funciona bien, lo unico es que me da error al desloguearme, ya que no consigue la nueva pagina de login y al buscar wp-login obviamente no la consigue, ¿Como podria resoilver esto?, saludos
    tengo una duda en el

    • Gracias Hernán. Seguro que tu comentario es muy útil para otros usuarios que puedan tener que resolver la misma situación.

      ¡Feliz día!

      • Hernán Zapata

        sip no consigo que se desloguee, se queda logueado