Manual para configurar Raspberry Pi como un router Wi-Fi

Manual para configurar Raspberry Pi como un router Wi-Fi

Rubén Velasco

Un Raspberry Pi es un mini-ordenador que permite a los usuarios hacer prácticamente cualquier cosa. Podemos utilizarlo desde como un servidor hasta como una completa videoconsola retro, todo según el sistema operativo que utilicemos y las configuraciones que apliquemos. En este tutorial os vamos a enseñar cómo configurar un Raspberry Pi para funcionar como un router Wi-Fi.

Pasos iniciales

Lo primero que debemos hacer es instalar el sistema operativo en nuestro Raspberry Pi. En nuestro caso hemos utilizado la última versión de Raspbian, aunque se puede utilizar cualquier otro sistema (aunque los comandos podrían variar).

Una vez instalado el sistema operativo en nuestro micro SD lo ejecutamos por primera vez para completar la instalación y configuración del mismo (por ejemplo, en el caso de Raspbian completar el asistente de «sudo raspi-config«).

Una vez configurado y con el dispositivo funcionando y conectado a Internet mediante RJ-45 actualizamos las fuentes de software, las aplicaciones y el sistema tecleando:


sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Una vez con nuestro sistema actualizado podemos seguir con el tutorial para configurar nuestro Raspberry Pi para funcionar como un router.

Comprobar que nuestra tarjeta USB Wi-Fi es detectada y funciona en modo AP

Lo primero que haremos será comprobar que el dispositivo detecta la tarjeta. Para ello tecleamos:

lsusb

Y nos debería aparecer allí listada. Una vez que aparece ejecutaremos otro comando para comprobar que la tarjeta Wi-Fi puede funcionar en modo AP:

iw list

Si en el resultado que nos aparece en pantalla podemos ver la línea: Mode: AP, la tarjeta es compatible para realizar esta configuración, de lo contrario, debemos buscar otra tarjeta cuyo chipset permita configurarla como punto de acceso, o AP.

Instalar software necesario y dependencias

La mayor parte del software necesario viene por defecto instalado en Raspbian, aunque los únicos que podrían darnos problemas son el servidor DHCP y el servicio de creación de puntos de acceso, que podemos instalar manualmente (en caso de no estar disponible) tecleando:

sudo apt-get install isc-dhcp-server hostapd

Una vez llegados a este punto podemos reiniciar nuestro Raspberry para empezar con la configuración.

Configuración

Todas las configuraciones se realizan desde el terminal, a modo texto. Nosotros vamos a utilizar el editor nano y siempre antes de editar algún archivo crearemos una copia del mismo de manera que si ocurre algún error lo podamos restaurar.

Configurar el servidor DHCP

Lo primero que configuraremos será el servidor DHCP. Para ello editaremos el siguiente archivo:


sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
sudo nano /etc/dhcp/dhcpd.conf

En este archivo debemos buscar una serie de líneas. Las siguientes están por defecto sin comentar, las comentamos con una almohadilla # delante de manera que dejen de estar habilitadas quedando de la siguiente manera:


#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Buscaremos el elemento #authoritative; que por defecto estará comentado y lo descomentamos para activarlo, quedando:

authoritative;

Para finalizar configuraremos la red en la que funcionará el servidor DHCP (en nuestro ejemplo en la red 192.168.2.0). Para ello nos situamos al final del documento y añadimos:


subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.30;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Guardamos los cambios y cerramos el archivo.

Abriremos un nuevo archivo de configuración del servidor, tecleando:


sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.orig
sudo nano /etc/default/isc-dhcp-server

En este documento buscaremos (al final) la línea INTERFACES=»» y la cambiamos por:

INTERFACES="wlan0"

El servidor DHCP ya está configurado. Seguimos con el tutorial.

Configurar la conexión WLAN y Ethernet

Lo primero que haremos será desconectar la tarjeta Wi-Fi. Para ello tecleamos:

sudo ifdown wlan0

A continuación abriremos el fichero «interfaces»:


sudo cp /etc/network/interfaces /etc/network/interfaces.orig
sudo nano /etc/network/interfaces

Y lo configuraremos de la siguiente manera:


auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0

Comentamos o borramos las demás líneas. Guardamos los cambios y cerramos el documento. Para aplicar los cambios al momento debemos teclear:

sudo ifconfig wlan0 192.168.2.1

Configurar el punto de acceso

Una vez más, editaremos otro fichero tecleando:


sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
sudo nano /etc/hostapd/hostapd.conf

Y en este archivo borramos lo que haya (si hay algo) y pegamos:


interface=wlan0
ssid=RaspiAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podemos cambiar tanto el SSID por el nombre que queramos dar a nuestra red como el canal en channel y la wpa_passphrase con la contraseña, en texto plano, que queramos utilizar para conectarnos.

Para finalizar con la configuración abrimos un nuevo archivo de configuración tecleando:


sudo cp /etc/default/hostapd /etc/default/hostapd.orig
sudo nano /etc/default/hostapd

Descomentamos y cambiamos la línea #DAEMON_CONF=»» por:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Guardamos y cerramos el archivo para finalizar. Ya casi hemos finalizado, sólo quedan unos ajustes menores y configurar Raspbian para que todo esto se ejecute al inicio del sistema de forma automática.

Configuraciones finales

Aunque nuestro router-punto de acceso ya está configurado y es funcional, no podemos conectarnos a Internet a través de él ni se ejecutan las configuraciones de forma automática al iniciar. Para que esto funcione debemos seguir unos últimos pasos que listamos a continuación.

Configurar reenvío de paquetes

Para que Raspberry Pi reenvíe los paquetes desde él mismo hasta el router para poder salir a Internet debemos configurar los siguientes elementos:

Abrimos y editamos el fichero sysctl:


sudo cp /etc/sysctl.conf /etc/sysctl.conf.orig
sudo nano /etc/sysctl.conf

En este documento buscaremos la línea «# net.ipv4.ip_forward=1» y la descomentaremos, quedando:

net.ipv4.ip_forward=1

Guardamos y cerramos el documento. Para que los cambios tengan efecto al momento teclearemos:

sudo sysctl -p /etc/sysctl.conf

Habilitamos la NAT tecleando:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Y guardamos las reglas iptables para que los cambios persistan (instalamos el siguiente paquete: sudo apt-get install iptables-persistent y seguimos el asistente).

Configurar arranque automático

Para que el punto de acceso y el servidor DHCP arranquen de forma automática con nuestro dispositivo debemos indicarlo específicamente y habilitar los servicios para que se activen junto a Raspbian. Para ello desde el terminal tecleamos:


sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Último ajuste

Antes de finalizar, hay un fichero de WPAsupplicant que puede dar problemas en algunas ocasiones, por lo que para asegurarnos de que esto no ocurre lo movemos a una ruta segura tecleando:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service /home/pi

Nuestro Raspberry Pi ya funciona como un router Wi-Fi

Una vez llegados a este punto ya podemos reiniciar nuestro Raspberry Pi. Cuando este vuelva a arrancar automáticamente creará el punto de acceso, podrá asignar direcciones IP a los hosts que se conecten a él y enrutará todo el tráfico procedente de la tarjeta Wi-Fi a través de la tarjeta de red hacia el router, siempre y cuando estemos conectados a uno.