Explicamos como proteger el tree de nuestros directorios del servidor web Apache2 para evitar que scripts puedan explotarlo a su favor en WordPress.
Partiendo de la base de que tenemos absolutamente todos nuestros programas actualizados a la última versión disponible, incluido la versión de Linux.
Hace poco revisando mi VPS me di cuenta de que ciertos ficheros «Index.php» habían prosperado en la parte pública del servidor, concretamente en la ubicación de un plugin en la instancia de WordPress.
Al ver ciertos ficheros ya me temía que algún agujero se me había quedado en el servidor de modo que me puse a investigar. Haciendo una búsqueda rápida con el texto encontrado en el regalito podemos buscar dónde están ubicados estos ficheros:
Buscando por San Google encontré información relacionada con el famoso texto «Silence is golden». Y por lo que parece es algún tipo de troleo de la propia gente de WordPress, este archivo precisamente lo que evita es que se pueda navegar por los directorios públicos. El primer paso es eliminar toda la morralla que esto nos crea en nuestro servidor.
Desde la raíz de dónde queremos buscar, en mi caso la instancia de WordPress. Lanzamos el siguiente comando:
find . -type f | xargs grep -l "// Silence is golden." | xargs rm &
Básicamente se encargará de buscar el texto en todos los ficheros y en los que coincida los eliminará.
El segundo paso es volver a comprobar una búsqueda del mismo, como podemos ver ya no hay coincidencias.
Si no tenéis acceso por ssh a vuestro servidor, recomiendo hablar con el soporte técnico de vuestro proveedor.
Otra opción es dejar los archivos tal cuál están, ya que estos archivos se originan solos, NO significan que tu web haya sufrido algún tipo de exploit.
Una vez tenemos el servidor libre del famoso fichero. El siguiente paso es realizar correctamente la configuración, pretendida por este fichero.
Tendremos que buscar información de dicho exploit y ver las correcciones a aplicar. Como todos sabemos Google es una fuente de sabiduría, solo tenemos que saber cribar bien lo que leemos. En nuestro caso lo que tenemos que hacer es restringir la navegación libre a través de los directorios.
Esto lo podemos hacer mediante un archivo .htaccess, sino tienes acceso root o mediante la propia configuración de apache2.
En mi caso añadí la siguiente línea a mi directorio del vhost correspondiente a la instancia de WordPress. Ubicado en el direcotrio de apache2 ./sites-availables. Una vez hecho esto ya podemos comprobar los resultados.
<Directory /el/path/de/nuestra/instancia>
Options -Indexes
</Directory>
Si todavía queremos incrementar algo más la seguridad de nuestra instancia de WordPress. Lo que podemos cambiar es el nombre de nuestra estructura de carpetas. En una siguiente entrada detallaré el proceso.
Hasta la próxima