Programación Shell

Recientemente nos han recomendado un libro de programación Shell. Se trata de Programación Shell. Aprende a programar con más de 200 ejercicios resueltos, de Julio Gómez y Gonzalo Puga.

Estamos ante un libro muy interesante para todos aquellos que nos movemos en el entorno Linux y que nos gusta programar (en este caso en Bash), ya que abarca un amplio rango de conocimiento, comenzando desde cero y todo basándose en ejercicios de indudable aplicación práctica, que lo convierten en manual de referencia, dotándonos a la vez una librería de aplicaciones listas para su uso, gracias a la web que apoya al mismo.

Y no hablamos únicamente de aplicaciones básicas, ya que los capítulos dedicados a la programación de tareas y la Administración del sistema ofrece soluciones interesantes para los que trabajamos en entornos un poco más avanzados. 

Desde nuestra modesta opinión, estamos ante un libro altamente recomendable, sobre todo conociendo el poco material de calidad que se puede encontrar (si lo hubiésemos tenido en nuestra época de estudiantes todo habría sido un poco más fácil).


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Linksys WRT54GL con DD-WRT (v24) como repetidor

Nuestro objetivo es utilizar un Linksys WRT54GL con firmware DD-WRT (v24) como repetidor de señal, de modo que podamos ampliar la zona de cobertura de nuestra señal wireless con un SSID propio.

A continuación puede ver un esquema aproximado de la topología a montar:


Para poder llevar a cabo nuestro cometido debemos cumplir una serie de requisitos:
  • Tener el router original configurado como punto de acceso AP (Access Point) y con DHCP Server activado.
  • Conocer el modo wireless (B, G, N) del router original.
  • Conocer la clave WEP o WPA del router original.
  • El router secundario corriendo DD-WRT v24 e configurará como Repetidor Puente o Repeater Bridge.

Paso 1: restaurar valores.

Para evitar problemas, lo primero que haremos será restaurar los valores de fábrica en el router secundario y posteriormente hacerle un hard reset para asegurarnos de que partimos desde un punto inicial controlado.

Paso 2: Configuración básica inalámbrica y virtual interfaces.

Accedemos a nuestro router secundario para llevar a cabo la configuración inalámbrica básica y crear las interfaces virtuales necesarias. Para ello, accedemos a Wireless -> Basic Settings/Inalámbrico -> Config Básica

  • En la sección Wireless Physical Interface:
    • Wireless Mode/Modo Inalámbrico : Repeater Bridge.
    • Wireless Network Mode/Modo de Red Wi-Fi : debe ser igual al router primario.
    • Wireless Network Name (SSID)/Nombre de Red Wi-Fi (SSID) : debe ser igual al router primario - Asegúrese de que lo escribe de manera correcta.
    • Wireless Channel/Canal Inalámbrico : debe ser igual al router primario (Esto desaparecerá una vez que lo pone en modo de Repeater Bridge, y no se necesita).
    • Wireless SSID Broadcast/Broadcast SSID Inalámbrico : Enable
    • Network Configuration : Bridged
    • Save/Grabar Config


  • En la sección Virtual Interfaces:
    • Add/Añadir
    • Wireless Network Name (SSID)/Nombre de Red Wi-Fi (SSID) : Diferente a la del router primario.
      • [NOTA] - Puede probar utilizar el mismo SSID, pero muchos han tenido desconexión al azar y/o no conexión si los SSID son los mismos. Si se utiliza el mismo SSID y no funciona, utilice un SSID distinto al del router primario.
    • Wireless SSID Broadcast/Broadcast SSID Inalámbrico : Enable.
    • AP Isolation/Aislamiento AP : Disable/Desactivado.
    • Network Configuration : Bridged
    • Save/Grabar Config.


Paso 3: Seguridad Inalámbrica.

Este es un apartado fundamental sino queremos ser unos buenos samaritanos que facilitemos conexión a todo aquel que pase cerca de nuestras redes. Por ello debemos olvidar el modo WEP.

Para poder configurar este apartado accedemos a Wireless -> Wireless Security/Inalámbrico -> Seguridad Inalámbrica
  • En la sección Physical Interface:
    • Security Mode : debe ser igual al router primario.
    • WPA Algorithms/Algoritmos WPA: debe ser igual al router primario
    • WPA Shared Key/Clave Compartida WPA: debe ser igual al router primario.
    • Key Renewal Interval (in seconds) : deje el por defecto.
  • En la sección Virtual Interfaces (Nota: Si no ve esta sección debe actualizar el firmware a v24-SP1 o posterior)
    • Security Mode : debe ser igual a Physical Interface.
    • WPA Algorithms/Algoritmos WPA : debe ser igual a Physical Interface.
    • WPA Shared Key/Clave Compartida WPA : debe ser igual a Physical Interface.
    • Key Renewal Interval (in seconds) : deje el por defecto.
  • Save/Grabar Config.


