lunes, 10 de marzo de 2008

Probando RAM con MD5sum

Copio de un post de Guppi en Kriptopolis:

"El algoritmo MD5 es un algoritmo de reducion criptografico.

Basicamente sirve para firmar un mensaje, es decir, al algoritmo le pasamos un mensaje (da igual la longitud de este) y MD5 nos devuelve 128 bits que serian la firma del mensaje. Con cambiar un solo bit en el mensaje, el resultado de MD5 cambia totalmente.

Aqui tienes para que veas como funciona:
http://es.wikipedia.org/wiki/MD5"

O sea, la utilidad primaria del MD5 es probar si un archivo no ha cambiado, aunque sea en un solo bit. Esto se logra generando un "resumen" (digest) del texto o archivo que se supone único para ese texto, como el resumen es único sirve para "firmar" criptograficamente textos o archivos. Cada vez que pasemos MD5sum a un texto o archivo, si da el mismo resumen podemos estar seguros que no ha sido alterado ni un solo bit.

Esto tiene una aplicación muy interesante que permite detectar si la memoria RAM de un computador presenta problemas. Simplemente se toma un archivo cualquiera muy grande, por ejemplo una imagen ISO y se le hace MD5 unas 10 o 20 veces, el resultado tiene que ser siempre el mismo, si sale un solo resultado distinto entonces la memoria RAM està con problemas.

El MD5sum para windows pueden bajarlo aqui En Linux y Unix viene incluìdo en el sistema.

martes, 12 de febrero de 2008

Revisando Bucardo con GIT



Bucardo es un sistema de replicación asíncrona de bases de datos Postgres SQL, esto es un sistema que permite -por ejemplo- mantener respaldos actualizados de bases de datos en servidores ubicados en distintas ciudades, usando Internet a través de conexiones seguras SSH. La alternativa es hacer respaldos vía LAN con servidors ubicados físicamente en el mismo lugar, pero eto no es bueno en términos de seguridad en caso, por ejemplo, de una catástrofe, incendio, etc. donde están ubicados ambos servidores.

GIT por su parte es un sistema alternativo a Subversion, para trabajo colaborativo y control de versiones, al parecer diseñado por Linus Tovards para ordenar el desarrollo de Linux. Su gran ventaja es que es muy rápido y funcionaba bajo Linux.

Pero no por mucho tiempo, porque Google Code desarrolló msysGIT para Windows que permite tener este control de versiones en windows de manera similar a lo que hace Tortoise con Subversion.

Mi tarea era instalar GIT y clonar el repositorio de Bucardo para poder revisar las novedades de su desarrollo (Bucardo todavía está en pleno desarrollo). Para eso lo prinero que hice fue descargar msysGit desde este link en Google Code e instalarlo.

Esto me dejó instaladas dos distintas versiones de GIT: una en batch mode y otra con interfaz gráfica de usuario. Finalmente tuve que usar ambas. No pude clonar el repositorio de Bucardo, ubicado en http://www.bucardo.org/bucardo.git/ con la GUI así es que entrando al batch mode y leyendo la ayuda hice un:

$ git-clone http://bucardo.org/bucardo.git/

Initialized empty Git repository in c:/Documents and Settings/Tomas/bucardo/.git/

got ......
walk......

Gtting alternates list for http://bucardo.org/bucardo.git
got...
got...
got...

Getting index for pack .....
got....
got...
got....
walk..
walk...
walk...
etc.

(donde ... representa una serie de letras y números que no tengo la menor idea que serían)
Después de eso se creó en C:\Documents and Settings\Tomas\ una carpeta llamada Bucardo, que contenía varios archivos y carpetas, entre los archivos

files bucardo.html
bucardo.pm.html
bucardo_ctl,html
.perllcriticrc
bucardo.schema
bucardo_ctl
changes
LICENSE
bucardo.pm
bucardo.schema
INSTALL
MAkefile.pl

Y las carpetas .git, t y scripts ¡parece que ya tengo clonado el repositorio!

Luego usando GIT GIU elegí la opción Open existing repository y me aparecieron los contenidos del repositorio en una forma leíble por seres humanos normales



O sea, parece que voy más o menos. Me imagino que usando Remote, Fetch from Origin se debería actualizar el repositorio, espero que así sea, recién estoy averiguando como funciona la cosa

miércoles, 9 de enero de 2008

Clonado Ubuntu vía SSH

El problema era clonar el Ubuntu 7.10 que tenía funcionando en una máquina Virtual PC hacia el disco de 650 GB de mi nuevo servidor Linux. No fue buena idea, al parecer el disco virtual de tamaño dinámico no se llevaba bien con la estructura del disco de 650 GB, parece que había un problema de emulación SCSI vs. IDE/PATA.

En la práctica esto significó que aunque el disco se clonó, el Linux copiado en el server tuvo muchos problemas del tipo "segmentation faults" que hicieron al sistema clonado inoperante. Peor todavía, al tratar de instalar el gOS que venía con la motherboard, manteniendo el disco clonado en otra partición, comenzaron a aparecer problemas de hardware, congelamiento, errores I/O etc. La única forma de solucionarlo fué haciendo una partición que ocupa todos los 650 GB del disco duro, total, eso más tarde se puede modificar.

En todo caso el procedimientoes de clonar por ssh es el mismo que se usa para hacer backup remoto de servidores, así es que lo describiré porque puede servir para otras cosas.

En el laptop IPCLENOVO tengo Windows XP y varios Linux en máquina virtual, entre ellos el Ubuntu 7.10. Para arrancar el server usé un live CD con trinity-rescue-kit.3.3-build-306.iso, una vez arrancado hice ifconfig para ver la IP de ese equipo (192.168.1.103), luego arranqué el Ubuntu 7.10 desde Virtual PC y con ifconfig también anoté la IP (192.168.1.109) luego hice ping para ver sis se conectaban sin problemas cosa que ocurrió.

