WordPress es muy popular para la creación de sitios web, pero también es popular para intentar ataques de seguridad, por ello es importante tomar algunas medidas con el objetivo de mejorar la seguridad de nuestra sitio web.
Actualizaciones
Una de las formas más sencillas de proteger tu sitio es actualizar WordPress de manera seguida, los desarrolladores siempre incluyen mejoras de seguridad en las nuevas versiones.
1.- Actualizar WordPress: Actualiza de manera regular WordPress, puedes configurar las actualizaciones automáticas agregando la siguiente línea en el archivo wp-config.php
:
define('WP_AUTO_UPDATE_CORE', true);
2.- Plugins y Temas: Elimina los plugins o temas que no uses. Actualiza de manera frecuente los plugins y temas que tienes instalado en su sitio.
Inicio de Sesión
1.- Evitar el usuario admin: En la mayoría de instalaciones de WordPress el usuario con perfil de Administrador se llama admin
, por ellos los atacantes siempre intentan usar este usuario para los ataques de fuerza bruta. Puedes renombrar tu usuario directamente base de datos con el script SQL:
UPDATE wp_users SET user_login = 'admktv2477mainusr' WHERE user_login = 'admin';
2.- Contraseñas complejas: Mientras mas compleja sea la contraseña entonces será mas difícil de ser vulnerada, por ello se recomienda:
- Debe tener al menos 10 caracteres, mientras mas grande mejor.
- Debe contener letras mayúsculas, minúsculas, números y caracteres especiales.
- La clave no debe contener datos personales (cumpleaños, nombres, apellidos, etc)
- Puedes crear tus contraseñas usando generadores de contraseñas online.
3.- Restringir acceso por IP: De ser posible configura para que el acceso al panel de administración sólo se pueda acceder desde determinadas IPs (Casa, oficina, etc). Puedes agregar esta restricción en el archivo .htaccess
:
<files /wp-login.php>
order deny, allow
allow from 12.34.56.77 # Your office ip address
allow from 12.34.56.78 # Your home ip address
deny from all
</files>
4.- Agregar Seguridad Extra: Agrega autentificación en dos pasos (2FA) o bloqueo por intentos fallidos, puedes usar plugins como Wordfence o Google Authenticator pueden implementar fácilmente estas mejoras.
Archivo wp-config.php
El archivo de configuración de WordPress wp-config.php
permite diversas configuraciones que pueden ayudar en la seguridad:
1.- Desactivar edición de archivos: el panel de administración permite editar los archivos del tema o plugins usados, esto facilita los cambios rápidos, pero también permite a los atacantes a hacer modificaciones en tus archivos. Para desactivar la edición de archivos agrega a tu configuración:
define('DISALLOW_FILE_EDIT', true);
2.- Configurar Keys Salts: los Keys Salts son constantes de seguridad usadas para la encriptación de sesiones y autenticación de cookies. Estas claves permiten que la información guardada en cookies y sesiones esté cifrada. Puedes crear tus Keys Salts en WordPress Salt Generator y luego pegarla en tu archivo de configuración.
define('AUTH_KEY', 'mo!,.I/=0mK,t/=[Fy.J=e!!)Qcc[=v]9HX($~_~Nfr&`~S[ak)AM~g{5P|-8{nD');
define('SECURE_AUTH_KEY', 'Wjq+4.s#,S+S+V0]zQ(>a]0.49a+BYim<CwipG-T*VY[FO^!n6cb+%?8gyjq%yP|');
define('LOGGED_IN_KEY', 'rx^G,fyLKalRlg4xpL:vXwXvp!a1;cEf1K7ib#pg+RK}SF-TAoX#<*TzqYW-)eWw');
define('NONCE_KEY', 'AUS(G=5XvW`q2}@o;`ea#B%q3OR yS>D]K(sYEV%Rh0=r|t-fdbEGl]0[kRv]W|_');
define('AUTH_SALT', '&9D)C7iu+H|:r!C=2WLVDVa|F5J_;)iCjPFR:!NM:aA:tj;IM*>=tT>f_1b<&=&r');
define('SECURE_AUTH_SALT', 'gv|mQ)c1_Ko-U3F -[a! 2tkhJtR9:b3|(!JA{X0u;tmAV~KXYl@rCO/T|%?bz8s');
define('LOGGED_IN_SALT', 'Ziq>/dFP+d_dyd.sD<Ct_g+-6-G:(UX$UuMcooo%uCe||9K(*$X*n!j$8>hW}3 )');
define('NONCE_SALT', 'biJqQA9J%1[>?%/P~vm2,Z|c}]qK8}t~Yfao-?Y-{D=|x((^BiR~zOL?Pj>72?C7');
3.- Desactivar el modo Debug: el modo Debug muestra los errores o advertencias que ocurren al procesar una solicitud, esto es útil para el proceso de desarrollo pero para un sitio en producción puede exponer datos de su servidor o instalación. Puedes desactivar el modo Debug con:
define('WP_DEBUG', false);
Permisos de Archivos
WordPress puede escribir directamente varios archivos, pero esto puede ser peligroso en servidores compartidos, por ello se recomienda se recomienda bloquear los permisos sobre los archivos tanto como sea posible.
- Archivos: Los archivos deben tener permisos
644
, lo que significa que el propietario puede leer y escribir, mientras que otros solo pueden leer. - Carpetas: Las carpetas deben tener permisos de
755
, para que el propietario puede leer, escribir y ejecutar, pero otros usuarios solo pueden leer y ejecutar. - wp-config.php: Requiere un permiso más restrictivo como
400
donde solo el propietario puede leer el archivo.
Puedes configurar los permisos en línea de comando son los siguientes comandos:
find /var/www/domain.com/ -type d -exec chmod 755 {} \; # permission to directories
find /var/www/domain.com/ -type f -exec chmod 644 {} \; # permission to files
chmod 400 /var/www/domain.com/wp-config.php # Permission config file
Archivo .htaccess
En el caso tu servidor web sea Apache puedes usar el archivo .htaccess
para agregar varias configuraciones adicionales de seguridad:
1.- Desactiva XML-RPC: El archivo XML-RPC permite a aplicaciones externas interactuar con WordPress, sin embargo, es una puerta para ataques de fuerza bruta. Si no lo utilizas, es recomendable desactivarlo.
<Files "xmlrpc\.php">
Order Allow,Deny
Deny from all
</Files>
2.- Protege tu archivo wp-config.php: Puedes configurar para que nadie puede acceder al archivo de configuración usando la siguiente configuración:
<FilesMatch "wp-config\.php">
Require all denied
</FilesMatch">
3.- Desactiva listado de archivos: en algunas ocasiones, cuando una carpeta no contiene el archivo index.html o index.php el servidor web muestra un listado de todos los archivos de la carpeta. Puedes deshabilitar esta opción con:
Options All -Indexes
4.- Eliminar headers de Servidor: Los servidores web agregar headers
que indican el tipo y la versión del servidor, esto lo usan los atacantes para preparar sus intentos de acceso. Puedes desactivar estos headers con:
ServerSignature Off
ServerTokens Prod
5.- Prevenir Hotlinking: El hotlinking consiste en usar las imágenes que están alojadas en tu servidor en otras webs, de esa manera los atacantes consumen ancho de banda y recursos de tu servidor. Puedes prevenir esto mediante:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} \
!^http://(www\.)domain.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|png)$ – [NC,F,L]
6.- Evitar PHP en los uploads: Si tu sitio acepta uploads de archivos, los atacantes intentarán subir archivos PHP código malicioso. Desactiva el acceso a cualquier archivo PHP en la carpeta uploads creando un archivo .htaccess
en la carpeta /wp-content/uploads/
con el siguiente contenido:
<FilesMatch ".+\.php$">
Require all denied
</FilesMatch>
Plugins de Seguridad
Existen variedad de plugins que te pueden ayudar a mejorar la seguridad de sitio WordPress, algunos de los mas usados son:
- Wordfence Security: Uno de los plugins más completos, con firewall, escaneo de malware y protección contra ataques de fuerza bruta.
- Sucuri Security: Proporciona monitoreo de actividad, escaneo de malware y protección del firewall.
- Solid Security: Ofrece opciones avanzadas como detección de cambios de archivos, refuerzo de contraseñas y protección de inicio de sesión.
Es importante no sobrecargar tu sitio con demasiados plugins de seguridad, ya que pueden causar conflictos o volver lento el sitio.
Conclusión
Proteger tu sitio WordPress requiere una configuración adecuada, uso correcto de las contraseñas y herramientas de seguridad adicionales. Aplicando estas medidas, puedes reducir el riesgo de sufrir un ataque y mantener la integridad de tu sitio web.
Envíar Comentario
En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas
<pre></pre>