Cómo usar tu Raspberry Pi como punto de acceso inalámbrico
La Raspberry Pi es un cacharrito que puede hacer mucho, especialmente ahora que el modelo Raspberry Pi 3 viene con capacidades inalámbricas a bordo. Puede sustituir a una tonelada de dispositivos diferentes (y más caros), incluyendo un router. Si conviertes tu Raspberry Pi en un punto de acceso inalámbrico, puedes hacer que actúe como un router. No es la cosa más poderosa del mundo, pero funciona, y el proyecto es muy divertido y con el que aprenderás muchas cosas básicas que te pueden servir después para otros proyectos con tu Raspberry Pi.
Cómo usar una Raspberry Pi como punto de acceso inalámbrico
Vamos a entrar un poco en la línea de comandos, pero este proyecto no es tan difícil. Todo lo que realmente estamos haciendo es usar Raspbian e instalar un par de paquetes que le dan a la Pi la capacidad de hacer cosas similares a un router como asignar direcciones IP a los dispositivos que se conectan a él.
Instalar y actualizar Raspbian
Conectate a tu Raspberry Pi y vamos a actualizar su sistema operativo, comprueba si hay actualizaciones y mejoras:
sudo apt-get update
sudo apt-obtener upgrade
Si obtienes una actualización, es una buena idea reiniciar con: sudo reboot
Instalar hostapd y dnsmasq
Estos son los dos programas que vamos a usar para convertir tu Raspberry Pi en un punto de acceso inalámbrico. Para cargarlos en la Raspberry, simplemente escribe estas líneas en el terminal:
sudo apt-get install hostapd
sudo apt-get install dnsmasq
Ambas veces, tendrás que pulsar y para continuar. hostapd es el paquete que nos permite crear un hotspot inalámbrico usando una Raspberry Pi, y dnsmasq es un servidor DHCP y DNS fácil de usar.
Vamos a editar los archivos de configuración de los programas en un momento, así que vamos a apagar los programas antes de que empecemos a probar:
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
Configurar una IP estática para la interfaz wlan0
Para nuestros propósitos aquí, asumo que estamos usando las direcciones IP estándar de una red doméstica, como 192.168.####.####. Dada esa suposición, asignemos la dirección IP 192.168.0.10 al wlan0
editando el archivo de configuración dhcpcd. Comienza a editar con este comando:
sudo nano /etc/dhcpcd.conf
Ahora que estás en el archivo, agrega las siguientes líneas al final:
interface wlan0
static ip_address=192.168.0.10/24
denyinterfaces eth0
denyinterfaces wlan0
(Las dos últimas líneas son necesarias para que nuestro puente funcione, pero más sobre eso en el
Paso 8.)
Después de eso, pulsa Ctrl+X, luego Y, luego Enter para guardar el archivo y salir del editor.
Configurar el servidor DHCP (dnsmasq)
Vamos a usar dnsmasq como nuestro servidor DHCP. La idea de un servidor DHCP es distribuir dinámicamente los parámetros de configuración de la red, como las direcciones IP, para interfaces y servicios.
El archivo de configuración por defecto de dnsmasq contiene mucha información innecesaria, así que es más fácil para nosotros empezar de cero. Vamos a renombrar el archivo de configuración por defecto y
escribir 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 antiguo renombrado, este es el archivo de configuración que usará dnsmasq. 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 que hemos añadido significan que vamos a proporcionar direcciones IP entre 192.168.0.11 y 192.168.0.30 para la interfaz wlan0.
Configurar el software host del punto de acceso (hostapd)
Otro archivo de configuración. Esta vez, estamos jugando con el archivo de configuración de Hostapd. Ábrelo con:
sudo nano /etc/hostapd/hostapd.conf
Esto debería crear un nuevo archivo. Escribe esto:
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
Nótese que donde tengo «NETWORK» y «PASSWORD», debes inventar tus propios nombres. Así es como te unirás a la red de la Pi desde otros dispositivos.
Todavía tenemos que mostrar al sistema la ubicación del archivo de configuración:
sudo nano /etc/default/hostapd
En este archivo, busque la línea que dice #DAEMON_CONF=»»» – borre ese # y ponga la ruta a nuestro archivo de configuración en las comillas, para que se vea así:
DAEMON_CONF=»/etc/hostapd/hostapd.conf»
El # evita que la línea sea leída como código, así que básicamente estás dando vida a esta línea aquí mientras le das la ruta correcta a nuestro archivo de configuración.
Configurar el reenvío de tráfico
La idea es que cuando te conectes a tu Pi, reenviará el tráfico a través de tu cable Ethernet. Así que vamos a tener wlan0 adelante vía cable Ethernet a tu módem. Esto implica la edición de otro archivo de configuración:
sudo nano /etc/sysctl.conf
Ahora encuentra esta línea:
#net.ipv4.ip_forward=1
…y borra el «#» – dejando el resto, así que sólo lee:
net.ipv4.ip_forward=1
Añadir una nueva regla iptables
A continuación, vamos a añadir IP enmascarando el tráfico saliente en eth0 usando iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
y guardar la nueva regla de iptables:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Para cargar la regla en el arranque, necesitamos editar el fichero /etc/rc.local y añadir lo siguiente justo encima de la línea de salida 0:
iptables-restore < /etc/iptables.ipv4.nat
Habilitar la conexión a Internet
Ahora la Raspberry Pi está actuando como un punto de acceso al que pueden conectarse otros dispositivos. Sin embargo, esos dispositivos no pueden usar la Pi para acceder a Internet todavía. Para que esto sea posible, necesitamos construir un puente que pase todo el tráfico entre las interfaces wlan0 y eth0.
Para construir el puente, vamos a instalar un paquete más:
sudo apt-get install bridge-utils
Estamos listos para añadir un nuevo puente (llamado br0):
sudo brctl addbr br0
A continuación, conectaremos la interfaz eth0 a nuestro puente:
sudo brctl addif br0 eth0 eth0
Por último, vamos a editar el archivo de interfaces:
sudo nano /etc/network/interfaces
y agrega las siguientes líneas al final del archivo:
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
Reiniciar
Ahora que estamos listos, reiniciemos con sudo reboot
Ahora tu Pi debería funcionar como un punto de acceso inalámbrico. Pruébalo saltando a otro dispositivo y buscando el nombre de red que utilizaste en el paso 5.