Archive for Septiembre, 2009

Configurar Apache Server como proxy

Apache

Apache

En esta entrada vamos a tratar de explicar como montar un proxy casero con un simple PC con Windows XP. Quizá con el título elegido esta entrada no llegue a tener todas las visitas que podría tener como si la titulara ¿Cómo restringir el acceso a Facebook a tus empleados? ¿Cómo restringir el acceso a marca.com a tus empleados? ¿Cómo controlar el uso de internet por parte de tus empleados? pero no vamos a dar pistas al enemigo, aquí solo configuramos Apache Sever como proxy y que cada uno saque las conclusiones o usos que crea pertinentes.

  • Primeramente descargamos Apache, concretamente yo he utilizado este msi de la versión 2.0.63 para Windows. Se descarga y se corre la instalación.
  • Editamos el fichero httpd.conf por defecto en C:\Archivos de programa\Apache Group\Apache2\conf y descomentamos las siguientes líneas;
    LoadModule proxy_module modules/mod_proxy.so
    #LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule negotiation_module modules/mod_negotiation.so

y añadir estas líneas;

<IfModule mod_proxy.c>

ProxyRequests On

<Proxy *>

</Proxy>

</IfModule>

  • Reiniciar el servicio Apache HTTP.
  • Configurar el navegador utilizando como proxy localhost:80 o desde otro puesto de la LAN como Dirección_IP:80

Con este pequeño cambio ya tendremos en nuestros log todas las url a las que se ha accedido, IP de origen, hora etc.. en C:\Archivos de programa\Apache Group\Apache2\logs

También añadiendo alguna directiva podemos configurarlo como proxy cache de manera que evitaremos lentitud en el acceso a internet en horas punta de tráfico.

CacheRoot “/var/cache/httpd”

CacheSize 50000

CacheGcInterval 1

CacheMaxExpire 24

CacheLastModifiedFactor 0.1

CacheDefaultExpire 3

CacheForceCompletion 90

#NoCache www.elmundo.es

Bloquear el acceso a una página web

ProxyBlock www.facebook.com www.microsoft.com

O permitir el acceso a una serie de dominios

ProxyRequests On

ProxyVia On

# Con esta directiva hacemos que todas las peticiones pasen # por el proxy y se deniegan todas.

<Proxy *>

Order deny,allow

Deny from all

</Proxy>

# Con esta directiva permitimos todas las peticiones a dominios telefonica

<Proxy http://*.telefonica.es/*>

Order deny,allow

Allow from all

</Proxy>

Configuración de Friendly Url en Prestashop

Este fin de semana he tenido mi primer encuentro con Prestashop, aunque lo conocía desde hace algo más de un año que me lo presentaron a través de un twitt. He de decir que me parece muy completo y sencillo nada que ver con Oscommerce menos vistoso y con pocas opciones por defecto.

Una de las características que más me importan es poder conseguir url amigables para “facilitar la labor de los buscadores” para ello basta con activar una opción en la administración pero si tu servidor no dispone de la directiva mod_rewrite activada hay que hacer una serie de cambios en el fichero .htaccess

Probé y me encontré numerosos problemas, o las imágenes no las encontraba, o las imágenes de los boxes, o los idiomas. Tampoco encontré ninguna solución definitiva en ninguno de los foros. Así que picando algo de aquí y allí encontré una configuración que debe contener los rewrite rules correctos porque es la que ha funcionado.

# URL rewriting module activation

RewriteEngine on

RewriteBase /

# Force www

RewriteCond %{HTTP_HOST} ^dominio.es$

RewriteRule (.*) http://www.dominios.es$1 [R=301]

# URL rewriting rules

RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]

RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]

RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.)$ /product.php?id_product=$3&isolang;=$1$5 [L,E]

RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$2$4 [L,E]

RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$1$3 [L,E]

RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1 [QSA,L,E]

RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]

RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]

RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]

RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]

# Catch 404 errors

ErrorDocument 404 /404.php

# URL rewriting module activation
RewriteEngine on
RewriteBase /
# Force www
RewriteCond %{HTTP_HOST} ^dominio.es$
RewriteRule (.*) http://www.dominios.es$1 [R=301]
# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.)$ /product.php?id_product=$3&isolang;=$1$5 [L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]
# Catch 404 errors
ErrorDocument 404 /404.php

Software libre y gratuito para crear una tienda virtual

Montar una tienda virtual en Internet hace doce años era tan caro como acondicionar un local de obra. Afortunadamente hoy casi cualquiera con unos poquitos de conocimientos de informática (buscar en google + copiar y pegar) puede tener la suya propia. Y no una tienda de andar por casa, sino plataformas que poco o nada tienen que envidiar a las de importantes empresas.

Esto es posible gracias a software distribuido bajo la licencia GPL normalmente escritos en lenguaje PHP y utilizando bases de datos Mysql. La primera referencia que dispongo de este tipo de distribuciones se trata de la Cibertienda un proyecto de Banesto lanzado en 1999 integrado con su TPV Virtual hoy abandonado.

