Páginas

jueves, 6 de febrero de 2014

Conectándonos al RaspberryPi en red local

En esta nueva entrada voy a tratar de abarcar todo lo que necesitamos realizar para conectarnos a nuestro RaspPi de forma remota, primero, a través de nuestra red local; y lo completaremos con el modo de acceder sin problemas desde cualquier parte del mundo (que tenga acceso a Internet).
El modo fácil de comunicarnos con nuestro RaspPi es conectando 1) la salida HDMI (o de vídeo) a un televisor y 2) un teclado+ratón inalámbricos a través de uno de los puertos USB de los que dispone la RaspPi (v2). Éste ha sido el modo que he utilizado para instalar el sistema operativo Raspbian y una serie de paquetes que me permitirán conectarme de forma remota, pudiendo prescindir del monitor de televisión y del teclado+ratón inalámbricos. Estamos hablado de la versión 2 de la Raspberry Pi. Si fuéramos a utilizar la versión 1 de la RaspPi, debemos tener en cuenta que no disponemos de conector RJ-45 y solo dispone de un puerto USB.

Accediendo desde nuestra red local

La RaspPi trae de origen un conector RJ-45 para conectarnos a una red local mediante un cable Ethernet que enchufemos a nuestro router/switcher. Si éste va a ser el modo de acceder, nos podemos saltar el siguiente apartado e ir directamente a Accediendo mediante el comando ssh.
También tenemos la posibilidad de conectarnos a través de una línea serie (en Enlaces se explica el modo de implementarlo), accediendo directamente a la consola de comandos del sistema Raspbian, opción que vamos a descartar, al ser algo más complejo el montaje requerido y no aportar nada interesante.

Configuración de la red WiFi

También podemos acceder por WiFi, siempre y cuando conectemos un adaptador USB-WiFi a uno de los dos puertos USB con que viene dotado nuestra RaspPi (Modelo B). Habrá que elegir, de entre todas las visibles, la red WiFi a la que nos queramos y podamos conectar, red que probablemente estará protegida por contraseña, y que tendremos que introducir para ser aceptados como usuarios de este red local.
Pero ¿cómo podemos conectarnos a una red WiFi? El modo más sencillo sería entrado a través de la interfaz gráfica LXDE que trae por defecto Raspbian y pulsar sobre el icono WiFi Config. Seleccionaríamos la red e introduciríamos la correspondiente contraseña.
¿y si por el motivo que sea no tenemos modo de conectarnos a la red local? El modo que tendremos de  configurar el acceso a la red WiFi consistirá en editar los ficheros de configuración en donde se guardan los datos de la conexión, edición que podemos hacer desde otro PC.
Extraeremos la SDcard del RaspPi, la insertaremos en nuestro PC, nos iremos a la partición en donde se encuentre nuestro sistema operativo Raspbian y procederemos a editar los ficheros pertinentes.
Raspbian necesita dos ficheros para configurar el acceso a una red WiFi protegida por contraseña y encriptación WPA2/WPA (WiFi Protected Access), más segura que con la obsoleta WEP (Wired Equivalent Privacy):
/etc/network/interfaces
/etc/wpa_suplicant/wpa_suplicant.conf
Desde nuestro PC, y en modo root editaremos el fichero interfaces, o nos aseguraremos de que, al menos, contiene las siguientes líneas de código:
Podemos sustituir wpa-roam por wpa-conf si queremos que la conexión se realice por WiFi, a pesar de que estemos conectados por un cable Ethernet. Si lo que hemos puesto es wpa-roam, en el momento que conectemos un cable de red se desactivará la conexión WiFi, y si lo desenchufamos tratará de establecer una conexión por WiFi, buscando entre todas las redes que detecte en este momento y que estén habilitadas en el fichero wpa_suplicant.conf, fichero que vamos a editar, también en modo root:
Nos crearemos un bloque, similar al que en la imagen anterior hemos realzado en verde, y similar al resto de bloques que tengamos. Introduciremos el nombre de la red a la que queremos conectarnos y la contraseña válida para poder acceder. Comprobaremos que los demás parámetros son adecuados.
# Identificador de RED SSID
ssid="Identificador de Red"

# contraseña válida para la red a la que queremos acceder
psk="la contraseña asociada a esta red"

