Optimiza tu WordPress.
Aunque no soy muy dado a guías, me parece interesante compartir unos apuntes básicos. Se completan en 10 minutos y tratan de mejorar la seguridad de tu web. Son configuraciones que debes cambiar inmediatamente en tu WordPress. Y es que por muy básicas que sean, la mayoría de gente sigue sin aplicarlas.
Quería algo fácil, casi insultante. Tan sencillo que sólo haga falta una cuenta FTP y el panel de administración. Todo aquel que haya instalado un WordPress en su vida debería ser capaz de seguirlo.
#1 – Elimina la cuenta admin
No dudo que sea un golpe fuerte para tu ego pero créeme, si tienes algún lector, te reconocerá por tu nombre.
Cualquiera que haya instalado un WordPress sabe que admin es el usuario por defecto, y además, el que posee todos los poderes. Eso lo hace muy apetecible para los ataques de fuerza bruta. Se trata de un tipo de ataque frecuente entre malhechores que consiste en, conociendo un username probar todas las posibles combinaciones como contraseña. Y no te imaginas lo rápidos que son los ordenadores probando combinaciones.
No tientes a la suerte. La cuenta admin no tiene cabida en tu blog.
Cómo lo hago:
Crea un usuario nuevo y darle permisos de “Administrador”.
Login con el usuario recién creado.
Elimina el usuario admin (el viejo). Preguntará si quieres eliminar los posts existentes o enviarlos a otro usuario. Elige la segunda opción y asígnalos al usuario que acabas de crear.
#2 – Utiliza nickname en lugar de username
Las cuentas nuevas, utilizan por defecto el valor username. Este es el valor que WordPress muestra como autor al escribir un post. Al igual que pasa con la cuenta admin, a partir de un username conocido y con la dosis de paciencia adecuada, obtener contraseñas a base de fuerza bruta no es complicado.
Solución:
Editar el “Alias” / “Nickname” del usuario. Éste será el nombre con el que se mostrará el usuario, ocultando así su username.
Intento ilustrarlo un poco mejor con el antes, y el después.
#3 – Elige una contraseña “Strong”
Utiliza (sí, imperativo) contraseñas complejas, con el mayor número de caracteres posible. Cuanto más compleja sea una contraseña más costará a cualquier persona, ordenador o programa obtenerla.
Independientemente de lo que diga WordPress, puedes comprobar la fortaleza de tu contraseña mediante esta fantástica herramienta. Cabe destacar que esta práctica es recomendable para cualquier servicio que utilices en la red.
#4 – Eliminar el archivo readme.html de la carpeta raíz
Toda instalación de WordPress viene con un archivo readme.html en la carpeta raíz. Este archivo expone la versión de WordPress que está siendo utilizada. Es una torpeza, se mire por donde se mire. Aportar pistas gratuitas a posibles atacantes es una forma fantástica de acabar de heces hasta el cuello.
Hazte un favor y elimina este archivo. Lo único que hará es causarte problemas.
#5 – Elimina temas y plugins que no utilices
Cada tema o plugin es como una nueva puerta en casa. Cuantas más haya, más tendremos que supervisar. Y por tanto, aumenta la posibilidad de que algún pestillo no esté bien cerrado.
Al instalar un plugin, estamos añadiendo una nueva puerta a nuestra casa. Si la puerta está defectuosa, muy posiblemente no nos daremos cuenta hasta que alguien la tire abajo.
Es por eso por lo que cada plugin o cada tema, es potencialmente peligroso para nuestra web. La seguridad de todo el bloque está directamente relacionada con la fortaleza / debilidad de sus plugins.
Por tanto:
Elimina todos los plugins innecesarios.
Elimina todos los plugins que no utilices.
Elimina todos los temas innecesarios
Elimina todos los temas que no utilices.
#6 – Genera un archivo robots.txt en condiciones
User-agent: *
Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-
El archivo robots.txt es utilizado por los crawlers. Son programas (como Googlebot) que analizan la web de forma automática. Entre otras cosas, se encargan de que todo el contenido de una web se vea en los buscadores. Rastrea todo lo que encuentra por el camino a no ser que nosotros le indiquemos lo contrario. El generar por nuestra cuenta un archivo robots.txt nos ayudará a que Google (y otros buscadores) sepa qué mostrar en los resultados de búsqueda y qué no.
Solución:
Descárgate este archivo.
Súbelo al directorio raíz de WordPress.
Oye, esto es demasiado fácil, ¿verdad?
#7 – Desactivar los errores de la página de Login
Este código anula los errores de la página de Login y sustituye cualquier mensaje informativo por un clarificador “Ooooops!”. Con esto evitamos que WordPress arroje información valiosa, como “el usuario es incorrecto” o “La contraseña que introdujo para el usuario xxx no es correcta”.
Solución:
Añadir esas 3 lineas al final del archivo functions.php, en el propio tema.
#8 – Eliminar la basura de la etiqueta <head>
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
La etiqueta <head> del HTML viene, por defecto, repleta de porquería. Podemos observar la versión de WordPress, RSD, Windows Live Writter, etc.
La solución no es otra que eliminar toda esa basura:
Añade esas 7 lineas al final del archivo functions.php, en el propio tema.
#9 – Desactivar editor del panel de administración
define('DISALLOW_FILE_EDIT', true); // Added manually
Este es uno de mis favoritos. Desactiva la opción del editor de código. Evita que cualquier usuario con acceso al panel pueda modificar los archivos CSS/PHP. Y de paso, previene que tus manazas puedan cargarse la web.
Solución:
Añadir esta linea al final del archivo wp-config.php, en el directorio raíz de WordPress.
#10 – Desactivar actualizaciones de plugins desde el panel
define('DISALLOW_FILE_MODS', true); // Added manually
Este es otro de los que me gusta. Desactiva la posibilidad de actualizar e instalar plugins desde el panel de administración. Es algo muy recomendable por los problemas que puede ocasionar en las actualizaciones. Evitamos además que alguien que haya conseguido colarse en nuestro panel quite y ponga según le plazca.
Solución:
Añadir esta linea al final del archivo wp-config.php, en el directorio raíz de WordPress.
#11 – Desactivar el código HTML en los comentarios
Un must para mi. En pocas palabras y para entendernos a la primera, se encarga de desactivar el código HTML en los comentarios. No es que borre el código, sino que lo procesa para que no se ejecute. Parece lo mismo pero no lo es.
¿Y cuál es el problema de aceptar código HTML? Permitiendo insertar algo tan teóricamente inofensivo como imágenes, un usuario avanzado podría escribir un código como este:
<img/onload="alert(String.fromCharCode(89,111,117,32,103,111,116,32,104,97,99,107,101,100,32,98,121,32,119,119,119,46,97,117,114,107,101,110,46,110,101,116))" src="http://www.holafamilias.com/wp-content/uploads/2010/11/hola-11.jpg"/>
function login_errors_message() {Primeras lineas de código. Seguro que alguno ya no ha podido resistirse y ha ido corriendo al baño. Bueno, para el que quede por aquí, debo decirte que me siento orgulloso de ti.
return 'Ooooops!';
}
add_filter('login_errors', 'login_errors_message');
Este código anula los errores de la página de Login y sustituye cualquier mensaje informativo por un clarificador “Ooooops!”. Con esto evitamos que WordPress arroje información valiosa, como “el usuario es incorrecto” o “La contraseña que introdujo para el usuario xxx no es correcta”.
Solución:
Añadir esas 3 lineas al final del archivo functions.php, en el propio tema.
#8 – Eliminar la basura de la etiqueta <head>
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
La etiqueta <head> del HTML viene, por defecto, repleta de porquería. Podemos observar la versión de WordPress, RSD, Windows Live Writter, etc.
La solución no es otra que eliminar toda esa basura:
Añade esas 7 lineas al final del archivo functions.php, en el propio tema.
#9 – Desactivar editor del panel de administración
define('DISALLOW_FILE_EDIT', true); // Added manually
Este es uno de mis favoritos. Desactiva la opción del editor de código. Evita que cualquier usuario con acceso al panel pueda modificar los archivos CSS/PHP. Y de paso, previene que tus manazas puedan cargarse la web.
Solución:
Añadir esta linea al final del archivo wp-config.php, en el directorio raíz de WordPress.
#10 – Desactivar actualizaciones de plugins desde el panel
define('DISALLOW_FILE_MODS', true); // Added manually
Este es otro de los que me gusta. Desactiva la posibilidad de actualizar e instalar plugins desde el panel de administración. Es algo muy recomendable por los problemas que puede ocasionar en las actualizaciones. Evitamos además que alguien que haya conseguido colarse en nuestro panel quite y ponga según le plazca.
Solución:
Añadir esta linea al final del archivo wp-config.php, en el directorio raíz de WordPress.
#11 – Desactivar el código HTML en los comentarios
Un must para mi. En pocas palabras y para entendernos a la primera, se encarga de desactivar el código HTML en los comentarios. No es que borre el código, sino que lo procesa para que no se ejecute. Parece lo mismo pero no lo es.
¿Y cuál es el problema de aceptar código HTML? Permitiendo insertar algo tan teóricamente inofensivo como imágenes, un usuario avanzado podría escribir un código como este:
<img/onload="alert(String.fromCharCode(89,111,117,32,103,111,116,32,104,97,99,107,101,100,32,98,121,32,119,119,119,46,97,117,114,107,101,110,46,110,101,116))" src="http://www.holafamilias.com/wp-content/uploads/2010/11/hola-11.jpg"/>
No hay comentarios:
Publicar un comentario