24 de noviembre de 2011

Emesene no se conecta

Desde principios de noviembre del presente año emesene ha dejado de conectarse en todas sus versiones (comprobado por mi en la versión 1.6.3-1). Según comentan en su página oficial y en la página de Debian, el problema es  por unos cambios realizados en lo servidores de Windows Live Messenger.

En la página de emesene recomiendan descargar una versión en desarollo para solucionar el problema. Sin embargo, en la de Debian proporcionan otra solución que a continuación les explico.

Reemplazar "contacts.msn.com" (sólo el subdominio contacts.msn.com) por "local-bay.contacts.msn.com" en los siguientes archivos:
  • /usr/share/emesene/emesenelib/soap/templates.py
  • /usr/share/emesene/emesenelib/soap/requests.py
Una vez realizados dichos cambios, emesene volverá a conectarse. Cabe mencionar que aMSN no presentó dichos problemas y ha estado funcionando adecuadamente.

23 de junio de 2011

Guardar pestañas en Firefox/Iceweasel 4 y 5


Al salir la versión 4 de Firefox vinieron varios cambios, uno de ellos es que la opción de guardar las pestañas al cerrar la aplicación viene desactivada. Para activarse hay que teclear lo siguiente en la barra de direcciones de Firefox o Iceweasel:
about:config


Luego en el campo filtro se teclea lo siguiente:
browser.showquitwarning

Finalmente se cambia el valor a true dando doble clic en dicha función.

Funciona en la versión 4 y 5 de Firefox.

15 de junio de 2011

Cancelar fsck del arranque en Debian Squeeze


fsck es una herramienta de gran ayuda para prevenir fallos en discos duros. Se instala por default en Debian y se ejecuta de manera automática cuando se enciende el equipo. Si se instala el sistema base de Debian Squeeze, por default no puede saltarse el chequeo del arranque. Se puede cancelar (Ctrl + C) pero el equipo se reinicia y al arrancar de nuevo se vuelve a ejecutar. Esto es muy molesto, sobre todo cuando se tiene prisa y el disco duro es una capacidad elevada.

Para poder cancelar el fsck se requiere tener instalado los paquetes:

e2fsck-static
e2fsprogs


Una vez instalado cuando se encienda la computadora e inicie el fsck se podrá cancelar con Ctr + C y se continúa el arranque con Ctrl + D. Luego de realizar las tareas urgentes, la próxima vez que se encienda el equipo se deja que se termine el chequeo.

En algunos sitios mencionan que se debe editar el siguiente archivo, sin embargo en Debian no existe, por lo que no hice nada. Sin embargo dejo la información por si en alguna otra distro se requiera realizar:
# nano /etc/e2fsck.conf
[options]
allow_cancellation = true

26 de marzo de 2011

Enjaular a algunos usuarios de SFTP

El siguiente artículo muestra como permitir el acceso a algunos usuarios del sistema por SFTP usando SSH para la transferencia de archivos de forma segura impidiendo el acceso a directorios fuera de su home (Chroot). Además, los usuarios no podrán conectarse al sistema por SSH desde linea de comandos.

¿Porque usar SFTP con SSH en lugar de usar el servicio vsftpd?
Porque toda la información viajara encriptada (incluyendo la contraseña) impidiendo que alguien pueda acceder a la información durante la transferencia.

En Debian Squeeze, la configuración de SSH por default permite el acceso a todos los usuarios del sistema y recorrer todo el árbol de directorios incluyendo /. Sin embargo, se puede restringir el acceso a ciertos usuarios al Servidor y enjaularlos en su propio home (el usuario se podrá conectar al servidor pero no podrá salir fuera de su directorio personal).

Preparando el Sistema

Primeramente se crea un directorio donde se ubicaran los home de los usuarios del grupo:
   # mkdir /home/usersjaula 

Luego se crea un grupo de usuarios y los usuarios deseados:
 # groupadd usersjaula
# useradd -g usersjaula -d /home/usersjaula/nombreUsuario -m -s /bin/false nombreUsuario
# passwd nombreUsuario

Con los comandos anteriores se creó el grupo "usersjaula" y el usuario "nombreUsuario" sin shell perteneciente al grupo recién creado.

Luego se cambian los permisos de los siguientes directorios:
 # chmod 755 -R /home/usersjaula
# chmod 755 -R /home/usersjaula/nombreUsuario
# chown root.root -R /home/usersjaula

Con los comandos anteriores el usuario no podrá escribir en su propio home. Por ello se crea un directorio en su home para que pueda almacenar sus archivos.
 # mkdir /home/usersjaula/nombreUsuario/archivos
# chown nombreUsuario.nombreUsuario -R /home/usersjaula/nombreUsuario/archivos

Los permisos que se modificaron en los pasos anteriores se realizaron para que funcione el enjaulado SFTP. El propietario del directorio jaula y los directorios sobre este, debe ser root con permisos 755. Esta es una restricción del ChrootDirectory en OpenSSH.

Configuración de SSH

El archivo de configuración de SSH es /etc/ssh/sshd_config. Por lo que todas las configuraciones se realizaran en este archivo.

Por seguridad se recomienda deshabilitar el acceso a root por SSH con la siguiente directiva:
   PermitRootLogin no 

Para limitar el acceso al servicio SSH a ciertos usuarios se usa la directiva AllowUsers:
   AllowUsers nombreUsuario nombreUsuario2 etc 

Para limitar el acceso a ciertos grupos se puede usar:
   AllowGroups usersjaula 

Verificar que se tiene la siguiente linea para enjaular el servicio SFTP:
   Subsystem sftp /usr/lib/openssh/sftp-server 

Agregar las siguientes lineas a final del archivo /etc/ssh/sshd_config para enjaular a un usuario:
  Match User nombreUsuario
ChrootDirectory /home/usersjaula/nombreUsuario
ForceCommand /usr/lib/openssh/sftp-server
# AllowTCPForwarding no ## opcional
# X11Forwarding no ## opcional

Agregar las siguientes lineas a final del archivo /etc/ssh/sshd_config para enjaular a un grupo de usuarios:
  Match group usuariossftp
ChrootDirectory /home/usersjaula
ForceCommand /usr/lib/openssh/sftp-server
# AllowTCPForwarding no ## opcional
# X11Forwarding no ## opcional

Para que los cambios surjan efecto se reinicia el servicio:
   # /etc/init.d/ssh restart 

Si se tiene un firewall se deben de abrir el puerto correspondiente.

Acceder remotamente

Para acceder remotamente al servicio SFTP se puede usar el navegador de archivos tecleando en la barra de direcciones "sftp://IP".

Desde Windows se puede usar cualquier cliente que se indica en esta lista. De los que vienen en la lista, yo recomiendo FileZilla pues con este al subir archivos con acentos y Ñ se mostrarán correctamente en GNU/Linux.

Si se intenta acceder desde linea de comandos a SSH marcara el error:
   This service allows sftp connections only. 

FUENTE:
http://www.esdebian.org/wiki/enjaulado-sftp
http://linuxsix.blogspot.com/2009/03/tutorial-para-hacer-una-jaula-chroot.html
http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config

18 de marzo de 2011

Alargar cable USB a más de 12 metros

Introducción
En este artículo se explica como alargar un cable USB a una distancia superior al estándar de 5 metros y que funcione adecuadamente una cámara Web. Yo alargue un cable superando los 12 metros y lograr hacer funcionar correctamente memorias USB, impresoras y dispositivos Wireless USB. Para poder hacer funcionar las cámaras Web tuve que utilizar un HUB USB con alimentación eléctrica entre la cámara USB y el cable UTP pues éstas requieren de mayor electricidad (que se pierde al alargar el cable) para funcionar.

La idea surgió después de montar un sistema de vigilancia y conocer el costo de las cámaras IP, tarjetas capturadoras, cámaras de CCTV, etc. El costo de montar un sistema de vigilancia usando dichas cámaras es bastante elevado. Así que empecé a buscar en Internet sobre la posibilidad de ampliar la distancia del cable USB de una Webcam sin que afectara el funcionamiento de esta para usarlas con ZoneMinder. Me encontré con este sitio (en ingles) en donde comentaban que era posible y explican como hacerlo cortando un cable de extensión USB (con conector macho en un extremo y hembra en el otro) por la mitad. Yo decidí hacer una extensión usando conectores USB en lugar de cortar un cable porque leí en varias páginas que funcionaba mejor.

A continuación explico crear una extensión USB.


Material necesario
  • Cable UTP
  • 1 conector USB hembra y 1 macho por cada cable que se desea alargar
  • Cautín y soldadura
  • Tubo o funda termoretráctil (opcional) para la unión del cable con el conector USB
  • Cinta negra

Procedimiento:

El cable/conector USB se compone de 4 pines, 2 para la corriente y 2 para los datos. El Pin 1 y 4 se usan para la corriente y el 2 y 3 para los datos como se muestra en la siguiente tabla:
Pin  Nombre    Color cable    Descripción
1 VCC Rojo +5v
2 D− Blanco Data −
3 D+ Verde Data +
4 GND Negro Tierra

Tomando en cuenta la tabla anterior, lo que se hará es soldar los cables blanco-naranja y naranja del cable UTP en el Pin 1 del conector USB. El blanco-verde en el Pin 2, el verde en el Pin 3 y el resto (café, blanco-café, azul y blanco-azul) en el Pin 4. Como se muestra en la siguiente tabla:
PIN USB    COLOR
1 blanco-naranja y naranja
2 blanco-verde
3 verde
4 resto (azul, blanco-azul, café, blanco-café)
Si se desea usar un cable USB cortado a la mitad en lugar de los conectores se soldaran los cables como se indica a continuación:
PIN    USB        UTP
1 rojo blanco-naranja y naranja
2 blanco blanco-verde
3 verde verde
4 blanco resto

Primeramente se corta un pedazo de funda termoretráctil y coloca dentro de cada extremo del cable. Luego se separan los cables del UTP y se pelan las puntas.

Luego se soldan los cables en cada conector USB como se explicó anteriormente:

Luego se coloca la funda termoretráctil en la parte del cable que está descubierto el cobre y se calienta para cubrirlo.

Probando que funcione:

Una vez soldado los conectores conecté una cámara Web a la extensión recién creada y ésta a una computadora, la reconocía pero marcaba un error. Luego conecté una memoria USB y esta funcionaba bien, pudiendo acceder a los archivos y copiar información en ella. Luego probé una impresora, un dispositivo USB Wireless y una cámara digital para descargar las fotos. Todo funcionaba bien, excepto la cámara Web. Luego compré un HUB USB con alimentación eléctrica y lo coloque entre el CPU y la extensión marcando el mismo error al conectar una Cámara Web. Pero al colocar el HUB USB entre la cámara Web y el la extensión USB la WebCam funcionó correctamente.

Gracias a esta extensión de más de 12 metros tengo funcionando correctamente una cámara USB con Zoneminder. En el HUB puedo conectar más cámaras, incluso puedo conectar cualquier dispositivo USB que desee.

Conclusiones:

En base a las pruebas realizadas se puede concluir que al alargar el cable USB más allá de los 5 metros, este no es capaz de proporcionar el voltaje suficiente para que funcione una cámara Web. Por ello es necesario proporcionarle de alguna manera electricidad. Una forma es con un Hub USB con alimentación eléctrica.


FUENTE:
Wikipedia
http://www.instructables.com/id/How-to-Extend-yout-USB-using-UTP/
http://wiki.buenosaireslibre.org/HowToAlargueUSB

15 de marzo de 2011

Solucionar problema de vizualización de camaras en ZoneMinder


En días pasados sin motivo alguno no se podía visualizar las cámaras en ZoneMinder (lo que estaban grabando en ese momento, ni tampoco se visualizaban los eventos). Sin embargo, si se estaban generando eventos y por consiguiente grabando las imágenes. Incluso si accedías a los eventos se podía generar un video sin ningún problema.

Investigando un poco me doy cuenta que al tratar de acceder a una cámara messages (tail -f /var/log/messages) indicaba algo interesante:

Libgcrypt warning: missing initialization - please fix the application


Buscando en Internet encuentro la solución:
Cambiar el valor a none de la variable AUTH_RELAY ubicada en la pestaña System(Sistema) de las opciones de la consola de administración
Yo tenía la opción hashed.

FUENTE:
http://www.zoneminder.com/forums/viewtopic.php?p=62138
http://www.zoneminder.com/forums/viewtopic.php?p=57610

20 de febrero de 2011

Migrando correo de Hotmail a Gmail


He decidido dejar de utilizar definitivamente una cuenta de correo electrónico de Hotmail que llevaba usando por casi 10 años para usar solamente una de Gmail preservando los correos electrónicos y contactos.

Antes que nada, es importante tener bien organizado el correo de Hotmail para que no se haga un desorden cuando los correos sean importados por Gmail. Esto es, tener los correos en carpetas y cuyos nombres se recomienda no sea el mismo que el de alguna etiquete de Gmail. De esta forma se podrá preservar la organización que se tenía en Hotmail e identificar fácilmente los correos que vienen de Hotmail para organizarse de mejor manera. En mi caso a todas las carpetas les antepuse las letras Hot_ (Hot_algunNombreDeCarpeta).

Primeramente hay que configurar Hotmail para que reenvíe los correos a la cuenta de Gmail. Esto se hace desde "Opciones", "Mas opciones", "Reenviar correo electrónico".

Luego desde Gmail, nos dirigimos a "Configuración", "Cuentas e importación", en la sección "Importar correo y contactos" dar clic en el botón "Importar desde otra dirección". El resto de pasos a realizar se explican en el enlace Más información ubicado a un costado del botón mencionado.

El proceso durará algunas horas dependiendo de la cantidad de correos a importar. Los correos importados tendrán como etiqueta el nombre de la carpeta en la que estaban ubicados. El resto ya depende de como se desee organizar los correos. Se puede crear un filtro para ponerle una etiqueta a los correos que lleguen a la cuenta de Hotmail.

13 de febrero de 2011

Instación y configuración de Sarg en Debian Squeeze


Sarg (Squid Analysis Report Generator) es una herramienta que permite a los administradores de sistemas ver de una manera sencilla y amigable que sitios de Internet visitan (incluso se puede saber hasta la hora en que la visitó) los usuarios de la red local usando los logs de Squid. Genera una lista diaria, semanal, mensual o personalizada con los sitios de Internet que visita cada usuario, cuanto consumió (MB), etc. También genera una lista de los sitios más visitados (Top Sites).

Por una razón que desconozco, Sarg no se encuentra en los repositorios de Squeeze. Pero eso no significa que no se pueda instalar. Para instalarlo, primeramente hay que checar cuales son sus dependencias e instalarlas (libc0.1, libc0.3, libc6, libapache2-mod-php5, apache2, squid). Luego se descarga el paquete de Sid y se instala con:
# dpkg -i sarg_2.3-1_arquitectura.deb

Una vez instalado, hay que configurarlo para que se generen diariamente los reportes y estadísticas. Los archivos de configuración se encuentran en "/etc/sarg/". El archivo de configuración principal es "/etc/sarg/sarg.conf" y algunos de sus parámetros son los siguientes:

1 access_log /var/log/squid/access.log
2 output_dir /var/lib/sarg
3 exclude_hosts /etc/sarg/exclude_hosts
4 date_format e
5 index yes
6 topsites_num 100

1 Indica la ubicación del log de Squid
2 Directorio donde se guardarán los reportes
3 Lista de equipos que no se incluiran en los reportes
4 Formato de la fecha usada en los reportes
5 Genera una página principal index.html
6 Número total de sitios del TopSites

El archivo /etc/sarg/exclude_users contiene los usuarios que no formarán parte de los reportes.
El archivo /etc/sarg/exclude_hosts contiene los equipos que no se desea formen parte de los reportes de SARG. Pudiendo contener direcciones IP (Ejemplo: 192.168.1.10), una red completa (192.168.1.0/24), el nombre de un equipo (equipo.red.local) o todos los equipos de una red (*.red.local)

Configuración de apache

Para poder acceder a los reportes generados por Sarg es necesario configurar apache y es muy recomendable restringir el acceso a dichos reportes. A continuación se explica como hacerlo:

Se crea el archivo /etc/apache2/conf.d/sarg con el siguiente contenido:
Alias /sarg /var/lib/sarg
<Directory /var/lib/sarg>
DirectoryIndex index.html
order deny,allow
deny from all
allow from 127.0.0.1 192.168.1.10
AuthName "Solo usuarios autorizados."
AuthType Basic
require valid-user
AuthUserFile /var/www/claves-users-sarg
</Directory>


Se crea el archivo donde se almacenarán las claves, se limitan permisos de lectura y escritura sólo al dueño, se asigna a www-data como propietario del archivo:
# touch /var/www/claves-users-sarg
# chmod 0600 /var/www/claves-users-sarg
# chown www-data.www-data /var/www/claves-users-sarg

Se genera el usuario y se asigna el password:
# htpasswd /var/www/claves-users-sarg usuario

Luego se reinicia apache para que los cambios surjan efecto:
# /etc/init.d/apache2 restart

En Squeeze hay un problema que impide que se generen los reportes diarios. El problema es que se realiza una rotación diaria de los logs de Squid y dicha rotación se realiza justo antes de que Sarg genere los reportes. Esto es el scrip /etc/cron.daily/logrotate se ejecuta antes que /etc/cron.daily/sarg y cuando éste último se ejecuta el log /var/log/squid/access.log está vacío. Esto se soluciona muy sencillo cambiando el nombre de /etc/cron.daily/sarg:
# mv /etc/cron.daily/sarg /etc/cron.daily/0sarg

Ahora solo hay que esperar a que pase el tiempo para que se ejecuten los scripts que se encuentran en /etc/cron.daily/ a la hora programada en /etc/crontab.

Una vez generados los reportes se accede a http://IP-del-Server/sarg/ con el usuario y el password generados.