Pasear con un agricultor por las tierras de cultivo, es como ir de patrulla por el campo.
«Ir de patrulla», consiste en montarse en la furgoneta y recorrer los diferentes parajes, vas parando en cada uno de los cultivos, para comprobar el estado de las plantas, del suelo, si hay algún tipo de plaga, el nivel de hidratación, y mil cosas más que a mi se me escapan, pero a un agricultor no.
Lo que no se me escapa, es que no vale con sembrar la tierra y regar, tienes que estar pendiente, y vigilar que todo va como es debido.
Aplicar esta filosofía a tu sitio web te puede evitar muchos disgustos.
Si quieres cosechar frutos no vale con colgar tu página en internet y olvidarte, tienes que hacer un seguimiento y corregir si es necesario.
WordPress no es sólo un conjunto de ficheros php y páginas de estilo, es un entorno de trabajo modular y complejo que nos facilita la labor, pero que necesita de mantenimiento.
Ya he hablado antes sobre buenas prácticas de seguridad, hacer copias de seguridad o de mantener WordPress actualizado.
Y pienso que es interesante dar un paso más y blindar el núcleo de WordPress («Hardening WordPress Core«).
También me gusta decir: Gardening WordPress, para recordar que por mucho que blindemos WordPress, mantener la instalación segura, hay que revisar y actualizar con frecuencia.
Vamos a ver en qué consiste y cómo se hace.
Blindando WordPress
Bloquear el acceso a la carpeta wp-includes
El núcleo de WordPress está compuesto por un conjunto de archivos y carpetas.
Cualquiera con un poco de conocimiento sobre la estructura de carpetas puede acceder a estos archivos, y esto es peligroso si se trata de alguien con malas intenciones.
Para evitar esto se puede añadir instrucciones de configuración en el fichero .htaccess.
.htaccess es un fichero que contiene expresiones regulares que son interpretadas por el servidor.
Si no lo ves dentro de la carpeta de instalación de WordPress prueba a cambiar la configuración de los enlaces permanentes en Ajustes > Enlaces Permanentes.
Esto hace que se genere el fichero .htaccess que originalmente tendrá este contenido:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Debes situar el siguiente bloque de código:
# INICIO - Bloquear acceso a los ficheros include. <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>
# FIN- Bloquear acceso a los ficheros include.
Antes del bloque de configuración de WordPress, para evitar que se pierda tu configuración en caso de actualización.
# BEGIN WordPress ...
# END WordPress
Ahora, si alguien intenta acceder a estos ficheros se bloqueará el acceso y será dirigido de vuelta a la página principal de la web.
El último paso consiste en actualizar la página y comprobar que todo va bien y puedes acceder a la página normalmente.
Si no es así, no hay que entrar en pánico, basta con deshacer los cambios y todo funcionará correctamente.
Para modificar el fichero .htaccess, puedes descargarlo vía ftp, actualizarlo y luego subirlo.
Y si te da reparo andar jugando con estas cosas es mejor recurrir a alguien con experiencia.
Bloquear el acceso al fichero wp-config.php
Este fichero es importante por varios motivos.
Hace posible que WordPress pueda acceder a la base de datos.
Pero también contiene información importante como el nombre de la base de datos, el nombre de usuario de la base de datos, contraseña de acceso a la base de datos y el prefijo de las tablas.
La buena noticia, es que podemos bloquear el acceso a este fichero igual que hemos hecho con el contenido de la carpeta wp-includes.
Añadimos este bloque de configuración al fichero .htaccess:
# INICIO - Bloquear acceso al fichero wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# FIN - Bloquear acceso al fichero wp-config.php
Y evitamos que alguien desde internet pueda tener acceso al fichero wp-config.php.
Si necesitas modificar este fichero tendrás que hacerlo por ftp.
Igual que en el apartado anterior, no olvides actualizar para ver que todo va bien, si hay algún problema ya sabes como solucionarlo.
Cómo utilizar las claves de seguridad de WordPress
WordPress utiliza estas claves para comprobar que eres realmente quien dices ser.
Estas claves se comprueban en cada petición que haces al servidor, para asegurar que no hay otra persona haciendo cambios a tu contenido en tu nombre.
Por eso es importante comprobar que estas claves están en el fichero de configuración wp-config.php.
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
define('AUTH_KEY', 'aF~>p4xX?V%?EF8`%2c{+7NOW6_Ow)_dHu#o61l+@n<m[,JrwHyN~l>7cx|[fB)W');
define('SECURE_AUTH_KEY', 'A]<t+trx`YKX?L{_,HfhT-Bb*ZTm[n_XV3h&.T|in3#P}iu)%u3-I7NO~1K^T:cD');
define('LOGGED_IN_KEY', '*l4Dec(A^/-844)C=pK-kk6}p]wfbNd]7 ;%B+5PgmjC:J*)AY?>h[5YR.>w[{SI');
define('NONCE_KEY', 'eXG +NJ|)e6C%VuX:|q;-(~>_cdRg<=h;3m<k%CU.Xn6~#cdM f>J`BY&jvVK/Wy');
define('AUTH_SALT', '$Qtx4>FJg+Z3|n-OrPe3,{_F[UGk-hM^B2,tYU#SsiJi~/jQ~aX_,Y%D,>ee,/R<');
define('SECURE_AUTH_SALT', 'fKTu%0-UX0[l6eE;]bEhdx5.b{}^%!E,w)~UQN{If>`o(EW|,V^EJ}Sgjdv@-On9');
define('LOGGED_IN_SALT', '>3`1 rv*qpL[X#+aKd|`bXZ*Z>7etep3:`g]lw]U*qA1V1gZsP|;z6V(6sc]3&2V');
define('NONCE_SALT', 'kQB@Ny_!Th~wC9!#^P2 Al;jlUQXMM6Nrzg0R/gBKn>)i?P{7n3Jw?t,,Mk)D(JW');
/**#@-*/
Es raro que pase, pero puede suceder que las claves no estén en el fichero por una mala instalación, o que por cualquier otro motivo necesites generar las claves otra vez.
En ese caso, puedes generar claves nuevas utilizando este enlace.
A continuación, copias estas nuevas claves en tu fichero wp-config.php y guardas los cambios.
Tendrás que reiniciar la sesión y volver a identificarte en tu página, pero esta vez ya tendrás actuando las nuevas claves.
Recuerda:
- Comprobar que tienes las claves en tu fichero de configuración siempre que haces una nueva instalación de WordPress.
- Si tienes la intuición de que la seguridad de tu página está comprometida, genera un nuevo juego de claves y actualiza tu fichero de configuración con ellas.
Bloquea la edición de ficheros desde la consola de administración de WordPress
Por defecto, tienes acceso para editar los ficheros de temas y plugins desde la consola de administración de WordPress.
Esto es peligroso, porque si cambias algo en uno de los ficheros no puedes deshacer lo que has hecho como en un editor normal.
Y en caso de romper algo, te puedes quedar sin acceso a tu web a través del panel de administración.
Además, si alguien se cuela en la administración de tu WordPress irá directo a este editor para alterar lo que quiera a placer.
Para evitar esto, tenemos que pegar esta línea de código:
define('DISALLOW_FILE_EDIT', true);
En el fichero wp-config.php
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
define('DISALLOW_FILE_EDIT', true);
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
De esta forma, no sólo evitas que alguien ajeno a tu web pueda editar ficheros importantes, también evitarás tumbar tu propia web por accidente.
Conclusiones
Ya sabes en qué consiste blindar el núcleo de WordPress y cómo se hace, incluso puedes hacerlo utilizando un plugin como Sucuri.
Esto no significa que te puedes olvidar de la seguridad de tu web, la verdadera seguridad de tu web viene de la revisión y el cuidado continuado.
Que tengas un gran día.
0 comentarios