jueves, 26 de julio de 2012

Proteje el directorio administrator de tu sistema Joomla con .htaccess


Existen muchos métodos para asegurar nuestras instalaciones de Joomla. Plugins como "Adminexile",protección mediante contraseña del directorio /administrator, optimizar permisos, cambios en nuestro php.ini y un prácticamente interminable etc.

En mi opinión no me gusta que mi instalación de Joomla dependa del buen funcionamiento de un plugin, por eso yo prefiero no utilizarlos para proteger mis sitios Joomla.

El método que nos ocupa, es una primera línea de defensa, pero que quede claro que está muy lejos de hacer invulnerable a tu sitio Web. Simplemente se lo pone un poco más difícil a los que crean scripts automatizados para hacerse con tu sitio Joomla!.

Si crees que no necesitas proteger este directorio, revisa los logs de tu hosting, y verás como prácticamente cualquier sitio con Joomla con cierta antiguedad, es atacado con frecuencia por scripts maliciosos (no significa que tengan éxito, no te asustes). Esto ocurre no porque Joomla sea menos seguro o más vulnerable que otros CMS, ocurre porque está muy extendido, y es muy fácil descargar scripts maliciosos que aprovechan vulnerabilidades. Te preguntarás cómo saben que tu sitio Web utiliza Joomla, si tiene pocas visitas y casi nadie lo conoce. Escribe esto en Google "inurl:/administrator/index.php" y la mayoría de los sitios que aparecerán serán sitios Web utilizando Joomla. Ahora solamente tienes que echarle imaginación.

El sistema que quiero proponer en este artículo es muy sencillo e inutilizará todos los scripts maliciosos que quieran acceder directamente a la carpeta /administrator de vuestra instalación Joomla!. Yo lo consideraría una primera línea de defensa ante posibles ataques. 

En primer lugar tienes que asegurarte de que tu proovedor de hosting, soporta ficheros .htaccess. Hoy en día prácticamente todos los proovedores lo soportan e incluso es posible que esté soportado aunque te digan que no. También tiene que tener el módulo "mod_rewrite" de apache activado. Si no sabes lo que es esto, no te preocupes. Lo raro sería no tenerlo activado.

El fichero .htaccess es un archivo de configuración de texto plano. Este archivo le indica al servidor Web cómo tiene que comportarse. Bien utilizado, este archivo es una herramienta muy pontente para personalizar el comportamiento de tus scripts, permisos, etc... Pero no vamos a entrar en detalles. A nosotros solamente nos interesa utilizar uno de los módulos de Apache, mas potentes "mod_rewrite".

Vamos allá:
Crea una carpeta vía ftp con un nombre poco común como /administrator00mTekss o lo que quieras.
Dentro de esta carpeta, sube un archivo index.php con el siguiente contenido:

<?
$admin_cookie_code="FD64FA11C3";
setcookie("JoomlaAdminSession",$admin_cookie_code,0,"/");
header("Location: /administrator/index.php");
?>


Ahora vamos a la carpeta de Joomla,  /administrator.
Allí subimos nuestro fichero .htaccess (sin extensión) con el siguiente contenido:
(es posible que una vez que lo subas, al actualizar el listado de ficheros desaparezca. No te preocupes sigue estando ahí. Si necesitas eliminarlo, sobreescríbelo con otro .htaccess vacío.)

RewriteEngine OnRewriteCond %{REQUEST_URI} ^/administrator
RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=FD64FA11C3
RewriteRule .* - [L,F]


Y ya lo tenemos listo. Ahora cada vez que intentemos acceder a nuestra carpeta administrator directamente, el servidor mostrará un error. Para acceder a nuestro panel de administrador tendremos que teclear en este caso http://myinstalaciónjoomla.com/administrator00mTekss si además proteges este directorio con contraseña, ya sea en el propio .htacces o con las herramientas que suelen proporcionar los ISPs, mejor que mejor.¿Que es lo que está ocurriendo? Lo que hacen estos dos ficheros es muy sencillo. Cuando entras en tu carpeta ofuscada (/administrator00mTekss), el fichero .htaccess crea una cookie para la sesión actual con un identifidador aleatorio (en este caso: FD64FA11C3) y reenvía el navegador al directorio real.
Una vez allí, tenemos otro fichero .htaccess que solamente permitirá el acceso al directorio si existe una cookie con el identificador "FD64FA11C3". De lo contrario, mostrará un mensaje de error.

Como no tiene nada que ver con Joomla!, este método funciona correctamente con todas las versiones de Joomla. Probado con la 2.5.6

No hay comentarios:

Publicar un comentario