Luego volvi a arrancar Trinity en el server, pero esta vez con la opción SSH server habilitada. En el Ubntu 7.10 de Virtual PC instalé el meta-paquete ssh. Luego me fuí a Windows en el laptop y usando Putty abrí sesiones ssh para 192.168.1.103 (server con Trinity) y a 192.168.1.109 (para Ubuntu 7.10 VPC)). Ingresadas estas sesiones y autentificado, seguí el procedimiento indicado en este link, para hacer la transferencia. Fundamentalmente consiste en:

nc -l -p 9000 | dd of=/dev/hda en el sistema con Trinity

Luego en la sesión de Ubuntu Virtual PC

sudo bash
dd if=/dev/sda | nc 192.168.1.103 9000

Aparentemente no ocurre nada, exepto que los prompts desaparecen de ambas sesiones, pero la actividad de los discos duros muestra que se está haciendo la transferencia de los 16 GB desde el Ubuntu Virtual PC hacia el server con Trinity, después de casi una hora, esta transferencia se completa. Los conceptos clave en este caso son: la transferencia por cables de la red local usando ssh (ambos equipos van conectados por cable al router), el esquema amo-esclavo de conexión y el comando dd para clonar un disco.

viernes, 21 de diciembre de 2007

Gentoo from scratch



Gentoo es la instalación más engañosa de todas las que he hecho bajo Virtual PC. Al bajar el livecd-i686-installer-2007.0.iso y cargarlo en una máquina virtual detectó perfectamente la pantalla del laptop a muy buena resolución, lo que me llevó a pensar que la instalación iba a ser pan comido. Pero el primer inconveniente es que dentro de x no detectó el mouse y simplemente no hubo forma que lo detectara.

Con Alt-F1 y usando las teclas conseguí que el sistema de instalación funcionara, pero en la mitad aparecía el error There was an exception received during the install that is outside the normal install errors. This is a bad thing. The error was: Invalid literal for int(): luego de eso me botaba.

Con Ctrl-Alt-F1 salí a la consola y traté de usar installer, que es el instalador en modo de texto. Pero la misma cosa, en la mitad de los procesos el programa daba un error y no podía seguir.

Pensé que era una buena oportunidad de intentar armar el Gentoo a mano, from scratch, usando la excelente documantación del handbook, la mejor que he visto para un Linux y me puse a seguir cada paso, bajando desde Internet, descomprimiendo, compilando, configurando el kernel y todo lo necesario para que el sistema funcionara. Una instalación completa de este tipo toma muchas horas, especialmente si no tenemos una conexión rápida a la web y de nuevo se presentaron problemas de lectura/escritura al disco.

Partí por hacr un checkdisk a mis discos duros, primeros sospechosos del problema, pero estaban perfectos. Después de quebrarme la cabeza un buen rato se me ocurrió que tal vez el problema podría estar en el tamaño dinámico que asigna Virtual PC a los discos web. Así es que borré todo y generé un disco de 5 Gb de tamaño fijo. No sé si esa sería la causa pero después de dejar el disco fijo desaparecieron los problemas.

Otro problema lo tuve con el arhivo /boot/grub/grub.conf que al cargarse el sistema no encontraba un archivo y se quedaba colgado en un loop. Entonces aprendí una característica interesante del Grub que es su modo de comandos al que se entra con c.

El modo de comandos con el prompt > me permitió ingresar manualmente las opciones del kernel con:

>root (hd0,0)
>kernel /boot/kernel-genkernel-i86-2.6.23-gentoo-r3
>boot

lunes, 17 de diciembre de 2007

RFC: algunas convenciones de conectividad

Existen las redes, que por un lado son parte de redes mayores y por otro tienen subredes. Esta es la situación normal del networking por lo que se hace necesario seguir algunas convenciones, para impedir que se generen confusiones o que se nos termine el espacio de nombres o direcciones.

Así es como se han desarrollado muchos RFC (Request for Comments) que son documentos que proponen las mejores prácticas que después se convierten en estándares. En este sitio se puede encontrar una buena cantidad de estos RFC traducidos al español. Me ncionaré brevemente dos referidos a asuntos muy básicos:

RFC1178-es - Cómo elegir un nombre para su ordenador, que entrega recomendaciones de buena práctica para escoger los nombres de los equipos que usaremos en nuestra red. Varias de estas recomendaciones son obvia: evitar nombres ambiguos, nombres de personas, demasiado largos, etc. Entre las recomendaciones encontré una interesante que suguiere crear nombres temáticos: por ejemplo de la mitología o cosas por el estilo (el servidor del Sistema de Impuestos Internos en Chile se llama Zeus) . En mi caso la convención de nombres que uso es de la forma IPC+marca o modelo del equipo (por ejemplo ipclenovolaptop)

RFC1918-es - Asignación de direcciones para Internet privadas, que define los rangos de IP que se recomiendan para usar en nuestras redes internas, estos rangos son:

10.0.0.0 - 10.255.255.255 (prefijo 10/8)
172.16.0.0 - 172.31.255.255 (prefijo 172.16/12)
192.168.0.0 - 192.168.255.255 (prefijo 192.168/16)

El primer bloque se conoce como "bloque de 24 bits", el segundo es el "bloque de 20 bits" y el tercero el "bloque de 16 bits" de acuerdo a la cantidad de direcciones que podemos asignar.

Al diseñar nuestra red privada e importante usar solo las direcciones dentro de los espacios mencionados arriba porque usando otras direcciones se podrían producir graves ambiguedades y pérdida de ruta de los paquetes. También se asignan las IP privadas según la "categoría" de la máquina, según el espacio de acceso que tengan: algunas solo necesitan acceso interno, dentro de la propia red (categoría 1) , otras necesitan solo ciertos servicios de Internet, por ejemplo email, ftp), ect. (categoría 2) y finalmente las que necesitan acceso pleno a nivel de red con Internet (categoría 3).

Networking