Actualmente son muchas las soluciones de comercio electrónico existentes y con importantes comunidades de usuarios que facilitan soporte a éstas algunas de ellas son;

Oscommerce: Data del año 2000, probablemente la más veterana y la más utilizada. Como ventaja señalar su inmensa comunidad, como inconveniente señalar que las opciones por defecto son limitadas, y la instalación de funcionalidades es complicada y pueden hacer el software inestable.

Zencart: Básicamente se trata de un Oscommerce mejorado con más funcionalidades por defecto y una arquitectura que permite cambios de plantillas (apariencia externa de la web), en contra su comunidad y extensiones son mucho más reducidas que en Oscommerce.

VirtueMart: Anteriormente conocido como php-shop es una extensión para los CMS Joomla y Mambo lo que permite además de la propia tienda virtual un gestor de contenido para crear un portal.

Más modernos y con licencia OSL (también código abierto) son Magento (2007) que también dispone de una versión de pago y Prestashop también de 2007 modular, con gran uso de Ajax que lo hace sencillo, y que está experimentando un rápido crecimiento.

Y tu, ¿Qué software de tienda virtual prefieres o utilizas?

Solución a los problemas de velocidad en Iphone/Ipod Touch y el router Zyxel P660HW-D1 de Telefónica

Que la navegación por Wifi y sobre todo el uso de algunas Apps en  Iphone/Ipod Touch sea muy lento cuando  dispones del router Zyxel P660HW-D1 (uno de los más distribuidos por Telefónica para sus ADSL e Imagenios) es un problema ya constatado.

Se han dado posibles soluciones, cambiar el cifrado de WEP a WPA, o directamente quitarlo, convertir las contraseñas a hexadecimal, probar los distintos firmwares de Telefónica pero apenas apreciaba diferencias.

Hasta que hace unos días encontré la solución aquí . Se trata de un firmware que corrige los problemas de velocidad. Realmente desconozco su origen pero funciona y eso es lo que importa.

Descarga del Firmware

Instrucciones de actualización del Firmware

Gmail ya disponible en Google Sync

Google syncHasta ahora podíamos sincronizar los contactos y calendarios desde los dispositivos móviles (Iphone, Windows Mobile, Symbian) gracias al servicio Google Sync. A partir de ahora se añade el poder obtener el correo en la misma cuenta utilizando el protocolo de comunicación de Microsoft Exchange. La principal ventaja es que a partir de ahora todos los usuarios con cuentas de Gmail o bajo su propio dominio con Google Apps dispondrán de su correo en tiempo real (Push Mail).

Recuperar copias de seguridad generadas por Plesk

Probado en CentOS 5 y Plesk 8.6

Realizando unas modificaciones en un site cometí el error de sobreescribir archivos dejandólo completamente inoperativo. Afortunadamente tenía una copia de seguridad realizada mediante el software Plesk de hacía una semana con lo que respiré tranquilo y me puse manos a la obra.

Mi sorpresa fué que Plesk restaura todo el dominio y el proceso cuando menos me parece peligroso (bastaba sustituir unos cuantos ficheros para que mi site volviera a funcionar), además de tener que importar de nuevo bases de datos etc. A partir de ahí cogí el fichero de copia de seguridad de Plesk y lo intenté descomprimir pero de nuevo más sorpresas, es software propietario y hay que trabajarse un poco el obtenerlos.

Empecemos con el proceso;

  • Tenemos un fichero de copia de seguridad copiaseguridad_aa.mm.dd.hh.mm
  • En la consola tecleamos file copiaseguridad_aa.mm.dd.hh.mm y nos dirá que se trata de un archivo gzip
  • Renombramos como copiaseguridad_aa.mm.dd.hh.mm.gz y descomprimimos gzip -d copiaseguridad_aa.mm.dd.hh.mm.gz
  • Obtenemos un fichero de idéntico nombre pero evidentemente de mucho más peso.
  • Examinamos el fichero con un file copiaseguridad_aa.mm.dd.hh.mm obteniendo un ASCII English Text
  • Instalamos un software llamado mpack con los siguientes comandos
  1. wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
  2. rpm -ivh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
  3. yum install munpack
  • Creamos un directorio mkdir copia
  • Entramos en el directorio cd copia
  • Ejecutamos munpack <  ../copiaseguridad_aa.mm.dd.hh.mm y obtenemos los ficheros dumpeados.
  • Nos interesa el httpdocs donde se guardan los ficheros del dominio domain.tld.httpdocs que se trata de un tar (podemos verlo con un file).
  • Descomprimimos pero con cuidado porque si no se hace sobre el directorio adecuado no funcionara. Por tanto mkdir httpdocs/ y tar xvf DOMAIN.TLD.httpdocs -C httpdocs/
  • Se trata de un tar
  • ripmime ripmime -i backup-01-18-05-domain.com -d backuprestore

Y así conseguimos nuestra copia completa de seguridad.