Creando un Live USB con livecd-iso-to-disk.sh


Vamos a crear un live usb booteable utilizando una imágen de Linux, de por ejemplo algún cd de rescate.

Esta es una herramienta útil en cualquier momento para salvar algún servidor o hacer una instalación por red.

OJO: supongo que el pendrive está vacío. De otro modo, tomar los recaudos necesarios.

Para esto primero descargamos el script livecd-iso-to-disk.sh que es el que realizará el trabajo de instalación de la imágen al usb.

Necesitaremos el archivo imágen de linux a instalar previamente descargado. yo voy a utilzar una de Fedora 7 Rescue.

Necesitamos tener instalado syslinux, si no lo tenemos:

$ sudo yum install syslinux

Debemos tener marcada la partición del usb como booteable, si no es así, la modificamos con fdisk:

$ sudo fdisk /dev/sdc

Orden (m para obtener ayuda): p

Disco /dev/sdc: 1940 MB, 1940226048 bytes
16 heads, 32 sectors/track, 7401 cylinders, 3789504 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0xc3072e18

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sdc1            8064     3789503     1890720    6  FAT16

Orden (m para obtener ayuda): h
h: orden desconocida
Orden  Acción
   a   Conmuta el indicador de iniciable
   b   Modifica la etiqueta de disco bsd
   c   Conmuta el indicador de compatibilidad con DOS
   d   Suprime una partición
   l   Lista los tipos de particiones conocidos
   m   Imprime este menú
   n   Añade una nueva partición
   o   Crea una nueva tabla de particiones DOS vacía
   p   Imprime la tabla de particiones
   q   Sale sin guardar los cambios
   s   Crea una nueva etiqueta de disco Sun
   t   Cambia el identificador de sistema de una partición
   u   Cambia las unidades de visualización/entrada
   v   Verifica la tabla de particiones
   w   Escribe la tabla en el disco y sale
   x   Funciones adicionales (sólo para usuarios avanzados)

Orden (m para obtener ayuda): a
Número de partición (1-4): 1

Orden (m para obtener ayuda): p

Disco /dev/sdc: 1940 MB, 1940226048 bytes
16 heads, 32 sectors/track, 7401 cylinders, 3789504 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0xc3072e18

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sdc1   *        8064     3789503     1890720    6  FAT16

Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.

Ahora procedemos a ejecutar el script pasandole como parámetros la imágen a instalar y la partición del usb donde debe instalarse:

OJO: Desmontar el pendrive antes de ejecutar.

$ su -c "./tools_livecd-iso-to-disk.sh --format --reset-mbr Fedora7-i386-rescuecd.iso /dev/sdc1"
Contraseña:
Verifying image...
./tools_livecd-iso-to-disk.sh: línea 806: checkisomd5: no se encontró la orden
Are you SURE you want to continue?
Press Enter to continue or ctrl-c to abort

/home/hvivani/TMP/Fedora7-i386-rescuecd.iso uses initrd.img w/o install.img
Copying DVD image to target device.
Updating boot config file
Installing boot loader
Target device is now set up with a Live image!

Listo !

 

 

 

Permitir el tráfico a un solo sitio con squid


Supongamos que en un equipo o puesto de trabajo debemos habilitar la navegación pero solo para un sitio en particular. Es decir, queremos que pueda acceder solo a un sitio determinado y no que navegue por toda internet.

Una situación así la podemos resolver facilmente si utilizamos squid proxy para controlar la navegación en nuestra red.

Por ejemplo, tenemos un punto de venta que  que solo debe poder acceder a validar cupones en validargroupon.com.

Las reglas serían así:

acl PuntoDeVenta src 192.168.28.9/255.255.255.255
acl Groupon dstdomain www.validargroupon.com

http_access allow Groupon PuntoDeVenta
http_access deny all

Con esto, este equipo solo podrá navegar dicha página.

 

 

Firefox: eliminar nombre de usuario mal almacenado


En firefox, por defecto, los nombres de usuario solicitados por diferentes portales, serán almacenados automáticamente. Eso ocasiona que si  ponemos mal el nombre, se vayan almacenando o guardando de manera errónea y cuando volvemos al sitio, se ve la lista de nombres de usuarios utilizados.

Lo mas peligroso es si lo que quedó mal almacenado es la password del usuario como nombre de usuario, como por ejemplo:

Dado que varios usuarios me han preguntado como eliminar estos usuarios y la solución no es tan intuitiva como debería, esta es una solución al problema: bajando con el teclado numérico al nombre de usuario que queremos eliminar y presionando la tecla delete o suprimir.

Instalando htop 1.0


Este es mi humilde homenaje a esta extraordinaria herramienta de monitoreo de procesos que hoy está lanzando su versión 1.0. Si han utilizado el comando top y aún no han probado el htop, a partir de que lo instalen van a arrepentirse del tiempo perdido… hasta ahora.

Este es uno de mis servidores con sus ocho nucleos corriendo, visto por el htop:

Podemos descargar los fuentes de htop o actualizar via yum utilizando los repos de fedora-extras.
Dado que los rpm’s de la versión 1.0 aún no están disponibles vamos a instalar desde los fuentes:

Descargamos:

$ wget http://ufpr.dl.sourceforge.net/project/htop/htop/1.0/htop-1.0.tar.gz

Descomprimimos:

$ tar -zxvf htop-1.0.tar.gz

Compilamos e instalamos:

$ cd htop-1.0
$ ./configure
$ make
$ su -c "make install"

Si antes teníamos instalado el htop por rpm podemos desinstalarlo haciendo un

rpm -q htop

y luego

rpm -e nombredelpaquete

Recuerden que htop muestra todos los atajos de teclado con la techa ‘h’.

Instalar Firefox 8 en Fedora / RHEL / CentOS


En este post vamos paso a paso como instalar Firefox 8 en Fedora 12, 13, 14, 15 o 16 utilizando YUM. También es aplicable a CentOS 6 y RHEL 6. Los usuarios de Fedora 15 y 16 van a tener disponible esta versión de Firefox en los repositorios update, pero los usuarios de versiones anteriores van a tener que recurrir a otros repositorios como el remi.

1) Instalamos repositorios remi:

Fedora:

## Dependencia Remi en Fedora 14, Fedora 13, Fedora 12 ##
# rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
# rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

## Fedora 14 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm

## Fedora 13 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm

## Fedora 12 ##
# rpm -Uvh http://rpms.famillecollet.com/remi-release-12.rpm

CentOS / RHEL:

## Dependencia Remi en CentOS 6 y Red Hat (RHEL) 6 ##
rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm

## CentOS 6 y Red Hat (RHEL) 6 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

2) Listamos versiones disponibles:

Fedora 15/16:

# yum --enablerepo=updates-testing list firefox

Fedora 12,13,14, CentOS, RHEL:

# yum --enablerepo=remi list firefox

3) Actualizamos o instalamos:

Fedora 15/16:

# yum --enablerepo=updates-testing update firefox
## OR ##
# yum --enablerepo=updates-testing install firefox

Fedora 12,13,14, CentOS, RHEL:

# yum --enablerepo=remi update firefox
## OR ##
# yum --enablerepo=remi install firefox

4) Iniciamos firefox:

$ firefox

Creando paquetes RPMs


Este es un breve resumen de lo básico e indispensable para crear paquetes rpm en fedora.

Instalamos entorno de desarrollo:

# yum install @development-tools
# yum install fedora-packager

Creamos estructura de directorio de trabajo para los RPMs:

$ rpmdev-setuptree

EJEMPLO: Creamos el RPM “hola mundo”:

Necesitamos el codigo fuente que vamos a empaquetar, tambien llamado codigo upstream. En este ejemplo lo descargamos en el directorio SOURCE directamente como tar.gz

$ cd ~/rpmbuild/SOURCES
$ wget http://ftp.gnu.org/gnu/hello/hello-2.7.tar.xz

Los paquetes RPM se configuran a través de los archivos .spec. Entonces creamos una plantilla para nuestro programa en el directorio SPECS:

$ cd ~/rpmbuild/SPECS
$ rpmdev-newspec hello

Editamos el hello.spec

vi hello.spec

Un ejemplo de un archivo .spec completo sería:

Name:           hello
Version:        2.7
Release:        1%{?dist}
Summary:        The "Hello World" program from GNU

License:        GPLv3+
URL:            http://ftp.gnu.org/gnu/%{name}
Source0:        http://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz

BuildRequires: gettext
# Requires:
Requires(post): info
Requires(preun): info

%description
The "Hello World" program, done with all bells and whistles of a proper FOSS
project, including configuration, build, internationalization, help files, etc.

%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

%install

make install DESTDIR=%{buildroot}
%find_lang %{name}
rm -f %{buildroot}/%{_infodir}/dir

%post
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :

%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
fi

%files -f %{name}.lang
%{_bindir}/hello
%doc %{_mandir}/man1/hello.1.gz
%doc %{_infodir}/%{name}.info.gz

%changelog
* Tue Sep 06 2011 The Coon of Ty <Ty@coon.org> 2.7-1
- Initial version of the package

Construimos el paquete:

$ rpmbuild -ba hello.spec

Esto generará los paquetes de fuentes y binario en los directorios SPMS y RPMS. Ahora verificamos con rpmlint si los paquetes cumplen con las reglas de diseño de RPMs:

$ rpmlint hello.spec ../SRPMS/hello* ../RPMS/*/hello*

Si no hay errores, ya tenemos los paquetes listos para usar:

$ cd /home/hvivani/rpmbuild/RPMS/x86_64
$ sudo rpm -i hello-2.7-1.fc14.x86_64.rpm
[sudo] password for hvivani:
$ hello
¡Hola mundo!

Si queremos incursionar en profundidad en este tema, podemos hacerlo en este wiki de fedora.

desbloquear deposito de claves de inicio de sesion / enter password to unlock your login keyring


Este mensaje nos puede aparecer si hemos cambiado alguna clave y por alguna razón el depósito de claves de gnome no actualizó correctamente el archivo.

El depósito de claves de gnome es un almacen seguro utilizado para almacenar claves de aplicaciones que se ejecutan en gnome y de las cuales nosotros hemos elegido almacenar la contraseña.

Cuando esto sucede, la solución es realizar un solemne rm:

rm /home/usuario/.gnome2/keyrings/default.keyring

Considerando que las aplicaciones que tenían almacenadas las contraseñas, volverán a solicitarnos dichas claves.

 

 

firefox is already running error


Este error sucede ante caídas abrutas del sistema operativo o, en la red si el cliente utiliza NFS.

Firefox nos muestra un cartel indicando: Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

Como lo solucionamos ?

1) verificamos si el proceso se está ejecutando con un ps -ef|grep firefox. Si tenemos algun proceso en ejecución lo matamos con un kill -9 PID

2) Si el punto 1 no resolvió el problema, buscamos nuestro perfil de firefox en ~/.mozilla/firefox/[nombreperfil]/  y eliminamos de ese directorio los archivos “lock“, “.partentlock“, “places.sqlite” y “*-journal

Eso es todo.

Factura Electrónica con Software Libre – Reutilización de Ticket de Acceso


Para los que han implementado el uso de factura electrónica con software libre a través del desarrollo en python realizado por la gente de Sistemas Agiles, como comentábamos en este artículo, seguramente se han encontrado últimamente (nov/2011) con un problema ajeno a esta implementación, pero que trae grandes dolores de cabeza.

Resulta que ultimamente hemos tenido grandes problemas de comunicación con los servidores de AFIP a la hora de actualizar facturas electrónicas utilizando WSFEv1.

Uno de los errores mas comunes es: “600: ValidacionDeToken: Error al verificar hash: VerificaciónDeHash: Error al convertir de Bas64 al token:”

Este es uno de los varios errores que se producen por un corte o timeout en la comunicación con el servidor.

Gracias a nuestro gran amigo Reinghart, hemos descubierto que reutilizando el ticket de acceso, se puede bajar un poco la taza de comprobantes rechazados.

Sumado a esto, notamos que nuestros sitemas, están generando facturas electrónicas con una frecuencia muy alta (2 o  3 facturas por minuto), lo que para un sistema ocn problemas de ancho de banda y concurrencia es bastante dificil de manejar, así que tambien hemos descubierto que si se graban comprobantes cada 3 minutos, prácticamente no hay rechazos.

Espero que esta información sea útil para muchos que se estén rompiendo la cabeza con este tema en estos días.

Pueden encontrar mas info de este y otros problemas en el foro de google pyafipws.

Instalando Firebird Database en Fedora


Firebird es una excelente base de datos de código abierto. En su momento era propiedad de Borland y se llamaba Interbase. En el año 2000 Borland (en ese monento Inprise) libero el codigo fuente bajo licencia Interbase Public License. Firebird es la descendiente open source de dicha base de datos.

Existen dos grandes versiones de esta base de datos: Firebird Super Server y Firebird Classic Server. En principio, sus diferencias radican en el enfoque de diseño: La versión Super Server utiliza hilos (threads) para atender multiples clientes concurrentes. Mientras que la versión Classic Server, se basa en el modo de trabajo de Interbase que genera un proceso nuevo por cada conexión.

Veamos el proceso de instalación:

Descargamos la versión Super Server de aqui, puede ser el tar.gz o el rpm. En el caso del tar.gz, debemos descomprimir y luego ejecutar el install.sh:

$ tar -zxvf FirebirdSS-2.5.1.26351-0.amd64.tar.gz
$ cd FirebirdSS-2.5.1.26351-0.amd64
$ ./install.sh

Al finalizar la instalación, nos preguntará la password de SYSDBA. Si queremos cambiarla mas adelante, encontraremos un script para cambiarla en: /opt/firebird/bin/changeDBAPassword.sh

Al finalizar la instalación, tendremos los archivos de firebird en /opt/firebird. En particular, en el directorio bin tendremos las utilidades, entre ellas el isql que es la herramienta por linea de comandos para manejar la base.

Probamos su funcionamiento con isql conectando a una db presintalada y mostrando sus tablas:

$ cd /opt/firebird
$ ./bin/isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect "/opt/firebird/examples/empbuild/employee.fdb" user "SYSDBA" password "clave";
Database:  "/opt/firebird/examples/empbuild/employee.fdb", User: SYSDBA
SQL> show tables;
       COUNTRY                                CUSTOMER                       
       DEPARTMENT                             EMPLOYEE                       
       EMPLOYEE_PROJECT                       JOB                            
       PROJECT                                PROJ_DEPT_BUDGET               
       SALARY_HISTORY                         SALES

Aquí tenemos una lista de herramientas administrativas adicionales para eta base de datos.