Para empezar a aprender lo básico de redes traduje un documento llamado Nociones acerca de redes TCP/IP, que pueden revisar en el link

domingo, 16 de diciembre de 2007

PF Firewalls con Open BSD



El concepto de firewall (cortafuegos) es sencillo: Internet es una red sucia, donde existe una mezcla de tráfico que nos interesa recibir (por ej las páginas que queremos accesar, nuestra administración remota, etc.) junto con otro tráfico que no querremos recibir ](hackers, virus, spam, etc.). Queremos que nuestra red interna sea limpia, es decir que reciba solamente lo que nos interesa y sobre todo que no entregue otrra información que la que específicamente le permitamos. El cortafuegos es una máquina con un programa que hace esa tarea de filtrar desde y hacia nuestra red limpia a la red sucia. Puede ser solo un programa corriendo en nuestra máquina, pero cuando la seguridad es importante se usa una máquina aparte, dedicada exclusivamente a correr un programa con nuestras pol{iticas de filtrado.

Uno de los usos principales del Open BSD es para implementar máquinas cortafuego en sistemas de servidores conectados a Internet. El Open BSD es Unix, es seguro y funciona en muchas plataformas especialmente i386 (o sea los PC). Su uso entonces es conectar Internet (la red externa o sucia) con un equipo corriendo Open BSD que actúa como cortafuegos, es decir filtra los paquetes que entran y salen de nuestra red interna (limpia) adonde se conectan los servidores. O sea tenemos Internet - Cortafuegos - Router y finalmente nuestra red interna limpia.

Open BSD usa un sistema llamado PF (por packets filter) que nos permitirá controlar todo lo que entra y sale a nuestra red. En la práctica el cortafuegos se define en un archivo de texto simple (en formato Unix, sin CR+LF) llamado pf.conf y ubicado en /etc/ o sea el archivo es /etc/pf.conf

Sin embargo no basta con crear o editar el archivo, para que las reglas sean leídas por el kernel se deben cargar con el comando pfctl. El prompt del Open BSD es #, así es que desde la línea de comandos podríamos cargar el archivo /etc/pf.conf usando

# pfctl -o none -R -f /etc/pf.conf

en este ejemplo se usaron varias opciones como:
-o none significa optimizaciones: none (no optimizar) la razón es que las optimizaciones no funcionan con la opción -R en openbsd 4.2

-R para cargar solo las reglas de filtro presentes en /etc/pf.conf ignorando las demás reglas

- f espera the que la opción siguiente sea el archivo a cargar

Las reglas básicas son block (para bloquear) y pass (para dejar pasar)

Las reglas de un archivo /etc/pf.conf se ejecutan consecutivamente y si se contradicen la que queda al final es la que vale, por ejemplo

block in all
pass in all

la primera regla bloquea todo el tráfico de entrada y la segunda deja pasar todo el tráfico de entrada, si están escritas en ese orden, al ejecutarse el archivo prevalecería pass in all porque es la última en ejecutarse

Aunque lo anterior no tiene sentido algo similar se usa en script reales, por ejemplo primero se bloquea todo lo que ingrese y después se permite pasar los paquetes de una dirección determinada:

block in all
pass in from maquina.amiga.org to any

Si una regla tiene un "quick" entonces la ejecución secuencial se detiene en esa regla y no se chequean las otras reglas

En un script real las reglas serían más o menos así:

################################################################################
# Define Interface Shortcuts
################################################################################
IntIF="em0" # Internal (clean) Interface
ExtIF="em2" # External (dirty) Interface
FWAdminIF="em2" # Remote Admin Firewall (SSH only) Interface

Esas reglas por ejemplo definen variables dándoles un valor, en este caso em2 es el nombre de la interfase ethernet que está conectada a Internet y em0 as la interface conectada a los servers detrás del firewall

Otra regla muy común es bloquear las direcciones RFC1918, que son de redes privadas y a veces salen para Internet causando mucho estropicio en las redes internas. El punto aquí es que se pueden usar estas direcciones detrás del firewall, pero este tráfico nunca se debe filtrar para afuera, y si alguien fuera del firewall las está usando ese tráfico no se debe filtrar ahacia adentro.

NoRouteIPs="{ 0.0.0.0/32, 127.0.0.1/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"

Con eso la red interna queda limpia de los paquetes de esos rangos que se pueden confundir con los que usamos en los mismos rangos para nuestras redes. También se usa scrub, para normalizar los paquetes defectuosos o fragmentados que llegan, por ejemplo con

scrub in all

Y por defecto, al principio del script se bloquea todo el tráfico tanto de entrada como de salida, las reglas más adelante irán permitiendo selectivamente que es lo que puede pasar por el cortafuegos, este bloqueo general se hace con:

block in log all
block out log all

Por ejemplo podríamos permitir que el Administrador tenga acceso a nuestra red interna via SSH (putty o similar) con

# ---
# --- Admin Interface for firewall itself
# ---
# --- Block all except SSH
# ---
block in log on $FWAdminIF all
block out log on $FWAdminIF all
pass in log quick on $FWAdminIF \
inet proto tcp from $RemoteAdmins to $FWAdminIP \
port 84 \
flags S/SA keep state

las líneas con # son comentarios y no tienenefecto, ahora veamos este conjunto de reglas por partes:

block in log on $FWAdminIF all
block out log on $FWAdminIF all

Bloquea por defecto todo tráfico de entrada y salida de $FWAdminIF dejándo los intentos de acceso registrados en un archivo log

pass in log quick on $FWAdminIF \

Deja pasar el tráfico de entrada de $FWAdminIF registrándolo en un archivo log, la regla quick hace que esto se ejecute de inmediato, sin necesidad de buscar otras órdenes posteriores que pudieran contradecir esta. Para que pasen todos los paquetes en protocolo tcp de Internet se usa:

inet proto tcp from $RemoteAdmins to $FWAdminIP \

Donde $RemoteAdmins son las redes externas de administrador remoto y $FWAdminIP es el número IP de firewall del administrador (son variables definidas antes en el mismo script). Finalmente veamos:

flags S/SA keep state

flags se usa para filtrar los paquetes TCP según sus indicadores, flags S/SA permite el paso de tráfico TCP con el indicador SYN activo, y sólo mira a los indicadores SYN y ACK. Un paquete con los indicadores SYN y ECE concordaría con la regla anterior, mientras que un paquete con SYN y ACK, o sólo con ACK, no concordaría.

keep state es para que recuerde la conexión anterior en la memoria del equipo.

Esos son algunos ejemplos de reglas PF, a medida que vaya viendo más las colocaré acá mismo.

viernes, 14 de diciembre de 2007

Instalando OpenBSD y S keys



OpenBSD es el "Unix seguro" que trae incorporadas características de criptografía y seguridad lo que lo hace especial para implementar firewalls en servidores donde la seguridad es un factor crítico, usando PF (packets filter) con scripts de texto que describen las reglas de que tráfico es permitido y cual es bloqueado.

Encontré una excelente guía en la web Open BSD 4.2 que trae todo lo necesario para instalar el sistema, desde donde obtener la imagen ISO hasta el procedimiento detallado de instalación. Para instalar sobre Virtual PC casi no hay que hacer ningún cambio, excepto uno obvio en Network Configuration, en IPv4 address for fxp0? hay que escoger DHCP en lugar de la IP fija que aparece en el ejemplo, en DNS nameserver? ofrecerá por defecto la IP de nuestro servidor DNS así es que solo hay que poner Enter. El resto todo funciona tal cual detalla el ejemplo de la web Open BSD. Luego de configurar la red pasará a la instalación de los paquetes, como esto lo hace online desde un sitio ftp (hay que escoger cualquiera de las varias alternativas que se presentan) se aprovecha de ver enseguida si el networking del paso anterior quedó funcionando.

S keys
Se trata de un sistema seguro para identificarse y accesar remotamente a sistemas Linux, el procedimiento de autenticación tiene varias partes, hay un procedimiento que se hace solo una vez para generar el párrafo secreto a prueba de sniffers:

-Se establece una conexión SSH (con Putty por ejemplo) con el administrador del servidor, quien nos envía un password provisional por un medio inseguro (por ejemplo jabber o cualquier IM). Al conectarse por SSH por primera vez se usa passwd para cambiar el password inseguro. Luego para obtener el nuevo password se usa
skeyinit -n 100 -md5
y con eso se escoge un nuevo párrafo secreto que valdrá para las próximas 100 sesiones

Esto se hace solo una vez y dura para 100 sesiones, para accesar a cada sesión se usa:

- Ingresar a la página de login del servidor remoto y se coloca el nombre de usuario, luego Submit Query, con esto aparece la pregunta de "challenge" del servidor.
- Ingresar a http://www.finnie.org/otp/ y se ingresa el challengue y el párrafo secreto, luego se hace click en Compute with MD5, aparece entonces una "Response" consistente en 6 palabras, por ejemplo: OAR BANK SHE ED KNEE SOWN
-Se vuelve a la página login del servidor y se coloca la respuesta junto con el nombre de usuario, se recarga la página hasta que aparezca el mensaje que el firewall concedió el acceso. Se puede ajustar la duración del acceso entre media hora y dos semanas.

Con eso se puede acceder al servidor traspasando el firewall

miércoles, 12 de diciembre de 2007

Webmin

Después de instalar Samba (ver nota anterior) me puse a buscar una aplicación para administrar con mayor facilidad y me encontré con Webmin, que hasta el momento lo veo muy bueno.

Para instalarlo (no viene dentro de los paquetes estándar) con un poco de Google encontré el Blog Un Lugar en el Mundo donde sale el truco:

$ sudo apt-get install libio-pty-perl libnet-ssleay-perl libauthen-pam-perl libmd5-perl
$ sudo wget -c http://prdownloads.sourceforge.net/webadmin/webmin_1.320_all.deb
$ sudo dpkg --install webmin_1.320_all.deb

Inclusive de un solo clic desde webmin pude instalar el servidor Apache, nice and easy

martes, 11 de diciembre de 2007

Instalando Mandriva en Virtual PC




Y ahora me tocó probar con ZMliveCD_1.22.3.ISO que es una versión Zone Minder del Linux Mandriva, que trae integrada una solución para cámaras de seguridad y vigilancia.

La instalación partió sin novedades con el mismo procedimiento que las anteriores gOS y Ubuntu, excepto que el el live CD de la imagen ISO detectó una resolución de pantalla incorrecta para la máquina virtual por lo que no se podía ver absolutamente nada.

Como al menos el modo consola funcionaba, hice alt-ctrl-F1 para salir a la consola donde apareció un mensaje notificando que no se había podido cargar el modo gráfico y hacía algunas sugerencias. La primera era usar F2 al momento de bootear y agregar la opción
livecd framebuffer
lo que no tuvo ningún efecto, luego probé con
livecd xres=800x600
tampoco tuvo efecto (al parecer hace una detección automática desde el live CD que sobrepasa estas opciones)

Pasé a la otra recomendación que consistía en hacer
user guest
password guest
sudo cmm

Con lo que se ingresa a varias opciones de configuración desde la consola. Allí cambié la resolución bajando la profundidad de colores a 8 bits, usando "test" comprobé que funcionaba bien y luego Quit y Yes para grabar los cambios. Al tratar de volver al modo gráfico con
startx
según decía la recomendación, apareció una serie de mensajes de error del tipo
Error in, Locking Authority File
make sure an x server isnt already running

La explicación, obtenida en chile.comp.unix (gracias Carlos!) fue:
"Tal como dice el msg no puede iniciar x porque ya esta corriendo. al hacer alt-ctrl-f1 solo te cambiaste a una de los tty no mataste el x, par amatar el x o le mandas un alt-ctrl-backspce o un cambio a run level 3 o similar (no cacho mucho mandriva, es solo para maricas) luego haces
los cambios, luego reinicias x."

Probé con alt-ctrl-backspace y no funcionó, luego buscando en Google encontré como cambiar a run level 3 con
sudo /sbin/ init 3

Luego de eso funcionó el startx y pude cargar el live CD para comenzar a instalar.

Pero no quedé satisfecho con la resolución así es que traté de cambiarla repitiendo todo el procedimiento, esta vez al hacer startx nuevamente salió una pantalla azul y se quedó colgado. Intuitivamente probé haciendo
sudo /sbin/ init 1

Y funcionó. Al instalar Mandriva todo bien hasta que me pidió el password para root, donde me encontré de nuevo con el desagradable y conocido problema de la autorepetición de las teclas que funciona muy mal en Virtual PC. Después de mucho bucear en algún lugar del KDE encontré la opción de desactivar la repetición del teclado -tratando de buscarla de nuevo no la encontré- y pude entrar el password. De allí en adelante todo bien, como muestra la imagen, ya tengo Ubuntu gOS y Mandriva corriendo al mismo tiempo en Virtual PC sin problemas.

lunes, 19 de noviembre de 2007

Cambiemos de tema por favor


Como usuario de Windos de muchos años, no soportaba la tosca tipografía ni menos las ventanas con los botones cerrar, minimizar, maximizar en el lado izquierdo al estilo Enligthment, pero eso tiene arreglo gracias a la existencia de temas que se pueden bajar desde www0.get-e.org/Themes/E17/ ahora tengo letras crispy y ventanas similares a las de Windows con las que me manejo con comodidad. El procedimiento para instalar un nuevo tema es simple: se descarga a cualquier directorio, botón izquierdo, configuration, theme, import. El tema se importa y listo.

Otro problema es el terminal por defecto UXterm es pésimo, con fonts diminutos, no permite copiar y pegar, en fin, no sirve. Para eso vamos a System Tools, Add/Remove (Package Manager) y en el PAckage Manager buscamos Konsole y la instalamos. Luego la podemos agregar a la barra de abajo haciendo click derecho sobre ella Add Aplication, TerminalEmulator, Konsole.

Esto por hoy, seguiré con más novedades a medida que las vaya encontrando.

domingo, 18 de noviembre de 2007

gOS

Básicamente se trata de Ubuntu 7.10 más el administrador de ventanas Enligthment, más los Google Gadgets. Funciona más rápido y fluido que Ubuntu porque Enligthment es mejor que Gnome.

Instalación en Virtual PC: idénticos problemas que en Ubuntu, al comenzar la carga desde el ISO (Live CD) aparece el menu en una pantalla verde con letras blancas (pésimo contraste de colores) lo que dificulta darse cuenta de la opción F6 que permite agregar la línea i8042.noloop al bootear el kernel. Luego de apretar F6 aparece una línea donde se indica, allí es donde se agrega la primera vez i8042.noloop como el contraste es muy malo es difícil darse cuenta de que aparece la línea, luego de ingresar con "secure graphic mode" iluminado se presiona Enter.



El problema de sonido debe arreglarse manualmente tal como se describe más abajo en los problemas de instalación de Ubuntu y, al menos en mi caso, se conectó automáticamante a la red cableada evitando la necesidad de editar.

El concepto nuevo de gOS son los Shelves, que consisten en lugares donde se colocan los lanzadores de programas al estilo Apple, un ejemplo es el shelf por defecto que se coloca en la instalación pero son completamente configurables por el usuario y se pueden poner los que uno quiera. Otra cosa nueva es la posibilidad de agregar Google Gadgets.

También probé instalando Virtual Box porque había leído que no tenía problemas para capturar el mouse. Al instalar aparece una advertencia que el programa no está visado para Windows XP y puede causar daños al sistema, lo instalé igual a pesar de la advertencia.Efectivamente, capturó el mouse dese el principio, pero tuvo problemas con la resolución de colores. Al poco rato de funcionar el computador comenzó a comportarse de forma muy extraña y a aparecer las pantallas azules de crash en Windos, que no veía desde los años del Win95. También arruinó la operación de Virtual PC y afortunadamente no se dañó el sistema de archivos, obviamente después de eso lo desinstalé. Advertencia: no usar Virtual Box en Windows XP por ningún motivo porque corrompe la memoria. Creo que es una irresponsabilidad muy grande haber sacado ese producto para Windows y mantenerlo para descarga.

Aquí pueden ver algunas fotos que muestran la instalación, las máquinas virtuales corriendo simultáneamente y mi escritorio recién ordenado ;-)

