LAMP Mix: Versión de PHP compilada y mysql, apache instalado desde apt-get


Buenos días.

La semana pasada me pidieron que montara un un servidor web, un tanto peculiar y para realizar pruebas, no dieron prioridad a ninguna distribución y como sabía que con lo que más relación habían tenido era Debian pues opté por ella.
Aprovecho esto para expresar mi completo descontento con lo atrasado que se ha quedado, por muchas versiones que vayan sacando si no mejoran ... Sólo quería expresar mi descontento con mi "distro favorita", claro la comparo con Gentoo, donde sí es un poco más "compleja", pero tienes lo que necesitas y le puedes decir a emerge qué quieres.
Aunque desde mi punto de vista quizás no sea 100% culpa de Debian ese deterioro, si no que no haya un sistema de paquetes decente común para todos y dejar de empaquetar paquetes, cada uno como mejor le parece (conviene).

Dicho esto, también tengo que nombrar tres desarrolladores con los que hablé. Me dijeron que para Web Servers CentOS (no se conoce ninguno de los que me lo dijeron "creo"), pero dejando de lado eso, también tengo visto en otras empresas en las que CentOS está pegando fuerte, después de ver un poco podría entender y "aceptar" la recomendación ... ya que Certifican Servidores. Después de que la máquina y las pruebas que quieren hacer estén finalizadas, haré la misma instalación en una máquina virtual sobre CentOS y daré mi opinión.

Vamos al lío.

Bueno, pues querían la versión de PHP 5.4.6 con soporte de mysql y libxml 2.6.21

cd /usr/src/
wget http://xmlsoft.org/sources/old/libxml2-2.6.21.tar.gz
wget http://museum.php.net/php5/php-5.4.6.tar.bz2

Bueno una vez bajados instalamos las dependencias necesarias.

apt-get install libmysqlclient-dev libssl-dev libbz2-dev libcurl3-dev libjpeg-dev libpng-dev apache2  apache2-prefork-dev
tar xvf libxml2-2.6.21.tar.gz ; cd  libxml2-2.6.21 
'./configure' '--prefix=/usr/local/libxml2/' 
make 
make install

Bueno tenemos la libxml listo, ahora vamos con php


tar xvf php-5.4.6.tar.bz2 cd php-5.4.6
 './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/etc/conf.d' '--with-apxs2=/usr/bin/apxs2' '--with-mysql' '--with-config-file-path=/usr/local/lib' '--with-libdir=/usr/lib/x86_64-linux-gnu/'  '--with-bz2'  '--with-mysqli' enable-zip' '--with-readline' '--with-libxml-dir=/usr/local/libxml2/'


Con  ./configure --help pueden ver más opciones y seleccionar según necesidades. Ahora nos dispondremos a compilar las fuentes


make


Una vez finalizado, podemos hacer el 


make test


Y por último instalamos 


make install


comprobamos que funciona.


/usr/local/php/bin/php -v



Ahora con estos pasos lo añadimos al sistema. ;)

mkdir -p /usr/local/php/etc/conf.d
cp php.ini-production /usr/local/php/etc/php.ini
ln -s /usr/local/php/etc /etc/phpln -s /usr/local/php/bin/php /usr/bin/phpln -s /usr/local/php/bin/phpize /usr/bin/phpizeln -s /usr/local/php/bin/pecl /usr/bin/pecl
ln -s /usr/local/php/bin/pear /usr/bin/pear
ln -s /usr/local/php/etc/php.ini /usr/local/lib/php.ini
Sólo nos queda probar que se vea en apache.
cd /var/www/ 
mv index.html index
vim index.php 
phpinfo();
?>
service apache2 restart


y abrimos en el navegador http://localhost , veremos el phpinfo. Ok, también es interesante dejar el phpmyadmin no es de mi agrado, pero reconozco que es cómodo muy cómodo.

wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.2.9.1/phpMyAdmin-4.2.9.1-all-languages.zip?r=&ts=1412243057&use_mirror=garr


















Failed on WHIRLPOOL verification


Buenas.

Ayer el webmaster quería que se le instalará dropbox en el servidor he hicieran modificaciones al script de incron que hizo +Rafael Gawenda. Bien la sorpresa vino cuando fue se fue a actualizar algunos paquetes, entre otros el sys-apps/portage, que depende de app-shells/bash.

Bien, el problema es:

2013-10-10 12:22:59 (521 KB/s) - `/usr/portage/distfiles/bash-4.2.tar.gz' saved [7009201/7009201]
!!! Fetched file: bash-4.2.tar.gz VERIFY FAILED!
!!! Reason: Failed on WHIRLPOOL verification
!!! Got:      fe3c0fde90e8cb919140ea91c01b558729d9d5792b3221a00b53afbddeeaf5c29ccfa52503e830a72a714ee5bfada44117b29946f173275f6aff16d05162feb8
!!! Expected: fd5f321a8a89381904b1dd1f5acb5100186ce48cccc9b248cf68b35a1c1932177df1fc2b0215131999ee6018decf3264c45e54d407bf4b74ff8e4cc8215c630a
Refetching... File renamed to '/usr/portage/distfiles/bash-4.2.tar.gz._checksum_failure_.0sX7W0'
!!! Couldn't download 'bash-4.2.tar.gz'. Aborting.
 * Fetch failed for 'app-shells/bash-4.2_p45', Log file:
 *  '/var/tmp/portage/app-shells/bash-4.2_p45/temp/build.log'
 * Messages for package app-shells/bash-4.2_p45:
 * Fetch failed for 'app-shells/bash-4.2_p45', Log file:
 *  '/var/tmp/portage/app-shells/bash-4.2_p45/temp/build.log'

Ejecutamos lo siguiente:

r2d2 ~ # emerge -a1O portage
r2d2 ~ # eselect python set 2
r2d2 ~ # eix-sync ( emerge --sync )
r2d2 ~ # dispatch-conf

Una vez solucionado el problema, pasamos a instalar los paquetes necesarios.

PD: No dejar caer en el olvido las actualizaciones!!! Que después pasa lo que pasa ;)






Instalando KDE Connect en GNU/Linux


Buenas.

Hoy les voy a contar un poco sobre KDE Connect, un proyecto muy interesante para tener una mejor convivencia con nuestros Android (si no lo es ya, perfecta al 98%). Desde mi punto de vista lo peor que le veo a día de hoy a Android, es la comunicación con el PC ( Sí, no es necesario, se hace todo de forma intuitiva y fácil, diremos la mayoría pero siempre hay alguno en contra). Yo particularmente uso ADB para pasar archivos y copiar cosas del PC al teléfono.

dguillermo@dguillermo ~ $ adb push /path/to/file /sdcard/

Pero entiendo y comparto que en otros sistemas operativos es un un poco más tedioso realizar la instalación del ADB. Vamos al lío, con KDE Cconnect, podremos compartir archivos del PC al Teléfono de forma fácil, desde el teléfono compartir seleccionamos KDE Connect y listo, además también podrás:

  • Notificar llamadas
  • Notificar SMS
  • Indicar el estado de la batería del móvil
  • Sincronizar portapapeles
  • Control Multimedia (audio/video)
  • Notificaciones de pings

Gentoo

dguillermo@dguillermo ~ $ emerge -av git cmake 

Variantes de Debian

dguillermo@dguillermo ~ $ apt-get install cmake kdebase-workspace-dev libqjson-dev git
dguillermo@dguillermo ~ $ git clone git://anongit.kde.org/scratch/albertvaka/kdeconnect-kded
dguillermo@dguillermo ~ $ cd kdeconnect-kded
dguillermo@dguillermo ~/kdeconnect-kde $ cmake -DCMAKE_INSTALL_PREFIX=/usr ~/kdeconnect-kde
dguillermo@dguillermo ~/kdeconnect-kde $ make
dguillermo@dguillermo ~/kdeconnect-kde $ make install

Todo el proceso, lo hice desde mi usuario sólo el make install, lo hice como root. Ahora ejecutamos

dguillermo@dguillermo ~/kdeconnect-kde $ qdbus org.kde.kded /kded loadModule kdeconnect
true
Una ves hecho esto, ejecutaremos.

dguillermo@dguillermo ~/kdeconnect-kde $ kcmshell4 kdeconnect

Ahora, sólo tendremos que ir al Google Play e KDE Connect, abrimos, seleccionamos el PC y creamos el vinculo y listo... 
Llámate desde otro teléfono y verás la notificación en el PC!! ;)

PD: está un poco verde el proyecto, pero la idea es fantástica!!! 




















Y se hizo la luz!

Buenas.

Para variar, he pasado una buena temporada sin escribir nada en el blog, me gustaría poder decirles que no volverá a pasar, pero soy un desastre.... Como muchos sabrán tengo una Rapsberry Pi desde hace bastante tiempo, algo de lo que tenía muchas ganas, era de hacer el típico experimento de encender leds mediante el GPIO.

Este fin de semana por fin me he decidido, hace unas cuatro semanas aproximadamente adquirí una protoboard, cables, botón y led. La intención de ese material, es dotar a la Raspberry Pi de un botón de encendido y apagado, ya que hacerlo quitando el cable de corriente es dañino para la SD e incómodo. Hoy sólo he jugado con los led, intentaré entre hoy y mañana que el botón de encendido y apagado funcione.

Primero descargarse el Wiring Pi, es una librería escrita en C , la cual  nos permite controlar GPIO , pudiendo controlar los diferentes pines de IO.  (Yo  he podido activar el GPIO, pero no asignarle valores a los pines que activo).

# sudo su
# apt-get install git-core
# git clone git://git.drogon.net/wiringPi
# cd wiringPi/
# git pull
# ./build

Una vez  instalado,
# gpio -v
gpio version: 2.13
Copyright (c) 2012-2013 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty 
This Raspberry Pi is a revision 1 board.

Y así sabremos (si no sabemos) que revisión del GPIO tenemos.



Como se puede observar, conectamos del GPIO3 a la protoboard, y del GPIO6 a la protoboard, y la resistencia en la misma zona que el led, una vez conectado todo encendemos la Raspberry Pi

La gran mayoría de opciones que vi, estaban hechas en C, python ... Yo me decanté por Bash, pasteo las lineas del script

root@raspbmc:~# cat leds
#!bin/bash
#
echo "Export GPIO0" ; echo 0 > /sys/class/gpio/export ; echo "... Done"
echo "Export GPIO1" ; echo 1 > /sys/class/gpio/export ; echo "... Done"
echo "Direction GPIO0" echo out > /sys/class/gpio/gpio0/direction ; echo "... Done"
echo "Direction GPIO1" echo out > /sys/class/gpio/gpio1/direction ; echo "... Done"
while true; do
echo 1 > /sys/class/gpio/gpio1/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio1/value
sleep 0.5
echo 1 > /sys/class/gpio/gpio0/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio0/value
sleep 0.5
done
echo "Power off GPIO0" ; echo 0 > /sys/class/gpio/unexport ; echo "... Done"
echo "Power off GPIO1" ; echo 1 > /sys/class/gpio/unexport ; echo "... Done"

Y aquí unas instantáneas del blink. 





En lo que tenga el botón a funcionar, pondré imágenes y conexiones, saludos! 





Solucionar problemas con RoundCube de addressbook


Buenas...

Desde hace algún tiempo vengo usado las versiones de RoundCube desde sus faces betas hasta la estable que salio hace poco, en una de las ultima actualizaciones me encontré con una serie de pequeños problemas que son el fruto de no hacer los UPGRADE bien, todo hay que decirlo desde luego.

Al usuario le aparece este mensaje, después de crear el usuario y darle a guardar.

An error occured while saving

Primero que nada, hacemos una copia de la DDBB para evitar problemas.

$ mysqldump -u USER roundcubemail > ~/201210241053.roundcubemail.sql -p



Pues bien, uno de los problemas que tenía era que los usuarios NO podían añadir nuevos contactos a sus addressbook, este problema viene de la TABLE users, donde no encuentra 'words' a la hora de guardar el contacto el debug canta...


[Last executed query: INSERT INTO contacts (user_id, changed, del, `vcard`, `name`,
  `email`, `firstname`, `surname`, `words`) VALUES ...
  [Native code: 1054] [Native message: Unknown column 'words' in 'field list']

Pues para solucionar esto.

$ mysql - USER -p
mysql> use roundcubemail;
mysql> ALTER TABLE `contacts` ADD `words` VARCHAR( 500 ) NULL DEFAULT NULL;

Ok, ahora nuestros usuarios podrán añadir contactos a sus addressbook.

Otro problema con el que me encontraba desde la versión 0.7.1 con está 0.8.1 era de que X usuarios no podían hacer login en RoundCube, pero sí en un squirrelmail. A diferencia del error anterior este no cantaba nada por ningún lado, ni logs de postfix, dovecot, apache.... Así que mi parche es el siguiente.

$ mysql -u usuario -p
mysql> SELECT *  FROM  `users`;    # Vemos la lista de usuarios.
mysql> INSERT INTO `roundcubemail`.`users` (`user_id`, `username`, `mail_host`, `alias`, `created`, `last_login`, `language`, `preferences`) VALUES (NULL, 'elmisterioso', 'dominio.org', '', '2012-10-20 10:00:00', '2012-10-24 10:00:00', 'es_ES', 'a:1:{s:11:"search_mods";a:4:{s:1:"*";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:4:"Sent";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:6:"Drafts";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:5:"INBOX";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}}}');   # Ok, aquí simplemente añadimos al usuario que no puede hacer login.
mysql> exit;


Procedemos a entrar en nuestro roundcube, con el usuario en cuestión.ACLARO esto es para salir del paso, lo ideal sería borrar la BBDD y crearla como es debido.

Saludos



Como actualizar firmware deco HD400S.


  1. Descargar el firmwre F170 y F202
  2. Descomprimir y copiar hd400s_0170_2to4m.upb en un pendrive.
  3. conectar el pendrive a la parte posterior del deco, una vez que lo reconozca hacemos click en Menú (mando a distancia/control remoto) y nos desplazamos hasta el apartado Tools/herramientas.
  4. Una vez aquí, seleccionamos la opción upgrade by usb, dentro de ésta opción seleccionamos:
    1. upgrade mode: ALLCODE
    2. upgrade file: hd400s_0170_2to4m.upb
    3. start

Esto le llevará unos pocos segundos instalar el nuevo firm, cuando finalice el propio deco se reinicia, tarda un poco en arrancar, pero arranca él sólo.
Copiamos el firm202.upb al pendrive y repetimos la operación con el hd400s_f0202.upb

  1. upgrade mode: ALLCODE
  2. upgrade file: hd400s_f0202.upb
  3. start

Recomiendo que copien un sólo firm, para evitar confundirse a la hora de seleccionar. Una vez actualizado, seleccionamos el satélite que vamos a usar (en mi caso Hotbird) buscamos los canales. Una vez tengamos todos los canales localizados, nos desplazamos hasta el JSC+2 y deberíamos poder disfrutar de los canales que tenemos contratados.

Bueno, tengo que decir que a mi me ha funcionado el FIRM202 con la ayuda de los compañeros de zackyfiles sin ellos nada de esto habría sido posible. Muchas gracias a todos por la paciencia que han tenido, con todas mis preguntas.


No me hago responsable de cualquier problema que estas acciones puedan ocasionar al deco, cada quien es responsable de lo que hace...

Configurar rtorrent y flexget (Parte I)

Buenas a todos, pido otra vez disculpas por tenerlos abandonados.

Gente, voy a dividirlo en partes, primero FlexGet y RSS después rtorrent...

Bueno desde hace algunas semanas llegó mi queridísima RaspberryPi, sólo tengo palabra de elogio para ella, me sorprendió en algunos aspectos _(sabía que era pequeña, pero es aún más de lo que esperaba jajajaja)_ no ocupa espacio, es discreta y su consumo es ridículo _(yo la tengo conectada al router del ISP, así que... ¿consume 0, no? ;-Þ )_. Yo tenía pensada una función específica para ella, quería suplir la Xbox Original que tan amablemente Lolo _(uno de los sysadmins krtux)_ ha  cedido para que el pequeño pudiera reproducir sus diferentes archivos multimedia. y para que le tuviera actualizada la versión de XBMC4XBOX.

Pero bueno, unos días antes de que llegara mi nuevo amor, repentinamente el router que tenía funcionando desfalleció, con lo cual me quedé bastante tirado, esperé por la RaspberryPi para ver si podía encargarse de esa función de router y lo está haciendo a las mil maravillas todo lo que le pido, que tampoco es tanto (unos routes por aquí, una OpenVPN por allá, unas iptables rules más acá, DNS local y poco más).

La atracción que tengo con FlexGet sinceramente data de un año y pico atrás, pero por vagancia, tiempo no había podido concretar la unión entre él y algún cliente torrent, si no era por problemas con python era por cualquier otra cosa. Hasta que la semana pasada, después de configurar los demonios antes mencionados y me decidí al 100% hacer funcionar a FlexGet, la verdad es que TODO lo que da esto es simplemente descomunal...

FlexGet como dicen ellos "FlexGet is a multipurpose automation tool for content like torrents, nzbs, podcasts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds."

Esto va a ser útil para aquellos que sigan varias series y quieran despreocuparse de tener que ver cuando emiten el episodio en USA _(o de donde quiera que sea la serie que sigas)_ y buscar una fuente para conseguirlo, además le puedes decir qué tipo de archivo quieres, los episodios, temporada que ya viste para que se baje los siguientes, la calidad que quieres que sea el archivo, incluso puedes decirle que quieres que del grupo XXX no se baje nada. Con este pequeño resumen de qué es FlexGet creo que queda claro cual será su función (me quedo corto en sus posibilidades, leer en su web TODO lo que pueden hacer con él).

Yo estoy usando Raspbian “wheezy” es una distro oficial y optimizada para raspberrypi.
su -
apt-get install python2.6 python-setuptools

después de que hayamos instalado esto, seguimos...


easy_install flexget
flexget -V


Ok, ya lo tenemos instalado. ¿Ahora? fácil, crear el fichero de configuración. ¿Sabes exactamente lo que quieres ver, hacer y de donde sacar la información?

en la configuración NO USAR TAB, sólo DOS ESPACIOS. Paso a explicar mi configuración:


feeds:
  Series TV Shows:
    rss:  turss ;-Þ
    series:
      hdtv h264:
      - breaking bad:
          watched: S05E02
 
    content_size:
      min: 300
      max: 1000
          # email:
#   from: user@u'redomainDOTcom
#   to: user@u'redomainDOTcom
#   smtp_host: smtp.gmail.com
#   smtp_port: 587
#   smtp_username: user@u'redomainDOTcom
#   smtp_password: password
#   smtp_tls: yes 
    download: /media/net/nas/woxter/rtorrent/Torrents/

  • Series TV Shows - Nombre para el Grupo Series
  • rss - lugar desde donde vamos a adquirir nuestros torrents para después disfrutar de la Serie, Lolo me comentó sobre ShowRSS y es muy cómodo, suelo tirar más de eztv pero para gustos...
  • Series - Mi listado de series
  • HDTV - la calidad en la que quiero los episosios
  • Watched - Temporada/Episodio visto
  • content_size - específicas tamaño min/max del archivo
  • content_filter - simplemente tengo todas las temporadas de los ripeos de este grupo, me gusta y los subtíulo son fáciles de conseguir 
  • Download - Es donde baja el torrent (para que el rtorrent lo ponga a bajar en lo que esté en esa carpeta)
  • email - Estoy tentado a usarlo, lo tengo configurado pero aún no lo puse en producción.
Por ahora sólo tengo Breaking Bad añadida, pero en los próximos días iré añadiendo TODAS las demás, porque en Septiembre empieza lo bueno y hay que tenerlo listo para que sólo tenga que bajar el subtítulo y disfrutar de tu serie favorita.


Después de que está todo añadido, comprobaremos la configuración con:

flexget --check

hacemos una prueba de ejecución:

flexget --test

Sí todo sale bien, sólo nos queda meterlo en con cron para que se ejecute cada 10-20 o 5 minutos, si no tienes un tracker privado... No tienes que mantener prestigio ni nada por el estilo así que yo lo ejecuto cada 30 mins...

crontab -e

añadimos...


*/10 * * * * /usr/local/bin/flexget --cron


Listo señores, con esto ya podremos dedicar el tiempo ahorrado en otras cosas, saludos y disfruten mucho.

fuentes: aquiyaceelrootflexget

UPDATE:  Sat Aug  4 15:40:41 CEST 2012  Gracias gazpachoking por la información. ( Thabks gazpachoking for corrections)

Configurar cliente GNU/Linux con NRPE para comprobar desde Nagios

Buenas tardes.

Pido una vez más disculpas por volver a descuidar el blog, pero la falta de tiempo se lo lleva todo. Esta semana me he puesto actualizar y reconfigurar cosas en uno de los servidores, y me di cuenta de que no estaba chequando los demonios bien y mucho menos los espacios. Así que me puse a ello y me tope con algunos problemas que me gustaría comentar, para así evitar que les pase lo mismo y vaya más fluido todo.

Lo primero que tenemos que hacer es descargar de la web oficial de Nagios los plugins, para meterlos en el servidor GNU/Linux que queremos chequear.

PS:     Para los usuarios de debian es necesario tener instalado el paquete libssl-dev
PS2 :  Esto se ha configurado sobre Debian squeeze/etch y Gentoo.
$ wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
$ tar zxvf nagios-plugins-1.4.15.tar.gz && cd nagios-plugins-1.4.15
$ useradd -p nagios nagios
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-ssl --libexecdir=/usr/local/nagios/libexec --bindir=/usr/local/nagios/bin/
$ make all
$ make install
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
$ tar zxvf nrpe-2.13.tar.gz ; cd nrpe-2.13
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-ssl --prefix=/usr/local/nagios/ --sysconfdir=/usr/local/nagios/etc  --bindir=/usr/local/nagios/bin
$ make all
$ make install{,-plugin,-daemon,-daemon-config}

Bien después de instalar estos paquetes, solo nos queda configurar el demonio y sus respectivos comandos, para poder llamarlo desde el servidor nagios y comprobar lo que nos haga falta. vamos a ello. Yo me encontré con un problema en Debian Etch (ya lo sé, se que me van a decir que está deprecated PERO, lo que está de cara al aexterior está actualizado). y es que si no le digo que el pid lo ponga en /var/run/nrpe/ me da un problema de permiso denegado, pq no se puede lanzar como root, evidentemente.

entonces hay que modificar en /usr/local/nagios/etc/nrpe.cfg lo siguiente:


pid_file=/var/run/nrpe.pid
por
pid_file=/var/run/nrpe/nrpe.pid
Descomentar
#server_address 
por
server_address=IP
Añadir IP de los equipos permitidos:
allowed_hosts=127.0.0.1,192.x.x.x,10.x.x.x

Salvamos y creamos la carpeta. Descomentamos al final del archivo todos los  "commands" y añadimos lo que nos interesa.

$ mkdir /var/run/nrpe ; chown nagios:nagios /var/run/nrpe/$ echo "nrpe 5666/tcp #NRPE" >> /etc/services

Editamos el /etc/host.allow para permitir a los equipos que queremos.

ALL: IP

Copiamos y modificamos el script de inicio para el demonio...

$ cp init-script.debian /etc/init.d/nrpe ; chmod +x /etc/init.d/nrpe

Una vez hecho esto, podemos lanzar el demonio y comprobar que está corriendo...

$ /etc/init.d/nrpe start ; netstat -l| grep nrpetcp        0      0 10.68.30.223:nrpe       *:*                     LISTEN     

Sí obtenemos esa respuesta, es lo que deseamos tenemos corriendo el servicio. Ahora comprobamos desde el servidor, que podemos hablar con él

$ /usr/lib64/nagios/plugins/check_nrpe -H 10.68.30.223
NRPE v2.13

Perfecto, todo va viento en popa, configurado y corriendo, ahora ajustamos los parámetros que queremos chequear, ya sean procesos, carga de CPU y disco duro.

$ /usr/lib64/nagios/plugins/check_nrpe -H IP -c check_total_procs
PROCS OK: 75 processes

Configurado, solo nos queda añadir el servicio en nagios y el servidor correspondiente, que sería algo así

define service{
        use                             generic-service
        host_name                  Dozer
        service_description     Total Processes
        check_command        check_nrpe!check_total_procs
        }
$ /etc/init.d/nagios reload 

Esperamos que lea y cargue los demonios pendientes por chequear y desde de este momento dejaremos de dormir en paz, como lo veníamos haciendo hasta ahora. Gracias a la felicidad que sólo puede proporcionar la ignorancia.

Usando Fbsplash en Gentoo

Hoy se me ha dado por solucionar algunos pequeños errores que tenía en el boot de mi máquina y viendo el arranque, me he dicho... "¡Ufff  esto es más soso que yo!". Dicho esto, me puse a leer un poco sobre lo que se usa ahora para el BootSplash (como yo lo conocía ... hace mucho).

Bueno, lo primero que tenemos que hacer es instalar media-gfx/splashutils con los USE  fbcondecor mng y static-libs algunas de sus dependencias, también les hará falta, así que tendrán que las recompilamos. Aparte de esto, también hay que tener soporte en el kernel:


Device Drivers ->
    Graphics support ->
        <*> Support for frame buffer devices  --->
            Console display driver support  --->
                <*> Framebuffer Console support
                [ ] Enable Tile Blitting Support
                [*] Support for the Framebuffer Console Decorations

Device Drivers --->
    Input Device Support --->
        <*> Event Interface

kaiser ~ # emerge -avN splashutils


Bien, ya tenemos la base, ahora nos hará falta algún tema para darle vidilla a nuestras tty's (yo instale el splash-themes-gentoo), si quieres conocer más opciones:

kaiser ~ # eix splash-themes
kaiser ~ # emerge -av splash-themes-gentoo

Ok, ahora vemos el contenido de la carpeta /etc/splash/, para probar y elegir el que más nos gusta...

kaiser ~ # splash_manager -c set --theme=natural_gentoo --tty=1

Una vez hayamos elegido nuestro preferido, con  Ctrl+Alt+F1 bajamos a la tty1 para comprobar el tema seleccionado y una vez elegido generamos la imagen para hacerlo permanente.

kaiser ~ # splash_geninitramfs --verbose --res 1024x768 --generate /boo/initramfs-bootsplash-3.1.4 natural_gentoo

Ahora añadimos un par de líneas a nuestro lilo (Sí lo sé ahora saldrán todos aquellos que adoran a Grub y blasfemaran de mí y lilo, pero ese debate discusión prefiero dejarlo para otro post dedicado a él. Si no les importa amigos.)


image = /boot/vmlinuz-3.1.4-gentoo
        root = /dev/sda6
        label = Gentoo-3.1.4
        read-only
        initrd=/boot/initramfs-bootsplash-3.1.4
        append="splash=verbose,theme:natural_gentoo"

Las líneas que tenemos que añadir son las que están en negrita, una vez añadido, ejecutamos lilo...

kaiser ~ #  lilo


Una última cosa es añadir al /etc/conf.d/fbcondecor, para tener la imagen en todas las tty. Descomentamos la línea:

 FBCONDECOR_TTYS="1 2 3 4 5 6"


y añadimos al arranque:

kaiser ~ # rc-update add fbcondecor boot 


Ahora tenemos unas tty más acogedoras para esos ratos agradables que pasamos en ellas, suerte y espero que les sirva y guste a todos, saludos!!!!








Cómo crear un USB encriptado para proteger datos sensibles


Bueno como dije ayer en twitter, hoy voy a explicar el método que uso para proteger algunos de los datos más sensibles que manejo en mi entorno de trabajo, navegador, ssh keys y datos varios. Hago referencia al script que uso,que fue hecho por Rafael Gawenda y también fue su idea, yo modifique el script para mis necesidades.

Bueno, lo primero que tenemos que hacer es generar un archivo para después encriptarlo. Así creamos un archivo llamado "key" en el pendrive que tendrá una partición de 2.9GB (esto tardará un rato).
 kaiser ~ # dd if=/dev/urandom of=/media/dguillermo/key bs=1024k count=2950
 Ok, ahora que tenemos nuestro archivo, sólo nos quedaría encriptarlo, (yo compilo el Kernel Linux específico para mi máquina y sus características específicas, no comparto esa idea de usar un Kernel genérico con "20 drivers de sonido" cuando tengo una sola tarjeta de sonido). AES, Blowfish, Twofish, RC5, RC6, Serpent.
losetup -e Blowfish /dev/loop0 /media/dguillermo/key
 Esto nos pedirá una clave, la cual será la que usaremos para montar nuestra partición, una vez hayamos introducido la clave, tendremos que formatear esa partición, aquí lo mismo de antes depende de lo que tu kernel soporte, yo uso XFS,y llevo tiempo usándolo en la partición donde tengo los ficheros multimedia y "noto" que me va mejor que EXT4, para gustos Sistemas de Archivos ;-Þ

kaiser ~ # mkfs.xfs -f /dev/loop0  (en mi caso)
kaiser ~ # mkfs.ext4 -f /dev/loop0 (si te decantas por este sistema de archivos)

Bien, ahora desmontamos /dev/loop0

kaiser ~ # losetup -d /dev/loop0
Ok, ahora les cuento el detalle para tener controlado el pendrive y añadimos una línea a udev, pero primero tenemos que saber qué modelo de USB y su Serial, lo cual descubrimos de la siguiente manera:

kaiser ~ # lsusb (vemos donde está nuestro pendrive) y después hacemos:
kaiser ~ # lsusb -v -s 009 (en mi caso) ahora añadimos el serial a /etc/udev/rules.d/97-usbkey.rules
kaiser ~ # echo "ATTRS{serial}=="AA0000000000XXXX", SYMLINK+="key" " > /etc/udev/rules.d/97-usbkey.rules

Ahora viene la parte más bonita y detalles curiosos. Añadimos a /etc/fstab:

/media/dguillermo/key     /media/j0d3/key               xfs     defaults,noauto,loop,encryption=blowfish,user 0 0

Bueno, le damos permiso para que nuestro usuario pueda usar ese path y si no existe lo creamos

kaiser ~ # mkdir -p /media/j0d3/key
kaiser ~ # chown user:user -R /media/j0d3/*

Ok, ahora pasteo el código del script hecho por Rafael Gawenda y modificado para mis necesidades ;-Ð

#!/bin/bash
media=( "" /media/dguillermo/{/,key} )
umedia=( "" /media/j0d3/key /media/dguillermo/ )
case ${0##*/} in
        xkey+ )
                for fs in  2
                        do
                                mount  /media/j0d3/key
                        done
                ;;
        xkey- )
                keychain --agents ssh --stop all
                for fs in 1 2
                        do
                                 /bin/umount ${umedia[$fs]}
                        done
                ;;
        xkey )
                [[ $(/bin/mount|/bin/grep -c "/media/j0d3/key/" ) -eq 1 ]] && ${0}- || ${0}+
                ;;
        * )
                ;;
esac
De está manera ya montamos y desmontamos nuestra partición de una forma fácil, sólo le damos permiso de ejecución, hacemos un link a xkey xkey+ xkey-

kaiser ~ # chmod +x xkey
kaiser ~ # ln -s xkey xkey+
kaiser ~ # ln -s xkey xkey- 


Para no tener que tirar de /usr/bin/, podemos crear un directorio en nuestro home y meterlo ~/bin, esto lo añadimos al path en ~/.bashrc.

 kaiser ~ # vim ~/.bashrc  (y añadimos el directorio en la linea del Path): 
Si no estás familiarizado con este formato, te aconsejo que lo pongas de primero
Path="~/bin:......" (guardamos los cambios)
 source .bashrc

y ahora cuando ejecutemos xkey+ nos pedirá la clave que metimos cuando encriptamos la partición. No voy a explicar cómo compartir claves ssh, sólo ciertos detalles que me parecen curiosos.

movemos todo el contenido de ~/.ssh/  a  /media/j0d3/key y hacemos un link.

kaiser ~ # mv ~/.ssh/ /media/j0d3/key/
kaiser ~ # ln -s /media/j0d3/key/.ssh ~/.ssh/

hasta aquí todo fácil, ahora bien en el pendrive también meto el perfil de Chromium el cual se guarda en ~/.config/chromium/Default, misma operación movemos todo.

kaiser ~ # mv ~/.config/chromium/Default /media/j0d3/key/  (está demás decir, que hay que tener el navegador cerrado para realizar está operación) ;-Ð
kaiser ~ # ln -s /media/j0d3/key/.config/chromium/Default  ~/.config/chromium/Default 
Ok, ahora tenemos nuestras claves todas seguras en nuestra partición encriptada, así que todo perfecto (yo copio el ~/.ssh/config a un path diferente) para que cuando no tenga montado el pendrive me mantenga esa configuración, ya que al tener varios servers en puertos diferentes, es más cómodo. Ok, ahora desmontamos el pendrive...

kaiser ~ # xkey- 

Bien, ahora vamos /media/j0d3/key/, hacemos un ls -alh y está vacío evidentemente... Pues creamos algunos directorios...

kaiser ~ # cd /media/j0d3/key/
kaiser ~ # mkdir .ssh ; cp ~/path/config/que/copiamos/del/~/.ssh/
kaiser ~ # ln -s /media/j0d3/key/.ssh ~/.ssh

Abrimos el chromium, para que cree un perfil nuevo y limpio y misma operación...

kaiser ~ # mkdir -p .config/chromium/
kaiser ~ # mv ~/.config/chromium/Default /media/j0d3/key/.config/chromium/

Y de ésta manera, tendremos un navegador limpio y vacío por si alguien usa nuestra computadora. Esta semana probaré a meter una aplicación de Wine que uso con relativa frecuencia para tener la misma configuración tanto en el trabajo como en la casa. Espero que esto les sea tan útil y cómodo como lo es para mí.






Instalando una ROM oficial en HTC Hero una vez flasheada



Vamos a lo que vamos vi muchos tutoriales de como hacer esto sobre las diferentes versiones de  Windows, pero no lo tengo y a buscarnos la vida como siempre, así que lo primero que tenemos que hacer es conseguir el OpenRUU porque HTC distribuye sus ROM's oficiales empaquetadas en un *.exe. 


$ cd ~/Downloads/OpenRUU-Xtract-beta2 ; sh 1extractrom.sh 


Debemos tener instalado Wine, para poder usar el rom.zip, que viene dentro... Y seguir los pasos que nos van diciendo, Una termine los precesos, ejecutamos 


$ sh  2FastbootFlash-Linux


Para este paso es necesario estar en el fastboot al cual llegamos de cualquiera de estás dos formas:


Con el teléfono apagado pulsamos atrás+power 
$ adb reboot bootloader


Listo ya nos instala la ROM oficial... Bueno, como verán está en face BETA, bajo la responsabilidad de cada uno se usa, yo lo he necesitado dos veces y perfecto funciona.


Terminales soportados:


 1. HTC GSM Hero 2. HTC Desire
 3. HTC Tattoo
 4. HTC CDMA Hero
 5. HTC Legend
 6. HTC Droid Incredible
 7. HTC EVO 4G


2014/10/30

LAMP Mix: Versión de PHP compilada y mysql, apache instalado desde apt-get


Buenos días.

La semana pasada me pidieron que montara un un servidor web, un tanto peculiar y para realizar pruebas, no dieron prioridad a ninguna distribución y como sabía que con lo que más relación habían tenido era Debian pues opté por ella.
Aprovecho esto para expresar mi completo descontento con lo atrasado que se ha quedado, por muchas versiones que vayan sacando si no mejoran ... Sólo quería expresar mi descontento con mi "distro favorita", claro la comparo con Gentoo, donde sí es un poco más "compleja", pero tienes lo que necesitas y le puedes decir a emerge qué quieres.
Aunque desde mi punto de vista quizás no sea 100% culpa de Debian ese deterioro, si no que no haya un sistema de paquetes decente común para todos y dejar de empaquetar paquetes, cada uno como mejor le parece (conviene).

Dicho esto, también tengo que nombrar tres desarrolladores con los que hablé. Me dijeron que para Web Servers CentOS (no se conoce ninguno de los que me lo dijeron "creo"), pero dejando de lado eso, también tengo visto en otras empresas en las que CentOS está pegando fuerte, después de ver un poco podría entender y "aceptar" la recomendación ... ya que Certifican Servidores. Después de que la máquina y las pruebas que quieren hacer estén finalizadas, haré la misma instalación en una máquina virtual sobre CentOS y daré mi opinión.

Vamos al lío.

Bueno, pues querían la versión de PHP 5.4.6 con soporte de mysql y libxml 2.6.21

cd /usr/src/
wget http://xmlsoft.org/sources/old/libxml2-2.6.21.tar.gz
wget http://museum.php.net/php5/php-5.4.6.tar.bz2

Bueno una vez bajados instalamos las dependencias necesarias.

apt-get install libmysqlclient-dev libssl-dev libbz2-dev libcurl3-dev libjpeg-dev libpng-dev apache2  apache2-prefork-dev
tar xvf libxml2-2.6.21.tar.gz ; cd  libxml2-2.6.21 
'./configure' '--prefix=/usr/local/libxml2/' 
make 
make install

Bueno tenemos la libxml listo, ahora vamos con php


tar xvf php-5.4.6.tar.bz2 cd php-5.4.6
 './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/etc/conf.d' '--with-apxs2=/usr/bin/apxs2' '--with-mysql' '--with-config-file-path=/usr/local/lib' '--with-libdir=/usr/lib/x86_64-linux-gnu/'  '--with-bz2'  '--with-mysqli' enable-zip' '--with-readline' '--with-libxml-dir=/usr/local/libxml2/'


Con  ./configure --help pueden ver más opciones y seleccionar según necesidades. Ahora nos dispondremos a compilar las fuentes


make


Una vez finalizado, podemos hacer el 


make test


Y por último instalamos 


make install


comprobamos que funciona.


/usr/local/php/bin/php -v



Ahora con estos pasos lo añadimos al sistema. ;)

mkdir -p /usr/local/php/etc/conf.d
cp php.ini-production /usr/local/php/etc/php.ini
ln -s /usr/local/php/etc /etc/phpln -s /usr/local/php/bin/php /usr/bin/phpln -s /usr/local/php/bin/phpize /usr/bin/phpizeln -s /usr/local/php/bin/pecl /usr/bin/pecl
ln -s /usr/local/php/bin/pear /usr/bin/pear
ln -s /usr/local/php/etc/php.ini /usr/local/lib/php.ini
Sólo nos queda probar que se vea en apache.
cd /var/www/ 
mv index.html index
vim index.php 
phpinfo();
?>
service apache2 restart


y abrimos en el navegador http://localhost , veremos el phpinfo. Ok, también es interesante dejar el phpmyadmin no es de mi agrado, pero reconozco que es cómodo muy cómodo.

wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.2.9.1/phpMyAdmin-4.2.9.1-all-languages.zip?r=&ts=1412243057&use_mirror=garr


















2013/10/10

Failed on WHIRLPOOL verification


Buenas.

Ayer el webmaster quería que se le instalará dropbox en el servidor he hicieran modificaciones al script de incron que hizo +Rafael Gawenda. Bien la sorpresa vino cuando fue se fue a actualizar algunos paquetes, entre otros el sys-apps/portage, que depende de app-shells/bash.

Bien, el problema es:

2013-10-10 12:22:59 (521 KB/s) - `/usr/portage/distfiles/bash-4.2.tar.gz' saved [7009201/7009201]
!!! Fetched file: bash-4.2.tar.gz VERIFY FAILED!
!!! Reason: Failed on WHIRLPOOL verification
!!! Got:      fe3c0fde90e8cb919140ea91c01b558729d9d5792b3221a00b53afbddeeaf5c29ccfa52503e830a72a714ee5bfada44117b29946f173275f6aff16d05162feb8
!!! Expected: fd5f321a8a89381904b1dd1f5acb5100186ce48cccc9b248cf68b35a1c1932177df1fc2b0215131999ee6018decf3264c45e54d407bf4b74ff8e4cc8215c630a
Refetching... File renamed to '/usr/portage/distfiles/bash-4.2.tar.gz._checksum_failure_.0sX7W0'
!!! Couldn't download 'bash-4.2.tar.gz'. Aborting.
 * Fetch failed for 'app-shells/bash-4.2_p45', Log file:
 *  '/var/tmp/portage/app-shells/bash-4.2_p45/temp/build.log'
 * Messages for package app-shells/bash-4.2_p45:
 * Fetch failed for 'app-shells/bash-4.2_p45', Log file:
 *  '/var/tmp/portage/app-shells/bash-4.2_p45/temp/build.log'

