Convierte Tu Raspberry Pi en un Punto de Acceso Wi-Fi

La mayoría de los modelos de Raspberry Pi tienen un puerto Ethernet y un adaptador Wi-Fi, lo que los convierte en el dispositivo perfecto para transformarse en un punto de acceso Wi-Fi. Ya sea que hagas esto porque aún no tienes una red Wi-Fi para crear una red separada en tu LAN o por otras razones, te mostraré aquí los pasos para que puedas lograrlo.

Una vez que el Raspberry Pi esté conectado a la red local con un cable Ethernet, el adaptador Wi-Fi se puede usar para crear un punto de acceso para otros dispositivos inalámbricos. El administrador de red puede hacerlo de forma nativa en Bookworm y Hostapd se puede usar en versiones anteriores.

Hay algunos requisitos antes de empezar y algunas cosas que debes entender sobre la configuración de la red, así que comenzaré con esto, y luego te daré todos los pasos para que tu punto de acceso funcione rápidamente.

Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!

Comenzando: Teoría y Requisitos de la Red

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Antes de pasar a los pasos prácticos, necesito asegurarme de que estás al día con algunas palabras clave y abreviaturas de la red. Si estás acostumbrado a este tipo de proyectos, no es tan complicado, pero por si acaso, definamos algunas cosas primero.

Teoría de la red

Una red típica en casa se ve así:

Las direcciones IP mencionadas aquí son las de mi red, así que es solo un ejemplo, pero los principales elementos en la mayoría de las redes son los mismos.

Un router es configurado por tu proveedor de servicios de Internet. Es el punto de conexión a Internet que generalmente entregará direcciones IP a los otros dispositivos en la red (servicio DHCP), y hará el papel de servidor DNS (para traducir un nombre de dominio como “raspberrytips.com” a una dirección IP).

La mayoría de los routers de Internet ahora proporcionan estos servicios para dispositivos inalámbricos (Wi-Fi) y con cable (Ethernet). Tal vez no sea tu caso, o quizás no desees usar estos servicios para dispositivos inalámbricos y prefieras crear tu propia configuración y seguridad.

De todas formas, el objetivo aquí es insertar una Raspberry Pi en medio, para obtener algo como esto en su lugar:

La Raspberry Pi se conectará directamente al router de Internet (usando un cable RJ45 en un puerto Ethernet libre), y su interfaz Wi-Fi proporcionará una nueva red inalámbrica (SSID) disponible para otros dispositivos a los que conectarse (como el portátil en mi esquema).

Los dispositivos inalámbricos que se conecten al punto de acceso del Raspberry Pi obtendrán direcciones IP diferentes (una subred diferente), y el nivel de seguridad para esta red y el enrutamiento entre las dos subredes puede ser tan bajo o estricto como tú desees.

Requisitos previos

Aquí están los requisitos previos para construir esto en tu red doméstica:

  • Modelo de Raspberry Pi: Solo asegúrate de que tenga un adaptador de red Wi-Fi y Ethernet, así que evita el Raspberry Pi Zero (1 o 2) y los modelos antiguos, pero un Raspberry 3, 4 o 400 debería estar bien.
    No usaremos mucho de la CPU o la memoria, así que realmente no necesitamos nada sofisticado.
  • Raspberry Pi OS: Te recomiendo el Raspberry Pi OS, para que puedas seguir mis instrucciones y no tengas problemas de compatibilidad al seguirlas, pero cualquier versión está bien (Lite es suficiente, no necesitamos una GUI).
    La mayoría de las distribuciones de Linux deberían funcionar, así que si ya tienes otra cosa instalada, siéntete libre de probarla.
  • Configuración de red: Una vez que el sistema esté instalado, asegúrate de configurar solo la interfaz Ethernet, no uses Wi-Fi para el acceso a Internet, tienes que estar conectado a Internet con un cable RJ45.
  • Luego, como siempre, haz las actualizaciones del sistema con:
    sudo apt update
    sudo apt upgrade -y

Siguiendo estos sencillos requisitos previos, deberías estar listo para comenzar.

Si necesitas más ayuda para la instalación y configuración del sistema (especialmente en una edición Lite de Raspberry Pi OS), puedes leer este artículo con todos los detalles: Install Raspberry Pi OS on Raspberry Pi (Illustrated guide).