miércoles, 14 de noviembre de 2007

Como apurar a Ubuntu

Ubuntu es lento, y bajo virtual PC es muy lento en su configuraciòn estandar. Hay dos cosas que se pueden hacer para apurarlo:

1.- Optimizar Firefox, siguiendo el procedimiento de How to speed Firefox II, la configuraciòn que me diò mejor resultado fue "màquina lenta con conexiòn ràpida" pese a que mi màquina es muy ràpida y mi conexiòn lenta... cosas de Ubuntu.

2.- Desinstalar servicios innecesarios al arranque, con las instrucciones de How to speed Ubuntu the way you can feel It, segùn el tipo de màquina que tengamos se pueden desinstalar muchos servicios inùtiles.

Blog recomendado: Martin Woodward Technology

Resumen de los problemas de Ubuntu en Virtual PC

En resumen, los problemas especìficos de instalar Ubuntu bajo Virtual PC fueron:

1. La profundidad de colores por defecto de la instalaciòn de Ubuntu es màs alta que la que soporta Virtual PC: soluciòn, usar "Start Ubuntu in safe graphics mode" al instalar

2. Ubuntu falla al reconocer el mouse virtual emulado: soluciòn, agregar la lìnea i8042.noloop en /boot/grub/menu.lst, la lìnea a modificar es file=/cdrom/pressed/ubuntu.seed boot=casper xforcevesa initrd=/casper/initrd.gz quiet splash -- i8042.noloop