Ejecutamos lo siguiente:

r2d2 ~ # emerge -a1O portage
r2d2 ~ # eselect python set 2
r2d2 ~ # eix-sync ( emerge --sync )
r2d2 ~ # dispatch-conf

Una vez solucionado el problema, pasamos a instalar los paquetes necesarios.

PD: No dejar caer en el olvido las actualizaciones!!! Que después pasa lo que pasa ;)






Instalando KDE Connect en GNU/Linux


Buenas.

Hoy les voy a contar un poco sobre KDE Connect, un proyecto muy interesante para tener una mejor convivencia con nuestros Android (si no lo es ya, perfecta al 98%). Desde mi punto de vista lo peor que le veo a día de hoy a Android, es la comunicación con el PC ( Sí, no es necesario, se hace todo de forma intuitiva y fácil, diremos la mayoría pero siempre hay alguno en contra). Yo particularmente uso ADB para pasar archivos y copiar cosas del PC al teléfono.

dguillermo@dguillermo ~ $ adb push /path/to/file /sdcard/

Pero entiendo y comparto que en otros sistemas operativos es un un poco más tedioso realizar la instalación del ADB. Vamos al lío, con KDE Cconnect, podremos compartir archivos del PC al Teléfono de forma fácil, desde el teléfono compartir seleccionamos KDE Connect y listo, además también podrás:

  • Notificar llamadas
  • Notificar SMS
  • Indicar el estado de la batería del móvil
  • Sincronizar portapapeles
  • Control Multimedia (audio/video)
  • Notificaciones de pings

