martes, 28 de julio de 2009

RTL8187SE y Fedora Core 11 - MSI Wind

Estoy probando Fedora 11 Leonidas, del cual leí cosas muy interesantes (boot up en 20 segundos, una interfaz de usuario muy acabada y cuidada, presto! (a la hora de actualizar un paquete nos baja los cambios que tenga el paquete, con lo que es muuuy rápido para bajar)), modo dual screen sin renegar....

El problema a todo esto, fue que en mi MSI Wind, tengo una placa de red rtl8187se, y no viene con soporte nativo... Por lo que desempolvé los favoritos de cuando utilizaba opensuse, y lo solucioné.... Dejo la receta por si alguien le sirve...

1. Instalamos los paquetes necesarios para compilar:
#yum -y install binutils make gcc kernel-devel glibc-headers

2. Bajamos el driver de acá
#wget http://launchpadlibrarian.net/18533836/rtl8187se_linux_26.1023.0928.2008.tar.gz

3. Lo descomprimimos:
#tar xvf rtl8187se_linux_26.1023.0928.2008.tar.gz

4. Compilamos:
#cd rtl8187se_linux_26.1023.0928.2008
#./makdrv

5. Lo copiamos a la rama del kernel:
# cp -r ieee80211/*.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# cp -r rtl8185/r8180.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
# depmod -ae

Luego reiniciamos, y listo! Tendremos wlan0 =)

Las últimas lineas las tendremos que re-executar para cada update.

Fuente: http://en.opensuse.org/Installation_on_MSI_Wind

jueves, 7 de mayo de 2009

Bug vpnc plugin en gnome network manager:

Dejo un error y su solución en ubuntu jaunty jackalope 9.04, al querer conectarme a una vpn cisco, utilizando gnome-network-manager con el correspondiente plugin, luego de importar el certificado, se generaba el siguiente error (donde %s es el nombre de la conexión vpn generada):
The VPN connection «%s» failed because there were no valid VPN secrets
La conexión VPN «%s» falló porque los secretos VPN no eran válidos
Para arreglar dicho error, bajé el este parche, copiamos el mismo en /etc/dbus-1/system.d, y lo aplicamos.

patch /etc/dbus-1/system.d/nm-vpnc-service.conf <>

Reiniciamos, con lo que el plugin vuelve a funcionar con normalidad.

La solución la encontré en el reporte del bug.

Gracias Dafunk por hacerme notar el error en el comando.

Para aprender un poco mas de patch, pueden seguir esta entrada de la madriguera.

lunes, 18 de agosto de 2008

Logrando conectividad en ambientes paranoicos, fácil y rápido (!?)

Hoy chateando con pepe, me planteó un esquema bastante raro de una situación que le pasaba, la pregunta fue, como hacer para conectarse a un servidor que está atrás de un NAT, en una red local (LAN) de un proveedor, hiper firewalleado, que por reglas de seguridad no permite incluso el tráfico de información entre las máquinas de la misma red.
El esquema era mas o menos el siguiente:

Pepe, enloquecido
IP: 192.168.0.1
Firewall que bloquea TODO el tráfico LAN (Excepto entre la máquina cliente y su gateway)
Servidorcito Debian
IP: 192.168.0.2

O sea, una lan, sin comunicación , las máquinas están isoladas para salir por el NAT a internet solamente, y ninguno de los dos extremos tiene una salida pública a intenet. Después de plantear algunas posibles soluciones, encontramos una solución muy rápida de implementar, esa solución se llama Hamachi, y la pueden descargar gratis (aclaro que es privativo).

Instalarlo es bastante trivial, pego los pasos para hacerlo en linux, en windows es más trivial aún.

Descargamos el paquete para linux, y lo descomprimimos:
$mkdir /tmp/hamachi;cd /tmp/hamachi
$wget http://files.hamachi.cc/linux/hamachi-0.9.9.9-20-lnx.tar.gz
$tar xvf
hamachi-0.9.9.9-20-lnx.tar.gz

Accedemos al directorio, y lo instalamos (como root)
#cd
hamachi-0.9.9.9-20-lnx
#make install

Ejecutamos tuncfg para configurar el dispositivo tun
#./tuncfg/tuncfg

Desde consola, con un usuario normal, procedemos a crear nuestra identidad (par de clave publica-privada y archivos de control en el home)
$hamachi init

Iniciamos hamachi
$hamachi start

Seteamos un nick y nos logueamos en el servicio

$hamachi set-nick pulpo
$hamachi login

Verificamos el estado de la red
$hamachi
Hamachi, a zero-config virtual private networking utility, ver 0.9.9.9-20

