1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Interesante

  • Instalacion de Ubuntu

    El presente documento tiene la misión de indicar los pasos a seguir para la instalación de la distribución Ubuntu (versión 5.04 "Hoary Hedgehog") en un portátil Toshiba Satellite A40-201.

    La instalación no resultó sencilla y, tras cerca de 10 intentos y una noche sin dormir, logré encontrar la combinación adecuada....... 
  • Compilar Kernel con aceleración gráfica para ATI

    Aquí explico cómo se compila un kernel en Debian y como he conseguido la aceleración gráfica para mi tarjeta ATI 9600XT (es extensible a muchas tarjetas gráficas con chip ATI)

  • Cómo configurar un servidor NFS

    Configurar un servidor NFS.

    Introducción.

    NFS, acrónimo de Network File System, es un popular protocolo utilizado para compartir volúmenes entre máquinas dentro de una red de manera transparente, más comúnmente utilizado entre sistemas basados sobre UNIX®. Es útil y fácil de utilizar, sin embargo no en vano es apodado cariñosamente como "No File Security". NFS no utiliza un sistema de contraseñas como el que tiene SAMBA, solo una lista de control de acceso determinada por direcciones IP o nombres. Es por esto que es importante que el administrador de la red local o usuario entienda que un servidor NFS puede ser un verdadero e inmenso agujero de seguridad si este no es configurado apropiadamente e implementado detrás de un contrafuegos o firewall.

    Personalmente, solo recomiendo utilizar NFS dentro de una red local detrás de un contrafuegos o firewall que permita el accesos solo a las máquinas que integren la red local, nunca para compartir sistemas de archivos a través de Internet. Al no contar con un sistema de autenticación por contraseñas, es un servicio susceptible del ataque de algún cracker. SAMBA es un mucho mejor y más seguro protocolo para compartir sistemas de archivos.

    Procedimientos.

    Teniendo en cuenta los aspectos de seguridad mencionados, es importante que siga los procedimientos descritos a continuación al pie de la letra, y que posteriormente se comprometa también consultar a detalle la documentación incluida en el paquete nfs-utils, ya que este le proporcionará información adicional y completa sobre aspectos avanzados de configuración y utilización.

    Configurando el servidor NFS.

    Se requiere tener instalados nfs-utils y portmap. Preguntaremos al sistema si estos están instalados con la siguiente línea de comando:

    rpm -q nfs-utils portmap

    Lo cual debe de regresar algo como lo siguiente:

    nfs-utils-0.3.1-13.7.2.1
    portmap-4.0-38

    En caso de que falte alguno de estos paquetes, inserte el CD de instalación en la unidad correspondiente, abra una terminal o consola y ejecute lo siguiente:

    mount /mnt/cdrom/
    rpm -Uvh /mnt/cdrom/RedHat/RPMS/paquete_faltante

    Cabe mencionar que lo mejor será siempre utilizar la versiones de nfs-utils y portmap más actuales. Salvo por RedHat® Linux 7.1 o LinuxPPP 7.x, el resto de las versiones anteriores de RedHat® y LinuxPPP® incluyen paquetes de nfs-utils y portmap con serios agujeros de seguridad. Visite el servidor ftp de la distribución utilizada y descargue los paquetes actualizados, que seguramente incluirán los parches de seguridad necesarios:

                        

                           

    Configurando la seguridad.

    Lo siguiente será configurar un nivel de seguridad para portmap. Esto se consigue editando los ficheros /etc/hosts.allow y /etc/hosts.deny. Debemos especificar que direcciones IP o rango de direcciones IP pueden acceder a los servicios de portmap y quienes no pueden hacerlo. Podemos entonces determinar en /etc/hosts.allow como rango de direcciones IP permitidas los siguiente:

    portmap:192.168.1.0/255.255.255.0

    Esto corresponde a la dirección IP de la red completa y la máscara de la sub-red. Adicionalmente podemos especificar direcciones IP individuales sin necesidad de establecer una máscara. Esto es de utilidad cuando se desea compartir volúmenes con otras máquinas en otras redes a través de Internet. Ejemplo:

    portmap:192.168.1.0/255.255.255.0
    portmap:192.168.20.25
    portmap:192.168.30.2
    portmap:216.200.152.96
    portmap:148.240.28.171

    Una vez determinado que direcciones IP pueden acceder a portmap, solo resta determinar quienes no pueden hacerlo. Evidentemente nos referimos al resto del mundo, y esto se hace agregando la siguiente línea:

    portmap:ALL

    Es importante destacar que la línea anterior es INDISPENSABLE y NECESARIA si quiere tener un nivel de seguridad decente. De manera predeterminada las versiones más recientes de nfs-utils no permitirán iniciar el servicio si esta línea no se encuentra presente en /etc/hosts.deny.

    Una vez configurado portmap, debe reiniciarse el servicio de portmap:

    /sbin/service portmap restart

    Si tiene un DNS, de de alta las direcciones IP asociadas a un nombre o bien edite /etc/hosts y agregue las direcciones IP asociadas con un nombre. Esto nos servirá como listas de control de accesos. Ejemplo del fichero /etc/hosts:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea

    Compartir un volumen NFS.

    Procederemos a determinar que directorio se va a compartir. Puede crear también uno nuevo:

    mkdir -p /var/nfs/publico

    Una vez hecho esto, necesitaremos establecer que directorios en el sistema serán compartidos con el resto de las máquinas de la red, o bien a que máquinas, de acuerdo al DNS o /etc/hosts se permitirá el accesos. Esto deberemos agregarlos en /etc/exports determinado con que máquinas y en que modo lo haremos. Se puede especificar una dirección IP o bien nombre de alguna máquina, o bien un patrón común con comodín para definir que máquinas pueden acceder. De tal modo podemos utilizar el siguiente ejemplo (la separación de espacios se hace con un tabulador):

    /var/nfs/publico *.mi-red-local.org(ro,sync)

    En el ejemplo anterior se esta definiendo que se compartirá /var/nfs/publico/ a todas las máquinas cuyo nombre, de acuerdo al DNS o /etc/hosts, tiene como patrón común mi-red-local.org, en modo de lectura escritura. Se utilizó un asterisco (*) como comodín, seguido de un punto y el nombre del dominio. Esto permitirá que como_se_llame.mi-red-local.org, como_sea.mi-red-local.org, lo_que_sea.mi-red-local.org, etc., podrán acceder al volumen /var/nfs/publico/ en modo solo lectura. Si queremos que el accesos a este directorio sea en modo de lectura y escritura, cambiamos (ro) por (rw):

    /var/nfs/publico *.mi-red-local.org(rw,sync)

    Ya que se definieron los volúmenes a compartir, solo resta iniciar o reiniciar el servicio nfs. Utilice cualquiera de las dos líneas dependiendo el caso:

    /sbin/service nfs start
    /sbin/service nfs restart

    A fin de asegurarnos de que el servicio de nfs esté habilitado la siguiente vez que se encienda el equipo, debemos ejecutar lo siguiente:

    /sbin/chkconfig --level 345 nfs on

    El comando anterior hace que se habilite nfs en los niveles de corrida 3, 4 y 5.

    Como medida de seguridad adicional, si tiene un contrafuegos o firewall implementado, cierre, para todo aquello que no sea parte de su red local, los puertos tcp y udp 2049, ya que estos son utilizados por NFS para escuchar peticiones.

    Configurando las máquinas clientes.

    Para probar la configuración, es necesario que las máquinas clientes se encuentren definidas en el DNS o en el fichero /etc/hosts del servidor. Si no hay un DNS configurado en la red, deberán definirse los nombres y direcciones IP correspondientes en el fichero /etc/hosts de todas las máquinas que integran la red local.

    Como root, en el equipo cliente, ejecute el siguiente comando para consultar los volúmenes exportados (-e) a través de NFS por un servidor en particular:

    showmount -e 192.168.1.254

    Lo anterior mostrará una lista con los nombres y rutas exactas a utilizar. Ejemplo:

    Export list for 192.168.1.254:
    /var/nfs/publico 192.168.1.0/24

    A continuación creamos, como root, desde cualquier otra máquina de la red local un punto de montaje:

    mkdir /mnt/servidornfs

    Y para proceder a montar el volumen remoto, utilizaremos la siguiente línea de comando :

    mount servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs

    Si por alguna razón en el DNS de la red local, o el fichero /etc/hosts de la máquina cliente, decidió no asociar el nombre de la máquina que fingirá como servidor NFS a su correspondiente dirección IP, puede especificar ésta en lugar del nombre. Ejemplo:

    mount -t nfs 192.168.1.254:/var/nfs/publico /mnt/servidornfs

    Podremos acceder entonces a dicho volumen remoto con solo cambiar al directorio local definido como punto de montaje, del mismo modo que se haría con un disquete o una unidad de CDROM:

    cd /mnt/servidornfs

    Si queremos poder montar este volumen NFS con una simple línea de comando o bien haciendo doble clique en un icono sobre el escritorio, será necesario agregar la correspondiente línea en /etc/fstab. Ejemplo:

    servidor.mi-red-local.org:/var/nfs/publico /mnt/servidornfs nfs user,exec,dev,nosuid,rw,noauto 0 0

    La línea anterior especifica que el directorio /var/nfs/publico/ de la máquina servidor.mi-red-local.org será montado en en directorio local /mnt/servidor/nfs, permitiéndole a los usuarios el poder montarlo, en modo de lectura y escritura y que este volumen no será montado durante el arranque del sistema. Esto último es de importancia, siendo que si el servidor no está encendido al momento de arrancar la máquina cliente, este se colgará durante algunos minutos.

    Una vez agregada la línea en /etc/fstab de la máquina cliente, si utiliza GNOME Midnight Commander, el administrador de archivos de GNOME-1.1 y 1.2, solo restará iniciar una sesión gráfica, hacer clique derecho sobre el escritorio y seleccionar Actualizar dispositivos o Rescan devices. Esto colocará un icono adicional sobre el escritorio que deberá ser tratado del mismo modo que se haría con un disquete o unidad de CDROM.

    Icono para volumen NFS

    Si utiliza GNOME-1.4 o superior, éste incorpora Nautilus como administrador de archivos, mismo que auto-detecta cualquier cambio en /etc/fstab. Solo debe hacerse clique derecho sobre el escritorio y debe seleccionarse el disco que se desee montar.

    Accesos a discos en Nautilus

    Instalación de GNU/Linux a través de un servidor NFS.

    Este es quizás el uso más común para un volumen NFS. Permite compartir un volumen que contenga una copia del CD de instalación de alguna distribución y realizar inclusive instalaciones simultáneas en varios equipos. Tiene como ventaja el que la instalación puede resultar más rápida que si se hiciese con un CDROM, siendo que la tasa de trasferencia de archivos será determinada por el ancho de banda de la red local, y nos permitirá instalar GNU/Linux en máquinas que no tengas unidad de CDROM.

    Una vez creado y configurado un volumen a compartir copiaremos todo el contenido del CD de instalación en éste:

    cp -r /mnt/cdrom/* /var/nfs/publico/

    En el directorio images del CD encontraremos varias imágenes para crear disquetes de arranque. Utilizaremos bootnet.img para crear el número de disquetes necesarios para cada máquina en la que realizaremos una instalación, y que nos permitirán acceder a la red. Inserte un disquete y ejecute lo siguiente:

    cd /var/nfs/publico/images/
    dd if=bootnet.img of=/dev/fd0 bs=1440k

    Añada en /etc/hosts, o bien de de alta en el DNS, las direcciones IP, que serán utilizadas por las nuevas máquinas, asociadas a un nombre con el dominio que específico como regla de control de acceso en /etc/exports -es decir *.mi-red-local.org-. Para /etc/hosts, puede quedar algo así:

    127.0.0.1 localhost.localdomain localhost
    192.168.1.254 servidor.mi-red-local.org servidor
    192.168.1.2 algun_nombre.mi-red-local.org algun_nombre
    192.168.1.3 otro_nombre.mi-red-local.org otro_nombre
    192.168.1.4 otro_nombre_mas.mi-red-local.org otro_nombre_mas
    192.168.1.5 como_se_llame.mi-red-local.org como_se_llame
    192.168.1.6 como_sea.mi-red-local.org como_sea
    192.168.1.7 lo_que_sea.mi-red-local.org lo_que_sea
    192.168.1.8 nueva_maquina.mi-red-local.org nueva_maquina
    192.168.1.9 otra_nueva_maquina.mi-red-local.org otra_nueva_maquina

    Utilice estos disquetes para arrancar en los equipos, ingrese una dirección IP y demás parámetros para esta máquina y cuando se le pregunte ingrese la dirección IP del servidor NFS y el directorio en éste donde se encuentra la copia del CD de instalación. El resto continuará como cualquier otra instalación.

    Autor: Joel Barrios Dueñas
    Correo electrónico: joelbarrios arroba linuxparatodos punto net
    Sitio de Red: http://www.linuxparatodos.net/

    Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

    (c) 1999-2005 Linux Para Todos. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales. c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

    Technorati Tags:
    >>

  • Antivirus y AntiSpam con Postfix

    Bueno, realmente no solo con postfix si no apoyándonos en una gran herramienta, amavisd-new. Inspirado (y basado) en el artículo de Ricardo Galli en BULMA sobre montar Exim4 con antivirus (clamav) y spamassassin integrado. Me dispuse a investigar cómo sería el tema en postfix y aunque al principio dio un poco de guerra, ahí va la solución:

    Se supone que tenemos instalados los paquetes postfix, postfix-tls, amavisd-new, spamassassin y los paquetes de clamav (clamav-daemon clamav libclamav1 y clamav-freshclam). Lo bueno de amavisd-new es que tiene interfaces a clamav y a spamassassin, con lo que 'mataremos dos pájaros de un tiro' es decir, haremos los dos filtrados en un solo paso. Configurar amavisd-new es muy sencillo, editamos /etc/amavis/amavisd.conf y como opciones tenemos que remarcar las siguientes:

  • Antivirus Clamav y Spamassassin integrados en Exim4

    Estuve pensando varias semanas cómo integrar un antivirus en mis servidores de correo. Como expliqué anterioremente, uso Exim4 y Spamassassin, así que buscaba la solución que pudiera complementarse. Obviamemte la solución anti-virus desde el primer momento era el Clam AV, pero no tenía nada claro cómo integrarlo con el el Exim y el Spamassassin.
    Empecé a buscar la documentación y las opciones posibles. Hay mucha variedad, podéis comprobarlo con Google, pero no encontraba una que me convenza del todo. Finalmente me quedé con integrar el clamav y el spamassassin usando esa especies de "integradores" como son el MailScanner y el Amavis. Antes me aseguré que el clamav y spamassassin funcionase con ambos.

  • Cómo administrar Linux Administracion

    ¿Puedo trabajar normalmente como root?


    Un consejo, solo utilizar la cuenta de root (administrador) para tareas de administracion. Para trabajar normalmente con el sistema NO hacerlo como root, ya que se tiene acceso completo a todo el sistema y es facil de estropear cosas si no se sabe lo que se hace. Aqui teneis un ejemplo que le ocurrio al autor de esta seccion trabajando como root:
26
Ago

Cómo montar una red wireless con Linux

Escrito por J. Llorente

PDFImprimir E-mail

Redes Wireless con Linux

Las redes Wireless 802.11b, de 11 Mbps están convirtiéndose en una opción muy válida y popular en los últimos meses. Además que los precios han bajado notablemente, dan una enorme comodidad si tenemos varios ordenadores en casa y el soporte que hay en Linux es muy potente y variado.

En éste artículo explico las diferentes opciones y como instalarlo y configurarlo en Linux. Aunque sin duda la estrella es, al menos para mí, como montar un access point wireless en Linux con una tarjeta PCMCIA normal y corriente, y barata (en página 4).

 

Derechos de copia: este artículo puede copiarse en cualquier sitio web o publicación relacionada con Linux y/o software libre o redes wireless, sólo hay que citar al autor (yo, Ricardo Galli :-), BULMA y el URL de este articulo: http://bulmalug.net/body.phtml?nIdNoticia=1309. Tenéis también disponible una version HTML "limpia".


Introducción

Como veremos en este artículo, con Linux se pueden hacer muchas virguerías que son imposibles en sistemas operativos propietarios, como por ejemplo construir un Access Point basado en Linux a partir de una tarjeta Conceptronic (Chipset PRISM2) bastante barata y que no está, en principio, preparada para hacer de Master (o access point) de una red.

Las forma de trabajo de las tarjetas wireless tienen básicamente tres formas: ad-hoc y managed y master.

  • Ad-hoc: estas redes se construyen normalmente con ordenadores con las tarjetas "normales" y se configuran de modo que todos los ordenadores de la red trabajan "par a par", todos reciben los paquetes de todos y envían sus propios paquetes a todos los ordenadores de la red. Para esto no se necesita nada especial, sólo definir una red con un nombre (ESSID), preferiblemente encriptar a 128 bits (con WEP) y no tener demasiados ordenadores en la misma red.

  • Managed: en este caso exite un servidor independiente, Access Point (o Base Station en terminología comercial de Apple) al cual se conectan todos los ordenadores. El access point entonces envía las tramas 802.11 a los destinatarios finales. Normalmente los access points soportan roaming, es decir los clientes pueden estar en movimiento a ir cambiando de punto de acceso de acuerdo a la potencia de la señal. La diferencia fundamental entre una tarjeta que soporte ser access point (o modo master) es que hay que hacer bridging de paquetes IP y además manipulan los bits de 802.11 a bajo nivel, normalmente en la propia tarjeta. También los access points suelen ofrecer servicios de enrutado IP, servidor DHCP y bridging sobre una Ethernet. Cuando un ordenador o tarjeta está conectado a la red a través de un punto de acceso se dice que está en modo managed.

  • Master: es el modo en que trabaja el access point descrito en el punto anterior. Como veremos al final, es posible también fabricar un access point con Linux.

Módulos del kernel

La mayoría de las tarjetas que se venden actualmente son del tipo Orinoco (Lucent), Symbol HR y Prism 2. Todas ellas están soportadas por el driver orinoco_cs incluido en el kernel 2.4.x, pero sólo para trabajar en modo managed o ad-hoc, no soportan el modo master.

Además tienen un pequeño problema, los drivers no están del todo actualizados con la última versión y cuando la tarjeta comparte interrupciones con otros dispositivos genera un montón de líneas de logs por "eventos vacíos". Este problema ya está solucionado en las últimas versiones que se pueden bajar de http://ozlabs.org/people/dgibson/dldwd/ y compilarlos. Es bastante sencillo y el README lo explica claramente.

Pero como veremos más adelante, existen otras opciones, los nuevos linux-wlan-ng o el fantástico driver para Prism2 (i.e. los usados por Conceptronic) que nos permitirán hacer que nuestro Linux se convierta en un access point de muy bajo coste si tenemos una tarjeta Prism2 de Intersil.

Configuración de la tarjetas: iwconfig

Una vez cargados los módulos del kernel que sean necesarios, la configuración de las tarjetas se hace de forma similar a las ethernet con el comando ifconfig pero esta vez ayudado con un nuevo comando, el iwconfig, que permite cambiar los parámetros específicos de las redes inalámbricas. Por ejemplo:

  • Identificador de red (essid)
  • Frecuencia o canal (freq/channel)
  • Modo (mode: master|managed|ad-hoc)
  • Velocidad (rate)
  • Clave de encriptación (key/enc)
  • Potencia de transmisión (txpower)
  • etc.

En pocas palabras, con iwconfig configuramos los parámetros especiales de wireless y con el ifconfig configuramos los parámetros normales de la red IP.

NOTA sobre encriptación

Si especificamos una clave (key) en el iwconfig, las transmisiones estarán encriptadas con el protocolo WEP. En Linux has dos formas de especificarlas:

  1. Con passphrase: iwconfig interface key "s:mi_clave". La clave debe ser de 5 caracteres para encriptación de 40 bits y de 13 para 128 bits (en realidad de clave de 104 bits).
  2. Con clave en hexadecimal: iwcondif interface "mi_clave_en_hexa". En este caso se introduce la clave directamente con 5 o 13 caracteres especificados en hexadecimal.

Para mayor seguridad se recomienda que los caracteres que forman la clave sean aleatorios.

Usuarios de Mac OS X

Para introducir la clave en el gestor del Airport del Mac OS X, hay que hacerlo con los caracteres en hexadecimal poniendo un $ al principio.

 

Configuración de un cliente Linux (Managed o infraestructure)

Vayamos primero a lo más simple: ya tienes un access point y quieres hacer funcionar tu tarjeta PCMCIA en tu Linux, en este caso se llama modo "infraestructura".

Quizás hayas comprado la tarjeta con un adaptador PCI, en ambos casos tienes que habilitar el soporte Cardbus en el kernel. Para ello tienes que ir a "General Setup:PCMCIA CardBus Support" y seleccionar "Cardbus Support".

Ahora tienes que seleccionar los drivers orinoco_cs, para ello vas a "Networking Device Support:Wireless LAN (non-hamradio)" y seleccionar las opciones y subopciones del "Hermes Chipset 802.11 support (Orinoco/Prism/Symbol)".



AbiWord Image kernel-orinoco.png



Ahora deberías compilar el kernel y asegurarte que tienes instalado los paquetes para soporte PCMCIA, deberías tener un directorio /etc/pcmcia/ con varios ficheros alli dentro. Si tienes eso y el kernel compilado e instalado, sólo hace falta configurar la red. Yo trabajo normalmente en Debian, pero también explicaré las diferencias en la configuración para RedHat.

Debian (PCMCIA)

La configuración de la red en Debian puede hacerse dirctamente en los ficheros .opts de /etc/pcmcia.

Primero hay que hacer que reconozca automáticamente la tarjeta Conceptronic, para ello hay que editar el fichero /etc/pcmcia/config.opts y agregar lo siguiente para que reconozca la tarjeta y cargue el módulo orinoco:

card "Conceptronic Wireless"







version "802.11", "11Mbps Wireless LAN Card"







bind "orinoco_cs"

Ahora hay que editar el fichero /etc/pcmcia/wireless.opts y poner las siguientes líneas:

*,*,*,*)







INFO="Nombre..."







ESSID="Nombre_de_red"







MODE="Managed"







RATE="auto"







# La clave se pone si es encriptada







KEY="s:mi_clave"







;;

Ahora en el /etc/pcmcia/networks.opts hay que poner los datos de la red IP:

case "$ADDRESS" in







*,*,*,*)







INFO="Nombre...."







# Transceiver selection, for some cards -- see 'man ifport'







IF_PORT=""







# Use BOOTP (via /sbin/bootpc, or /sbin/pump)? [y/n]







BOOTP="n"







# Use DHCP (via /sbin/dhcpcd, /sbin/dhclient, or /sbin/pump)? [y/n]







# Solo si tenemos DHCP







DHCP="y"







...







# Host's IP address, netmask, network address, broadcast address







# Solo si no tenemos DHCP







#IPADDR="192.168.0.130"







#NETMASK="255.255.255.128"







#NETWORK="192.168.0.128"







#BROADCAST="192.168.0.255"







# Gateway address for static routing







#GATEWAY="192.168.0.1"







# Things to add to /etc/resolv.conf for this interface







...

Debian (PCI y Airport)

En caso que la tarjeta no sea una PCMCIA, es decir tengamos un Apple con tarjeta Airport o una con adaptador PCI, la configuración en Debian se hace directamente en el /etc/network/interfaces. Por ejemplo:

auto eth1







# ejemplo con dhcp







iface eth1 inet dhcp







#address 192.168.0.140







#netmask 255.255.255.0







#network 192.168.0.0







#gateway 192.168.0.1







wireless_essid Nombre_de_red







wireless_mode Managed







wireless_key s:mi_clave







wireless_rate auto







wireless_nick sofi



Red Hat

Red Hat usa una filosofía diferente (al menos en la versión 7.2), en vez de configurar la red dentro de los ficheros en /etc/pcmcia, lo hace en los mismos ficheros donde se configuran las interfaces de red, en /etc/syconfig/network-scripts/ifcfg-ethX. Por lo tanto los parámetros de red hay que configurarlos en dichos ficheros, por ejemplo:

DEVICE=eth1







MODE=managed







ESSID="Nombre_de_red"







RATE=auto







TXPOWER=auto







KEY="s:mi_clave" # Solo si va encriptado







BOOTPROTO=static







IPADDR=192.168.0.3







BROADCAST=192.168.0.255







NETMASK=255.255.255.0







NETWORK=192.168.0.0







ONBOOT=yes
 

Configuración de Redes ad-hoc

La configuración de un red ad-hoc permite montar una red entre pocos ordenadores sin necesidad de contar con un access point. El modo de funcionamiento es peer-to-peer, todos los ordenadores reciben los paquetes enviados por algunos de ellos. Por eso una red de tipo ad-hoc funciona bien cuando hay pocos ordenadores.

La única diferencia en cuanto a configuración es que hay que poner modo ad-hoc en vez de managed. Por ejemplo:

iface eth1 inet dhcp







#address 192.168.0.140







#netmask 255.255.255.0







#network 192.168.0.0







#gateway 192.168.0.1







wireless_essid Nombre_de_red







wireless_mode ad-hoc







wireless_key s:mi_clave







wireless_rate auto







wireless_nick sofi

Conectividad entre la wireless y la ethernet

¿Quieres que haya interconectividad entre los ordenadores con wireless y los conectados a la ethernet? Ah!!!!! Ésta es una de las importantes tareas realizadas por los access-points.

Si piensas hacer algo de lo que se explica a continuación, es necesario conocer los fundamentos de funcionamiento de redes IP y Ethernet (para eso están los cursos de redes en la Universidad, FP o academias de informática :-). Si no tienes idea no intentes entender lo que viene a continuación, llama a un amigo que sí sepa de redes y/o ponte a estudiar de cursos o tutoriales disponibles en Internet.

En caso que montes una red ad-hoc, necesitas que uno de los ordenadores con una interfaz inalámbrica y otra Ethernet se encargue de ese trabajo de enrutado. Por suerte, el protocolo IP está basado totalmente en software y el Linux es capaz de hacer dichas tareas de enrutado IP. En este caso te recomiendo que aprendas enrutamiento IP y configures dos redes IP distintas, una será la ethernet y la otra la wireless. Uno de los Linux deberá hacer el enrutado IP.

Pero además hay otras opciones que trabajan a niveles más bajos y que permiten tener una sola red IP a partir de dos redes físicas distintas

  • Proxy arp: Para que dos ordenadores en una LAN Ethernet con TCP/IP puedan comunicarse necesitan conocer la dirección MAC (ethernet) del otro ordenador. De estar tarea se encarga el protocolo ARP, que mediante paquetes broadcast averiguan y crean un tabla que relaciona direcciones IP con direcciones MAC (probar el comando arp -a ). El Linux soporta proxy arp por defecto, sólo hay que configurarlo mediante las variables disponibles en /proc.

  • Bridging: El bridging es una opción más avanzada que el proxy arp, y se necesita opciones especiales del kernel además del paquete bridge-utils. Si deseas esta opción, mira como se configura el bridge en la sección que viene a continuación (Configuración de Linux como un Access Point).

 

Configuración de Linux como un Access Point

NOTA: Montar un access point, con todos sus requerimientos, no es algo trivial (para los Windozeros: no penséis que en Windows sería más fácil, ahora mismo es imposible hacer en Windows lo que explico aquí, no os queda más opción que comprar un Access Point), sino que hay que saber de redes y configurar y compilar el kernel como así también sentirse cómodos usando las utilidades y configurando PCMCIA. Si no es así, quizás no entiendas lo que se explica a continuación, es mejor que empiezes con algo más sencillo, como lo explicado en los pasos anteriores, o que te ayude "en vivo" algún amigo que ya lo haya hecho.

Mi filosofía es que cuando no se conoce algo y hay que aprender, hay que hacerlo paso a paso, desde lo más fácil a lo más complejo. Aunque en mis primeras pruebas con wireless en Linux pasaron por todas las etapas explicadas anteriormente, mi objetivo desde el principio era poder tener un access point corriendo en Linux.

Debo decir que he tenido mucha suerte, ya que las tarjetas que compé, la Conceptronic PCI C11iDT:

AbiWord Image c11idt.png

y la Conceptronic PCMCIA Airbridge 11CC:

AbiWord Image conn11c.png



ambas (como creo que todas las Conceptronic, por cierto, el web que tienen es realmente lamentable para el tipo de empresa que son), usan el chipset Prism2.5 de Intersil. Digo que he tenido mucha suerte porque he encontrado que un grupo de pirados liderados por Jouni Malinen están desarrollando un excelente módulo de Linux para las Prism2 (Host AP) que permite trabajar en modo Master, aunque el fabricante diga que no se puede :-).

[gallir@ponti gallir]$ /sbin/iwconfig wlan0







wlan0 IEEE 802.11-DS ESSID:"Antoli" Nickname:"ponti"







Mode:Master Frequency:2.422GHz Access Point: 00:50:C2:01:96:14







Bit Rate:2Mb/s Tx-Power=20 dBm Sensitivity=1/3







Retry min limit:8 RTS thr:off Fragment thr:off







Power Management:off







Link Quality:0 Signal level:0 Noise level:0







Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0







Tx excessive retries:3167 Invalid misc:2038 Missed beacon:0







Así que al final he logrado lo que quería, la tarjeta PCI que había instalado en mi Linux de mesa funcionó en modo Master y pude interconectar ordenadores con Linux en PC e iBook, Mac OS X y del innombrable, con encriptación WEP de 128 bits.

Como la tarjeta PCI es sólo una PCMCIA con un adaptador, la saqué del adaptador y terminé instalándola en un portátil muy antiguo (P133, 32 MB RAM) para que me hiciese de servidor de acceso para toda la red de casa, con bridging, servidor DHCP y control de direcciones MAC:

[gallir@ponti gallir]$ ps ax







PID TTY STAT TIME COMMAND







1 ? S 0:03 init [3]







2 ? SW 0:00 [keventd]







3 ? SW 0:00 [kapmd]







4 ? RWN 0:00 [ksoftirqd_CPU0]







5 ? SW 0:06 [kswapd]







6 ? SW 0:00 [bdflush]







7 ? SW 0:00 [kupdated]







8 ? SW 0:01 [kjournald]







228 ? S 0:02 /sbin/cardmgr







694 ? S 0:05 syslogd -m 0







699 ? S 0:03 klogd -2







831 ? S 0:00 /usr/sbin/apmd -p 10 -w 5 -W -P...







851 ? SL 0:00 ntpd -U ntp







933 ? S 0:33 /usr/sbin/sshd







984 ? S 0:00 gpm -t ps/2 -m /dev/mouse







1002 ? S 0:00 crond







1038 ? S 0:00 /usr/sbin/atd







1045 tty1 S 0:00 login -- root







1046 tty2 S 0:00 login -- root







1047 tty3 S 0:00 /sbin/mingetty tty3







5636 ? S 0:04 /usr/sbin/dhcpd







5835 tty1 S 0:00 -bash







6734 tty2 S 0:00 -bash







7691 ? S 0:03 /usr/sbin/sshd







7692 pts/0 S 0:00 -bash







7905 pts/0 R 0:00 ps ax







[gallir@ponti gallir]$ /sbin/lsmod







Module Size Used by







hostap_cs 82496 1







3c574_cs 8400 1







ds 6384 2 [hostap_cs 3c574_cs]







yenta_socket 8368 2







pcmcia_core 38016 0 [hostap_cs 3c574_cs ds yenta_socket]

AbiWord Image base-linux.png



También he probado el mismo portátil con la otras tarjetas Conceptronic que compré (la PCMCIA de la segunda foto) y funciona perfectamente, aunque su alcance es levemente inferior debido a la antena pequeña incluida, pero aún así la redfunciona a 11 mbps en todo el piso a pesar de que el portátil está en una mala ubicación.

Instalación del módulo Host AP

En la página web del Host AP y en el README del software (un tgz) está bien explicado como instalar el módulo hostap en sus distintas variantes, especialmente PCMCIA y PCI. Básicamente hace falta los fuentes del kernel que se está usando (se pone el path en el Makefile), luego sólo hay que compilarlo y hacer un make install para que instale los módulos en el directorio correspondiente (/lib/modules/2.4.18/pcmcia/ en mi caso) y el fichero de configuración de la PCMCIA (hostap_cs.conf) en el directorio /etc/pcmcia .

Una vez instalado, si usamos la opción PCMCIA (seguramente sí, aunque tengamos el adaptador PCI) debemos indicar a los módulos del PCMCIA que cuando detecte esa tarjeta cargue el módulo hostap_cs.

Para ello editamos el fichero /etc/pcmcia/config.opts y ponemos la siguientes líneas:

card "Conceptronic Wireless"







version "802.11", "11Mbps Wireless LAN Card"







bind "hostap_cs"



AbiWord Image image_1.png

wavemon sobre un Linux en el Apple iBook con Airport conectado el Access Point



AbiWord Image image_2.png

Este es el Windows de mi hija, en su habitación, también con una tarjeta Conceptronic conectado a la red wireless a traves del Linux AP



Con eso ya tenemos casi todo lo referente a drivers, ahora hay que configurar la red.

Bridging

Como comenté anteriormene, no basta con poner la tarjeta en modo Master para tener un access point, sino que hay además interconectar la red Ethernet y la inalámbrica. Yo opté por hacer bridging entre ambas redes, así trato toda la red de mi casa como si fuese una sola, sin preocuparme en dar direcciones IP de distintas redes si estoy conectado por Ethernet o Wireless.

Para hacer bridging en Linux hay que habilitar dicha opción en el kernel:



AbiWord Image bridging.png



Luego hay que instalar el paquete bridge-utils que está disponible en Debian (en Red Hat hay que buscarlo en rpmfind.net, cuando yo lo hice sólo estaba disponible en la versión RawHide pero me funcionó perfectamente sobre una RedHat 7.2).

El programa principal de dicho paquete, brctl, permite crear y configurar interfaces virtuales que incluyen las interfaces sobre las que se aplicará el bridging.

AbiWord Image brctl.png



En la imágen de arriba se puede observar primero la configuración del bridge definido (br0), que incluye a las interfaces eth0 y wlan0 (en el módulo hostap las interfaces wireless se denominan wlanX). Veréis que he deshabilitado el spanning tree protocol ya que en mi red estoy seguro que no hay bucles (es muy simple), pero si tú no lo estás, déjalo habilitado.

A continuación se puede observar (con el argumento showmacs) los ordenadores conectados a cada red, la 1 es la ethernet y la 2 es la wlan0. Las marcadas como local son las interfaces del servidor, las demás son las remotas.

ATENCIÓN: las interfaces que forman parte de un bridge no deben tener ninguna dirección asignada, en los ficheros de configuración de la tarjeta hay que ponerle una IP 0.0.0.0 en vez de una IP real, ya que deben trabajar en modo promiscuo.

Definición del br0 en Debian

En Debian es muy fácil configurarlo, ya que el /etc/network/interfaces es muy flexible y potente, en mi caso sólo tuve que poner

auto br0







iface br0 inet static







address 192.168.0.10







netmask 255.255.255.0







network 192.168.0.0







gateway 192.168.0.1







bridge_ports eth0 wlan0







bridge_stp off







bridge_maxwait 5

Os recomiendo leer además lo de RedHat para entender mejor el procedimiento completo.

Definición del br0 en Red Hat

En Red Hat es un poco más complicado por dos razones, no hay un ficheros interfaces como en Debian y además las tarjetas de red PCMCIA se configuran siempre desde el /etc/sysconfig/network-scripts/ifcfg-xxx. Pero yo le hice un truco bastante sucio, tengo un ifcfg-eth0, ifcfg-wlan0 y ifcfg-zbr0 (el z lo pongo para que se llame después de llamar a los de las interfaces). El contenido de cada fichero es:



/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0







IPADDR=0.0.0.0







BOOTPROTO=static







ONBOOT=yes



/etc/sysconfig/network-scripts/ifcfg-wlan0

DEVICE=wlan0







MODE=Master







ESSID=Antoli







RATE=auto







TXPOWER=auto







KEY="s:mi_clave"







BOOTPROTO=static







ONBOOT=yes







/usr/bin/prism2_param wlan0 host_decrypt 1



NOTA: Con la ejecución de "/usr/bin/prism2_param wlan0 host_decrypt 1" estoy obligando a hacer el desencriptado WEP de las tramas en el propio driver, por software, en vez de hacerlo en la tarjeta. La conveniencia o no de usarlo depende de la tarjeta que uséis y la versión del driver. O sea, probadlo, quizás vuestra tarjeta no funcione con encriptación de 128/104 bits sin esa opción. El comando prism2_param es un script incluido en el paquete hostap y sirve para simplificar las llamadas al iwpriv para cambiar parámetros de la tarjeta.



/etc/sysconfig/network-scripts/ifcfg-zbr0

/usr/sbin/brctl delif br0 eth0







/usr/sbin/brctl delif br0 wlan0







/usr/sbin/brctl delbr br0







/usr/sbin/brctl addbr br0







/usr/sbin/brctl addif br0 eth0







/usr/sbin/brctl addif br0 wlan0







/usr/sbin/brctl stp br0 off







DEVICE=br0







BOOTPROTO=static







BROADCAST=192.168.0.255







IPADDR=192.168.0.3







NETMASK=255.255.255.0







NETWORK=192.168.0.0







ONBOOT=yes







Creo que os comenté al menos lo más importante, si me he dejado algo en el tintero, disculpas, son muchas cosas en un sólo artículo... pero quería que tengáis al menos una guía para demostrar la potencia de Linux en el área de wireless.







Ricardo Galli

Technorati Tags:
>>

Agregue su comentario

Tu Nombre:
Asunto:
Comentario:

Últimos contenidos

Facebook conecta

Total visitas

3641366
38.107.179.230
UNITED STATES
US

Quien está en linea

Tenemos 65 invitados conectado(s)

Conectan

Locations of visitors to this page

Nos visitan desde

Últimos comentarios

Vitales Servidor