Gentoo

dguillermo@dguillermo ~ $ emerge -av git cmake 

Variantes de Debian

dguillermo@dguillermo ~ $ apt-get install cmake kdebase-workspace-dev libqjson-dev git
dguillermo@dguillermo ~ $ git clone git://anongit.kde.org/scratch/albertvaka/kdeconnect-kded
dguillermo@dguillermo ~ $ cd kdeconnect-kded
dguillermo@dguillermo ~/kdeconnect-kde $ cmake -DCMAKE_INSTALL_PREFIX=/usr ~/kdeconnect-kde
dguillermo@dguillermo ~/kdeconnect-kde $ make
dguillermo@dguillermo ~/kdeconnect-kde $ make install

Todo el proceso, lo hice desde mi usuario sólo el make install, lo hice como root. Ahora ejecutamos

dguillermo@dguillermo ~/kdeconnect-kde $ qdbus org.kde.kded /kded loadModule kdeconnect
true
Una ves hecho esto, ejecutaremos.

dguillermo@dguillermo ~/kdeconnect-kde $ kcmshell4 kdeconnect

Ahora, sólo tendremos que ir al Google Play e KDE Connect, abrimos, seleccionamos el PC y creamos el vinculo y listo... 
Llámate desde otro teléfono y verás la notificación en el PC!! ;)