version : hamachi-lnx-0.9.9.9-20
pid : 7689
status : logged in
nickname : pulpo


Creamos una red
$hamachi create red-pulposa
Password:
Creating red-pulposa .. ok

Como la red anterior la creamos nosotros, ya estamos logueados a la misma, acá fue donde pepe bajó el cliente para windows y lo instaló, en este punto simplemente verifiqué que estuviera conectado después de pasarle el nombre de la red y la password de la misma.
$hamachi get-nicks
Retrieving peers' nicknames ..

$hamachi list
* [red-pulposa]
* 5.243.72.135 sertec 201.254.191.139:29197

LA ip de los nodos conectados, son visible arriba, en este caso sertec (pepe) tiene la ip 5.243.72.135, probamos hacer un ping:
$ping 5.243.72.135
PING 5.243.72.135 (5.243.72.135) 56(84) bytes of data.
64 bytes from 5.243.72.135: icmp_seq=1 ttl=128 time=776 ms
64 bytes from 5.243.72.135: icmp_seq=2 ttl=128 time=119 ms
64 bytes from 5.243.72.135: icmp_seq=3 ttl=128 time=250 ms
^C
--- 5.243.72.135 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 119.687/382.323/776.705/283.943 ms

Para desconectarse de una red:
$hamachi go-offline red-pulposa
Going offline in red-pulposa .. ok


Para conectarse de nuevo:
$hamachi go-online red-pulposa
Going online in red-pulposa .. ok


Para ver una ayuda, y ver otros comandos que pueden ser útiles:
$hamachi help

Espero que a alguien le sirva!
[]'s







miércoles, 9 de abril de 2008

Netbeans 6, Opensuse 10.3, Gnome (y bug-buddy)

Tengo en mi laptop actualmente corriendo opensuse 10.3 con gnome, y estuve intentando instalar netbeans 6.0, con mucha mala suerte, ya que saltaba el bug-buddy (mi nuevo enemigo), y se me cerraba netbeans...

Me puse a probar posibles soluciones, actualicé jde, bajé nuevos sdk, probé con netbeans 6.0.1, y no tenía suerte, aparentemente se colgaba, y saltaba bug-buddy al rescate... Lo desinstalé para ver si la consola se ponía más verborrágica... y sorpresa! Se instaló perfecto....

La solución a mis problemas fue:

adella:~ # zypper rm bug-buddy
* Reading repository '10.3 - Main Repository (NON-OSS)' cache
* Reading repository 'openSUSE-10.3-Updates' cache
* Reading repository 'home:anubisg1:TCL85' cache
* Reading repository 'Repositorio principal (OSS)' cache
* Reading repository 'Main Repository (OSS)' cache
* Reading repository 'openSUSE:10.3' cache
* Reading repository 'VideoLan Repository' cache
* Reading repository 'telepathy' cache
* Reading repository 'Packman Repository' cache
* Reading repository 'openSUSE-10.3-OSS-Gnome 10.3' cache
* Reading repository 'Repositorio principal (NON-OSS)' cache
* Reading installed packages [100%]


The following package is going to be REMOVED:
bug-buddy

After the operation, 2.0 M will be freed.
Continue? [yes/no]: yes
* Removing bug-buddy-2.20.0-5 [100%]


Simple no?

lunes, 14 de enero de 2008

Netbeans 6.0

Aprovechando que todo el mundo está de vacaciones, que todos pusieron el freno, y yo no ;), y en búsqueda de algo para poder hablar en las próximas juntadas, me decidí entrar en contacto nuevamente con el mundo de los coders, me bajé el último netbeans y me puse a jugar con JSF.

Estuve probando este tutorial, y sinceramente me gustó mucho.... estuve siguiendo otros tutos que están enlazados ahí adentro, y mirando por arriba este otro tutorial.

viernes, 11 de enero de 2008

Probando KDE 4


Aprovechando la salida de KDE 4.0 lo instalé en mi opensuse 10.3, el general me parece que el proyecto viene bien encaminado, aunque todavía me parece que está muy verde... pronto plasmaré mis impresiones, por el momento dejo un screenshot.

See u soon!

miércoles, 1 de agosto de 2007

Jails en freeBSD

Las "Jaulas" (jails) en FreeBSD, es una implementación de virtualización en el sistema operativo, que permite a los administradores particionar un sistema, en múltiples susbsistemas independientes llamados jaulas.

Su utilidad es separar los servicios de un proveedor del de sus clientes, principalmente por razones de seguridad y facilidad de administración. Para esto se comparte el sistema, archivos y recursos, de manera tal que sólo pueda ser accedido por el subsitema correcto.

