miércoles, 5 de junio de 2019

Raspberry Pi primeros pasos

Este artículo forma parte de una serie que nos conducirá a configurar una Raspberry Pi hasta llegar a tener instalada en ella un servidor web con base de datos y PHP como lenguaje. Los artículos de la serie son los siguientes.
  1. Raspberry Pi instalación y puesta en marcha
  2. Raspberry Pi primeros pasos   ← (es el post en el que estamos)
  3. Raspberry Pi instalación de Apache + PHP + MySQL
  4. Raspberry Pi instalación de Wordpress
Trabajaremos desde la consola utilizando la línea de comandos ya que la instalación que hemos realizado no ha cargado las xWindows. No disponemos de interface gráfica y por lo tanto el ratón no lo utilizaremos.

Expandir el sistema de archivos

Expandir el sistema de archivos es lo primero que haremos al tener instalado nustro sistema operativo Raspbian. Lo que hace es aprovechar la capacidad de la micro SD para que el sistema operativo disponga de espacio para poder usar la tarjeta como equivalente a un disco duro donde poder crear y grabar archivos descargados. Si este paso no se realiza es posible que no se esté aprovechando la capacidad completa de la tarjeta micro SD.

Desde la línea de comandos teclearemos.

sudo raspi-config

En la ventana de opciones disponible elegimos la modalidad:

7 Advanced Options    Configure advanced settings

Seguidamente elegimos la opción:

A1 Expand Filesistem   Ensures that all of the SD card storage is available to de OS

Finalmente cuando nos soliciten que rebotemos el sistema diremos que si.

SSH

El protocolo SSH permite que nos podamos conectar de forma remota a nuestra Raspberry Pi. Para habilitarlo teclear en la consola la siguiente línea de comandos.

sudo raspi-config

Elegir la opción:

5 Interfacing Options    Configure connections to pheripherals

Elija la opción:

P2 SSH    Enable/Disable remote command line access to your Pi using SSH

A la pregunta 'Would you like the SSH server to be enabled?' responda afirmativamente.

Y acepte y finalize.

Ahora podrá conectarse a la Raspberry Pi de forma remota. En Windows usando un programa como Putty y en MAC no es necesario ningún programa ya que de forma nativa desde la terminal nos podremos conectar via SSH con nuestra Raspberry Pi. El puerto de conexión por defecto es el puerto 22.

Rebote la Raspberry Pi con sudo reboot y mire la IP asignada por su router haciendo ifconfig. En mi caso he visto que me ha asignaro la IP 192.168.1.64. Esta es la IP que pondremos en Putty con el puerto 22 para entrar de forma remota en nuestra Raspberry Pi.


Conviene cambiar ese puerto para dificultar que puedan acceder a nuestra red desde fuera.

Cambiar el puerto del servicio SSH

Teclee la siguiente línea de comandos.

sudo nano /etc/ssh/sshd_config

Cambie la línea

# port 22

por la línea

port 3022

de esta forma habrá elegido el puerto 3022 o cualquier otro que elija.

Para que el cambio tenga lugar ejecute la siguiente línea.

sudo service ssh restart

Cambiar la contraseña

El usuario es pi y la contraseña por defecto es raspberry. Conviene cambiar la contraseña especialmente si posteriormente necesitamos habilitar el protocolo SSH que nos permitirá conectarnos a nuestra maquina de forma remota. No nos gustaría que otra persona pudiera entrar sabiendo el usuario y la contraseña por defecto que viene en todas las plaquitas.


Para cambiar la contraseña desde la línea de comandos escribiremos lo siguiente.

passwd

A continuación tendremos que introducir la contraseña actual y luego tendremos que introducir la password nueva y volverla a introducir para comprobar. Al escribir la contraseña en el teclado no vemos que se produzcan caracteres en la pantalla. Esto no es error, ya que se ha diseñado de esta forma para mayor seguridad de miradas indiscretas.

Fijar la IP

Es muy frecuente que al conectarnos a un router por cable de red RJ45 o por WiFi el router nos proporcione una dirección IP variable que puede cambiar cada vez que nos desconectemos y volvamos a reiniciar la Raspberry Pi o el propio router.