PD: está un poco verde el proyecto, pero la idea es fantástica!!! 




















2013/10/05

Y se hizo la luz!

Buenas.

Para variar, he pasado una buena temporada sin escribir nada en el blog, me gustaría poder decirles que no volverá a pasar, pero soy un desastre.... Como muchos sabrán tengo una Rapsberry Pi desde hace bastante tiempo, algo de lo que tenía muchas ganas, era de hacer el típico experimento de encender leds mediante el GPIO.

Este fin de semana por fin me he decidido, hace unas cuatro semanas aproximadamente adquirí una protoboard, cables, botón y led. La intención de ese material, es dotar a la Raspberry Pi de un botón de encendido y apagado, ya que hacerlo quitando el cable de corriente es dañino para la SD e incómodo. Hoy sólo he jugado con los led, intentaré entre hoy y mañana que el botón de encendido y apagado funcione.

Primero descargarse el Wiring Pi, es una librería escrita en C , la cual  nos permite controlar GPIO , pudiendo controlar los diferentes pines de IO.  (Yo  he podido activar el GPIO, pero no asignarle valores a los pines que activo).

# sudo su
# apt-get install git-core
# git clone git://git.drogon.net/wiringPi
# cd wiringPi/
# git pull
# ./build

Una vez  instalado,
# gpio -v
gpio version: 2.13
Copyright (c) 2012-2013 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty 
This Raspberry Pi is a revision 1 board.

Y así sabremos (si no sabemos) que revisión del GPIO tenemos.



Como se puede observar, conectamos del GPIO3 a la protoboard, y del GPIO6 a la protoboard, y la resistencia en la misma zona que el led, una vez conectado todo encendemos la Raspberry Pi

La gran mayoría de opciones que vi, estaban hechas en C, python ... Yo me decanté por Bash, pasteo las lineas del script

root@raspbmc:~# cat leds
#!bin/bash
#
echo "Export GPIO0" ; echo 0 > /sys/class/gpio/export ; echo "... Done"
echo "Export GPIO1" ; echo 1 > /sys/class/gpio/export ; echo "... Done"
echo "Direction GPIO0" echo out > /sys/class/gpio/gpio0/direction ; echo "... Done"
echo "Direction GPIO1" echo out > /sys/class/gpio/gpio1/direction ; echo "... Done"
while true; do
echo 1 > /sys/class/gpio/gpio1/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio1/value
sleep 0.5
echo 1 > /sys/class/gpio/gpio0/value
sleep 0.5
echo 0 > /sys/class/gpio/gpio0/value
sleep 0.5
done
echo "Power off GPIO0" ; echo 0 > /sys/class/gpio/unexport ; echo "... Done"
echo "Power off GPIO1" ; echo 1 > /sys/class/gpio/unexport ; echo "... Done"

Y aquí unas instantáneas del blink. 





En lo que tenga el botón a funcionar, pondré imágenes y conexiones, saludos! 





2012/10/25

Solucionar problemas con RoundCube de addressbook


Buenas...

Desde hace algún tiempo vengo usado las versiones de RoundCube desde sus faces betas hasta la estable que salio hace poco, en una de las ultima actualizaciones me encontré con una serie de pequeños problemas que son el fruto de no hacer los UPGRADE bien, todo hay que decirlo desde luego.

Al usuario le aparece este mensaje, después de crear el usuario y darle a guardar.

An error occured while saving

Primero que nada, hacemos una copia de la DDBB para evitar problemas.

$ mysqldump -u USER roundcubemail > ~/201210241053.roundcubemail.sql -p



Pues bien, uno de los problemas que tenía era que los usuarios NO podían añadir nuevos contactos a sus addressbook, este problema viene de la TABLE users, donde no encuentra 'words' a la hora de guardar el contacto el debug canta...