Esta solución provee:

Virtualización: Cada jaula es un entorno virtual corriendo en un sistema anfitrión, con sus propios archivos, procesos, cuentas de usuario... Desde el punto de vista de un proceso, el entorno virtual es casi indistinguible del sistema real.

Seguridad: Cada jaula está aislada del resto, dando esto un nivel adicional de seguridad.

Facilita la Delegación: Gracias al alcance limitado de la jaula, permite delegar la administración de tareas que requieren permisos de super usuario sin entregar el control total del sistema.

¿En que se diferencia esto con una jaula chroot? En que en las jaulas freeBSD cada proceso es atachado a una estructura específica en el kernel, que tiene el propósito de limitar la interacción de esos procesos con aquellos en ejecución en otra jaula, y restringiendo las cosas que puedan hacer (por ejemplo limitando el acceso raw).

Modificaciones en el sistema "host"

Fue instalado un sistema mínimo, sin absolutamente nada, aunque normalmente se piensa que la instalación de un sistema operativo debe tener todo lo posible, y después ir quitando cosas, personalmente pienso que debe ser realizado al revés, la razón es simple, conozco todo lo que voy instalando si no tengo nada.


Utilizo para la creación y gestión de la jaula, un excelente framework realizado por Dirk Engling, llamado ezjail. El motivo de usar este framework, y no hacer los jails vía old style, es la simplicidad, crear y compilar una jaula es algo que lleva tiempo. Con ezjail el proceso se reduce a:

------------------------------------------------------------------

# mkdir /home/script

# cd /home/script

# cvs -d :pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co ezjail

# make install

# ezjail-admin install

------------------------------------------------------------------


Con esto tendremos que haber bajado e instalado ezjail. ¿Simple no?

Luego procedemos a reconfigurar un poquito nuestra red, aclaro aquí que llamaré "host" a la máquina bsd "real", y "jaula" a las diferentes jails. Editamos el archivo /etc/rc.conf:
----------------------------------------------------------------
#Archivo /etc/rc.conf
gateway_enable="YES" keymap="us.iso"sshd_enable="YES"
ezjail_enable="YES" #referencia1
syslogd_flags="-ss" #referencia2 ifconfig_re0="inet 192.168.0.100 netmask 255.255.255.0" ifconfig_re0_alias0="inet 192.168.0.200 netmask 255.255.255.255" defaultrouter="192.168.0.1" hostname="bsdhost.pulpo.cdmon.org"
----------------------------------------------------------------

#referencia1: Esta linea hace que las jaulas inicien automáticamente con el sistema host.
#referencia2: Previene que el demonio syslogd de la máquina host interfiera con el de las máquinas jaulas.

Configuro también una ip para la máquina host, y también agrego otra ip para una máquina jaula, asignando una ip como interfaz virtual.

Procederemos a retocar otro archivo de configuración, esta vez, /etc/ssh/sshd_config:
----------------------------------------
Archivo /etc/ssh/sshd_config

ListenAddress 192.168.0.100 #Ip del Host
----------------------------------------

Acabamos de configurar el demonio sshd de la máquina host para que escuche solamente en la ip que le asignamos a la máquina host, ya que nos interesará tener en las diferentes jaulas un demonio ssh corriendo para poder delegar la administración a otras personas, y no cargarnos con todo (o cargarnos con todo pero de una manera mas geek).

Creando nuestra primera "jaula"

Por fin vamos a crear la primera jaula, afortunadamente disponemos de ezjail, lo que lo hará simple, rápido, y bonito.
----------------------------------------------------------------------
# ezjail-admin create -r /zonas/web web.carupitor.com.ar 192.168.0.200

----------------------------------------------------------------------

Luego de la creación de la jaula, la iniciamos con el comando /usr/local/etc/rc.d/ezjail.sh:
------------------------------------------------------------------------
bsdhost# /usr/local/etc/rc.d/ezjail.sh start web.carupitor.com.ar
Configuring jails:.
Starting jails: web.carupitor.com.ar.
bsdhost#
------------------------------------------------------------------


Corroboramos listando las jaulas:
---------------------------------------------------------------------
bsdhost# ezjail-admin list
STA JID IP Hostname Root Directory
--- ----- --------------- -------------------- ---------------------
DR 1 192.168.0.200 web.carupitor.com.ar /zonas/web
bsdhost#
---------------------------------------------------------------------


Con esto hemos creado nuestra primera "máquina virtual"!. Fue creada en el directorio /zonas, con hostname web, e ip 192.168.0.200. Observar el JID (Jail ID), este nos permitirá hacer un jexec a la jaula

