Con la Raspberry Pi 4 se pueden hacer muchas cosas, dado que es un ordenador en sí mismo. Además, dado que tiene conectividad Ethernet, Bluetooth y WiFi también se puede utilizar para diversos servicios que suelen ser utilizados con distribuciones Linux. Proyectos como montar un HoneyPot (detectar y reportar ataques de red), RetroPie (consola), o Batocera (emulador juegos) Pi-Hole (eliminar publicidad), instalar Chrome OS (FideOS) son muy interesantes.
El sistema estándar en una Raspberry Pi 4 es Raspbian, una distribución específica de Debian para el hardware incorporado en la tarjeta. Este software se puede instalar de manera independiente descargando e instalando la ISO correspondiente en la tarjeta SD que vamos a utilizar como sistema de la Raspberry, o bien, si ésta tiene preinstalado NOOBS, se puede instalar directamente desde éste.
Índice de Contenidos
- Modelos RaspBerry Pi
- Almacenamiento: MicroSD vs SSD vs Pendrive USB 3.0
- Diferencias y opciones para Raspberry Pi OS (Raspbian, Debian, Ubuntu) Kernel 32 y 64 bits
- Instalar software como Discord, Zoom, FreeCad, Tor, Doom 3 fácilmente con Pi-Apps
- Clonar-Duplicar contenido tarjeta SD (copias de seguridad)
- Configurar Wifi en Raspberry
- Configurar más de una Red Wifi
- Utilizar red Ethernet y Wifi a la vez
- Deshabilitar Wifi
- Controlar temperaturas Raspberry (GLZ, Rpi-monitor)
- Apagar luces (led) indicadores funcionamiento (luz roja, actividad luz verde y red)
- Actualizar booloader para arrancar con USB (eeprom)
- Usar UEFI BIOS e incluso instalar Windows 10 (arm)
- Instalar Docker en la Raspberry
- Instalar ElasticSearch (ELK) 7 en la Raspberry Pi
- Grabar imágenes SO en la Raspberry con Balena Etcher o Raspberry Pi Imager
- Poner en modo monitor tarjeta de red Wifi
- Seguridad en una Raspberry (ssh, Fail2ban, Firewall ufw, sudo, añadir usuarios, etc)
- Aplicaciones App para controlar la Raspberry desde el teléfono móvil (Android)
- Alternativas a la RaspBerry Pi
Tabla Comparativa Modelos Raspberry PI
Modelo | CPU | RAM | Conectividad inalámbrica | Puertos E/S | Precio | |
---|---|---|---|---|---|---|
Raspberry Pi 4B | 1.5-GHz, 4-core Broadcom BCM2711 (Cortex-A72) | 2/4/8GB | 802.11ac / Bluetooth 5.0 | 2x USB 3.0, 2x USB 2.0, 1x Gigabit Ethernet, 2x micro HDMI | 39,95 euros (2GB) | |
Raspberry Pi 3 B+ | 1.4-GHz, 4-core Broadcom BCM2837B0 (Cortex-A53) | 1GB | 802.11ac, Bluetooth 4.2, Ethernet | 4 x USB 2.0, HDMI, 3.5mm audio | 39 euros | |
Raspberry Pi Zero W | 1-GHz, 1-core Broadcom BCM2835 (ARM1176JZF-S) | 512MB | 802.11n / Bluetooth 4.1 | 1x micro USB, 1x mini HDMI | 10,53 euros | |
Raspberry Pi Zero WH | 1-GHz, 1-core Broadcom BCM2835 (ARM1176JZF-S) | 512MB | 802.11n / Bluetooth 4.1 | 1x micro USB, 1x mini HDMI | 14,60 euros | |
Raspberry Pi Zero | 1-GHz, 1-core Broadcom BCM2835 (ARM1176JZF-S) | 512MB | - | 1x micro USB, 1x mini HDMI | 5,40 euros |
Tarjeta MicroSD vs SSD vs USB
- Consejo: no uses tarjeta MicroSD para según que proyecto. Son lentas, caras y acaban fallan. Es mejor usar un pendrive USB ahora que se puede arrancar por USB y a larga lo ideal es un disco duro SSD conectado por USB 3.0
De forma predeterminada, Raspberry Pi arranca y almacena todos sus programas en una tarjeta de memoria microSD, que tiene un ancho de banda teórico máximo de 50 MBps en Raspberry Pi 4 y solo 25 MBps en modelos anteriores. En la vida real, incluso las mejores tarjetas microSD para Raspberry Pi no superan los 38 MBps en escrituras secuenciales. El uso de un SSD externo como unidad de almacenamiento principal podría acelerar las cosas de manera significativa y, con algunos comandos y una simple actualización de firmware, puede hacerlo.
En nuestras pruebas de una Raspberry Pi 4 con SSD, obtuvimos un rendimiento impresionante con tasas de transferencia secuenciales de hasta 140 MB / 208 MBps para lectura y escritura. También puede usar una unidad flash USB estándar, aunque encontramos que el rendimiento es peor que una tarjeta microSD en muchas tareas.
USB 3.0 UASP (50% más rápido)
UASP o UAS son las siglas de USB Attached SCSI (UAS) o USB Attached SCSI Protocol (UASP). Se trata de un protocolo informático utilizado para mover datos con dispositivos de almacenamiento USB como discos duros (HDD), unidades de estado sólido (SSD) y unidades de memoria USB. Este protocolo permite por lo general transferencias más rápidas en comparación con el BOT, Bulk-Only Transport.
BOT se diseñó para transferir archivos cuando la velocidad más rápida que podía obtener un USB era de 12 Mbps. Las pruebas muestran una velocidad de transferencia con BOT de 172.13MB/s, pero si usamos UASP la velocidad de transferencia sube hasta los 296.71MB/s.
Tras realizar estas pruebas, los resultados demuestran que es aconsejable usar UASP siempre con los dispositivos USB 3.0 para conseguir velocidades de transferencia mayores con nuestra Raspberry Pi. Es importante no olvidar que los USB 3.0 deben conectarse en los puertos USB 3.0 azules y no en los USB 2.0 de color negro, de lo contrario no ganaríamos en rendimiento.
Para ver si tu dispositivo USB es compatible con UASP
lsusb -t
El driver debe ser:
Driver=uas
Verificar velocidad de cualquier dispositivo (SD, USB, SSD)
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
Puedes ver los resultados en:
dtparam=sd_poll_once
Nota:
El led de color verde de la Raspberry Pi dejará de funcionar. Esto es así porque mediante el comando que introducimos en /boot/config.txt hacemos que la Raspberry Pi únicamente verifique en el arranque si tenemos insertada una tarjeta MicroSD.
Raspberry Pi OS Debian 10 Buster (Raspios - Raspbian)
- Raspberry Pi OS with desktop and recommended software
- Raspberry Pi OS with desktop
- Raspberry Pi OS Lite
arm_64bit=1
Raspbian Oficial 64 bits (beta)
Ubuntu RaspBerry Pi armhf y arm64 versiones 18.04.5 LTS y 19.10.1
Debian RaspBerry 64 bits
Instalar software fácilmente en la RaspBerry Pi usando Pi-Apps
git clone https://github.com/Botspot/pi-apps
Instalar App
~/pi-apps/manage install
Puedes instalar:
- Zoom
- Discord
- Arduino
- AnyDesk
- Tor
- VeraCrypt
- Wine
- Steam
- Doom 3
Clonar (duplicar) una tarjeta SD
- Win32 Disk Imager
- SD Card Copier (piclone)
- USB Image Tool
- USBImager
Ahora si queremos recuperar la imagen simplemente sería formatear la tarjeta SD, seleccionar la imagen creada y pulsar el botón "Write".Y en Linux no es más difícil con el comando dd:
"if" es el origen "of" el destino
sudo dd if=/dev/sdb of=/home/usuario/imagen.img status=progress
dd if=/dev/sdx of=/path/to/image bs=1M..
SD Card Copier (piclone)
SD Card Copier (piclone) es la herramienta que integra el sistema operativo Raspbian para el clonado de tarjetas microSD de forma gráfica, es decir, podemos copiar todo el contenido de una tarjeta microSD a otra haciendo un clon idéntico sin utilizar la línea de comandos.
O directamente mediante ssh
ssh pi@DIRECCION_IP_RASPBERRY "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=/PATH_DONDE_DEJAR_LA_COPIA/FICHERO_IMAGEN_RASPBERRY.gz
Nos hará una imágen idéntica de su Raspbian en un fichero comprimido, ojo, se ha de subrayar que quizás estas copias no son estables, dependerá de diversos motivos, pero personalmente hasta el día de hoy he restaurado backups de este tipo sin sorpresas, cuando alguna Raspberry se ‘muere’, simplemente descomprimo este backup y se lo vuelvo a una nueva SD, la Pi arranca y ni se entera, y todo vuelve a su ser.
Configurar Wifi en RapsBerry Pi
Configurar una red inalámbrica
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=ESnetwork={ssid="Nombre Red Wifi-Wireless"psk="Contraseña Wifi"}
wpa_cli -i wlan0 reconfigure
Configurar más de una red Wireless
network={
ssid="HomeOneSSID"
psk="passwordOne"
priority=1
id_str="homeOne"
}
network={
ssid="HomeTwoSSID"
psk="passwordTwo"
priority=2
id_str="homeTwo"
}
Utilizar conexión Ethernet y Wifi a la vez
Usando Metricas
- Las métricas se utilizan para preferir una interfaz sobre otra, métrica más baja tiene prioridad.
- dhcpcd proporcionará una métrica predeterminada de 200
- Se agregarán 100 adicionales de métricas para las interfaces inalámbricas (wlan)
ip route list
route -n
Podemos ver "metric". Y utilizar metric para dar prioridad. Ethernet (cable) siempre tiene prioridad sobre el Wifi. Así que si conectamos por cable es posible que perdamos el Wifi, para cambiarlo en el fichero dhcpcd.conf
O puedes usar ifmetric "on-the-fly"
$ sudo apt install ifmetric
$ sudo ifmetric wlan0 200
interface eth0metric 300interface wlan0metric 200
- 200 + ifindex (número de índice de la interfaz) para adaptadores Ethernet
- y 300 + ifindex para interfaces WiFi. Para las interfaces integradas en un Pi 3 o 4, esto da como resultado la métrica 202 para eth0 y 303 para wlan0, dando prioridad al uso de Ethernet cuando está conectado.
interface eth0static routers=192.168.0.1interface wlan0static routers=192.168.1.0
Añadir rutas
default via 192.168.0.1 dev eth0 src 192.168.0.105 metric 202default via 192.168.1.1 dev wlan0 src 192.168.1.136 metric 303
sudo ip route del default via ......
Para que funcionen a la vez de forma independiente:
ip route add table 1921680 default via 192.168.0.1 dev eth0ip route add table 1921681 default via 192.168.1.1 dev wlan0
ip rule add from 192.168.0.0/22 lookup 1921680ip rule add from 192.168.1.0/24 lookup 1921681
Configurar dirección IP estática
Editar fichero /etc/network/interfaces
Deshabilitar Wifi (wlan0) y BlueTooth
- Escritorio de raspberry arriba a la derecha
- Comando sudo ifconfig wlan0 down
- rfwill
- overlays
- modprobe (módulos del kernel)
- systemctl
sudo apt install rfkill
sudo rfkill block wifi
Deshabilitar Bluetooth:
sudo rfkill block bluetooth
Para desbloquear:
sudo rfkill unblock wifi
2) Raspbian maneja el hardware con overlays. En /boot/overlays/README tienes toda la información
También podemos deshabilitarlo al iniciar el sistema. Editando el fichero:
sudo nano /boot/config.txt
Buscamos [all]
Deshabilitamos módulos wifi y bluetooth
# Wifi
dtoverlay=disable-wifi # antes llamado pi3-disable-wifi
# bluetooth
dtoverlay=disable-bt # antes llamado dtoverlay=pi3-disable-bt
3) con la carga de módulos del kernel modprobe
/etc/modprobe.d/brcm-blacklist.conf
o bien
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Añadiendo:
blacklist brcmfmac
blacklist brcmutil
O todos los módulos:
blacklist hci_uart
blacklist btbcm
blacklist btintel
blacklist rfcom
blacklist btqca
blacklist btsdio
blacklist bluetooth
4) con systemctl
systemctl disable wpa_supplicant
systemctl disable bluetooth
systemctl disable hciuart
Wi-Fi is currently blocked by rfkill.
Deshabilitar ipv6
sudo nano /etc/sysctl.conf
Para todas las inerfaces de red
net.ipv6.conf.all.disable_ipv6 = 1
Acceso remoto (SSH - VNC)
Acceder Remotamente a Kali Linux vía SSH
Habilitar SSH en una Raspberry Pi sin cabeza (agregue el archivo a la tarjeta SD en otra máquina)
Para la configuración sin cabeza, SSH se puede habilitar colocando un archivo llamado ssh, sin ninguna extensión, en la partición de arranque de la tarjeta SD (boot) desde otra computadora. Cuando el Pi arranca, busca el archivo ssh. Si se encuentra, SSH se habilita y el archivo se elimina. El contenido del archivo no importa; podría contener texto o nada en absoluto.
Si has cargado el sistema operativo Raspberry Pi en una tarjeta SD en blanco, tendrá dos particiones. El primero, que es el más pequeño, es la partición de arranque. Coloca el archivo en este.
Una vez conectado por ssh, una de las primeras cosas que tendrías que hacer es cambiar el nombre de usuario pi y contraseña raspberry
passwd
Después cambiar el el password de root
sudo passwd root
Controlar las temperaturas de la Raspberry Pi
vcgencmd measure_temp
watch -n 1 "vcgencmd measure_clock arm; vcgencmd measure_temp"
RPi-Monitor
RPi-Monitor es una solución más flexible que almacena datos por más tiempo y le permite consultarlos a través de una página web .
Hay varias formas de instalar RPi-Monitor. los encontrará en la página de utilidades. Elegí este método por su simplicidad de implementación. RPi-Monitor está disponible en un repositorio de Debian que permite la instalación con los comandos habituales apt-get o aptitude.
Instala la clave pública de RPi-Monitor para certificar el depósito
sudo apt-get install dirmngr
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F
Ejecuta los siguientes comandos para agregar RPi-Monitor a la lista de sus repositorios
sudo wget http://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
sudo wget http://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
Ahora puedes instalar RPi-Monitor
sudo apt-get update
sudo apt-get install rpimonitor
RPi-Monitor se inicia automáticamente y comienza a recopilar datos. Puede acceder a la interfaz web en http: //raspberrypi.local:8888 en la Raspberry Pi o en la dirección de su Raspberry Pi en el puerto 8888 desde otra máquina en la red (incluidos teléfonos inteligentes, tabletas ...)
Evolución de la carga de la CPU. Se leyó un video, se accedió a una página web, etc.
También podemos agregar complementos , aquí agregué Top3 que muestra los 3 consumidores de CPU más altos en la parte superior izquierda. Las instrucciones para agregar o crear complementos están disponibles en la página de utilidades .
GL-Z
Geek 3D ha sacado una versión de su herramienta con soporte para la Raspberry Pi, incluyendo el modelo más reciente de Raspberry Pi 4.
Llegáis a su web sin problemas: www.geeks3d.com/glz
Además de incluir versiones para Windows, macOS y Linux general, tenéis versiones para Raspberry Pi como he comentado y también para la Tinker Board de ASUS.
Apagar todas las luces del Raspberry 4 (Led Rojo encendido, led verde actividad y led cable red)
- Led rojo en marcha
- Led verde actividad del disco
- Luces link Tarjeta de red Ethernet eth0
dtoverlay=act-led
Añadir en /boot/config.txt siempre en la sección
[pi4]
Led Roja
# Disable the PWR LED.
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off
# nuevos modelos
dtparam=pwr_led_trigger=default-on
dtparam=pwr_led_activelow=off
Led verde
# Disable the ACT LED.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off
Luz Led Internet eth0
# Disable ethernet port LEDs
dtparam=eth_led0=4
dtparam=eth_led1=4
Actualizar el booloader para arrancar con un USB
vcgencmd bootloader_version
sudo rpi-eeprom-update
Editar orden arranque:
sudo -E rpi-eeprom-config --edit
Obtendremos algo así como:
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
TFTP_IP=
TFTP_PREFIX=0
BOOT_ORDER=0x1
SD_BOOT_MAX_RETRIES=3
NET_BOOT_MAX_RETRIES=5
[none]
FREEZE_VERSION=0
Debemos cambiar el parámetro BOOT_ORDER por:
BOOT_ORDER=0xf41
Por defecto 0x1 es tarjeta MicroSD
Explicación:
- Valor Modo Descripción
- 0x1 SD CARD SD card (or eMMC on Compute Module 4)
- 0x2 NETWORK Network boot
- 0x3 USB DEV USB device boot – See usbboot (since 2020-09-03)
- 0x4 USB MSD USB mass storage boot (since 2020-09-03)
- 0xe STOP Stop and display error pattern (since 2020-09-03). A power cycle is required to exit this state.
- 0xf RESTART Start again with the first boot order field. (since 2020-09-03)
Así que BOOT_ORDER=0xf41 (habilita el arranque por SD si el USB falla o no está presente)
Y reiniciar con sudo reboot
O usando raspi-config editar la configuración podemos cambiar la opciones de arranque
sudo raspi-config
- default
- latest
- beta
sudo nano /etc/default/rpi-eeprom-update
Cambiar por:
FIRMWARE_RELEASE_STATUS="beta"Y guardar:
sudo rpi-eeprom-update -a
Usar UEFI en la RaspBerry Pi
Instalar Docker en la RaspBerry Pi
curl -fsSL https://get.docker.com | sh
o bien
curl -fsSL https://get.docker.com -o get-docker.sh
Dar permisos usuarios para ejecutar docker
sudo usermod -aG docker alex
Instalar docker-compose
Pre-requisitos:
sudo apt-get install -y libffi-dev libssl-dev
sudo apt-get install -y python3 python3-pip
Instalar docker-compose
pip3 -v install docker-compose
python3 -m pip install docker-compose
Puedes usar Portainer para controlar y manejar los containers
$ docker volume create portainer_data
$ docker run -d -p 8000:8000 -p 9000:9000 --restart unless-stopped --name="Portainer" -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
$ docker network create docker
Para acceder con el navegador:
http://ip_local:9000
Y elegir conectar con Docker "localmente" --> "local"
Hypriot OS está expresamente configurado para poder usar contenedores. Este sistema operativo está basado en Debian, pero es tan liviano que es perfecto tanto para Raspberry Pi como para Docker.
Instalar ELK (ElasticSearch) en la Raspberry Pi
- ELK (Elasticsearch + Logstash + Kibana)
ELK 7.x ya tiene paquetes deb para arm64 (AARCH64)
Añadir la llave del repositorio:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Una dependencia por si no está instalada:
sudo apt-get install apt-transport-https
Añadir repositorio:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Instalar normalmente:
sudo apt-get update && sudo apt-get install elasticsearch
También tenemos logstash, kibana, tc
Grabar imagen en la tarjeta SD con Balena Etcher
El software que vamos a utilizar para grabar un sistema operativo en la tarjeta SD de la Raspberry Pi 4 es Balena Etcher, también proyecto de Software Libre / Open Source que puedes utilizar en tu sistema operativo:
Una vez grabada y comprobada la imagen en la tarjeta SD, expulsarla/desmontarla y colocarla en la ranura de la Raspberry Pi 4 para arrancar desde ella.
También podemos grabar la imagen usando el programa Raspberry Pi Imager para actualizar la imagen dels sistema en una tarjeta microSD. Raspberry Pi Imager se puede descargar desde el sitio web oficial de Raspberry Pi Foundation. Está disponible para Windows 10, Mac y Ubuntu.
Cambiar la contraseña de root y las claves SSH
El uso de claves SSH predeterminadas es terrible y puede llevar a ser víctima de un ataque man-in-the-middle. Debido a esto, necesitaremos cambiar nuestras claves SSH predeterminadas y habilitar SSH para que se ejecute en el arranque para comunicarnos de manera segura con nuestra Raspberry Pi 4 Modelo B a través de SSH.
En la ventana de su terminal, ingrese los siguientes comandos para cambiar el directorio a la carpeta que contiene las claves SSH y reconfigurar el servidor.
~# cd /etc/ssh/
~# dpkg-reconfigure openssh-server
Eso debería crear nuevas claves SSH. A continuación, ejecutaremos algunos comandos para habilitar los niveles de ejecución para SSH y permitirnos iniciar el servicio en el arranque para que podamos iniciar sesión de forma remota.
~# update-rc.d -f ssh remove
~# update-rc.d -f ssh defaults
~# nano /etc/ssh/sshd_config
En la ventana nano que se abre, asegúrese de que "PermitRootLogin" no esté marcado para permitir el inicio de sesión de root. Una vez hecho esto, puede presionar Control-x para salir de la ventana nano después de aplicar los cambios.
A continuación, escriba sudo service ssh restart para aplicar estos cambios. Finalmente, escriba update-rc.d -f ssh enable 2 3 4 5 para habilitar SSH en el arranque con la configuración que hemos aplicado.
~# sudo service ssh restart
~# update-rc.d -f ssh enable 2 3 4 5
Finalmente, necesitaremos cambiar la contraseña de root de toor. Para hacer esto, escriba passwd root y seleccione una nueva contraseña.
~# passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Ahora, nuestra Pi debería actualizarse, actualizarse y tener una contraseña y claves SSH únicas. Esto evitará que sea objetivo de herramientas como Rpi-hunter.
Poner en modo monitor la tarjeta interna Wifi
A continuación, vamos a poner nuestra tarjeta en modo de monitor inalámbrico, lo que nos permitirá hacer un par de cosas útiles, como capturar handshake de WPA y escuchar el tráfico de la red. La forma en que haremos esto es creando una interfaz de monitor, en lugar de llamar a airmon-ng como de costumbre. Esto se debe a que usaremos el parche Nexmon, una actualización de firmware que permite poner la tarjeta interna de la Pi en modo monitor. Para usarlo, abra una ventana de terminal y escriba los siguientes comandos.
~# iw phy `iw dev wlan0 info | gawk '/wiphy/ {printf "phy" $2}'` interface add mon0 type monitor
~# ifconfig mon0 up
~# ifconfig
Ahora debería ver una nueva interfaz llamada "mon0" que está en modo monitor y lista para usarse. Si esto no funcionó, puede probar estos comandos en su lugar.
~# sudo iw phy phy0 interface add mon0 type monitor
~# ifconfig mon0 up
~# ifconfig
Ahora, para probar la tarjeta, podemos usar airodump-ng para ver si está funcionando y recopilar información sobre las redes cercanas. Escriba lo siguiente y debería ver que las redes Wi-Fi cercanas comienzan a aparecer.
~ # airodump-ng mon0
También podemos ejecutar una prueba de inyección de paquetes usando el siguiente comando.
~ # aireplay-ng --test mon0
Si ve una prueba exitosa en su pantalla, ¡está funcionando! Tienes una interfaz de modo de monitor en su Raspberry Pi.
App's para Android para controlar la RaspBerry
Acceso remotamente vía SSH, controlar temperatura, procesos, actividad, uso, etc.
No hay comentarios:
Publicar un comentario