3. La conexiòn a red cableada (Internet) automàtica no se produce al principio: soluciòn, agregar las lìneas antes indicadas en /etc/network/interfaces y cambiando el modo itinerante por configuraciòn DHCP automàtica

4. La sincronizaciòn con el reloj del sistema host no es exacta: soluciòn, agregar clock=pit al lado de i8042.noloop

5. La tarjeta de sonido no es detectada inicialmente: soluciòn, agregar en /etc/modules la lìnea snd-sb 16

6. TLa pantalla splash de Ubuntu causa problemas al resetear: soluciòn, sudo apt-get remove usplash -y

Mètodo alternativo para agregar i8042.noloop clock=pit durante la instalaciòn:

Al cargar por primera vez presionar CTRL-ALT-F1 para entrar a la consola, luego sudo nano /boot/grub/menu.lst y buscar en el archivo que se abre la lìnea que comienza con ## ## End Default Options ## agregar al final de esa lìnea i8042.noloop clock=pi grabar y salir.

martes, 13 de noviembre de 2007

Dos problemas de Ubuntu bajo Virtual PC 2007

Bajé la versión 7.10 Gutsy Gibbon y después de instalarla no he notado ninguna diferencia con la 7.04, algo debe haber pero se mantiene el bug de captura del mouse con Virtual PC, el bug del sonido y la no conexión automática a la red cableada al iniciar.

