El Raspberry Pi es un dispositivo sorprendentemente versátil, más aún con las capacidades inalámbricas integradas en los modelos más recientes. Este pequeño aparato puede sustituir a una variedad de dispositivos más costosos, incluyendo un router.
Al convertir tu Raspberry Pi en un punto de acceso inalámbrico, efectivamente lo transformas en un router. Aunque no es el más potente, definitivamente cumple su función, y el proyecto resulta ser bastante entretenido.
Cómo Utilizar tu Raspberry Pi como Punto de Acceso Inalámbrico
En este proyecto, vamos a sumergirnos un poco en la línea de comandos, pero no es realmente complicado. Básicamente, usaremos Raspbian e instalaremos un par de paquetes que permiten al Pi realizar funciones similares a las de un router, como asignar direcciones IP a los dispositivos que se conecten a él.
Paso 1: Instalar y Actualizar Raspbian
Consulta nuestra guía completa sobre cómo instalar Raspbian para obtener detalles. Luego, conecta todo, accede al terminal y busca actualizaciones y mejoras:
sudo apt-get update
sudo apt-get upgrade
Si hay una actualización disponible, es recomendable reiniciar con sudo reboot
.
Paso 2: Instalar hostapd y dnsmasq
Estos son los dos programas que utilizaremos para convertir tu Raspberry Pi en un punto de acceso inalámbrico. Para instalarlos, introduce estos comandos en el terminal:
sudo apt-get install hostapd
sudo apt-get install dnsmasq
En ambos casos, deberás confirmar con y
para continuar. hostapd
permite crear un hotspot inalámbrico con un Raspberry Pi, y dnsmasq
es un servidor DHCP y DNS fácil de usar.
Antes de editar los archivos de configuración de estos programas, vamos a desactivarlos:
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
Paso 3: Configurar una IP Estática para la Interfaz wlan0
Asumiendo que estamos utilizando las direcciones IP estándar de una red doméstica, como 192.168.###.###, asignaremos la dirección IP 192.168.0.10 a la interfaz wlan0 editando el archivo de configuración dhcpcd. Comienza la edición con este comando:
sudo nano /etc/dhcpcd.conf
Al final del archivo, añade las siguientes líneas:
interface wlan0
static ip_address=192.168.0.10/24
denyinterfaces eth0
denyinterfaces wlan0
(Las últimas dos líneas son necesarias para que funcione nuestro puente, pero eso se explicará en el Paso 8).
Después, presiona Ctrl+X, luego Y, y Enter para guardar el archivo y salir del editor.
Paso 4: Configurar el Servidor DHCP (dnsmasq)
Usaremos dnsmasq
como nuestro servidor DHCP. La función de un servidor DHCP es distribuir dinámicamente parámetros de configuración de red, como direcciones IP, para interfaces y servicios.
El archivo de configuración por defecto de dnsmasq
contiene mucha información innecesaria, por lo que es más fácil empezar desde cero. Renombra el archivo de configuración por defecto y escribe uno nuevo:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Ahora estarás editando un nuevo archivo, y con el viejo renombrado, este será el archivo de configuración que dnsmasq
utilizará. Escribe estas líneas en tu nuevo archivo de configuración:
interface=wlan0
dhcp-range=192.168.0.11,192.168.0.30,255.255.255.0,24h
Las líneas añadidas significan que proporcionaremos direcciones IP entre 192.168.0.11 y 192.168.0.30 para la interfaz wlan0.
Paso 5: Configurar el Software del Punto de Acceso (hostapd)
Otro archivo de configuración a editar es el de hostapd
. Ábrelo así:
sudo nano /etc/hostapd/hostapd.conf
Est
o debería crear un archivo completamente nuevo. Escribe lo siguiente:
interface=wlan0
bridge=br0
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=NETWORK
wpa_passphrase=PASSWORD
Ten en cuenta que donde dice “NETWORK” y “PASSWORD”, deberás elegir tus propios nombres. Así es como te unirás a la red del Pi desde otros dispositivos.
Aún tenemos que mostrarle al sistema la ubicación del archivo de configuración:
sudo nano /etc/default/hostapd
En este archivo, busca la línea que dice #DAEMON_CONF=""
– elimina ese #
y pon la ruta a nuestro archivo de configuración en las comillas, para que quede así:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
El #
evita que la línea se lea como código, por lo que básicamente estás activando esta línea aquí mientras le das la ruta correcta a nuestro archivo de configuración.
Paso 6: Configurar el Reenvío de Tráfico
La idea aquí es que cuando te conectes a tu Pi, este reenviará el tráfico a través de tu cable Ethernet. Por lo tanto, vamos a configurar que wlan0 reenvíe a través del cable Ethernet a tu módem. Esto implica editar otro archivo de configuración:
sudo nano /etc/sysctl.conf
Ahora encuentra esta línea:
#net.ipv4.ip_forward=1
…y elimina el “#”, dejando el resto, para que solo lea:
net.ipv4.ip_forward=1
Paso 7: Añadir una Nueva Regla de iptables
A continuación, vamos a añadir el enmascaramiento IP para el tráfico saliente en eth0 utilizando iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
…y guarda la nueva regla de iptables:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Para cargar la regla al iniciar, necesitamos editar el archivo /etc/rc.local
y añadir la siguiente línea justo arriba de la línea exit 0
:
iptables-restore < /etc/iptables.ipv4.nat
Paso 8: Habilitar la Conexión a Internet
Ahora el Raspberry Pi funciona como un punto de acceso al que otros dispositivos pueden conectarse. Sin embargo, esos dispositivos aún no pueden usar el Pi para acceder a internet. Para hacer esto posible, necesitamos construir un puente que pase todo el tráfico entre las interfaces wlan0 y eth0.
Para construir el puente, instalemos un paquete más:
sudo apt-get install bridge-utils
Estamos listos para añadir un nuevo puente (llamado br0):
sudo brctl addbr br0
Luego, conectaremos la interfaz eth0 a nuestro puente:
sudo brctl addif br0 eth0
Finalmente, vamos a editar el archivo de interfaces:
sudo nano /etc/network/interfaces
…y añade las siguientes líneas al final del archivo:
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
Paso 9: Reiniciar
Ahora que todo está listo, reinicia con sudo reboot
.
Ahora tu Pi debería funcionar como un punto de acceso inalámbrico. Pruébalo conectándote desde otro dispositivo y buscando el nombre de la red que usaste en el paso 5.