30.5.07

Debian, tarjetas de red que se detectan pero no funcionan (renombrando interfaces de red)

Es un problema muy común instalar Debian y que las tarjetas de red se zurren entre ellas porque todas quieren llamarse eth0 o eth1. En especial, cuando disponemos de un interface firewire y una tarjeta Intel, ambos dispositivos luchan por hacerse con el control del nombre 'eth0', por más que se les diga que no. Lo mismo ocurre en ocasiones que disponemos de varias tarjetas Realtek combinadas con Intel e1000, etc.

La solución es realmente simple para los que estamos acostumbrados a lidiar con Linux, pero para los primerizos suele ser desesperante. Veamos como solventar estas dificultades:

1) (opcional) Si disponemos de un interface firewire y no lo vamos a utilizar para conectarnos a otro equipo, podemos deshabilitar el interface de red firewire:

- Editamos el fichero /etc/modprobe.d/blacklist y añadimos el módulo a los dispositivos que no queremos autocargar, es decir, los módulos que no deseamos que Linux lance. Para ello creamos una línea al final del archivo de la forma:

blacklist eth1394

2) Editamos la configuración de udev y renombramos los interfaces de red a nuestro gusto.

- Alteramos el fichero de configuración de red de udev

vi /etc/udev/rules.d/z25_persistent-net.rules

- Cambiamos los nombres según el nombre del módulo que nos interese. En este ejemplo, yo he cambiado mi tarjeta nvidia integrada al interface eth0 y he puesto el firewire en eth4, la wifi la he dejado como estaba:

# Firewire device 06e40a00b52d5045 (ohci1394)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="06:e4:0a:00:c5:2f:50:45", NAME="eth4"

# PCI device 0x10de:0x0269 (forcedeth)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:16:d3:16:42:ff", NAME="eth0"

# PCI device 0x14e4:0x4311 (ndiswrapper)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:14:f5:d0:a6:87", ATTRS{type}=="1", NAME="wlan0"


3) Reiniciar y cambiar la configuración de red en /etc/network/interfaces o utilizando cualquier herramienta gráfica como NetworkManager.

20.5.07

Configurando redes inalámbricas con dos clicks en Debian

De todas las herramientas disponibles para configurar redes de forma fácil en Linux, probablemente la más versátil sea Network Manager. Ámpliamente conocida entre los usuarios de Ubuntu, son muchos los usuarios de Debian que se ven frustrados por no ser capaces de instalar esta aplicación. Esta circunstancia se debe a que los usuarios creados en Debian no forman parte del grupo "netdev", utilizado por esta estupenda aplicación.
Los pasos necesarios para disfrutar de esta herramienta son los siguientes:

1) Añadir nuestro usuario al grupo netdev

adduser mi_nombre_de_usuario netdev


2) Editar el fichero de configuración de red /etc/network/interfaces para acelerar la carga del sistema, ya que Network Manager no lo usará. Podemos dejarlo de forma similar a esta, adecuándolo a los nombres de interface de cada uno:

auto lo
iface lo inet loopback
allow-hotplug eth0
allow-hotplug wlan0


3) Instalar los paquetes de Network Manager, escogiendo entre la versión KDE o Gnome según el gestor de ventanas instalado:

apt-get install network-manager network-manager-kde


4) Reiniciar el sistema

5) Lanzar Network Manager desde nuestro gestor de ventanas y comenzar a disfrutar de la magia

17.5.07

Python: Como leer tags XML de forma fácil

Las posibilidades de Python con XML son muchas pero, generalmente queremos realizar operaciones sencillas como sería leer el contenido de una etiqueta en concreto. Esto, no está tan claro en la documentación (al menos para mi) y he aquí una pequeña receta de como conseguirlo con minidom:

#Importamos el módulo
from xml.dom import minidom

#Creamos una función que busca un tag dado en un fichero XML
#y nos devuelve una lista con todos los contenidos que había
#dentro de los tags.

def buscaXMLTag(xmlFile,xmlTag):
resultList = []
try:
dom = minidom.parse(xmlFile)
elements = dom.getElementsByTagName(xmlTag)
if len(elements) != 0:
for i in range(0,len(elements)):
resultList.extend([elements[i].childNodes[0].nodeValue])
else:
print 'xxx No hay elementos en el fichero XML con la etiqueta ' + xmlTag
except:
print 'xxx El fichero no existe o está mal formado.'
print 'xxx Path del fichero: ' + xmlFile
print 'xxx Etiqueta sobre la que se realizó la búsqueda: ' + xmlTag

return resultList

#Ejecutamos la función y sacamos por pantalla todo el contenido encontrado
datos = buscaXMLTag('/home/jose/test.xml','titulo')
for elemento in datos:
print elemento

7.5.07

La mejor forma de proteger una red wifi: esconderla entre 53.000 redes

De todas utilidades curiosas, esta destaca por ser realmente útil, un programa que simula hasta 53.000 puntos de acceso.
Puede que nuestra red no sea del todo segura, que no tengamos más posibilidad que encriptar en WEP o que simplemente nos apetece agobiar un poquito a los "wardrivers". FakeAP es una utilidad que utiliza el controlador Host AP para chipsets Prism 2/2.5/3 para simular, decenas, cientos o miles de puntos de acceso falso que confundirán a un posible atacante.
Esta utilidad puede obtenerse en la dirección: http://www.blackalchemy.to/project/fakeap/