Limitar el acceso a determinados archivos en Apache

15/01/2014 Los comentarios están cerrados

Es muy frecuente que añadamos opciones extras en los ficheros .htaccess y .htpasswd de nuestro servidor. Estos ficheros como es lógico, no deseamos que estén disponibles a los usuarios. Por ello, vamos a utilizar las directivas Files y FilesMatch para denegar su acceso:

Para ello crearemos dentro del DocumentRoot una entrada en el .htaccess con el siguiente texto:

<Files ˜ "^\.ht>
  Order allow,deny
  Deny from all
</Files>

Mediante Files conseguimos denegar el acceso a todos los ficheros que comienzan por los caracteres “.ht”

Podremos por ejemplo bloquear ciertos tipos de contenido. Para ello utilizaremos FilesMatch:

<FilesMatch "(\.bak$|\.BAK$)">
  Order allow,deny
  Deny from all
</FilesMatch>

Con esto evitaremos el acceso a los ficheros .bak, aunque se puede cambiar la extensión para adaptarnos a las necesidades del servidor.

 

Categorías:Apache

Acceder a MySQL como root desde Plesk

13/01/2014 Los comentarios están cerrados

Cuando creamos una base de datos desde Plesk, por norma general, al mismo tiempo creamos un usuario para acceder a dicha base de datos. Dicho usuario posee lo permisos necesarios para realizar las tareas básicas dentro de la base de datos recién creada, es decir, consultar, insertar y borrar datos. Pero cuando necesitamos alterar algunas de las opciones de configuración del servidor MySQL, estos usuarios no tienen suficientes permisos para la administración.

Es por ello que necesitamos acceder como root a la base de datos MySQL. Para ello desde Plesk lo tenemos realmente fácil, siempre y cuando tengamos permisos de root.

Deberemos acceder a nuestro Panel Plesk y en la zona de menús de la izquierda, buscaremos la opción Herramientas y configuración

root-mysql-plesk

Se nos abrirá la ventana con todas las opciones disponibles. Deberemos buscar la sección Aplicaciones y bases de datos y elegiremos la opción Servidores de base de datos.

root-mysql-plesk-2

Veremos nuestra base de datos MySQL y pulsaremos sobre ella. En la nueva ventana que se nos abre, aparecerán dos pestañas. Pulsaremos en la pestaña Bases de datos y nos aparecerá el icono Webadmin

root-mysql-plesk-3

Al pulsar sobre Webadmin se nos abrirá el gestor phpMyAdmin, en el cual veremos todas las bases de datos creadas bajo nuestro dominio, sean del usuario que sean. Desde aquí podremos acceder tanto a las bases de datos como a las opciones de MySQL ya que como hemos comentado tenemos permisos de root, así es que ¡CUIDADIN!

Esperamos que os sirva.

Categorías:Bases de Datos, Plesk Etiquetas: , , , , ,

Denegar el acceso en Apache

09/01/2014 Los comentarios están cerrados

Por norma general, al realizar una instalación de Apache, no aplica las pertinentes medidas de seguridad para controlar el acceso a los ficheros que se encuentran en la carpeta especificada para albergar el contenido web. Esta carpeta viene definida por la directiva DocumentRoot.

Por defecto y como medida de seguridad deberemos denegar el acceso al contenido de forma predeterminada e ir dando permiso de acceso cuando así se requiera. Deberemos indicar en el fichero apache2.conf de nuestro servidor:

<Directory />
    Order Deny,Allow
    Deny from all
    Options None
    AllowOverride None
</Directory>

<Directory /var/www/htdocs>
    Order Allow,Deny
    Allow from all
</Directory>

Con la directiva deny estamos denegando el accceso y con allow, lo estamos permitiendo. Con este script denegamos el acceso a todos los directorios, pero damos acceso al directorio / var/www/htdosc (o el que corresponda). Aunque las dos medidas son contradictorias, prevalecerá la segunda sobre la primera por ser mas especifica.

Categorías:Apache, Seguridad Etiquetas: , , , ,

Precarga de imagenes con CSS

08/01/2014 Los comentarios están cerrados

Es muy corriente el utilizar varias imagenes para un menu o un botón. Dependiendo del estado del elemento, este mostrará una imagen u otra. Dependiendo del tamaño de la imagen y de la carga del servidor, puede provocar que al cambiar de estado (el menú, botón, etc.) se requieran unos segundos para cargar la imagen, con el consiguiente fallo de visualización. Hace tiempo ya os explicamos en el artículo creación de un Sprite una técnica para cargar una única imagen y que esta se fuera posicionando según el estado del botón, para evitar este error en la carga de imagenes. Hoy os queremos mostrar otra técnica utilizando también CSS.

