martes, 29 de julio de 2014

Bridge con Raspberry Pi



Llevaba tiempo dándole vueltas a configurar la Raspberry Pi en modo bridge para extender la red "casera" y poder usar un tercer punto de acceso sin necesidad de adquirir un nuevo switch.

El pasado mes de mayo @biokeko me regaló una tarjeta 10/100/1000 USB 3.0 y con esta, más el "Pi" y un poco de tiempo robado al fin de semana he conseguido configurar la Raspberry como "puente".

¿Qué es un "bridge"?

Un bridge ethernet es el análogo a un switch ethernet físico. Trabaja a nivel de capa 2 en el modelo OSI y podríamos definirlo como un switch por software que se utiliza para conectar múltiples interfaces ethernet (físicas o virtuales).

¿Cómo instalo el software necesario?

He usado y uso exclusivamente Raspbian. Desde consola y como root:

  • apt-get update
  • apt-get -y install bridge-utils
¿Qué ficheros necesito modificar?

En mi caso particular, tengo 2 interfaces de red : eth0 es la nativa de RaspberryPi y eth1 es la interfaz USB.

Basta con modificar /etc/network/interfaces :

auto lo

iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

#Configuración bridge
auto br0
iface br0 inet static
        bridge_ports eth0 eth1
        address 192.168.20.251
        broadcast 192.168.20.255
        netmask 255.255.255.0
        gateway 192.168.20.1



Si reinicias(no es necesario) tu dispositivo tendrás el "puente" activo.

Algunos comandos interesantes:

Mostrar estado del bridge
root@raspberrypi:/home/pi# brctl show
bridge name    bridge id                       STP enabled    interfaces
br0                   8000.0023554c4039    no                     eth0

                                                                                   eth1


Mostrar las "macs" que "ha aprendido" nuestro "bridge"
root@raspberrypi:/home/pi# brctl showmacs br0
port no    mac addr        is local?    ageing timer
  1    00:1a:a0:a3:89:4b    no           6.86
  1    00:1e:c2:16:4c:cf    no           0.01
  2    00:23:55:4c:40:39    yes           0.00
  2    78:d6:f0:26:a8:35    no          37.36
  1    ac:3c:0b:1e:59:86    no           6.25
  1    b8:27:eb:b0:52:bb    yes           0.00
  1    bc:14:01:bb:ae:85    no          15.03
  2    e8:94:f6:93:93:ef    no          15.06




...y el clásico "brctl help"os ayudará con temas como STP o añadir manualmente interfaces al "puente".

Para este ejemplo, el comando ifconfig devuelve