Paso 4: Configuración básica.

En este apartado vamos a indicar la dirección IP e identificador del router secundario. Para ello accedemos a Setup -> Basic Setup
  • WAN Connection Type/Tipo de Conexión : Disabled/Desactivar.
  • STP: Disabled/Desactivar (Enable algunas veces puede causar problemas de conexión) .
  • Local IP Address/IP Local (LAN) : 192.168.149 (asumiendo que la IP del router primario es 192.168.1.1)
  • Subnet Mask/Máscara Subred : 255.255.255.0
  • Gateway/Puerta de Enlace: 192.168.1.1 (asumiendo también que la IP del router primario es 192.168.1.1).
  • DHCP Server/Servidor DHCP: Disable/Desactivar
  • Local DNS: 192.168.1.1 (si la IP del router primario es 192.168.1.1)
  • Assign WAN Port to Switch/Assigar Puerto WAN Port a cambiar : Opcionalmente marque esto para usar el puerto WAN como otro puerto LAN.
  • Save/Grabar Config.


Paso 5: Ruteo avanzado.

Para un correcto funcionamiento debemos indicar que nuestro router secundario trabaja en modo router. Para ello accedemos a Setup -> Advanced Routing/Setup -> Ruteo Avanzado
  • Change operating mode to/Modo de Operación : Router
  • Save/Grabar Config.


Paso 6: Deshabilitar dnsmasq.

Para ello abrimos la pestaña Services -> Services
  • DNSMasq : Disable/Desactivar
  • Save/Grabar Config.


Paso 7: Configuración del firewall.

Abrimos la pestaña Security -> Firewall
  • Desmarcamos todas las casillas excepto Filter Multicast/Filtrado Multicast
  • Apply Settings/Aplicar


Paso 8: Reiniciar el router y probar.

Una vez hecho todo lo anterior reiniciamos el router, tras lo cual deberíamos ser capaces de conectar nuestros equipos por cable e inalámbricos a la nueva configuración router secundaria. Ellos recibirán las direcciones IP del router primario y podrán utilizar la conexión a Internet proporcionada por el router primario. Esto lo podemos comprobar accediento al estado de la red inalámbrica, para ver los equipos conectados a la misma.



Asimismo, debe tener en cuenta el hecho de que todos los repetidores, incluyendo este modo Repetidor Puente, sacrificará la mitad del ancho de banda disponible en el router primario para los clientes conectados inalámbricamente al repetidor. Este es el resultado de la toma de repetición se vuelve a hablar no sólo a uno de los socios, sino a dos, y tener que retransmitir el tráfico entre ellos. Siempre y cuando su ancho de banda de Internet se encuentran dentro de esta cantidad de ancho de banda reducido a la mitad habrá poca o ninguna reducción de la "velocidad".

Pasos Adicionales.

Una vez comprobado que todo funciona de modo satisfactorio, es conveniente llevar a cabo una copia de seguridad de la configuración actual, para evitar problemas futuros. Para ello accedenos a Administration -> Backup y pulsamos en Backup.


En algunos foros se recomienda, que dado que nuestro router secundario dispone de 2 antenas, podemos utilizar una de ellas sólo para recibir y otra para enviar, de modo que se mejora la eficiencia. Asimismo, si la intensidad de la señal no es muy alta, podemos aumentar la potencia del receptor y emisor accediendo a wireless -> advanced wireless  settings -> xmit power (por defecto 71).


Fuentes: DD-WRT y k5's blog

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Puente Repetidor

En muchas ocasiones, necesitamos extender la cobertura de nuestra red inalámbrica para dar acceso a todas las máquinas de las que disponemos, por ejemplo, en un edificio de varias plantas o bien en edificios separados por poca distancia.

Hay varios modos de hacer esto, y los iremos viendo en entradas sucesivas. Pero antes, debemos conocer lo que hace un puente inalámbrico.

Un puente inalámbrico conecta dos segmentos de LAN con un enlace inalámbrico. Los dos segmentos están en la misma subred y parecen dos switches ethernet conectados por un cable a todos los equipos de la subred. Dado que los equipos están en la misma subred, las comunicaciones llegan a todas las máquinas. Los clientes DHCP en un segmento pueden obtener sus direcciones de un servidor DHCP en el otro segmento.

Un puente repetidor (Repeater Bridge) extiende su LAN primaria a través de su router secundario (router puente) y también permite a los clientes inalámbricos conectarse a su router secundario. Esto amplía el alcance de su red inalámbrica al mismo tiempo que permite a los clientes por cable conectarse al router secundario.

A continuación puede ver un pequeño esquema:


Fuente: dd-wrt

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Virtualización con Ubuntu 11.10 y KVM (V-W7 virtualizado)

Como último paso en nuestra serie de 5 entradas sobre virtualización mediante KVM queda la instalación y puesta en funcionamiento de una máquina virtual. Nosotros nos hemos decantado por un Windows 7 de 64 bits.

Accedemos a virt-manager y creamos una máquina virtual, indicando indicando el nombre de la misma y el origen de la misma:


En el siguiente paso debemos indicar la ubicación en nuestro sistema de la unidad de CD (elegida en paso anterior como origen del software) así como indicar el tipo de sistema operativo y versión que vamos a instalar.


A la hora de elegir las características de la máquina virtual (memoria, disco duro, procesador) debemos tener en cuenta los requisitos mínimos del mismo, así como las características del equipo anfitrión. Una vez conocidos, indicamos el tamaño de RAM y el número de procesadores.


Creamos una imagen de disco duro y asignamos el espacio del mismo en este momento.


Para acabar con los parámetros de configuración seleccionamos la configuración de la red, indicando como interfaz nuestro bridge, creado en pasos anteriores.



Tras esto pulsamos en finalizar y comenzamos la instalación como si de un equipo normal se tratase.



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Virtualización con Ubuntu 11.10 y KVM (IV-VirtManager)


A la hora de crear máquinas virtuales existen dos procedimientos diferenciados:

  • Hacerlos en modo texto a través de la consola.
  • Hacerlos en un entorno gráfico.


Nosotros nos vamos a decantar por el segundo método (evidentemente nuestro servidor debe tener un entorno X operativo) por la sencillez y rapidez, ya que el procedimiento se asimila a la creación de máquinas virtuales en entornos como VirtualBox o VMWare.

El primer paso es la instalación de virt-install, el cual permite la creación de máquinas virtuales para KVM (o XEN) de forma sencilla, ya sea a través de un asistente desde la línea de comandos o del paso de parámetros con las distintas opciones al comando. El comando utiliza la librería libvirt.

A través de esta herramienta, podemos realizar tanto instalaciones en modo texto como gráficas, y las imagenes del sistema operativo pueden ser cargadas desde FTP, HTTP, NFS o local. Para instalarlo debemos utilizar:

$ sudo apt-get install virtinst

Tras esto debemos instalar un componente de gestión gráfica, como virt-manager o virt-viewer. Nosotros recomendamos el uso de virt-manager, el cual es capaz de gestionar maquinas virtuales KVM QUEMU, XEN y varias más. Mediante su uso puede, entre otras cosas, crear y eliminar máquinas virtuales. 

Para instalarlo debe utilizar:


$ sudo apt-get install virt-manager

 Tras esto podremos acceder al gestor gráfico de máquinas virtuales.



Antes de comenzar a crear las máquinas virtuales vamos a llevar a cabo una serie de pasos previos.

Primero, necesitamos utilizar un directorio para almacenar las máquinas virtuales al cual se tenga acceso por parte de los gestores gráficos. En nuestro caso nos decantamos por /var/lib/libvirt/images/ que se crea de modo automático con la instalación de la biblioteca libvirt. Se puede elegir otro, pero se debe comprobar que se tengan los permisos necesarios sobre el mismo.

En la instalación del entorno de virtualización creamos un bridge para poder conectarnos a las máquinas virtuales desde nuestra red física. Para que libvirt pueda hacer uso de un modo sencillo de esta interfaz de red debemos crear un fichero /etc/libvirt/qemu/networks/RedLAN.xml con en contenido similar al siguiente:

<network type=’bridge’>
<name>RedLAN</name>
<mac address=’1c:c1:de:9c:d6:3a’/>
<uuid>12d4176d-8c56-347e-cc52-1cc1de9cd63a</uuid>
<bridge name=’br0′ stp=’on’ delay=’0′ />
</network>


Para que los cambios surtan efecto debemos reiniciar la máquina.

Otra de las cosas que no te va a dejar hacer el Gestor de máquinas virtuales, es cambiar la red a la que está conectada una determinada máquina virtual. Se puede hacer cambiando el fichero /etc/libvirt/qemu/NOMBREMAQUINA.xml, donde dice:

<interface type=’network’>
<source network=’default’/>


Cambiamos el default por RedLAN. Una vez hecho esto es necesario reiniciar el servicio de virtualización para que vuelva a leer los ficheros xml con la configuración de las distintas máquinas mediante:


$ sudo service libvirt-bin reload


Recuerde que cuando comiences a ejecutar máquinas, podrás ver cuantas máquinas está conectadas a cada interface con el comando brctl show.
En la configuración por defecto br0 será la red que hemos llamado RedLAN y virbr0 será la red por defecto (generalmente configurada con reenvío NAT contra la red anterior).


Fuente: Ubanov

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS