Contents

Montar un servidor casero con Raspberry Pi (Parte 2): Primera ejecución de Raspbian

Después de seguir los pasos de la primera parte del tutorial deberemos conectar nuestra flamante tarjeta SD con Raspbian instalado en su correspondiente ranura, enchufar un cable de red en su correspondiente sitio y el cable de corriente en el puerto Micro USB. Nada espectacular sucederá después de esto, sabremos que el dispositivo está encendido porque se encenderá una luz en el mismo.

/wp-content/uploads/2013/04/banner-tutorial-raspi_-primera.png
Primera ejecución de Raspbian

Índice de tutoriales:

  1. Objetivos e índice.
  2. Instalar Raspbian en una tarjeta SD.
  3. Primera ejecución de Raspbian.
  4. Configurar servidor DHCP.
  5. Configurar servidor DNS caché.
  6. DNS local con actualizaciones DHCP.
  7. Acceder al servidor desde el exterior.
  8. Instalación y configuración de OpenVPN.
  9. NAS con Raspberry Pi y Samba

Tutoriales relacionados:

Para acceder a nuestra Raspberry Pi sin pantalla conectada necesitamos saber la dirección IP de esta. La forma más fácil de hacerlo es acceder a la página de configuración de nuestro router (habitualmente 192.168.1.1) y visualizar la tabla de DHCP. Aquí un ejemplo:

/wp-content/uploads/2013/04/captura-DHCP-router.png
Tabla DHCP router

En el ejemplo mostrado vemos que el dispositivo raspberrypi tiene asignada la IP 192.168.1.132, así que ya tenemos los datos necesarios para acceder a nuestra Raspberry Pi vía ssh.

Acceder vía SSH a nuestra Raspberry Pi

Aviso: Si accedes a tu Raspberry Pi con pantalla, teclado y ratón puedes saltarte este punto.

Para acceder a nuestra Raspberry Pi utilizaremos el protocolo SSH, que nos proporcionará una shell completa con la que interactuar con nuestra Raspberry Pi. Gracias a él nos ahorraremos cables conectados al dispositivo y el “hipotecar” un monitor para este, algo innecesario teniendo en cuenta que no utilizaremos ningún entorno de ventanas en ella. Veremos el procedimiento en GNU/Linux y en Windows, en el primero solo hará falta utilizar herramientas nativas del sistema, en cambio en Windows deberemos instalar la genial aplicación PuTTY para realizar la conexión.

Conexión SSH desde GNU/Linux.

En GNU/Linux abrimos un terminal y escribimos:

1
$ ssh pi@192.168.1.132

El “pi@” lo indicamos para conectar como el usuario por defecto que se crea en Raspbian “pi” con contraseña “raspberry”. Si nos estamos conectando correctamente al dispositivo recibiremos un mensaje como este:

The authenticity of host ‘192.168.1.132 (192.168.1.132)’ can’t be established. ECDSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX. Are you sure you want to continue connecting (yes/no)?

A lo que contestaremos “yes” y recibiremos este mensaje:

Warning: Permanently added ‘192.168.1.132’ (ECDSA) to the list of known hosts.

E introduciremos la contraseña (raspberry).

Llegados aquí ya disponemos de acceso total a nuestra Raspberry Pi, ahora toca configurar!

Conexión ssh desde Windows.

Windows no ofrece nativamente un cliente ssh, por lo que hay que recurrir a software de terceros para realizar la función. Por suerte el software PuTTY viene a suplir esa carencia.

Descargamos PuTTY desde su página web y lo guardamos donde queramos. El software es totalmente portable, no requiere instalación así que simplemente hacemos doble clic en el ejecutable y empezamos a funcionar.

/wp-content/uploads/2013/04/captura-PuTTY.png
Captura PuTTY

Rellenamos Host Name con la IP (en el ejemplo de este tutorial 192.168.1.132), nos aseguramos de que en el campo Puerto esté puesto el 22 y de que SSH está puesto como Connection type.

Cuando se nos pida usuario y contraseña lo llenaremos con los que se configuran por defecto en Raspbian:

1
2
User: pi
Pass: raspberry

Llegados aquí ya disponemos de acceso total a nuestra Raspberry Pi, ahora toca configurar!

Configurar IP fija en Raspbian

Lo de mirar la IP desde el DHCP del router está bien para la primera ejecución de nuestro home server, pero a partir de ahora necesitaremos una IP fija con la que identificar siempre el dispositivo. La elección de la dirección de la IP es totalmente irrelevante, yo elegiré la 192.168.1.69 para este tutorial, pero podéis usar cualquier otra. Más adelante se volverá a cambiar esta dirección en el apartado del servidor DHCP.

Advertencia: Es necesario utilizar una IP del mismo rango que el actual o dejaremos aislada nuestra Raspberry Pi.

La configuración IP se guarda en el archivo /etc/network/interfaces, así que deberemos acudir a este para realizar la configuración.

1
$ sudo nano /etc/network/interfaces

Donde nos encontraremos algo como esto:

1
2
3
4
5
6
7
8
9
auto lo

iface lo inet loopback
 iface eth0 inet dhcp

allow-hotplug wlan0
 iface wlan0 inet manual
 wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
 iface default inet dhcp

Las dos primeras líneas hacen referencia a la interfaz loopback, configuración que no tocaremos. La tercera línea debemos comentarla con # al principio de la línea y debajo escribiremos algo tal que así:

1
2
3
4
iface eth0 inet static
 address 192.168.1.69
 netmask 255.255.255.0
 gateway 192.168.1.1

Cambiando estos datos por los que vayamos a usar. La primera línea indica que se usará una configuración estática y las demás configuran dicha interfaz.

Las siguientes líneas hacen referencia a la configuración de una posible antena WiFi, las dejaremos tal cual. Una vez finalizadas las modificaciones salimos con la combinación de teclas Ctrl+X y contestando “Y” cuando se nos pregunte sobre salvar las modificaciones.

Ahora modificaremos los servidores DNS que vamos a usar, para ello modificaremos el archivo /etc/resolv.conf.

1
$ sudo nano /etc/resolv.conf

Y añadimos las entradas de DNS que deseemos (la mítica 8.8.8.8 de Google, la del router o la de tu ISP) con la sintaxis:

1
nameserver 8.8.8.8

Ctrl+X, “y” y ya tenemos la configuración creada, ahora falta aplicarla reiniciando nuestra Raspberry:

1
$ sudo reboot

Cambiar la contraseña del usuario “pi”

Es importante no dejar las credenciales por defecto de nuestro aparato, para hacerlo logeados como pi ejecutaremos:

1
$ passwd

E introduciremos los datos necesarios.

Cambiar los repositorios de Raspbian

Este apartado no es un “must have” dentro del tutorial, pero lo incluyo ya que a mi los repositorios por defecto que te configura Raspbian me iban infernalmente lentos. Podemos consultar una lista de mirrors en la web de Raspbian y hacer pruebas con los mirrors cercanos a nuestra localidad, que son los que con mayor probabilidad nos irán más rápido. En mi caso he elegido los de Canterbury Computers.

Para configurar el repositorio elegido:

1
$ sudo nano /etc/apt/sources.list

Comentamos la línea existente añadiendo # delante de esta y justo debajo escribimos:

1
deb http://raspbian.canterburycomputers.com/raspbian wheezy main contrib non-free rpi

Una vez modificado el archivo pulsamos la combinación de teclas Ctrl+X y luego Y para salvar las modificaciones. Por último actualizamos los repositorios con:

1
$ sudo apt-get update

Actualizar el Firmware de la Raspberry Pi

Es importante mantener actualizado el Firmware de nuestra Raspberry Pi, tenerlo actualizado nos garantiza que nuestro Hardware va a funcionar de la mejor manera posible en la actual fecha. Existe una herramienta creada por Hexxeh destinada a automatizar toda la operación, así que nos dispondremos a instalarla. Para ello primero debemos instalar git:

1
$ sudo apt-get install git-core

Hecho esto descargamos la aplicación en /usr/bin y le damos permisos de ejecución:

1
$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

Ahora solo falta ejecutar la herramienta en si para actualizar el firmware:

1
$ sudo rpi-update

Si encuentra actualizaciones del Firmware actualizará nuestro dispositivo (tardará un rato en realizar el proceso). Para aplicar los cambios solo debemos reiniciar la Raspberry Pi:

1
$ sudo reboot

Actualizar el software incluído en Raspbian

Como en cualquier derivada de Debian:

1
2
$ sudo apt-get update
$ sudo apt-get upgrade

Configurar Raspberry Pi

Raspbian viene provisto de un fantástico script con el que podremos configurar cosas básicas del sistema sin tener que calentarnos mucho la cabeza para poder empezar rápidamente a desarrollar nuestros proyectos con ella. Para ejecutarlo:

1
$ sudo raspi-config

/wp-content/uploads/2013/04/Captura-de-pantalla-080413-200226-e1365974761846.png
Raspi-config

Pasamos a detallar las opciones:

  1. Info: Infromación sobre el script.
  2. Expand_rootfs: Expandirá nuestra partición / hasta alcanzar el máximo del tamaño disponible en la SD. Esto solo será necesario si nuestra SD es de más de 2GB, que es el tamaño de la partición que se creará al seguir los pasos de la parte 1 de este tutorial. Esta opción solo hay que utilizarla si no vamos a querer utilizar el resto de la tarjeta SD para otros menesteres, como podría ser crear una partición de datos. Cuidado: la opción no pide confirmación.
  3. Overscan: Esta opción sirve para habilitar o deshabilitar la función overscan (# set_overscan enable/disable) en caso de que no se nos muestre la imagen entera por la salida de nuestro monitor. Para realizar ajustes sobre overscan podemos dirigirnos al archivo /boot/config.txt, para más información sobre la configuración de overscan pincha aquí.
  4. Configure_keyboard: Reconfigura el teclado (# dpkg-reconfigure keyboard-configuration) y recarga la configuración (# invoke-rc.d keyboard-setup start).
  5. Change_pass: Cambia el password para el usuario pi ($ passwd pi).
  6. Change_locale: Reconfigura la codificación de carácteres (# dpkg-reconfigure locales).
  7. Change_timezone: Reconfigura la zona horaria del sistema (# dpkg-reconfigure tzdata).
  8. Memory_split: Con esta interesantísima opción podemos regular que cantidad de memoria RAM asignamos a la GPU (procesador gráfico) y el resto de esta irá a la CPU.
  9. Overclock: Nos permite subir la frecuencia de nuestro procesador para ganar rendimiento (puede causar inestabilidades en sistema).
  10. Ssh: Habilita o deshabilita el servicio SSH (# update-rc.d ssh enable/disable)
  11. Boot_behaviour: Habilita o deshabilita la ejecución de LightDM al arrancar el dispositivo (# update-rc.d lightdm enable/disable 2), es decir, habilita o deshabilita la ejecución automática del entorno gráfico.
  12. Update: Esta opción actualizará los repositorios (# apt-get update) e intentará actualizar la herramienta raspi-config (# apt-get install raspi-config).

De aquí descartaría las opciones 1 (solo es información del script), 3, 4, 6 (solo si nos conectamos directamente desde SSH, puesto que estos ajustes son cogidos directamente desde la máquina desde la que nos conectamos) y 10 y 11 (si nos conectamos vía ssh querremos tener este abierto y no necesitaremos habilitar las X para nada).

Por otro lado recomiendo ejecutar primero la opción Update para actualizar el script en si, y luego las demás que creamos oportunas.

Las opciones 5 y 7 son fácilmente ejecutables desde fuera del script, pero una vez abierto este se puede aprovechar y ejecutarlas. En mi caso la opción de Overscan la he habilitado ya que mi SD va a ser para uso exclusivo del sistema, pero va a gusto del consumidor.

Sobre las opciones 8 y 9 son totalmente opcionales y personales, según la caña que le queráis meter a vuestras máquinas. Yo particularmente el Memory_split lo tengo en 16 MB para la GPU y el resto para la CPU ya que no voy a ejecutar ningún tipo de servidor gráfico y quiero que el chip ARM funcione como debe. El Overclock no me he planteado subirlo aún, si veo que el rendimiento de mi Raspberry decrece lo estudiaré.

Llegados aquí ya tendremos los pasos necesarios para tener nuestra Raspberry Pi con Raspbian instalado y configurado. En el próximo capítulo pasaremos al lío y montaremos un servidor DHCP sobre nuestra Raspberry Pi.