dissabte 26 de desembre de 2009

Instal·lació del Zenoss des de subversion

Farem una instal·lació del sistema de monitorització Zenoss des de codi font amb subversion, així aprofitarem els canvis que facin en la versió de producció sense la latència que hi pugui haver a empaquetar el software de nou. Amb això també tenim una instal·lació mòbil, ja que tot s'instal·la amb el seu entorn i ho tenim tot localitzat.

En aquest document suposem que hem creat un usuari zenoss i que el path on instal·larem el zenoss és a /usr/local/zenoss. Quan es mostren les comandes que s'executen quan surt el prompt # la comanda s'executa amb l'usuari root, quan el promt és $ s'executa amb l'usuari zenoss.

# apt-get install openssh-server subversion gcc g++ mysql-server libmysqlclient15-dev snmp make swig autoconf bzip2


# mkdir -p /usr/local/zenoss

# chown zenoss /usr/local/zenoss

$ echo "export ZENHOME=/usr/local/zenoss" >> ~/.bahsrc
$ echo "export PYTHONPATH=$ZENHOME/lib/python" >> ~/.bashrc 

$ echo "export "PATH=$ZENHOME/bin:$PATH" >> ~/.bashrc

Ens descarreguem el codi font des del subversion:

$ svn co http://dev.zenoss.org/svn/branches/zenoss-2.5.x/inst zenossinst-2.5.x

Això tardarà una mica, s'ha de descarregar tot el codi font i totes les llibreries que utilitza, això instal·la un entorn totalment separat, és a dir un python a un altre path i totes les llibreries que necessita.

$ cd zenossinst-2.5.x
$ SVNTAG=branches/zenoss-2.5.x ./install.sh


Un cop tot compilat i instal·lat ens demanarà que fem setuid al binari zensocket.

# chown root:zenoss /usr/local/zenoss/bin/zensocket
# chmod 04750 /usr/local/zenoss/bin/zensocket


Ja podem accedir a la interfície web a través de http://hostname:8080 (si voleu canviar el port es pot fer a través del fitxer $ZENHOME/etc/zope.conf)

Ara ja podem engegar tots els serveis del zenoss amb:

$ /usr/local/zenoss/bin/zenoss start


divendres 4 de desembre de 2009

Manifiesto "En defensa de los derechos fundamentales en internet"

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de
modificaciones legislativas que afectan al libre ejercicio de las
libertades de expresión, información y el derecho de acceso a la
cultura a través de Internet, los periodistas, bloggers, usuarios,
profesionales y creadores de internet manifestamos nuestra firme
oposición al proyecto, y declaramos que...


1.- Los derechos de autor no pueden situarse por encima de los
derechos fundamentales de los ciudadanos
, como el derecho a la
privacidad, a la seguridad, a la presunción de inocencia, a la tutela
judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo
competencia exclusiva del poder judicial.
Ni un cierre sin
sentencia. Este anteproyecto, en contra de lo establecido en el
artículo 20.5 de la Constitución, pone en manos de un órgano no
judicial -un organismo dependiente del ministerio de Cultura-, la
potestad de impedir a los ciudadanos españoles el acceso a cualquier
página web.

3.- La nueva legislación creará inseguridad jurídica en todo el
sector tecnológico español
, perjudicando uno de los pocos campos
de desarrollo y futuro de nuestra economía, entorpeciendo la creación
de empresas, introduciendo trabas a la libre competencia y
ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y
entorpece la creación cultural.
Con Internet y los sucesivos
avances tecnológicos se ha democratizado extraordinariamente la
creación y emisión de contenidos de todo tipo, que ya no provienen
prevalentemente de las industrias culturales tradicionales, sino de
multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho
a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y
actividades
asociadas a sus creaciones. Intentar sostener con
cambios legislativos a una industria obsoleta que no sabe adaptarse a
este nuevo entorno no es ni justo ni realista. Si su modelo de negocio
se basaba en el control de las copias de las obras y en Internet no es
posible sin vulnerar derechos fundamentales, deberían buscar otro
modelo.

