Htaccess WordPress

Inicio/Wordpress/Htaccess WordPress

Proteger WordPress con htaccess.

Hace unos días publicabamos como proteger algunas de las muchas vulnerabilidades de WordPress con el archivo robots.txt; en esta ocasión vamos a hablar de como proteger WordPress con htaccess; la llave maestra de nuestra web programada con WordPress.

Hay multitud de plugins que nos ayudan a proteger WordPress; si me sigues habitualmente ya sabes que siento especial debilidad por Wordfence, aunque hay otros este es el que mayor efectividad demuestra tanto en su versión gratuita como en la de pago que ofrece un mayor número de opciones, aunque he tenido que recurrir en muy pocas ocasiones a esta opción.

La seguridad no es una obsesión

La “obsesión” por la seguridad en WordPress no es ninguna tontería, en estos momentos nos encontramos con un CMS con millones de instalaciones activas y cuya popularidad va en constante aumento, cada vez es mayor el número de diseñadores web que utiliza WordPress y esto viene dado por la facilidad de uso para el usuario y también por la renovación total que ha experimentado WordPress, dejando de ser una simple plataforma semántica pensada para alojar blogs y pasando a convertirse en una gran plataforma para cualquier tipo de diseño web, por exigente que este sea. Por tanto este post para proteger WordPress con htaccess está totalmente justificado.

WordPress CMS vulnerable

Dada esta gran popularidad, a nadie se le escapa que los “amigos de lo ajeno” también conocen perfectamente la estructura de WordPress y sus principales vulnerabilidades, de ahi que cada vez sea más dificil proteger nuestros desarrollos web de ataques de hackers. Sin duda proteger WordPress con htaccess puede resultar la solución definitiva.

La estructura de archivos de WordPress permite a cualquiera que esté familiarizado con él el acceso a las carpetas y archivos esenciales de la instalación, por ello en este artículo voy a tratar de explicar como poner las cosas un poco más difíciles a aquellos que quieren mirar donde no queremos que miren, para ello vamos a proteger WordPress con htaccess.

proteger wordpress con htaccess

 

Configurar el archivo .htaccess

Para proteger WordPress con htaccess tendrás que acceder a la raiz de tu web con cualquier cliente FTp, por ejemplo Filezilla

Recuerda que todos los cambios que hagas en el archivo .htaccess son bajo tu responasbilidad, tal y cómo recomiendo siempre, antes de tocar nada guarda una copia de tu archivo original por si cometes algún error, todas las variaciones sobre el archivo .htaccess que voy a proponerte a continuación, están probadas y comprobadas y son realmente efectivas para proteger WordPress con htaccess.

Htaccess original

El archivo .htaccess de WordPress por defecto tiene esta estructura básica:

# 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

Para añadir contenido a .htaccess lo normal es hacerlo después la linea # END WordPress; ya que con esto nos aseguramos de no romper ninguna de las funciones que WordPress crea por defecto; si tienes instalados plugins de caché verás que estos insertan líneas de código al inicio del archivo htaccess y otras al final; las que se incorporan al inicio son susceptibles de cambio si se producen cambios en la configuración de la caché; mientras que los que van despues de # END WordPress serán instrucciones fijas que a pesar de que regeneres tu archivo .htacces, por ejemplo al cambiar la estructura de enlaces permanentes, siempre van a seguir ahí.

Modificar htaccess