root@raspberrypi:/home/pi# ifconfig
br0     Link encap:Ethernet  HWaddr 00:23:55:4c:40:39 
          inet addr:192.168.20.251  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::223:55ff:fe4c:4039/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16922 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4210 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:14341787 (13.6 MiB)  TX bytes:361541 (353.0 KiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:b0:52:bb 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11978 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:19662264 (18.7 MiB)  TX bytes:2478027 (2.3 MiB)

eth1      Link encap:Ethernet  HWaddr 00:23:55:4c:40:39 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7773 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12210 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1917220 (1.8 MiB)  TX bytes:5398632 (5.1 MiB)

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:65536  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3626 (3.5 KiB)  TX bytes:3626 (3.5 KiB)

BONUS

lunes, 5 de mayo de 2014

Cliente bittorrent en modo CLI e interfaz web: Transmission

http://www.transmissionbt.com/
Seguro que muchos de vosotros conocéis Transmission, desde hace años, desde mi punto de vista unos de los mejores clientes de protocolo bittorrent que existen.

Estoy reestructurando el servidor Debian GNU/Linux que tenemos en casa, actualizando servicios e incluyendo otros que, bien por desconocimiento o por falta de tiempo, no estaban hasta ahora configurados.

Buscando un cliente bittorrent en modo CLI me he topado con infinidad de paquetes muy interesantes, pero carentes, en su gran mayoría de una interfaz web sencilla e intuitiva.

Conocía la interfaz web de de Transmission, pero desconocía que se podía instalar sin entorno gráfico y gestionarlo vía http.

En Debian GNU/Linux Wheezy lo he configurado del siguiente modo:

  1. apt-get update
  2. apt-get install transmission-cli transmission-common transmission-daemon
Con estos dos pasos ya hemos instalado la versión CLI de Transmission. El fichero de configuración podemos encontrarlo en el directorio /etc/transmission-daemon/settings.json . En mi caso particular he modificado los siguientes parámetros:

"blocklist-enabled": false,  

Para permitir el acceso desde cualquier IP. Ojo a los riesgos de seguridad. En mi caso, esta dentro de una LAN sin acceso externo.

"download-dir": "/storage/Descargas",
"incomplete-dir": "/storage/Descargas/incompletas",

Para indicar el directorio de descargas completas e incompletas.

Para realizar una prueba podemos ejecutar desde CLI:

transmission-daemon -f -t -u user -v pass -w /storage/Descargas -g /etc/transmission-daemon/

Donde:
-f : Indica que se ejecutará en primer plano escribiendo errores en stdout
-t : Indica que los clientes necesitan autenticarse
-u: Indica el nombre de usuario
-v: Indica el password del usuario 
-w: Indica el directorio de descargas
-g : Indica el fichero de configuración

Más información con el comando :
man transmission-daemon

 [ Ejemplo de acceso vía web desde Mozilla Firefox ]

Por último, para iniciar transmission-daemon al arrancar el equipo basta con añadir :

transmission-daemon -f -t -u user -v pass -w /storage/Descargas -g /etc/transmission-daemon/

al fichero /etc/rc.local antes del "exit 0". No he probado a eliminar el parámetro -f. Como último comentario señalar que lo suyo sería crear un script en init.d o insserv. Ahora no tengo tiempo, pero si os interesa este tema tenéis más información en este link.




domingo, 4 de mayo de 2014

minidlna: servidor DLNA para Debian Wheezy


Si no sabéis que es DLNA os recomiendo leer en primer lugar la entrada de la entrada de Wikipedia , y en segundo lugar este breve artículo en Xataka: ¿Qué es DLNA y para que lo puedo usar en casa?.

Instalar un servidor DLNA en Debian Wheezy es muy sencillo pues incluye el paquete "minidlna". Sin embargo en la versión 1.0.X incluida en Debian, he observado que tanto en rendimiento con el servicio de descubrimiento desde VLC es bastante pobre, por lo que decidido compilar el paquete desde los fuentes.

Los pasos para la compilación e instalación son los siguientes:
  1. Descargar el paquete desde el sitio web oficial del proyecto. http://sourceforge.net/projects/minidlna/
  2. Descomprimir el paquete : tar zxvf minidlna-1.1.2.tar.gz
  3. cd minidlna
  4. Instalar dependencias : apt-get  build-dep minidlna
  5. ./configure && make && make install
  6. cp linux/minidlna.init.d.script /etc/init.d/minidlna 
  7. update-rc.d minidlna defaults
  8. cp minidlna.conf /etc 
Ahora podemos editar el fichero /etc/minidlna.conf a nuestro gusto e iniciar "minidlna" con el comando /etc/init.d/minidlna start o service minidlna restart 

Para OSX o Linux  VLC es una buena opción para reproducir los contenidos de nuestro servidor. Para Android estoy utilizando la aplicación Skifta.


viernes, 14 de marzo de 2014

Glances: échale un ojo a tu sistema Linux

https://github.com/nicolargo/glances

Tengo la suerte de poder administrar un montón de máquinas Linux, corriendo desde RHEL, Debian GNU/Linux, Ubuntu e incluso algún OpenSuSE, y es evidente que todas y cada de estas máquinas deben y están monitorizadas.

En Codery usamos un montón de herramientas muy conocidas para monitorizar procesos y sistemas entre ellas: monit, htop, iptraf, munin e incluso jenkins.

Esta semana he estado pendiente más de lo habitual de una máquina Debian 5.0 que soporta bastante tráfico(100.00 visitas mensuales) con sólo 2GB de RAM. Cansado de usar htop, buscaba una alternativa y me he topado con Glances.

Me ha esta herramienta básicamente por su "todo en uno": tráfico de red, operaciones I/O, procesos, carga del sistema, memoria... Y lo mejor, puede ejecutarse en modo standalone o en modo cliente/servidor :)


La instalación en un sistema basado en Debian GNU/Linux es muy sencilla. En mi caso:

apt-get -y install python-pip python-psutil
pip install Glances


Tenéis toda la información del proyecto en : https://github.com/nicolargo/glances


 ¿Te ha gustado este post? Quizá te interese:

 * Señoras y señores:  jubilen top

 * Mailgraph Postfix


martes, 4 de febrero de 2014

Añadir y actualizar idioma Drupal vía Drush


Con Drush la vida en el planeta Drupal es mucho más sencilla...Instalar, activar y actualizar idiomas vía Drush no podía ser más sencillo. Los pasos

Descargar y activar los módulos.

drush dl drush_language
drush dl l10n_update && drush en -y $_


Añadir idioma "Spanish", actualizar traducciones del core de Drupal y actualizar los módulos contribuídos.

drush language-add es && drush language-enable $_
drush l10n-update-refresh
drush l10n-update