6.- Consideramos que las industrias culturales necesitan para
sobrevivir alternativas modernas, eficaces, creíbles y asequibles y
que se adecuen a los nuevos usos sociales
, en lugar de
limitaciones tan desproporcionadas como ineficaces para el fin que
dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias
políticas
auspiciadas por sectores que pretenden perpetuar
obsoletos modelos de negocio e imposibilitar que el saber humano siga
siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la
Red en España
, ante cualquier presión que pueda producirse, como
marco para el desarrollo de una economía sostenible y realista de cara
al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad
intelectual
orientada a su fin: devolver a la sociedad el
conocimiento, promover el dominio público y limitar los abusos de las
entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse
tras el oportuno debate público
y habiendo consultado previamente
a todas las partes implicadas. No es de recibo que se realicen cambios
legislativos que afectan a derechos fundamentales en una ley no
orgánica y que versa sobre otra materia

Este texto se publica multitud de sitios web. Si estás de acuerdo,
publícalo también en tu blog.

dimarts 1 de desembre de 2009

Parsejador pel BOE

A al feina hem d'estar assabentats de les últimes notícies que es publiquen al B.O.E. (Noves tarifes, informes que s'han d'entregar, etc.) i com que moltes vegades se'ns passava el fet de cada dia obrir la pàgina i mirar si ens afectava.

Per millorar el procés he fet un petit script (poques hores dedicades) per tal que es connecti a la pàgina web del B.O.E i miri si hi ha alguna novetat pel ministeri i secció que l'hi especifiquem ens envia el text i els enllaços als PDFs.

L'script és mot senzill, se li diu en quin ministeri i en quines seccions ha de mirar i ell ja farà una cerca filtrant resultats, fent un resum i amb l'enllaç alPDF.

Una bona pràctica és lligar-ho amb un crontab, i que envii la sortida via mail. Per exemple:

python boe.py -m mityc -s sec1 | /usr/bin/mail -e -a "Content-Type: text/plain;charset=utf-8" -a "Content-Transfer-Encoding: 8bit" -s "RESUM BOE: `date +%d/%m/%Y`" email@example.com

Deixo l'script pujat aquí per si a algú li interessa o li pot servir d'alguna cosa.

dimecres 18 de novembre de 2009

Recuperar aplicacions Google amb l'HTC Tattoo d'Orange

Escric aquesta entrada ja que he descobert que els nous HTC Tattoo d'Orange venen capats d'algunes aplicacions de Google, com per exemple el Talk i el Youtube.

Podeu comprovar-ho anant a la pàgina dels manuals d'HTC Tattoo i veure que hi ha 3 manuals diferents:

  1. Original d'HTC
  2. El de vodafone
  3. El d'Orange (on hi falten els capítols del Talk i el Youtube)

Explicaré com fer-ho per tal de tenir aquestes aplicacions funcionant un altre cop.

Descarregar la ROM original d'HTC Tattoo

Per tal de descarregar-nos la ROM original d'HTC per Europa anem a HTCPedia, si us demana un login poseu una mica d'imaginació.

Descomprimir el sistema de fitxers

Un cop tingueu la ROM, primer l'heu de d'extreure del zip en que ve. El fitxer que ens interessa és el system.img aquest és un fitxer que és part del sistema Android i està en el format YAFFS. Per aconseguir-ho utilitzarem el projecte unyaffs (Podem utilitzar el pre-compilat o compilar-lo des del subversion).

$ unzip CLICIMG_Click_HTC_WWE_1.65.405.1_WWE_release_signed.zip

$ svn checkout http://unyaffs.googlecode.com/svn/trunk/ unyaffs
$ cd unyaffs
$ gcc -o unyaffs unyaffs.c

$ unyaffs system.img

Ara tindrem diverses carpetes creades, la que ens interessa és la que es diu app, aquí és on hi trobarem els paquets que ens interessen Talk.apk i YouTube.apk. Els copiem a la SD del mòbil per després instal·lar-los.

Instal·lar els paquets

Abans d'instal·lar els paquets necessitem un gestor de fitxers, recomano l'ASTRO. El podem instal·lar des del Market.
Un cop el tinguem instal·lat, obrim la SD i obrim cada paquet amb l'ASTRO i l'instal·lem :)

divendres 13 de novembre de 2009

