Proteger y asegurar mi blog de WordPress

Medidas elementales para mantener a salvo nuestro sitio, evitar ataques, el acceso no autorizado la inyección de código maligno y otros riesgos de seguridad.

Los sitios creados con WordPress poseen mala fama, debido a la gran cantidad de vulnerabilidades descubierta tiempo atrás y al hackeo intenso al que son sometidos.
WordPress es de código abierto y por eso es inspeccionado constantemente por atacantes y empresas de spam.
No obstante si tomamos las medidas necesarias no debemos de preocuparnos por la seguridad.
En esta entrada dedicada a aficionados, comparto las medidas de seguridad recomendadas por el propio WordPress, como otras de expertos independientes.
Todas se pueden implementar sin poseer conocimientos avanzados, solo dedicando un poco de nuestro tiempo.


Medidas elementales para resguardar WordPress

Usar una contraseña segura

Usar una contraseña fuerte y sustituirla periódicamente, es una de las medidas de seguridad elementales y lógicas.
No es nada difícil porque se pueden crear manualmente, usando una combinación de letras en mayúsculas y minúsculas, números y caracteres especiales.

Evitar código peligroso y dañino en nuestro sitio

Según WordPress los riesgos más frecuentes de seguridad, están ocasionados por los temas y los plugins.
Cualquier persona sin los conocimientos necesarios puede crear un tema y compartirlo o distribuirlo y del mismo modo un plugin, el que puede ser catastrófico.
Además no todos usamos la misma versión de WordPress, ni nuestro servidor la misma versión de PHP o de MySQL que los desarrolladores, por lo que en ocasiones suceden diversos conflictos.
Se aconseja instalar solo temas o plugins de desarrolladores profesionales, que aseguren un correcto soporte y actualización.
En el caso de los plugins solo debemos de instalar los que sean estrictamente necesarios, porque adicionalmente siempre afectan el rendimiento y velocidad del sitio.
Como explico en otro artículo, la función que realizan la gran mayoría de los plugins, podemos implementarla manualmente con solo unas líneas de código.
A los que deseen probar constantemente nuevas funciones, se les recomienda crear y mantener una instalación local de WordPress en la computadora.


Usar los permisos adecuados en carpetas y archivos del servidor

Otra de las medidas para mantener nuestro sitio a salvo, es comprobar que los archivos y directorios poseen los permisos necesarios..
Aunque en la instalación de WordPress se deben de establecer, no siempre sucede así.
Podemos comprobarlos usando un cliente SFTP o mediante la consola, si se tiene acceso.
Los permisos deben ser los siguientes:

– Directorios 755 o 750
– Archivos 644 o 640
– El archivo de configuración “wp-config.php” requiere permiso 444 o 440.
– Archivo “index.php” 666

Nunca se debe asignar el permiso 777 a cualquier directorio o archivo.
En otro artículo se puede encontrar información más detallada: Errores de permisos al instalar WordPress


Crear una clave secreta (secret key) en WordPress

WordPress permite generar una clave secreta, para reforzar la seguridad de la contraseña de acceso.
Consta de cuatro frases o grupos de caracteres, los que se agregan a una cookie en el navegador que empleamos para autentificarnos.
No es necesario crear las frases ni recordarlas, simplemente debemos de acceder con el mismo navegador con el que cargamos el panel de administrador, al siguiente Generador de claves de WordPress.
Copiamos los caracteres generados de forma aleatoria y los pegamos en nuestro archivo “wp-config.php”, el que posteriormente subimos por SFTP al servidor.
Clave secreta en el archivo wp-config de WordPress
En caso de no poder acceder con otro navegador, solo necesitamos generar una nueva clave secreta y sustituirla, siempre accediendo por SFTP.

Proteger el archivo wp-config.php con htaccess

El archivo “wp-config.php” de WordPress es un archivo de configuración del sitio.
En él se almacenan datos como la contraseña y usuario de la base de datos de MySQL y otros parámetros importantes.
Además de asegurarnos que posee los permisos necesarios, que impiden su lectura, WordPress recomienda protegerlo agregando las siguientes instrucciones al archivo htaccess situado en la raíz del blog, el que se genera automáticamente.

<files wp-config.php>
order allow,deny
deny from all
</files>

 

¿Qué es el archivo Htaccess?
Los archivos “.htaccess” (poseen un punto delante), son usados en servidores Apache para establecer directivas en el directorio donde se encuentra situado y en los descendientes.
En Windows no se puede crear ningún archivo que comience con un punto, pero si podemos copiar el situado WordPress y editarlo o hacerle copias.

 


Proteger el directorio WP-Includes con htaccess

El directorio “wp-includes” contiene varios archivos auxiliares de WordPress, incluyendo scripts, que un atacante puede modificar y convertirlos en dañinos.
WordPress recomienda protegerlo, agregando las siguientes instrucciones al mismo archivo htaccess anterior, situado en la raíz del blog.

<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>

 


Proteger el directorio WP-Admin con contraseña

El directorio “wp-admin” es uno de los más importantes y sensibles de WordPress.
Se recomienda agregar un sistema de doble autentificación con contraseña.
De esa forma aunque logren romper nuestra contraseña principal por fuerza bruta, será imposible acceder a este directorio, donde se encuentran los archivos del núcleo de WordPress.
Para eso debemos de agregar en su interior un archivo htaccess, que obligue al usuario a autentificarse.
La contraseña necesaria se guarda encriptada en un archivo de nombre “.htpasswd” que debe estar situado en los archivos que no son públicos del servidor.

¿Cómo encriptar una contraseña?

El archivo htpasswd con la contraseña encriptada se puede obtener o crear de dos formas:
1- En el generador online Htpasswd Generator.
2- Los que poseen una instalación local de Apache, pueden hacerlo usando la aplicación “htpasswd.exe”, situada en la carpeta Apache – bin.
Para eso en dicho directorio abre la consola (escribe en la barra de direcciones CMD y presiona Enter).
A continuación introduce la siguiente instrucción y presiona Enter.
htpasswd -cb .htpasswd usuario contraseña
Después de eso crea un archivo htaccess con las siguientes líneas:

AuthType Basic
AuthName "Directorio protegido wp-admin"
AuthUserFile /home/ruta/.htpasswd
Require valid-user

Finalmente sube al servidor por SFTP los archivos .htaccess y .htpasswd


Proteger el archivo wp-login.php con contraseña

Sistema similar al anterior para blindar el archivo “wp-login.php”, encargado de la autentificación en WordPress.
En este caso el código que impone la autentificación se agrega al htaccess principal del blog y se puede usar el mismo archivo de contraseña, que en el método anterior.
Usa el siguiente código

AuthType Basic
AuthName "Acceso restringido al login"
AuthUserFile /home/ruta/.htpasswd
require valid-user
</files>

Deshabilitar la edición de código PHP en el panel de administración

WordPress aunque incluye esta funcionalidad, que permite editar los archivos PHP, recomienda deshabilitarla por cuestiones de seguridad.
Para eso debemos de incluir dentro del archivo “wp-config.php” la siguiente instrucción:

define( 'DISALLOW_FILE_EDIT', true );

Asegurar la carpeta Uploads

El directorio Uploads situado en “wp-content”, es una de los más peligrosos en WordPress, por cuestiones de seguridad.
Además de asegurarnos que posee los permisos necesarios, como explique más arriba, podemos asegurarla de forma extra, situando en su interior un archivo htaccess con las siguientes instrucciones.

<Files ~ "\.ph(?:p[345]?|t|tml)$">
   deny from all
</Files>

Mantener un respaldo o backup del sitio actualizado

Es sumamente importante mantener siempre un respaldo actualizado, principalmente de la base de datos y de archivos difíciles de reponer como el contenido de la carpeta Uploads.
La copia y respaldo de los archivos se puede hacer manualmente, usando aplicaciones como WinSCP (permite crear imágenes completa o mirrors) o usando plugins de WordPress como UpdraftPlus, el que uso yo personalmente.
Hace respaldos automáticos, los que se guardan en servicios externos como Google Drive o DropBox y en caso de cualquier conflicto nos permite restaurar los archivos dañados.

Usar un firewall para proteger el blog

Un firewall es un filtro entre el blog y el resto de internet.
Estos servicios bloquean amenazas potenciales de todo tipo, incluyendo usuarios con código maligno en su navegador.
Uno de los más famosos y disponible gratis es CloudFlare, que además funciona como un poderoso CDN (mantiene en cache archivos estáticos como imágenes, scripts y CSS).

Estoy en: NorfiPC | Notas | WordPress | Proteger y asegurar mi blog de WordPress



Buscar con Google