# tipo de protocolo: RSN (para WPA2) y WPA (para WPA1)
proto=WPA

# tipo de gestión de contraseñas:
#   - WPA-PSK (Pre-Shared) o
#   - WPA-EAP (Enterprise)
key_mgmt=WPA-PSK

# tipo de apareamiento: CCMP (WPA2) o TKIP (WPA1)
pairwise=TKIP

# opciones de autorización: OPEN (WPA1/WPA2)
# otras posibles opciones poco frecuentes: SHARED y LEAP
auth_alg=OPEN
Extraeremos la SDcard, y la insertaremos en la RaspPi. Al finalizar el arranque, y si lo hemos hecho correctamente, será capaz de conectarse, si está en cobertura, a la nueva red WiFi.

Accediendo mediante el comando ssh

Averiguaremos si está en red, y la IP que le ha sido asignada, y de este modo entraremos a través del comando ssh. Los detalles de estos pasos vienen explicados aquí, y que corresponde a una entrada previa de este blog. La posibilidad de utilizar el comando ssh puede ser determinado en fase de instalación del sistema Raspbian:
Activado el servidor ssh, podemos invocarlo desde el terminal de comandos que abrimos en otro PC tecleando lo siguiente:
en donde hemos indicado el usuario (pi) y la dirección IP (192.168.1.105) de la sesión que queremos abrir en la RaspPi. Pero ¿no sería más fácil si utilizásemos el nombre de la RaspPi en vez de una ristra de números? Pues eso es lo que vamos a realizar. Para tal fin, vamos a instalar en la RaspPi el servidor Avahi, y utilidades complementarias. Avahi permite a los programas publicar y descubrir servicios y servidores que se están ejecutando en una red local sin una configuración específica.
sudo apt-get install avahi-daemon
sudo apt-get install avahi-utils
una vez instalado, debemos ejecutar el siguiente comando:
sudo insserv avahi-daemon
de este modo, el servicio se activará a cada arranque que realicemos del RaspPi.
Con la instrucción avahi-browse -a -d local se nos mostrarán todos los dispositivos que publican sus servicios a través de ZeroConfig/Bonjour en el dominio .local.
A partir de ahora, y por mucho que cambie la IP de nuestro RaspPi, no tendremos que estar averiguando la IP que tenga en este momento. Nos dirigiremos con el nombre que tenga asignado seguido por .local. Así si el nombre continua siendo raspberrypi, en vez de la IP pondremos raspberrypi.local. Si tenemos activado un servidor Web, introduciremos en el navegador raspberrypi.local. Para acceder mediante una consola remota podremos hacerlo tecleando ssh pi@raspberrypi.local, si queremos hacer un ping, también será posible tecleando ping raspberry.local, y así con todos los servicios instalados en la RaspPi.

Cambiando el hostname

Si queremos cambiar el hostname, lo podemos hacer de dos maneras:
1) ejecutando sudo raspi-config en la consola de comandos, o bien
2) de forma manual, con el siguiente procedimiento:
sudo nano /etc/hosts
sudo nano /etc/hostname
sudo /etc/init.d/hostname.sh
sudo reboot
En los dos ficheros que editemos sustituiremos el nombre actual, raspberrypi, con el nombre por el que queramos sea reconocido nuestro RaspPi.
Para hacer que sean los cambios permanentes, actualizando el kernel con el nuevo nombre, ejecutamos sudo /etc/init.d/hostname.sh y rearrancamos el equipo con la sentencia sudo reboot.

Enlaces

- Raspian
- Raspberry Pi - Installing a RS232 Serial Port
- Raspberry Pi - RS232 Serial Interface Options (Revisit)
- Configuración de la red y acceso a Internet
- How to Setup Wi-Fi On Your Raspberry Pi via the Command Line
- What's the difference between `wpa-roam` and `wpa-conf` in the /etc/network/interfaces file?
- Setting up for WiFi Roaming with wpa
- WPA support in Debian
- Linux WPA/WPA2/IEEE 802.1X Supplicant
- RPi Advanced Setup
- Avahi
- ¿Que es avahi y para que sirve?
- Advertising Linux Services via Avahi/Bonjour
- avahi-daemon man
- Zero-Configuration Networking

No hay comentarios:

Publicar un comentario