Se trata de hacer una precarga de imágenes y ocultarlas mediante CSS, con esto almacenaremos las imagenes en la caché del navegador, teniendolas de inmediato disponibles para cuando se requiera su uso. Para ello deberemos añadir al final de la página:

<img class="preload" src="url de la imagen" width="ancho" height="alto" />

Despues deberemos añadir en nuestro fichero CSS la entrada que se encargará de ocultar las imagenes precargadas:

<style type="text/css">
.preload {display: none;}
</style>

Esperamos que os sirva de ayuda.

Mejorar el rendimiento de un CMS

31/12/2013 Los comentarios están cerrados

Hay muchas maneras de agilizar un CMS. Por lo general se trata de cachear algunas páginas, para que se muestren mas rápidamente, aunque hoy os vamos a contar una manera de mejorar el rendimiento gracias a MySQL.

Por lo general, todas las aplicaciones web necesitan de MySQL u otra base de datos para almacenar y mostrar su contenido. Si el acceso a la información de la base de datos se ralentiza, toda la pagina se demorará en su carga. Por ello vamos a intentar aumentar el valor de la variable max_allowed_packet.

Lo primero será acceder a la base de datos. Podemos hacerlo via phpMyAdmin o directamente desde la consola. Una vez estemos en la base de datos que corresponda ejecutaremos el comando:

show variables like 'max_allowed_packet';

El resultado obtenido lo deberemos dividir 2 veces por 1024 para obtener el valor en megas. Por norma general nuestro hosting tendrá un valor de un 1Mb. Este es el tamaño máximo que tendrá un paquete. Para aumentar dicho tamaño, deberemos utilizar el siguiente comando:

SET GLOBAL max_allowed_packet=tamaño*1024*1024;

Siendo tamaño, el valor que queramos indicar como tamaño máximo del paquete en megas. Aunque este valor se puede incrementar hasta 1 Gb, por lo general, con un tamaño de 128 Mb, obtendremos una apreciable mejora en el rendimiento de nuestra aplicación.

Esperamos que os sirva.

Categorías:Internet Etiquetas: , , ,

Putty, un cliente ssh para Windows

17/12/2013 Los comentarios están cerrados

Es muy frecuente que para realizar ciertas tareas de mantenimiento en nuestro servidor, necesitamos conectarnos como root a nuestro servidor por medio de SSH. Con los sistemas Linux y Mac, vienen por defecto clientes SSH, pero con los sistemas Windows no es así.

Si queremos utilizar este protocolo desde Windows, deberemos instalar un cliente SSH. Uno de los mas conocidos es Putty, que aparte de soportar SSH, tambien puede utilizar los protocolos Telnet y Rlogin.

Putty es una aplicación muy sencilla aunque altamente configurable. Para descargarlo deberemos acceder a la página web de Simon Taham, desarrollador del proyecto.

Una vez descargado, no es necesaria su instalación. Tan solo deberemos cliquear sobre el ejecutable y en el menú de configuración crear una nueva conexión indicando los valores para el Host, el puerto, el protocolo y dando un nombre para almacenar estos valores.

A continuación deberemos iniciar la conexión recién creada e indicar los valores para el nombre de usuario y la contraseña. Una vez hecho esto ya podremos “navegar” por el equipo remoto mediante SSH.

Categorías:Apache, VPS Etiquetas: , , , ,

Evita el desbordamiento de un contenedor con word-wrap

16/12/2013 Los comentarios están cerrados

En alguna ocasión puede que se nos haya dado este problema: tenemos una caja contenedora y en ella escribimos texto. Si el texto es demasiado largo, nos desborda la caja con el consiguiente resultado poco estético:

word-wrap-1

Si queremos ocultar este desbordamiento no nos servirá utilizar la etiqueta overflow, ya que no queremos ocultar el desbordamiento:

word-wrap-2

Lo que queremos es que automáticamente se corte la palabra cuando alcance al medida máxima del contenedor. Para ello podemos utilizar word-wrap, una de las muchas novedades que incorporó CSS3.

La propiedad word-wrap tiene dos posibles valores normal (por defecto) y break-word, que posibilita el corte de una palabra. Añadiendo word-wrap:break-word a nuestro div contenedor, obtendremos el efecto deseado:

word-wrap-3