Cómo hacer de la Raspberry Pi B+ un Access Point
· Actualizado el
¿Tiene problemas con la red Wi-Fi de su router, ya que el mismo no da una cobertura total a su hogar u oficina? ¿Tienes una Raspberry Pi B+ y quiere expandir su red WI-FI, pero no sabe cómo hacerlo? ¿No tienes muchos conocimientos en redes, pero quieres aprender?

En este post encontrarás las respuestas de estas preguntas y más, en pasos muy sencillos y simples.
Precondiciones
- Tener acceso a internet por Ethernet (cable).
- Adaptador Wireless USB usado: EW-7811Un (se recomienda usar el RTL8192cu Chipset con antena para cubrir una mayor área, lograr una mayor transmisión de los datos y una comunicación más estable).
- Hardware usado: Raspberry Pi B+ (debería funcionar para cualquier familia de Raspberry Pi u otro hardware).
- Sistema Operativo usado: Raspbian.
Paso #1: Instalar el servidor DHCP
Únicamente se debe ejecutar estos simples comandos en la terminal de la Raspberry Pi:
# Actualizar la RPI
sudo apt-get update
# Instalar el servidor de DHCP
sudo apt-get install hostapd isc-dhcp-server
# Agregar en interfaces “wlan0” (interface por donde se va a transmitir la señal WI-FI)
sudo vim.tiny /etc/default/isc-dhcp-server
# Configuración del servidor DHCP
sudo vim.tiny /etc/dhcp/dhcpd.conf
Comentar (con el signo #) las líneas:
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
Descomentar (quitar el signo #) la línea:
authoritative;
Agregar al final del archivo anterior (dhcpd.conf) estas líneas (esto es importante, ya aquí se establece la subred, máscara, los DNS, el rango a usar por el DHCP, entre otras cosas):
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.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;
}
Paso #2: Configurar la interface “wlan0” con una Ip Estática
# Apagar la interface wlan0
sudo ifdown wlan0
sudo vim.tiny /etc/network/interfaces
Se comentan las líneas:
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
Y se agrega al final del archivo “interfaces” (se puede escoger una Ip con la respectiva máscara):
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
Ejecutar en terminal:
# Asignar inmediatamente la IP Estática
sudo ifconfig wlan0 192.168.42.1
Paso #3: Configurar el Punto de Acceso
sudo vim.tiny /etc/hostapd/hostapd.conf
Agregar a este archivo lo siguiente (en esta parte se define la interface a transmitir la señal WI-FI, el driver del transmisor, el nombre de la red WI-FI, la contraseña de la misma, protocolos de seguridad, entre otras cosas):
interface=wlan0
driver=rtl871xdrv
ssid=RaspberryPI
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Definirle a la RPI donde está este archivo de configuración:
sudo vim.tiny /etc/default/hostapd
Agregar al final:
# Buscar DAEMON_CONF y agregar:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Paso #4: Establecer el NAT (Network Address Translation)
# Descomentar la línea: net.ipv4.ip_forward=1
sudo vim.tiny /etc/sysctl.conf
# Activar el forwarding, permite que usuarios de una red externa
# acceder a una red privada por medio de una redirección
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# Ejecutar estos comandos para hacer la TRADUCCIÓN de la red
# entre el puerto eth0 (Ethernet) y el puerto wlan0 (wifi)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
# Para hacer esto automáticamente en el reinicio de la RPI:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
# Ejecutar en terminal
sudo vim.tiny /etc/network/interfaces
# Añadir al final archivo: up iptables-restore < /etc/iptables.ipv4.nat
Paso #5: Actualizar el hostapd (daemon para el Access Point y el servidor de autentificación)
# Descargar el hostapd
wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip
unzip adafruit_hostapd_14128.zip
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
sudo mv hostapd /usr/sbin
sudo chmod 755 /usr/sbin/hostapd
Paso #6: La primera prueba
# Con el siguiente comando, ya la señal WI-FI estaría disponible
# para conectarse desde un celular o computadora.
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
# Para que se ejecute automáticamente cuando la RPI inicia:
sudo service hostapd start
sudo service isc-dhcp-server start
# Comprobar los estados:
sudo service hostapd status
sudo service isc-dhcp-server status
# Para que inicie en el arranque:
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
Para ver el funcionamiento del mismo se puede observar el siguiente video (ahí se puede apreciar la conexión de una computadora a la red WI-FI que transmite la RPI, el registro de la misma y el acceso a Internet que obtiene):
Ahora tendrás una mayor cobertura de la señal WI-FI en partes de tu casa u oficina de trabajo, donde antes era muy inestable y lento el acceso a internet.
Agradezco a Ncubo por brindarme el equipo necesario para realizar el post.