[Last executed query: INSERT INTO contacts (user_id, changed, del, `vcard`, `name`,
  `email`, `firstname`, `surname`, `words`) VALUES ...
  [Native code: 1054] [Native message: Unknown column 'words' in 'field list']

Pues para solucionar esto.

$ mysql - USER -p
mysql> use roundcubemail;
mysql> ALTER TABLE `contacts` ADD `words` VARCHAR( 500 ) NULL DEFAULT NULL;

Ok, ahora nuestros usuarios podrán añadir contactos a sus addressbook.

Otro problema con el que me encontraba desde la versión 0.7.1 con está 0.8.1 era de que X usuarios no podían hacer login en RoundCube, pero sí en un squirrelmail. A diferencia del error anterior este no cantaba nada por ningún lado, ni logs de postfix, dovecot, apache.... Así que mi parche es el siguiente.

$ mysql -u usuario -p
mysql> SELECT *  FROM  `users`;    # Vemos la lista de usuarios.
mysql> INSERT INTO `roundcubemail`.`users` (`user_id`, `username`, `mail_host`, `alias`, `created`, `last_login`, `language`, `preferences`) VALUES (NULL, 'elmisterioso', 'dominio.org', '', '2012-10-20 10:00:00', '2012-10-24 10:00:00', 'es_ES', 'a:1:{s:11:"search_mods";a:4:{s:1:"*";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:4:"Sent";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:6:"Drafts";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:5:"INBOX";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}}}');   # Ok, aquí simplemente añadimos al usuario que no puede hacer login.
mysql> exit;


Procedemos a entrar en nuestro roundcube, con el usuario en cuestión.ACLARO esto es para salir del paso, lo ideal sería borrar la BBDD y crearla como es debido.

Saludos



2012/10/23

Como actualizar firmware deco HD400S.


  1. Descargar el firmwre F170 y F202
  2. Descomprimir y copiar hd400s_0170_2to4m.upb en un pendrive.
  3. conectar el pendrive a la parte posterior del deco, una vez que lo reconozca hacemos click en Menú (mando a distancia/control remoto) y nos desplazamos hasta el apartado Tools/herramientas.
  4. Una vez aquí, seleccionamos la opción upgrade by usb, dentro de ésta opción seleccionamos:
    1. upgrade mode: ALLCODE
    2. upgrade file: hd400s_0170_2to4m.upb
    3. start

Esto le llevará unos pocos segundos instalar el nuevo firm, cuando finalice el propio deco se reinicia, tarda un poco en arrancar, pero arranca él sólo.
Copiamos el firm202.upb al pendrive y repetimos la operación con el hd400s_f0202.upb

  1. upgrade mode: ALLCODE
  2. upgrade file: hd400s_f0202.upb
  3. start

Recomiendo que copien un sólo firm, para evitar confundirse a la hora de seleccionar. Una vez actualizado, seleccionamos el satélite que vamos a usar (en mi caso Hotbird) buscamos los canales. Una vez tengamos todos los canales localizados, nos desplazamos hasta el JSC+2 y deberíamos poder disfrutar de los canales que tenemos contratados.

Bueno, tengo que decir que a mi me ha funcionado el FIRM202 con la ayuda de los compañeros de zackyfiles sin ellos nada de esto habría sido posible. Muchas gracias a todos por la paciencia que han tenido, con todas mis preguntas.


No me hago responsable de cualquier problema que estas acciones puedan ocasionar al deco, cada quien es responsable de lo que hace...

2012/08/03

Configurar rtorrent y flexget (Parte I)

Buenas a todos, pido otra vez disculpas por tenerlos abandonados.

Gente, voy a dividirlo en partes, primero FlexGet y RSS después rtorrent...

Bueno desde hace algunas semanas llegó mi queridísima RaspberryPi, sólo tengo palabra de elogio para ella, me sorprendió en algunos aspectos _(sabía que era pequeña, pero es aún más de lo que esperaba jajajaja)_ no ocupa espacio, es discreta y su consumo es ridículo _(yo la tengo conectada al router del ISP, así que... ¿consume 0, no? ;-Þ )_. Yo tenía pensada una función específica para ella, quería suplir la Xbox Original que tan amablemente Lolo _(uno de los sysadmins krtux)_ ha  cedido para que el pequeño pudiera reproducir sus diferentes archivos multimedia. y para que le tuviera actualizada la versión de XBMC4XBOX.

Pero bueno, unos días antes de que llegara mi nuevo amor, repentinamente el router que tenía funcionando desfalleció, con lo cual me quedé bastante tirado, esperé por la RaspberryPi para ver si podía encargarse de esa función de router y lo está haciendo a las mil maravillas todo lo que le pido, que tampoco es tanto (unos routes por aquí, una OpenVPN por allá, unas iptables rules más acá, DNS local y poco más).

La atracción que tengo con FlexGet sinceramente data de un año y pico atrás, pero por vagancia, tiempo no había podido concretar la unión entre él y algún cliente torrent, si no era por problemas con python era por cualquier otra cosa. Hasta que la semana pasada, después de configurar los demonios antes mencionados y me decidí al 100% hacer funcionar a FlexGet, la verdad es que TODO lo que da esto es simplemente descomunal...

FlexGet como dicen ellos "FlexGet is a multipurpose automation tool for content like torrents, nzbs, podcasts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds."

Esto va a ser útil para aquellos que sigan varias series y quieran despreocuparse de tener que ver cuando emiten el episodio en USA _(o de donde quiera que sea la serie que sigas)_ y buscar una fuente para conseguirlo, además le puedes decir qué tipo de archivo quieres, los episodios, temporada que ya viste para que se baje los siguientes, la calidad que quieres que sea el archivo, incluso puedes decirle que quieres que del grupo XXX no se baje nada. Con este pequeño resumen de qué es FlexGet creo que queda claro cual será su función (me quedo corto en sus posibilidades, leer en su web TODO lo que pueden hacer con él).

Yo estoy usando Raspbian “wheezy” es una distro oficial y optimizada para raspberrypi.
su -
apt-get install python2.6 python-setuptools

después de que hayamos instalado esto, seguimos...


easy_install flexget
flexget -V


Ok, ya lo tenemos instalado. ¿Ahora? fácil, crear el fichero de configuración. ¿Sabes exactamente lo que quieres ver, hacer y de donde sacar la información?

en la configuración NO USAR TAB, sólo DOS ESPACIOS. Paso a explicar mi configuración:


feeds:
  Series TV Shows:
    rss:  turss ;-Þ
    series:
      hdtv h264:
      - breaking bad:
          watched: S05E02
 
    content_size:
      min: 300
      max: 1000
          # email:
#   from: user@u'redomainDOTcom
#   to: user@u'redomainDOTcom
#   smtp_host: smtp.gmail.com
#   smtp_port: 587
#   smtp_username: user@u'redomainDOTcom
#   smtp_password: password
#   smtp_tls: yes 
    download: /media/net/nas/woxter/rtorrent/Torrents/

  • Series TV Shows - Nombre para el Grupo Series
  • rss - lugar desde donde vamos a adquirir nuestros torrents para después disfrutar de la Serie, Lolo me comentó sobre ShowRSS y es muy cómodo, suelo tirar más de eztv pero para gustos...
  • Series - Mi listado de series
  • HDTV - la calidad en la que quiero los episosios
  • Watched - Temporada/Episodio visto
  • content_size - específicas tamaño min/max del archivo
  • content_filter - simplemente tengo todas las temporadas de los ripeos de este grupo, me gusta y los subtíulo son fáciles de conseguir 
  • Download - Es donde baja el torrent (para que el rtorrent lo ponga a bajar en lo que esté en esa carpeta)
  • email - Estoy tentado a usarlo, lo tengo configurado pero aún no lo puse en producción.
Por ahora sólo tengo Breaking Bad añadida, pero en los próximos días iré añadiendo TODAS las demás, porque en Septiembre empieza lo bueno y hay que tenerlo listo para que sólo tenga que bajar el subtítulo y disfrutar de tu serie favorita.


Después de que está todo añadido, comprobaremos la configuración con:

flexget --check

hacemos una prueba de ejecución:

flexget --test

Sí todo sale bien, sólo nos queda meterlo en con cron para que se ejecute cada 10-20 o 5 minutos, si no tienes un tracker privado... No tienes que mantener prestigio ni nada por el estilo así que yo lo ejecuto cada 30 mins...

crontab -e

añadimos...


*/10 * * * * /usr/local/bin/flexget --cron


Listo señores, con esto ya podremos dedicar el tiempo ahorrado en otras cosas, saludos y disfruten mucho.

fuentes: aquiyaceelrootflexget

UPDATE:  Sat Aug  4 15:40:41 CEST 2012  Gracias gazpachoking por la información. ( Thabks gazpachoking for corrections)

2012/03/29

Configurar cliente GNU/Linux con NRPE para comprobar desde Nagios

Buenas tardes.

Pido una vez más disculpas por volver a descuidar el blog, pero la falta de tiempo se lo lleva todo. Esta semana me he puesto actualizar y reconfigurar cosas en uno de los servidores, y me di cuenta de que no estaba chequando los demonios bien y mucho menos los espacios. Así que me puse a ello y me tope con algunos problemas que me gustaría comentar, para así evitar que les pase lo mismo y vaya más fluido todo.

Lo primero que tenemos que hacer es descargar de la web oficial de Nagios los plugins, para meterlos en el servidor GNU/Linux que queremos chequear.

PS:     Para los usuarios de debian es necesario tener instalado el paquete libssl-dev
PS2 :  Esto se ha configurado sobre Debian squeeze/etch y Gentoo.
$ wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
$ tar zxvf nagios-plugins-1.4.15.tar.gz && cd nagios-plugins-1.4.15
$ useradd -p nagios nagios
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-ssl --libexecdir=/usr/local/nagios/libexec --bindir=/usr/local/nagios/bin/
$ make all
$ make install
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
$ tar zxvf nrpe-2.13.tar.gz ; cd nrpe-2.13
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-ssl --prefix=/usr/local/nagios/ --sysconfdir=/usr/local/nagios/etc  --bindir=/usr/local/nagios/bin
$ make all
$ make install{,-plugin,-daemon,-daemon-config}

Bien después de instalar estos paquetes, solo nos queda configurar el demonio y sus respectivos comandos, para poder llamarlo desde el servidor nagios y comprobar lo que nos haga falta. vamos a ello. Yo me encontré con un problema en Debian Etch (ya lo sé, se que me van a decir que está deprecated PERO, lo que está de cara al aexterior está actualizado). y es que si no le digo que el pid lo ponga en /var/run/nrpe/ me da un problema de permiso denegado, pq no se puede lanzar como root, evidentemente.

entonces hay que modificar en /usr/local/nagios/etc/nrpe.cfg lo siguiente:


pid_file=/var/run/nrpe.pid
por
pid_file=/var/run/nrpe/nrpe.pid
Descomentar
#server_address 
por
server_address=IP
Añadir IP de los equipos permitidos:
allowed_hosts=127.0.0.1,192.x.x.x,10.x.x.x

Salvamos y creamos la carpeta. Descomentamos al final del archivo todos los  "commands" y añadimos lo que nos interesa.

$ mkdir /var/run/nrpe ; chown nagios:nagios /var/run/nrpe/$ echo "nrpe 5666/tcp #NRPE" >> /etc/services

Editamos el /etc/host.allow para permitir a los equipos que queremos.

ALL: IP

Copiamos y modificamos el script de inicio para el demonio...

$ cp init-script.debian /etc/init.d/nrpe ; chmod +x /etc/init.d/nrpe

Una vez hecho esto, podemos lanzar el demonio y comprobar que está corriendo...

$ /etc/init.d/nrpe start ; netstat -l| grep nrpetcp        0      0 10.68.30.223:nrpe       *:*                     LISTEN     

Sí obtenemos esa respuesta, es lo que deseamos tenemos corriendo el servicio. Ahora comprobamos desde el servidor, que podemos hablar con él

$ /usr/lib64/nagios/plugins/check_nrpe -H 10.68.30.223
NRPE v2.13

Perfecto, todo va viento en popa, configurado y corriendo, ahora ajustamos los parámetros que queremos chequear, ya sean procesos, carga de CPU y disco duro.

$ /usr/lib64/nagios/plugins/check_nrpe -H IP -c check_total_procs
PROCS OK: 75 processes

Configurado, solo nos queda añadir el servicio en nagios y el servidor correspondiente, que sería algo así

define service{
        use                             generic-service
        host_name                  Dozer
        service_description     Total Processes
        check_command        check_nrpe!check_total_procs
        }
$ /etc/init.d/nagios reload 

Esperamos que lea y cargue los demonios pendientes por chequear y desde de este momento dejaremos de dormir en paz, como lo veníamos haciendo hasta ahora. Gracias a la felicidad que sólo puede proporcionar la ignorancia.

2011/12/09

Usando Fbsplash en Gentoo

Hoy se me ha dado por solucionar algunos pequeños errores que tenía en el boot de mi máquina y viendo el arranque, me he dicho... "¡Ufff  esto es más soso que yo!". Dicho esto, me puse a leer un poco sobre lo que se usa ahora para el BootSplash (como yo lo conocía ... hace mucho).

Bueno, lo primero que tenemos que hacer es instalar media-gfx/splashutils con los USE  fbcondecor mng y static-libs algunas de sus dependencias, también les hará falta, así que tendrán que las recompilamos. Aparte de esto, también hay que tener soporte en el kernel:


Device Drivers ->
    Graphics support ->
        <*> Support for frame buffer devices  --->
            Console display driver support  --->
                <*> Framebuffer Console support
                [ ] Enable Tile Blitting Support
                [*] Support for the Framebuffer Console Decorations

Device Drivers --->
    Input Device Support --->
        <*> Event Interface

kaiser ~ # emerge -avN splashutils


Bien, ya tenemos la base, ahora nos hará falta algún tema para darle vidilla a nuestras tty's (yo instale el splash-themes-gentoo), si quieres conocer más opciones:

kaiser ~ # eix splash-themes
kaiser ~ # emerge -av splash-themes-gentoo

Ok, ahora vemos el contenido de la carpeta /etc/splash/, para probar y elegir el que más nos gusta...

kaiser ~ # splash_manager -c set --theme=natural_gentoo --tty=1

Una vez hayamos elegido nuestro preferido, con  Ctrl+Alt+F1 bajamos a la tty1 para comprobar el tema seleccionado y una vez elegido generamos la imagen para hacerlo permanente.

kaiser ~ # splash_geninitramfs --verbose --res 1024x768 --generate /boo/initramfs-bootsplash-3.1.4 natural_gentoo

Ahora añadimos un par de líneas a nuestro lilo (Sí lo sé ahora saldrán todos aquellos que adoran a Grub y blasfemaran de mí y lilo, pero ese debate discusión prefiero dejarlo para otro post dedicado a él. Si no les importa amigos.)


image = /boot/vmlinuz-3.1.4-gentoo
        root = /dev/sda6
        label = Gentoo-3.1.4
        read-only
        initrd=/boot/initramfs-bootsplash-3.1.4
        append="splash=verbose,theme:natural_gentoo"

Las líneas que tenemos que añadir son las que están en negrita, una vez añadido, ejecutamos lilo...

kaiser ~ #  lilo


Una última cosa es añadir al /etc/conf.d/fbcondecor, para tener la imagen en todas las tty. Descomentamos la línea:

 FBCONDECOR_TTYS="1 2 3 4 5 6"


y añadimos al arranque:

kaiser ~ # rc-update add fbcondecor boot 


Ahora tenemos unas tty más acogedoras para esos ratos agradables que pasamos en ellas, suerte y espero que les sirva y guste a todos, saludos!!!!








2011/12/04

Cómo crear un USB encriptado para proteger datos sensibles


Bueno como dije ayer en twitter, hoy voy a explicar el método que uso para proteger algunos de los datos más sensibles que manejo en mi entorno de trabajo, navegador, ssh keys y datos varios. Hago referencia al script que uso,que fue hecho por Rafael Gawenda y también fue su idea, yo modifique el script para mis necesidades.

Bueno, lo primero que tenemos que hacer es generar un archivo para después encriptarlo. Así creamos un archivo llamado "key" en el pendrive que tendrá una partición de 2.9GB (esto tardará un rato).
 kaiser ~ # dd if=/dev/urandom of=/media/dguillermo/key bs=1024k count=2950
 Ok, ahora que tenemos nuestro archivo, sólo nos quedaría encriptarlo, (yo compilo el Kernel Linux específico para mi máquina y sus características específicas, no comparto esa idea de usar un Kernel genérico con "20 drivers de sonido" cuando tengo una sola tarjeta de sonido). AES, Blowfish, Twofish, RC5, RC6, Serpent.
losetup -e Blowfish /dev/loop0 /media/dguillermo/key
 Esto nos pedirá una clave, la cual será la que usaremos para montar nuestra partición, una vez hayamos introducido la clave, tendremos que formatear esa partición, aquí lo mismo de antes depende de lo que tu kernel soporte, yo uso XFS,y llevo tiempo usándolo en la partición donde tengo los ficheros multimedia y "noto" que me va mejor que EXT4, para gustos Sistemas de Archivos ;-Þ

kaiser ~ # mkfs.xfs -f /dev/loop0  (en mi caso)
kaiser ~ # mkfs.ext4 -f /dev/loop0 (si te decantas por este sistema de archivos)

Bien, ahora desmontamos /dev/loop0

kaiser ~ # losetup -d /dev/loop0
Ok, ahora les cuento el detalle para tener controlado el pendrive y añadimos una línea a udev, pero primero tenemos que saber qué modelo de USB y su Serial, lo cual descubrimos de la siguiente manera:

kaiser ~ # lsusb (vemos donde está nuestro pendrive) y después hacemos:
kaiser ~ # lsusb -v -s 009 (en mi caso) ahora añadimos el serial a /etc/udev/rules.d/97-usbkey.rules
kaiser ~ # echo "ATTRS{serial}=="AA0000000000XXXX", SYMLINK+="key" " > /etc/udev/rules.d/97-usbkey.rules

Ahora viene la parte más bonita y detalles curiosos. Añadimos a /etc/fstab:

/media/dguillermo/key     /media/j0d3/key               xfs     defaults,noauto,loop,encryption=blowfish,user 0 0

Bueno, le damos permiso para que nuestro usuario pueda usar ese path y si no existe lo creamos

kaiser ~ # mkdir -p /media/j0d3/key
kaiser ~ # chown user:user -R /media/j0d3/*

Ok, ahora pasteo el código del script hecho por Rafael Gawenda y modificado para mis necesidades ;-Ð

#!/bin/bash
media=( "" /media/dguillermo/{/,key} )
umedia=( "" /media/j0d3/key /media/dguillermo/ )
case ${0##*/} in
        xkey+ )
                for fs in  2
                        do
                                mount  /media/j0d3/key
                        done
                ;;
        xkey- )
                keychain --agents ssh --stop all
                for fs in 1 2
                        do
                                 /bin/umount ${umedia[$fs]}
                        done
                ;;
        xkey )
                [[ $(/bin/mount|/bin/grep -c "/media/j0d3/key/" ) -eq 1 ]] && ${0}- || ${0}+
                ;;
        * )
                ;;