El bug de captura de mouse queda relativamente arreglado con el procedimiento descrito más abajo (i8042.noloop en menu-lst del Grub), sin embargo por razones desconocidas a veces igual se pierde la captura y es necesario apagar y volver a cargar todo el sistema en Virtual PC. Después de peregrinar por muchos foros y recetas encontré la solución para los otros dos problemas:

Problema de sonido en Ubuntu bajo Virtual PC 2007: Virtual PC emula una tarjeta de sonido Sound Blaster 16 PnP ISA, si al instalar no reconoce ninguna tarjeta hay que hacer:

sudo gedit

y se coloca el password de administrador, se abre el archivo /etc/modules que está en blanco y se agrega la línea:

snd-sb 16

Se graba y se cierra, al partir nuevamente tendrá sonido.

Problema que no conecta a red cableada automáticamente en Ubuntu bajo Virtual PC 2007: nuevamente

sudo gedit

y se coloca password de administrador, se abre el archivo /etc/network/interfaces se borra lo que hay y se reemplaza por:

auto lo
iface lo inet loopback

iface eth0 inet dhcp
name Tarjeta de red Ethernet


Luego en el menú se va a Sistema, Administración, Red, se ubica la primera conexión (que probablemente está en loopback) se desmarca "Habilitar modo itinerante" (o enable roaming mode), se hace clic en Propiedades y se cambia la configuración a configuración automática (DHCP), se cierra y al volver a arrancar debería conectarse automáticamente a la red cableada.

domingo, 4 de noviembre de 2007

Configurando Samba en una máquina virtual Ubuntu



La configuración: un notebook Lenovo 3000 V100 con Windows XP Home Edition, Microsoft Virtual PC 2007, Una máquina virtual Windows XP Home (XPHOME_CLEAN2)y una máquina virtual Ubuntu 7.04 Feisty Fawn (UBUNTU).

El problema: instalar Samba en la máquina Ubuntu como servidor para guardar e intercambiar archivos, la carpeta en el servidor debe ser visible desde todas las máquinas.

El networking: instalé el Microsoft Loopback Network Adapter para, en el futuro, poder configurarlo para usar el servidor aún sin conexión a Internet (eso es tarea pendiente). La red quedó así:

Connections In the host machine (Lenovo laptop)

Conection 1
Realtek RTL8139/810x Family Fast Ethernet NIC
TCP/IP with DHCP (obtain Ip automatically)
Internet connection sharing activated: allow other network users to connect trough this computer internet connection, home networking connection: loopback 192.168.10.1

Conection 2
Microsoft loopback adapter: name loopback 192.168.10.1
Ip address: 192.168.10.1
mask 255.255.255.0
------------------------------------------------------

Connections In virtual machine XP Home_Clean2
Setted in Virtual PC with 2 network adapters
-Realteck PCI adapter (physical Lenovo)
-Loopback adapter

Conection 1
Realteck DHCP
TCP/IP with DHCP (obtain Ip automatically)

Conection 2
Microsoft loopback adapter: name loopback 192.168.10.2
Ip address: 192.168.10.2
mask 255.255.255.0
-----------------------------------------------------

Connections in Ubuntu Feisty Virtual Machine
Setted in Virtual PC with 2 network adapters
-Realteck PCI adapter (physical Lenovo)
-Loopback adapter

eth0 Link encap:Ethernet HWaddr 00:03:FF:B7:F8:95
inet6 addr: fe80::203:ffff:feb7:f895/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24266 (23.6 KiB) TX bytes:468 (468.0 b)
Interrupt:11 Base address:0xe880

eth1 Link encap:Ethernet HWaddr 00:03:FF:BB:F8:95
inet addr:192.168.1.109 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::203:ffff:febb:f895/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4179 errors:0 dropped:0 overruns:0 frame:0
TX packets:2968 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3075740 (2.9 MiB) TX bytes:383189 (374.2 KiB)
Interrupt:11 Base address:0xec00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:74 errors:0 dropped:0 overruns:0 frame:0
TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5648 (5.5 KiB) TX bytes:5648 (5.5 KiB)

Procedimiento

No lo voy a detallar porque hay varios HOWTO sobre el tema solo pondré los links que usé. Una particulridad de los HOWTO en Linux es que son simples recetas de cocina con una secuencia de comandos que casi nunca funcionan a menos que nuestro problema sea muy estándar, como el mío no lo era (conexión entre un host y dos máquinas virtuales) tuve que usar varios HOWTO, después de probar algunos el más claro que encontré fue:

HOWTO Setup Samba peer-to-peer with Windows

El howto es la primera página y hay diez páginas más de comentarios y aclaraciones, lo que muestra que el asunto no es nada sencillo. El principal problema es con los nombres: tanto nombres de redes, usuarios y password que deben coincidir con los que usamos en la máquina de Windows con que nos queremos comunicar, para que sen visibles. Complementando estos procedimientos con:

República Ubuntu: ver tema: Samba

y con Linux para todos: como implementar Samba

Con eso finalmente conseguí mapear desde Windows (Mi PC, Tools, Map Network Drivers) la siguiente red


Microsoft Windows Network
-----MSHOME
---------IPCLENOVO1
-------------Documents
-------------Shared Docs
-------------Printer and Faxes
-------------Scheduled tasks
---------IPCVPCXHOME3
-------------Shared Docs
-------------Printer and Faxes
---------SERV_LINUX
--------------Samba
--------------Printer and Faxes

Faltan varios detalles, especialmente mejorar el networking y dejar funcionando el Loopback Adapter, cuando lo tenga les cuento como me fué

domingo, 7 de octubre de 2007

Problemas con una Máquina Virtual Windows XP

Crear una VM Windows XP sobre un sistema nativo XP es sencillo, hacerlo funcionar con todas las características que necesitamos es otra cosa. Todo esto es para Virtual PC 2007.

El primer problema es el traspaso de información entre la máquina virtual y el equipo nativo, para esto se deben crear "shared folders" que no son precisamente los mismos que tiene Windows por defecto sino carpetas de red. Para crear estos shared folders el procedimiento es el siguiente:

Primero que nada debemos instalar las Virtual Machine Additions con Actions e Install and update Virtual Machine Additions. Luego hacemos partir la máquina virtual y cuando esté funcionando vamos a la consola, iluminamos la VM que está funcionando y elegimos Settings. Iluminamos Shared Folders y hacemos clic en el botón Share Folder, elegimos la carpeta del sistema nativo que queremos compartir y hacemos clic en la casilla Share Always, con esto podremos traspasar datos entre ambas máquinas.

El otro problema es agregar adaptadores de red en la máquina virtual. Para esto se hace clic en Networking y se agregan todos los adaptadores de red que deseamos usar en la VM, típicamente la tarjeta de red ya estará agregada, podemos instalar el adaptador de wifi y el de Bluethoot por ejemplo. Para que funcione la Wifi en la máquina virtual hay que ir a Network Connections en el equipo nativo y cliquear derecho al adaptador Wifi, escoger Propiedades y activar la casilla de verificación para que la Wifi funcione en máquinas virtuales.

Algo que estoy probando aunque todavía no manejo bien, es la instalación de un adaptador loopback Microsoft, que permite trabajar con IPs propias. El procedimiento detallado lo pueden ver en este link.

martes, 2 de octubre de 2007

Instalando Ubuntu en Microsoft Virtual PC

El problema del mouse:

Ubuntu 7.04 Desktop tiene un bug muy irritante: el mouse no funciona al instalarlo en Virtual PC. La solución es sencilla aunque técnicamente oscura: hay qu agregar a las opciones de arranque la línea i8042.noloop y borrar la opción splash. Parece muy simple pero no lo fue en mi caso. Hay muchos lugares donde se emnciona esta solución pero ¿como editar las opciones de arranque? los tutoriales dicen "apriete F6" o "coloque Esc y luego e, pero al cargarse Ubuntu en una VM, al menos en mi caso no funcionaba ninguna tecla, ni con AltGr ni nada.

La solución, muy al estilo de Linux, era simple pero nada clara: al cargarse Ubuntu hay una pantalla de opciones avanzadas donde solo aparece un montón de comandos sin ninguna indicación de que pueden ser editados. Claro que se pueden editar, usando las flechas, del y sobreescribiendo de soluciona el problema: se borra splash y se agrega i8042.nollop

La pantalla es esta


Se escoge F6 "other options" y luego "Advanced", allí aparece el archivo editable con las opciones de boot, se borra splash y se agrega i8042.noloop y continuará la instalación con el mouse funcionando. Pero eso no es todo. Una vez terminado, cuando Ubuntu se resetea y parte de nuevo hay que hacer de nuevo lo mismo, esta vez co esc mientras se está cargando. Aparece el menú de boot y se escoge la opción "carga normal" (o algo por el estilo) y se coloca "e" (editar), aparece la famosa línea de nuevo y se vuelve a hacer lo mismo. Para evitar tener que hacer eo cada vez que carque hay que editar el archivo de opciones de boot de Ubuntu, cuando lo encuentre colocaré como se hace.