Ahora vamos a configurar la red en ella. Para ello primero que todos nos logueamos en la jaula, habilitaremos sshd, y pondremos una ruta por defecto:
---------------------------
# jexec 1 tcsh

web# vi /etc/rc.conf
#Archivo /etc/rc.conf
sshd_enable="YES"
defaultrouter="192.168.0.1"
---------------------------


El comando jexec ejecuta un comando en la jaula que se le determine como parámetro, en este caso ejecutaremos el shell tcsh en la jaula con jid 1.


Configuramos también el archivo /etc/hosts (en la jaula).

---------------------------------------------
web# vi /etc/hosts
::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain
192.168.0.200 web web.carupitor.com.ar
web#
---------------------------------------------


Y cargamos el nameserver en el archivo /etc/resolv.conf

-----------------------------
bsdhost# cat /etc/resolv.conf
domain carupitor.com.ar
nameserver 192.23.41.254
bsdhost#
-----------------------------

Opcional:
Configuraremos a continuación una cuenta de usuario en la jaula, para poder acceder via ssh a ella y gestionarla. También es posible acceder via ssh al sistema host, y de ahí realizar un jexec 1 tcsh. También estableceremos una password para root:
----------------------------------------------------------------
web# passwd root
Changing local password for root
New Password:
Retype New Password:
web#

web# adduser
Username: webadmin
Full name: Administrador Web
Uid (Leave empty for default):
Login group [webadmin]:
Login group is webadmin. Invite webadmin into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/webadmin]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : webadmin
Password : *****
Full Name : Administrador Web
Uid : 1001
Class :
Groups : webadmin
Home : /home/webadmin
Shell : /bin/sh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (webadmin) to the user database.
Add another user? (yes/no): no
Goodbye!
web#
-------------------------------------------------------------------


Para tener acceso como root es necesario instalar sudo en la jaula, o descomentar #PermitRootLogin no en el archivo /etc/ssh/sshd_config (en la jaula), o agregar al usuario creado al grupo wheel para permitir ejecutar su -.

Reiniciamos la máquina host para ver si tomó todos nuestros cambios, cuando nuevamente esté en linea, trataremos de acceder vía ssh a la jaula.
--------------------------------------------------------------------------
pulpo@adella ~ $ ssh 192.168.0.200 -lwebadmin
Password: Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.2-RELEASE (GENERIC) #0: Fri Jan 12 10:40:27 UTC 2007 Welcome to FreeBSD!
.......
$ uname FreeBSD $
$ hostname web.carupitor.com.ar $
--------------------------------------------------------------------------

Ahora ajustamos a nuestro gusto el /etc/motd (para cambiar el banner de inicio), y continuaremos instalando las aplicaciones que nos interesen.

Instalando Apache en nuestra jaula

Para comenzar con esta sección, nos logueamos como root a nuestra jaula, luego instalamos apache 2.0.
----------------------------------------------------------------------------------------
web# pkg_add -r apache20
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache20.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8.tbz... Done.
Removing stale symlinks from /usr/bin...
Removing /usr/bin/perl
rm: /usr/bin/perl: Read-only file system
Skipping /usr/bin/perl5
Done.
Creating various symlinks in /usr/bin...
Backing up /usr/bin/perl as /usr/bin/perl.freebsd
mv: rename /usr/bin/perl to /usr/bin/perl.freebsd: Read-only file system
*** /usr/bin/perl is still there, which should not happen
Symlinking /usr/local/bin/perl5.8.8 to /usr/bin/perl5
ln: /usr/bin/perl5: Read-only file system
Done.
Cleaning up /etc/make.conf... Done.
Spamming /etc/make.conf... Done.
Cleaning up /etc/manpath.config... Done.
Spamming /etc/manpath.config... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/libiconv-1.9.2_2.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.

To run apache www server from startup, add apache2_enable="YES"
in your /etc/rc.conf. Extra options can be found in startup script.

web#
----------------------------------------------------------------------------------------------

Editamos /etc/rc.conf y agregamos la linea apache2_enable="YES", de esta forma el web server inciará cuando sea iniciada la jaula.

---------------------------
web# vi /etc/rc.conf

sshd_enable="YES"
defaultrouter="192.168.0.1"
apache2_enable="YES"
web#
---------------------------


Iniciamos apache en el servidor...

------------------------------------

web# /usr/local/sbin/apachectl start

------------------------------------


Desde un navegador escribimos la ip de la máquina virtual, si todo está bien, tendremos que ver lo siguiente:


Ahora ya está todo funcionando.... Hasta la próxima!.

Los links:
Wikipedia
Ezjail
FreeBSD