esac
De está manera ya montamos y desmontamos nuestra partición de una forma fácil, sólo le damos permiso de ejecución, hacemos un link a xkey xkey+ xkey-

kaiser ~ # chmod +x xkey
kaiser ~ # ln -s xkey xkey+
kaiser ~ # ln -s xkey xkey- 


Para no tener que tirar de /usr/bin/, podemos crear un directorio en nuestro home y meterlo ~/bin, esto lo añadimos al path en ~/.bashrc.

 kaiser ~ # vim ~/.bashrc  (y añadimos el directorio en la linea del Path): 
Si no estás familiarizado con este formato, te aconsejo que lo pongas de primero
Path="~/bin:......" (guardamos los cambios)
 source .bashrc

y ahora cuando ejecutemos xkey+ nos pedirá la clave que metimos cuando encriptamos la partición. No voy a explicar cómo compartir claves ssh, sólo ciertos detalles que me parecen curiosos.

movemos todo el contenido de ~/.ssh/  a  /media/j0d3/key y hacemos un link.

kaiser ~ # mv ~/.ssh/ /media/j0d3/key/
kaiser ~ # ln -s /media/j0d3/key/.ssh ~/.ssh/

hasta aquí todo fácil, ahora bien en el pendrive también meto el perfil de Chromium el cual se guarda en ~/.config/chromium/Default, misma operación movemos todo.

kaiser ~ # mv ~/.config/chromium/Default /media/j0d3/key/  (está demás decir, que hay que tener el navegador cerrado para realizar está operación) ;-Ð
kaiser ~ # ln -s /media/j0d3/key/.config/chromium/Default  ~/.config/chromium/Default 
Ok, ahora tenemos nuestras claves todas seguras en nuestra partición encriptada, así que todo perfecto (yo copio el ~/.ssh/config a un path diferente) para que cuando no tenga montado el pendrive me mantenga esa configuración, ya que al tener varios servers en puertos diferentes, es más cómodo. Ok, ahora desmontamos el pendrive...

kaiser ~ # xkey- 

Bien, ahora vamos /media/j0d3/key/, hacemos un ls -alh y está vacío evidentemente... Pues creamos algunos directorios...

kaiser ~ # cd /media/j0d3/key/
kaiser ~ # mkdir .ssh ; cp ~/path/config/que/copiamos/del/~/.ssh/
kaiser ~ # ln -s /media/j0d3/key/.ssh ~/.ssh

Abrimos el chromium, para que cree un perfil nuevo y limpio y misma operación...

kaiser ~ # mkdir -p .config/chromium/
kaiser ~ # mv ~/.config/chromium/Default /media/j0d3/key/.config/chromium/

Y de ésta manera, tendremos un navegador limpio y vacío por si alguien usa nuestra computadora. Esta semana probaré a meter una aplicación de Wine que uso con relativa frecuencia para tener la misma configuración tanto en el trabajo como en la casa. Espero que esto les sea tan útil y cómodo como lo es para mí.






2011/10/17

Instalando una ROM oficial en HTC Hero una vez flasheada



Vamos a lo que vamos vi muchos tutoriales de como hacer esto sobre las diferentes versiones de  Windows, pero no lo tengo y a buscarnos la vida como siempre, así que lo primero que tenemos que hacer es conseguir el OpenRUU porque HTC distribuye sus ROM's oficiales empaquetadas en un *.exe. 


$ cd ~/Downloads/OpenRUU-Xtract-beta2 ; sh 1extractrom.sh 


Debemos tener instalado Wine, para poder usar el rom.zip, que viene dentro... Y seguir los pasos que nos van diciendo, Una termine los precesos, ejecutamos 


$ sh  2FastbootFlash-Linux


Para este paso es necesario estar en el fastboot al cual llegamos de cualquiera de estás dos formas:


Con el teléfono apagado pulsamos atrás+power 
$ adb reboot bootloader


Listo ya nos instala la ROM oficial... Bueno, como verán está en face BETA, bajo la responsabilidad de cada uno se usa, yo lo he necesitado dos veces y perfecto funciona.


Terminales soportados:


 1. HTC GSM Hero 2. HTC Desire
 3. HTC Tattoo
 4. HTC CDMA Hero
 5. HTC Legend
 6. HTC Droid Incredible
 7. HTC EVO 4G