También te recomiendo configurar SSH en tu Pi para que puedas seguir las instrucciones desde tu computadora, y luego copiar/pegar los comandos y las líneas de configuración a través de tu cliente SSH en lugar de escribirlas directamente en el Pi.

Tutorial relacionado: Get Started with Raspberry Pi 400: A Beginner’s Guide (en inglés)

Habilitar la interfaz Wi-Fi

Si estás utilizando un Raspberry Pi OS nueva, es posible que primero necesites configurar el país del Wi-Fi.
El Wi-Fi está deshabilitado hasta que eso se haga.

Cuando accedas a Raspberry Pi OS vía SSH después del primer arranque, probablemente recibirás un mensaje de advertencia como este:

Vamos a arreglarlo antes de continuar:

  • Abrir raspi-config con este comando:
    sudo raspi-config
  • Ir a «Localisation Options» > «WLAN country»:
  • Seleccionar tu país de la lista.
  • Confirmar y salir.

Desde entonces, la interfaz Wi-Fi estará habilitada, y ahora podemos usarla para nuestro punto de acceso.

¿Network Manager o a la antigua?

Si estás usando Raspberry Pi Bookworm (2023) o cualquier otra distribución reciente que use NetworkManager, los pasos para habilitar un punto de acceso son bastante diferentes.

Así que te escribí dos secciones completamente diferentes, para cada caso. Asegúrate de leer solo la que se aplica a ti y a tu sistema. Aquí está la tabla de contenido para que accedas rápidamente:

Si no estás seguro de qué versión está instalada, puedes seguir este tutorial que explica cómo identificar tu sistema operativo actual (en inglés).

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Espera, ¡tengo algunas recomendaciones para ti!

Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.

Una caja silenciosa y práctica Un SSD de alto rendimiento para potenciar tu Pi Una pantalla genial para liberar el televisor Un teclado dedicado con touchpad

Configurar un punto de acceso en Raspberry Pi OS Bookworm

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

La última versión de Raspberry Pi OS ahora usa Network Manager, por lo que ya no necesitas dnsmasq, hostapd y otros servicios que se usaban antes para crear un punto de acceso.

El proceso para habilitar un punto de acceso con Network Manager es más sencillo, pero requiere algunas líneas de comando que no puedes adivinar sin este tutorial.
Aquí están los pasos principales que debes seguir:

  • Comienzar habilitando la interfaz Wi-Fi en Network Manager con:
    sudo nmcli con add con-name hotspot ifname wlan0 type wifi ssid "RaspberryTips-Wifi"

    Puedes reemplazar el último parámetro con el SSID que prefieras, ese será el nombre del punto de acceso Wi-Fi.
    También puedes reemplazar “hotspot” por cualquier otra cosa, es el nombre de la configuración. Solo asegúrate de cambiarlo también en los próximos comandos.
  • Luego, configurar la seguridad del punto de acceso y la contraseña, por ejemplo:
    sudo nmcli con modify hotspot wifi-sec.key-mgmt wpa-psk
    sudo nmcli con modify hotspot wifi-sec.psk "raspberry"

    El último parámetro es tu contraseña Wi-Fi, asegúrate de usar algo más complicado :-).
  • Y finalmente, configurar Network Manager para que funcione en modo punto de acceso, con direcciones IP compartidas en esta interfaz:
    sudo nmcli con modify hotspot 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared

Si todo va como se espera, tu punto de acceso debería estar activo y visible unos segundos después. Puedes intentar conectarte a él desde otro ordenador o tu teléfono:

Me tomó algo de tiempo encontrar la secuencia de comandos correcta para configurarlo, pero una vez que los tienes, es realmente simple. Para un uso doméstico típico, no hay nada más que hacer.

Una vez configurado el punto de acceso, también puedes usar “nmtui” para editar tu configuración de red (en inglés), como mejorar la seguridad, por ejemplo. Aquí está el comando para abrir esta herramienta:
sudo nmtui

Allí, puedes ver y editar tu configuración fácilmente, sin tener que encontrar todos los parámetros de los comandos:

Si experimentas algún problema, verifica los registros con:
journalctl
Puedes usar grep para filtrar la salida:
journalctl | grep hotspot
journalctl | grep wifi
etc.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Configurar un punto de acceso en Raspberry Pi OS Bullseye y versiones anteriores