Para cambiar el archivo de opciones del boot primero se debe tener permiso de superusuario, cosa que Ubuntu no entrega por defecto, para esto se abre Aplicaciones, Terminal y se escribe
sudo -u root passwd
preguntará el password luego el password de superusuario (podría ser el mismo), con eso se hace
su -
Y ya estamos logueados como superusuarios. Luego subimos dos niveles con
CD .. (2 veces)
Hacemos Dir para chequear que aparece Boot y hacemos CD Boot y luego CD Grub
Una vez adentro de grub editamos el archivo con
nano menu.lst
lo que nos deja dentro de un editor de texto, luego buscamos la l{inea que empieza con kernel y termina con splash y le agregamos i8042.noloop ¡cuidado con modificar otra línea!
Salimos con ctrl-x y confirmamos con S

La instalación de máquinas virtuales con Virtual PC de Microsoft (se puede descargar grátis) es bastante simple: se abre la consola Virtual PC y se escoge "nuevo", aparece una lista de sistemas operativos y para instalar Ubuntu se escoge "otros", luego pide el tamaño de memoria, recomiendan usar 256 Kb y el tamaño del disco virtual que se recomienda de 8000 MB. No se asusten por el tamaño porque no va a ocupar 8 gigas del disco, simplemente ira llenando a medida que necesite, los 8GB son un tamaño máximo. Una vez hecho esto se escoge la máquina recién creada y se arranca con el botón Start de la consola. El sistema partirá como cualquier computador sin sistema operativo buscando, esa búsqueda se puede interrumpir con las teclas F1 y Esc para no esperar tanto, aparecerá un mensaje diciendo que no se encuentra ningún sistema operativo.

Enseguida hay que tener el CD de instalación (o la copia ISO en el disco) del sistema operativo que queremos virtualizar, para eso hacemos clic en "CD" y escogemos cargar desde un CD o desde una imagen ISO según lo que tengamos. Luego "Action" y "Reset", el sistema se comenzará a instlar desde el CD o el ISO. Una vez instalado tenemos nuestra máquin virtual lista para usar.

Luego hay que resetear la máquina creada con "Action", "Reset".

domingo, 23 de septiembre de 2007

Remote desktop: problema con el servidor remoto

Desde Windows XP con acceso a una cuenta y los permisos correspondientes, se puede ingresar a un servidor remoto. El procedimiento es como sigue.

Desde el equipo local: Start, All Programs, Accesories, Comunications, Remote Desktop. En Computer se entra la IP del servidor remoto, luego username, password y domain, todos datos que deben ser proporcionados por el Admin del servidor. Save password si quieren que lo recuerde.

Quedará instalado el icono a Remote Desktop Conection. ahora con "connect"· se podrá hacer la conexión, pero antes también se pueden ajustar algunas cosas, la más útil es Local Resources, donde podemos colocar que el servidor remoto pueda leer nuestros discos locales o enviar a nuestra impresora, para una conexión rápida es recomendable poner Modem (56 Kbps) en Experience.

El Problema

Un problema muy común es el mensaje "the terminal server has exceded the maxime number of allowed conections" que se produce cuando inadvertidamente dejamos corriendo más de las 2 sesiones habitualmente permitidas y no hay modo de conectarse. Esto pasa especialmente si se nos interrumpe la conexión y queda alguna aplicación corriendo en "idle" sin darnos cuenta (el Firefox tiene esa pésima costumbre).

La solución no es directa, primero hay que entrar a través de la consola, desde nuestro equipo local, hacemos Start, Run y ejecutamos mstsc -v:xx.xx.xx.xx /f -console donde en lugar de xx.xx.xx.xx ponemos la IP del servidor remoto. Con eso podremos ingresar al servidor. Luego en el server vamos a Start, All Programs, Administrative Tools, Terminal Services Manager. Aparece una ventana dividida en dos con todas nuestras sesiones abiertas, hacemos click derecho sobre las sesiones abiertas del lado derecho y las cerramos usando "Log Off"

Problema solucionado. Si trabajan con un servidor remosto más de una vez les va a pasar. Mucho cuidado cuando hayan entrado desde la consola de no quedar colgados de nuevo, porque ahi si que no podrán entrar por ningún lado.

jueves, 6 de septiembre de 2007

Referencias y tutoriales para el principiante

Algunos lugares que -como novato- visito frecuentemente para mi referencia

FAQ tutorial de Unix básico de Hurricane Electric

Linux File Server tutorial también útil para empezar

BAsh programming intro howto de faqs.org

An A-Z Index of the Linux BASH command line

Advancing BASH scripting guide

Linux Shell Scripting Tutorial v1.05r3 A Beginner's handbook

Tutoriales de Subversion

svn command line, tutorial for begineers Muy bueno como entrada al tema, práctico y directo

Version control with subversion compiled from r2866 la guía completa

Subversion

El propósito de este blog es ir registrando notas sobre mi primera exposición al Unix/Linux. Dicho esto vamos enseguida con la primera aplicación que estoy usando Subversion, que es un programa de control de versiones para trabajo colaborativo.

La supondré instalada y funcionando. Su forma es svn , lo que yo he usado hasta ahora es:

svn co carga el repositorio en una copia local dentro de nuestra máquina con toda su estructura de directorios, cada vez que uno hace un co la copia (Working copy) se actualiza con los cambios que los dem´s miembros del equipo han hecho

svn update para actualizar la working copy con los cambios del repositorio

svn log para ver la lista con los últimos cambios

svn diff -r numero1:numero2 muestra las diferencias entre las versiones numero1 y numero2

svn mov (nombre antiguo nombre nuevo) cambia el nombre de un archivo

svn add (nombre archivo) agrega un archivo al sistema de control de versiones

svn ci -m "comentario" sube las modificaciones que hemos hecho en nuestra working copy al repositorio

svn ps svn:eol-style native (nombre archivo) para arreglar el problema de CR/LF y que los archivos escritos en Unix sean leibles en Windows/Dos

Lo único confuso en todo este asunto es que hay muchos comandos bash que funcionan en svn con el mismo nombre, así por ejemplo uno se olvida de ejecutarlos dentro de svn y al momento de hacer un checkin aparecen los errores

Aplicaciones para trabajar desde Windows

Al menos en mi caso, todavía trabajo desde una máquina Windows XP en mi casa (laptop) que uso para entrar a un servidor remoto donde tengo mi Unix, con las restricciones correspondientes a mi condición de novato. Las aplicaciones que uso desde Windows para accesar son:

Putty mi programa favorito, permite acceso SSH al servidor rápido, liviano y limpio

TigthVNC pone un escritorio tipo Linux en mi máquina con aplicaciones como Firefox, no me gusta, lo encuentro pesado y lento

Pidgin para mensajería instantánea, es multiplataforma, muy bueno y seguro, lo uso en un servidor jabber

Nano para editar texto en Unix, me gusta mucho porque me recuerda al antiguo Wordstar, la mayoría parece preferir el Vi, yo me quedo con el Nano