Recuerda guardar una copia del archivo htaccess antes de hacer cualquier cambio.

  1. Proteger wp-config.php

    1. wp-config.php es el archivo que almacena información vital de la web; como puede ser el nombre, usuario y contraseña de tu base de datos, por lo tanto proteger este archivo es vital si quieres evitar un dump hacia tu base de datos, hay otras formas también de hacer dump a una base de datos, pero no vamos a dar pistas a los hacker menos experimentados.
    2. Una buena opción para proteger este archivo es agragar lo siguiente para prevenir cualquier acceso al archivo wp-config.php:
      1. <Files wp-config.php>
      2. order allow,deny
      3. deny from all
      4. </Files>
  2. Acceso de administración exclusivo para tu IP

    1. Puedes limitar el acceso a través de IP, para ello es necesario crear un archivo htaccess adicional y colocarlo en la carpeta wp-admin, con este snippet deniegas el acceso a esa carpeta excepto para tu IP, ojo porque si tienes una IP dinámica deberás modificarlo periodicamente ya que de lo contrario te denegarás el acceso a tí mismo.
      1. order deny,allow
      2. allow from tuipcompleta (reemplazar con tu dirección IP)
      3. deny from all
  3. Banear usuarios recurrentes

    1. Otra buena opción para proteger WordPress con htaccess es banear aquellos usuarios que detectas que intentan acceder frecuentemente a tu web, esto lo puedes ver en el archivo de logs de tu dominio, donde verás que ip acceden a tu web con mucha frecuencia, asegurate de que baneas a los usuarios y no vayas a banear a los robots de Google por ejemplo, en el log tienes la información del tipo de agente que intentó acceder
      1. <Limit GET POST>
      2. order allow,deny
      3. deny from ipmaliciosarecurrente (reemplazar con la dirección IP que quieras banear)
      4. allow from all
      5. </Limit>
    2. Si necesitas añadir más de una ip puedes hacerlo añadiendo tantas líneas deny como necesites
      1. <Limit GET POST>
      2. order allow,deny
      3. deny from primeraipmaliciosarecurrente (reemplazar con la dirección IP que quieras banear)
      4. deny from segundaipmaliciosarecurrente (reemplazar con la dirección IP que quieras banear)
      5. allow from all
      6. </Limit>
  4. Proteger directorios

    1. Como te indicaba al inicio, la estructura de directorios de WordPress es conocida por muchos programadores, y también por los malintencionados; en consecuencia una sola línea es suficiente para proteger de miras malintencionadas tu estructura de directorios
      1. Options All -Indexes
  5. La carpeta wp-content

    1. Aquí tenemos todo nuestro contenido, imágenes, plugins, themes y es muy recomendable proteger el acceso a ella; por citar un ejemplo, en un sitio web infectado que cayó en mis manos recientemente, el pirata habia añadido al plugin de Wordfence una modificación con su Ip entre las que se encuentran en la whitelist del plugin; en consecuencia, si la carpeta wp-content hubiese estado protegida también, esto no habría sucedido. Muchas veces creemos que con cambiar los permisos de la carpeta, por ejemplo a 700, lo cual nos permite acceder a ella como administradores; en lugar del clásico 755 (entiendo que no tienes ninguna carpeta con permisos 777) ya es suficiente, pero si estoy escribiendo este post para proteger WordPress con htaccess es por qué obviamente no lo es.
    2. Para prevenir el acceso a esta carpeta, deberemos hacer igual que con el acceso al área de administración; en esta ocasión vamos a crear un archivo .htaccess adicional que vamos a ubicar en la carpeta wp-content y que tendrá la siguiente estructura:
      1. Order deny,allow
      2. Deny from all
      3. <Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
      4. Allow from all
      5. </Files>
  6. Proteger el archivo .htaccess

    1. Mira por donde, hasta aquí hemos visto como proteger WordPress con htaccess, sin embargo y aunque pueda parecer extraño, también tenemos que proteger el propio archivo .htaccess desde el propio archivo, para ello utilizaremos la siguiente estructura:
      1. <Files ~ “^.*\.([Hh][Tt][Aa])”>
      2. order allow,deny
      3. deny from all
      4. satisfy all
      5. </Files>

proteger wordpress con htaccessCon todo esto hemos efectuado una protección bastante avanzada para nuestro WordPress y la tarea de proteger WordPress con htaccess puede darse casi por concluida, existen muchas variaciones e instrucciones más complejas para proteger WordPress con htaccess pero con estas vas a estar mucho más seguro. Seguramente si buscas en la red, vas a encontrar muchas más estructuras de htacces para ayudate a proteger tu web; ya que las variaciones son múltiples, sin embargo en base a mi experiencia estas funcionan y funcionan muy bien; he reducido a la mínima expresión los ataques a las webs de mis clientes y aunque siempre estoy alerta a nuevas vulnerabilidades; puedo asegurar que el 90% de los ataques comunes se resuelven con estas modificaciones del archivo htaccess.

Para resolver el resto de ataques maliciosos podemos utilizar otro tipo de recursos más avanzados y por lo tanto bastante más complejos de implementar.

Recomendaciones de seguridad WordPress

Para terminar y no quedarme solo en como proteger WordPress con htaccess, permite que te apunte algunas recomendaciones básicas de seguridad:

  • Cambia regularmente la contraseña de tu Base de datos.
  • Cambia regularmente la contraseña de acceso a FTp.
  • No uses la misma contraseña en ambos y trata de usar contraseñas complejas que combinen letras, números y simbolos, si es posible con una longitud mínima de 12 caracteres.
  • Asegura tu Base de datos, utiliza un nombre original y que tenga poca o ninguna relación con tu dominio.
  • Lo mismo nos vale para el usuario de la Base de Datos, usa un nombre original y que no sea fácil de encontrar para los amigos de lo ajeno.
  • El nombre de usuario de tu panel de administración, Worpdress por defecto genera un usuario llamado admin, es el primero que debes eliminar y crear uno nuevo, ya que los bots maliciosos buscan al usuario admin de forma recurrente y te sorprendería ver cuantas webs tienen ese usuario como administrador.
  • La contraseña de tu usuario, aunque lo cómodo es poner alguna que sea muy fácil de recordar; debería también ser lo más compleja posible; si utilizas la misma en todas tus instalaciones de WordPress le pones en bandeja la entrada a los hacker.
  • Dime que no tienes ninguna carpeta con permisos 777
  • Dime que tus archivos están con permisos 644 como mucho.
  • No agrupes muchas web en el mismo hosting; a menos que tengas un hosting con las mayores medidas de seguridad garantizadas; un hosting para una web es económico y ahorrar unos Euros en ello puede acabar por costarte mucho dinero. Una inyección de php maligno va a infectar todo aquello que encuentre a su paso, por lo tanto te puedes encontrar desinfectando todas tus web bajo la misma raíz.

 

Estas medidas han de ser suficientes para tener una web segura; de todas formas también entiendo la complejidad que puede comportar para algunos usuarios proteger WordPress con htaccess; por lo tanto, si necesitas ayuda nuestro equipo lo hará por tí.

Necesito ayuda para proteger mi web

¿Te llamamos?

Nombre
Email
Teléfono
Su web actual

¿Necesita aportar algún detalle? He leido y acepto la información sobre política de privacidad

Rating: 4.0. From 21 votes.
Please wait...
2017-05-30T11:19:56+00:00