Ahora, si aún estás usando Raspberry Pi OS Bullseye o un sistema que no viene con Network Manager, el proceso de configurar un punto de acceso es un poco más tedioso. Pero lo lograremos, no te preocupes, solo sigue estos pasos a tu ritmo.

Instalar los servicios para crear un punto de acceso

Principalmente utilizaremos dos nuevos servicios en nuestro router:

  • Hostapd: para crear el punto de acceso inalámbrico (SSID, contraseña Wi-Fi, …).
  • DNSmasq: para reenviar las solicitudes DNS a otro servidor DNS.

Comienza por instalar los paquetes necesarios:
sudo apt install hostapd dnsmasq

Eso es todo, ahora podemos pasar a la parte de configuración.

Configurar Hostapd

Ahora crearás un archivo de configuración para hostapd con los ajustes para tu nueva red inalámbrica:

  • Crear el archivo de configuración con Nano:
    sudo nano /etc/hostapd/hostapd.conf
    ¿No tienes idea de qué es Nano, o necesitas un repaso sobre cómo usarlo? Revisa este artículo.
  • El archivo probablemente no existe, así que puedes directamente copiar y pegar estas líneas en él:
    interface=wlan0
    driver=nl80211
    ssid=RaspberryTips-Wifi
    hw_mode=g
    channel=6
    wmm_enabled=0
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

    Considera esto como una plantilla que puedes copiar/pegar para empezar. Desde allí, cambia al menos la línea con la passphrase y cualquier otra cosa para que se ajuste a tus necesidades (por ejemplo, usar otro canal, nivel de seguridad o SSID).
    Las opciones son bastante autoexplicativas, pero puedes revisar este archivo predeterminado para más detalles, especialmente si necesitas configurar algo específico o más seguro.
  • Guardar & salir (CTRL+O, CTRL+X)

Hostapd no se iniciará automáticamente en el arranque (lo cual es necesario para que tu punto de acceso funcione 24/7). Aquí te explico cómo arreglarlo:

  • Editar el archivo de configuración del servicio por defecto:
    sudo nano /etc/default/hostapd
  • Agregar esta línea al final para indicarle dónde encontrar tu archivo de configuración:
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
  • Guardar & salir
  • Luego habilitar el servicio con:
    sudo systemctl unmask hostapd
    sudo systemctl enable hostapd

No lo iniciaremos aún, ya que todavía necesitamos configurar el servidor DHCP y DNS.

Nota: para propósitos de prueba, puedes crear varios archivos de configuración en /etc/hostapd si es necesario, y solo necesitas cambiar esta línea en /etc/default/hostapd para indicar al servicio qué configuración cargar la próxima vez.

Configurar DNSMasq

DNSMasq es un reenviador de DNS que usaremos para nuestra nueva red. En lugar de instalar un servidor DNS completo, simplemente redirigiremos todo al servidor DNS actual en la red Ethernet (muy probablemente tu router de Internet).

Si quieres configurar un servidor DNS completo en tu Raspberry Pi (en inglés), puedes revisar este artículo relacionado, pero mantendremos las cosas simples por ahora.

Aquí tienes cómo configurar DNSmasq:

  • Abrir el archivo de configuración:
    sudo nano /etc/dnsmasq.conf
  • Pegar estas líneas al final (CTRL+END te llevará allí, es un archivo muy largo):
    interface=wlan0
    bind-dynamic
    domain-needed
    bogus-priv
    dhcp-range=192.168.42.100,192.168.42.200,255.255.255.0,12h


    Nada que cambiar aquí excepto si planeas usar una subred diferente.La mía será 192.168.42.X, con 192.168.42.254 para la Raspberry Pi, y un DHCP entregando IP entre 42.100 y 42.200. Ajusta esto para adaptarlo a tus objetivos si es necesario.
  • Guardar y salir (CTRL+O, CTRL+X)

Consultar los comentarios en el archivo mismo para entender mejor lo que cada opción significa, o para agregar otras opciones si es necesario para tu configuración de red (usar CTRL+W para encontrar cualquier palabra en el archivo).

Configurar el servidor DHCP

El último archivo de configuración a cambiar es el servidor DHCP. Configurarlo en la misma subred:

  • Abrir el archivo de configuración:
    sudo nano /etc/dhcpcd.conf
  • Desplazar hasta el final del archivo y pegar estas líneas:
    nohook wpa_supplicant
    interface wlan0
    static ip_address=192.168.42.10/24
    static routers=192.168.42.1

  • Guardar y salir

Estamos casi listos para la primera prueba.

Habilitar el reenvío de IP

Si tienes varias tarjetas de red, el comportamiento predeterminado en Linux es aislarlas.

En nuestra configuración, esto significa que las redes de las interfaces inalámbrica y cableada no se comunican entre sí. Esto significa que un dispositivo conectado al punto de acceso Wi-Fi no puede alcanzar el router de Internet y mucho menos acceder a Internet.

Supongo que para la mayoría de ustedes, la comunicación entre la LAN y el Wi-Fi necesita estar habilitada.
Así es como permitir esto:

  • Abrir este archivo:
    sudo nano /etc/sysctl.conf
  • Encontrar esta línea (primera página):
    #net.ipv4.ip_forward=1
  • Y descomentarla, eliminando el símbolo “#” al principio de la línea:
    net.ipv4.ip_forward=1
  • Guardar & salir

Ahora puedes reiniciar para un primer intento:
sudo reboot

Una vez que esto esté completo, deberías poder ver tu punto de acceso Raspberry Pi en la lista de redes. Puedes probar con cualquier smartphone o computadora.

En tu lista de redes Wi-Fi, deberías ver algo como esto (el SSID que elegí en mi archivo hostapd.conf):
wireless network

Puedes conectarte a él y comprobar que todo funciona como se espera.
Si mantuviste la misma configuración de red que yo, deberías obtener una IP en la subred 192.168.42.0/24.

No tendrás conexión a Internet por ahora ya que necesitamos configurar el firewall para permitir el tráfico de Internet.

Solucionar problemas

Si no funciona, verifica el estado de hostapd con:
sudo systemctl status hostapd
O el archivo syslog para más detalles, por ejemplo:
tail -n100 /var/log/syslog
more /var/log/syslog | grep hostapd

Por ejemplo, si la frase de contraseña es demasiado corta, verás un error como éste:

Ajusta la configuración según el mensaje de error y vuelve a intentarlo.

Compartir acceso a Internet

Si quieres permitir el acceso a Internet para los dispositivos conectados al punto de acceso, es posible reenviar el tráfico al router principal, utilizando el puerto Ethernet. Puedes redirigir todo, o abrirlo solo para dispositivos específicos, destinos o protocolos (configuración avanzada).

Redirigir todo

La forma más fácil de permitir el acceso a Internet es escribir este comando, diciendo al firewall que redirija todo a la puerta de enlace Ethernet:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Te recomiendo hacer esto de todos modos en un primer intento solo para asegurarte de que todo funciona. Ajústalo más tarde para reglas de firewall más estrictas solo si esto está funcionando. Si no funciona con esto, necesitas solucionar el problema primero.

La regla no permanecerá activa después de un reinicio, lo cual es genial para un primer intento pero no es óptimo para mantenerla funcionando para siempre.

Si está funcionando y quieres mantenerla así, necesitas instalar iptables-persistent con:
sudo apt install iptables-persistent

Guardará automáticamente tus reglas actuales cuando lo instales, pero tienes que ejecutar este comando cada vez que cambies algo después de eso:
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Ahora estoy conectado, con acceso completo a Internet, incluso después de un reinicio de la Raspberry Pi:

Configuración avanzada

Desde aquí, puedes usar iptables para establecer reglas tan estrictas como desees o necesites. Tal vez un dispositivo tendrá acceso a Internet pero no otros, tal vez la navegación web está permitida (puertos 80 y 443) pero no los correos electrónicos o el acceso a dispositivos locales (por ejemplo, para un punto de acceso de invitados).

Depende de ti configurar el nivel de seguridad que quieres y necesitas. Para una red doméstica, probablemente sea más fácil simplemente enrutar todo (tener una red diferente para tu red inalámbrica ya es un nivel de seguridad), pero en empresas, lo más probable es que necesites configurar algo más fuerte.

Ya tengo un artículo donde voy un poco más allá sobre la configuración del firewall con reglas avanzadas, puedes encontrarlo aquí: How to use Raspberry Pi as a Wireless Router with Firewall?

Ya hiciste la primera parte con el punto de acceso, así que omite las primeras partes y comienza a leer donde explico los conceptos del firewall.

Tengo otros temas sobre seguridad de la red en este sitio web que te podrían interesar en este caso:

Cuando estés preparado, aquí tienes un atajo para ti:

Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.

Publicaciones Similares