Lo recomendable es que la dirección IP asignada sea siempre la misma, esto es que sea una IP fija para que cuando nos conectemos a la Raspberry Pi de forma remota no tengamos que estar averiguando en cada ocasión qué IP nos asignó el router en cada ocasión. Al ser fija la IP luego podremos dejar ya establecida ésta en nuestro software de conexión de forma remota con el protocolo SSH.

Para conseguir una IP fija o static IP en una conexión Ethernet (por cable de red) teclearemos lo siguiente.

sudo nano /etc/dhcpcd.conf

Existe un párrafo del documento que debemos sustituir. El parrafo que nos encontraremos será algo similar a esto:

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1


El párrafo anterior debe ser sustituido por el siguiente.

# Example static IP configuration:
interface eth0
static ip_address=192.168.1.11/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8


  • Estamos suponiendo que nuestro router tine como IP de acceso 192.168.1.1 y que hemos asignado a nuestra Raspberry Pi la IP fija 192.168.1.11
  • La conexión que hemos configurado es para usar la conexión Ethernet por cable de red. Si quisiéramos configurar lo para WiFi se cambiaría eth0 por wlan0.
  • Para que tenga efecto rebotamamos nuestra Raspberry Pi con sudo reboot.
  • Finalmente probamos a entrar con Putty usando como IP 192.168.1.11 como puerto 3022. Indicamos el usuario pi, y la contraseña nueva si la hemos cambiado y sino usamos la contraseña por defecto que es raspbian. Si todo va bien estaremos dentro de nuestra Raspberry Pi y podremos grabar en Putty los datos de acceso con esa IP fija para futuros usos.

Abrir los puertos de router

Nuestro objetivo es llegar a tener un servidor web funcionando en la Raspberry Pi que tenemos en casa por lo que será necesario abrir los puertos del router. El puerto 80 es el que permite servir una página web.

En nuestro caso el proveedor de servicios de Internet es Movistar que utiliza el portal Alejandra para gestionar el router. Se puede llegar a desvincular el router de este portal pero en nuestro caso lo hicimos en su día para probar, pero ahora de momento seguimos usando Alejandra.

Si no tenemos este portal lo que se ha de hacer es conectarnos a nuestro router tecleando en nuestro navegador la dirección IP de entrada al router, que en nuestro caso es 192.168.1.1. El router nos mostrará una página donde tendremos que poner el usuario y contraseña de nustro modelo concreto.


Para que funcione nuestro servidor web y pueda servir página web a un usuario externo a nuestra red es necesario abrir el puerto 80 mediante el protocolo TCP.

Para que consigamos conectarnos a nustra Raspberry Pi mediante SSH desde una ubicación externa a nuestra red tendremos que abrir el puerto 22 o si hemos cambiado el puerto el que sea, por ejemplo el puerto 3022, mediante TCP.

¿Cúal es mi IP?

La mayoría de las IP externas que tenemos son dinámicas.

En las casas y en muchas empresas pequeñas la conexión que nos proporciona nuestro proveedor de Internet nos ofrece una IP dinámica. Esto supone que cada vez que rebotamos el router la IP externa que tenemos puede cambiar.

Puedes hacer la prueba consultando la IP externa que tienes. Para ello existen múltiples páginas que te informan. Usando tu buscador favorito escribe la frase 'Mi IP', o 'Cuál es mi ip'. Y verás que dispones de muchos links que te llevan a páginas que te proporcionan tu IP pública en estos momentos. En la imagen siguiente se puede ver la IP que tengo en este momento.


Al reiniciar tu router (apagar, esperar unos segundos y encender) podremos ver que la IP externa seguramente habrá cambiado.

noIP

No es práctico establecer un servidor web donde la IP pública esté cambiando continuamente. Podríamos contratar una IP fija pero esto tiene un coste. Otra solución es utilizar algún sistema como el que nos proporciona la página noip.com.

Nos proporcionará un dominio que apunta siempre a nuestra IP pública aunque esta sea dinámica y por lo tanto cambie ocasionalmente. El sistema se encarga de vigilar si cambia nuestra IP pública y dirigir las peticiones a ese dominio a nuestra IP aunque haya cambiado.

Por ejemplo, el domino magnitopic.ddns.net es un dominio proporcionado por este servicio.

No hay comentarios:

Publicar un comentario