Wifi a RENFE 'Media Distancia'

Doncs sí, resulta que als nous trens de RENFE, els anomenats Mitja distància, hi ha access points amb el ESSID: linksys. De fet la majoria té aquesta ESSID, perquè alguns ja han anat canviant els noms de xarxa per:

  • El revisor folla
  • 0wn3d
  • Com collons va això?
  • etc...
I la veritat és que no és difícil de fer això... amb una mica d'imaginació i nocions molt bàsiques ho pot fer tothom.

La xarxa wifi en sí no serveix per res, de moment no té sortida a Internet, però em pregunto... hi ha molts dispositius que es connecten automàticament sense preguntar quan es troben una xarxa wifi que oberta i que dona direcció IP. Per tant potser ens mantindrà entretinguts estudiant aparells connectats a aquesta xarxa si el viatge és avorrit :D

dijous 12 de novembre de 2009

Seguretat en l'OpenERP 4.2

Doncs sembla que la versió 4.2 de l'ERP lliure ja no està mantinguda, encara que en el seu repositori de codi posin la branca 4.2 com a mature en realitat hi hauria de posar abandoned. Les raons per pensar això són simples:

  • No es fa cap mena de backport de seguretat.
  • No es fa cas de cap bug enviat per la branca 4.2.
Tot comença quan fa un temps vaig descobrir que el protocol pickle de python era poc segur, després vaig veure que efectivament en la versió 5 estava arreglat, però no estava arreglat a la 4.2 (aquí és quan el meu cap pensa WTF?) quan el patch que s'ha d'aplicar és molt senzill i a més quan ja està arreglat a la versió 5. Vaig decidir obrir un bug #452379 adjuntant el patch i un exploit. El bug el vaig fer en privat (com es sol fer amb tots els bugs de seguretat) però al cap d'un mes cansat de la passivitat de l'equip de qualitat de l'OpenERP vaig decidir fer-lo públic.

També vaig enviar un altre bug #452373, aquest potser fins i tot més greu, permet executar qualsevol mètode del servidor sense usuari ni contrassenya (això és molt fort). També vaig adjuntar un patch i un possible exploit que llistava tots els usuaris i contrassanyes de l'ERP.

Aprofito per dir que per Internet corren bastants servidors vulnerables corrent amb 4.2. La segona vulnerabilitat de la que parlo també afecta a la versió 5 en primeres versions.

Si teniu servidors en 4.2 en producció apliqueu aquests dos pedaços per seguretat:

dijous 5 de novembre de 2009

Descomprimir gzip en memòria

Avui estava arreglant part d'un codi on es descarregava un fitxer gzip de la web i l'havia d'insertar el contingut a una taula d'una base de dades.

Anteriorment el codi feia:

  1. Baixar-se l'stream en gzip.
  2. Guardar-lo a un fitxer .gz al sistema de fitxers.
  3. Obrir el fitxer .gz guardat per descomprimir-lo.
  4. Guardar el fitxer descomprimint al sistema de fitxers.
  5. Obrir el fitxer descomprimit per llegir-lo
  6. Guardar-lo a la base de dades
De la llista anterior es pot deduir que hi ha massa descriptors de fitxers, i que l'accés al sistema de fitxers pot ser costosa. Per tant la idea era millorar aquest codi i fer que tant com es pogués es fes en memòria.

Buscant a la documentació del mòdul gzip de python només trobava que el paràmetre que se li podia passar era la ruta d'un fitxer i aquest després l'obria i duia  a terme totes les operacions. Finalment buscant pel sant google, he trobat una resposta a la magnífica pàgina de stackoverflow.

Actualment el codi fa:
  1. Baixar-se l'stream en gzip.
  2. Descomprimir l'stream gzip en memòria i posant-lo a un altre stream
  3. Obrir l'stream descomprimit.
  4. Guardar-lo a la base de dades
Exemple del codi en python
 
[...]
r = conn.getresponse()
c = StringIO.StringIO(r.read())
m = StringIO.StringIO(gzip.GzipFile(fileobj=c).read())
c.close()
     
# Importem el fitxer
import csv
reader = csv.reader(m, delimiter=';')

[...]
m.close()