Archivo de la etiqueta: Ubuntu

Configurar adaptador usb wifi RT5370 Ralink para linux kernel 2.6

ADAPTADOR USB WIFI 150 MBPS CONCEPTRONIC de CONCEPTRONIC
ADAPTADOR USB WIFI 150 MBPS CONCEPTRONIC

Recientemente he adquirido un adaptador usb wifi para utilizarlo en ordenadores de sobremesa y evitar cableado en algunas zonas donde la conexión por cable al router no es muy accesible.

Tras configurarlo en un ordenador de sobremesa con Ubuntu 12.10 no tuve ningún problema y funcionó simplemente con enchufarlo (plug & play) y aparecieron las redes wireless disponibles para conectar.

El problema fue al cambiar de sistema operativo, en concreto a Centos 6.3. El dispositivo era detectado, lo que puede comprobarse con:

$ lsusb | grep Ralink
Bus 002 Device 007: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

Sin embargo, no parecía existir una interfaz de red inalámbrica. Tras unas pocas búsquedas en google, comprobé que el soporte para este dispositivo con el driver RT5370 estaba integrado sólo en kernels superiores a 3.0+ y no para la rama 2.6. Por ello, Ubuntu 12.10 que usa la rama 3.X+ funcionaba perfecto y sin embargo en Centos 6.3 no, ya que aún usa la rama 2.6.X (ya que es un distribución orientada más a servidores).

Para solucionarlo, en el caso de este dispositivo, es necesario activar el repositorio de ELRepo, esto es:

# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm

Posteriormente, instalamos el paquete kmod-rt5370sta que da soporte para el driver RT5370 en kernels 2.6:

# yum install kmod-rt5370sta

Después ya solo es necesario conectar e introducir el dispositivo (no es necesario reiniciar) y ya será plenamente funcional.

Habilitar WebGL en Chrome para Ubuntu 12.10 para tarjetas gráficas en lista negra

Daftone WebGL + Music website
Daftone WebGL + Music website

Normalmente habrás notado que en GNU/Linux el soporte de ATI todavía no es muy bueno. Existen varios problemas para el renderizado 3D. Como consecuencia origina que en navegadores que proporcionan WebGL para renderizar páginas en 3D haya numerosos fallos o incluso este deshabilitado su soporte. Cuando el soporte esta deshabilitado o marcado como experimental los desarrolladores introducen esas tarjetas gráficas en una listas negras (blacklist) a la espera de que en un futuro exista mejor soporte.

Esto hace que no se pueda disfrutar de la experiencia completa de la web con aplicaciones 3D en WebGL. Sin embargo, es posible ignorar estas configuraciones y listas negras y obligar al navegador a que renderice esas páginas. La desventaja es que posibiemente si la aplicación es compleja tengamos muchos fallos o vaya lenta, aún así es mejor que no disponer de ella.

En Ubuntu para Google Chrome sólo es necesario iniciar la aplicación (desde su binario correspondiente) con algunas opciones como parámetro:

/opt/google/chrome/google-chrome --enable-webgl --allow-file-access-from-files --ignore-gpu-blacklist %U

Esto habilita WebGL, permite el acceso a archivos e ignora la lista negra. Se puede crear un alias con estos parámetros o incluso un lanzador configurado con ese comando en sus propiedades.

Por ejemplo:

Propiedades del Lanzador Google Chrome
Propiedades del Lanzador Google Chrome

Para comprobar el soporte se puede escribir en una pestaña del navegador:

about:gpu

Si la mayoria de características es verde, entonces probablemente podamos ejecutar aplicaciones en WebGL. En mi caso:

Soporte de características para WebGL
Soporte de características para WebGL

Por ejemplo, si quieres probarlo con alguna web muy visual. Puedes cargar la web de DafTunes que es una web donde se combina el 3D de WebGL con la música al estilo de la conocida canción Harder Better Faster Stronger de DaftBodies

Y si estás participativo, observa los mensajes de error en tu consola y contribuye reportando fallos a Chrome o el proyecto Mesa para que en próximas versiones exista mejor soporte.

Como crear un servidor proxy con Squid en Ubuntu

Como crear un servidor proxy con Squid en Ubuntu - Squid Cache Logo
Squid Cache

Un servidor proxy tiene la misión de actuar de intermediario en el acceso de un recurso en internet. Suelen utilizarse como pasarelas que permitan acceder a páginas webs restringidas por país o dentro de una empresa, es decir, pueden trabajar como muro cortafuegos operando en la capa de red (actuando como filtro de paquetes, como es el caso de iptables) o bien desde la capa de aplicación controlando diferentes servicios.

Funciones servidor proxy

Otra de sus funciones es actuar como caché de contenido de red (principalmente para el protocolo HTTP), proporcionando mayor proximidad de los clientes a un caché de páginas y archivos de forma que estos accedan con tiempos similares a los de una red local.

En este sentido el servidor de proxy cache Squid tiene un alto rendimiento además de soportar FTP o incluso HTTP sobre IPv4 e Ipv6. Todos los objetos cacheados por Squid permanecen en RAM, incluso consultas de búsquedas DNS. Es importante recalcar que Squid administra todas las peticiones bajo un único proceso asíncrono y no bloqueante. Por otro lado se ofrece soporte SSL y listas de control de acceso.

Proceso de interacción de un servidor proxy

Durante el proceso de interacción ocurre lo siguiente:

  1. Un cliente se conecta hacia un Servidor Proxy.
  2. El cliente solicita una conexión, archivo u otro recurso disponible en un servidor distinto.
  3. El Servidor Proxy proporciona el recurso ya sea conectándose hacia el servidor especificado o sirviendo éste desde un caché.
  4. En algunos casos el Servidor Proxy puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propósitos.

Este último punto 4, es que permite realizar muchas configuraciones personalizadas a los administradores de sistemas.

Instalación de Squid

En este artículo se instalará Squid 3.1. Para instalarlo en Ubuntu o Debian based:

sudo apt-get install squid3

Después se debe editar el fichero de configuración por defecto /etc/squid3/squid.conf

Por defecto el acceso http esta negado para todas las peticiones. Por ello debes buscar y borrar en el archivo la configuración:

http_access deny all

En su lugar se puede configurar una lista de acceso basada en rangos de IP al que se quiera permitir el acceso, por ejemplo:

acl our_networks src 123.123.123.0/24 213.213.213.0/24
http_access allow our_networks

De igual forma puedes comprobar que la directiva http_port este apuntando al puerto 3128 por defecto o cambiarlo al que necesites. Debes tener en cuenta que de acuerdo a las asignaciones hechas por IANA y continuadas por la ICANN desde el 21 de marzo de 2001, son los Puertos Registrados (rango desde 1024 hasta 49151)  y los recomendados para Servidores Proxies son el 3128 y 8080 a través de TCP.

También se pueden configurar varios:

http_port 3128
http_port 8080

O incluso especificando varias IPs:

http_port 192.168.1.254:3128
http_port 192.168.1.253:8080

Una vez configurado, es necesario reiniciar squid con:

sudo service squid3 restart

También existen otras opciones como recargar la configuración:

service squid reload

Parar el servicio:

service squid stop

O iniciarlo:

service squid start

Si tienes chkconfig (Sistemas basados en RedHat como Centos) puedes activarlo automáticamente en cada inicio del sistema con:

chkconfig squid on

Para comprobar si se está ejecutando correctamente:

sudo service squid3 status

Y si esta efectivamente escuchando en el puerto configurado:

netstat -tulpn | grep 3128

Si existe algun error grave, que no permita iniciar el servicio se debe examinar el contenido del fichero /var/log/squid/squid.out

Se puede acceder a los ficheros de log mediante:

sudo cat /var/log/squid3/access.log

O bien el fichero de cache:

sudo cat /var/log/squid3/cache.log

Para conocer la ip pública del proxy puede utilizarse:

curl ifconfig.me

Modificaciones de configuración básicas

Para mostrar las cadenas de las consultas http en el log, es necesario desactivar la directiva strip_query_terms (por defecto activa) en /etc/squid3/squid.conf:

strip_query_terms off

Por otro lado el parámetro cache_mem establece la cantidad de memoria RAM dedicada para almacenar los datos mas solicitados y datos en tránsito (con mayor prioridad de almacenamiento). Los datos son normalmente almacenados en bloques de 4 Kb. El valor por defecto es de 256 MB, pero puede especificarse una cantidad mayor si es necesario. Por ejemplo puede establecerse 2 GB de memoria:

cache_mem 2048 MB

Por defecto, si algo ocurre con la caché, como por ejemplo que el proceso se termine, se enviará un mensaje de aviso a la cuenta de email del webmaster en el servidor. Para configurarla pues cambiarse la directiva cache_mgr:

cache_mgr [email protected]

Se puede especificar un lugar diferente para el registro de accesos con la directiva access_log:

access_log /var/log/squid/access.log squid

Para ver toda tu configuración squid, sin mostrar los comentarios, puedes usar:

cat /etc/squid/squid.conf | sed '/ *#/d; /^ *$/d'

O bien:

grep -v "^#" /etc/squid/squid.conf | sed -e '/^$/d'

Solución de errores

Si intentas conectar a tu servidor proxy y este no atiende tus peticiones, es posible que no hayas abierto los puertos en tu router. Se recomienda abrir el puerto TCP/UDP en el que este configurado Squid.

Fuentes y enlaces relacionados

– Sitio web Squid Cache

– Proyecto Squid en Launchpad

– Desarrollo del proyecto Squid con Bazaar

RoadMap de Squid

Manual Squid LinuxParaTodos

UnixCraft: Setup a transparent proxy with Squid in three easy steps

– Install Squid Proxy Server on CentOS / Redhat enterprise Linux 5