This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Tutorial Raspberry Pi - Cómo crear un punto de acceso WiFi

  • 3 Replies
  • 5195 Views

0 Members and 1 Guest are viewing this topic.

Offline Stiuvert

  • *
  • Ex-Staff
  • *****
  • Posts: 2650
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • View Profile


Bienvenidos a un nuevo tutorial de Raspberry Pi, en el cual aprenderemos a crear un punto de acceso WiFi a través del cual tendremos acceso a Internet. Muchas veces he estado en sitios que tenían toma Ethernet pero no señal WiFi, por lo que conectar por ejemplo un teléfono o tablet era imposible. Sin embargo, con este tutorial tendremos una red WiFi para nosotros solos gracias a la Raspberry Pi.

Material necesario:

  • Raspberry Pi.
  • Cable Ethernet.
  • Adaptador WiFi.
  • Tarjeta de memoria compatible (mínimo 4GB).
Instalación de Raspbian

Este tutorial lo he realizado tras instalar Raspbian en la Raspberry Pi. Puedes ver cómo hacerlo desde este tutorial. Una vez hecho esto, podemos seguir con los pasos siguientes.

Instalar los programas necesarios

Antes de nada, como siempre hay que hacer al instalar un nuevo sistema operativo, actualizamos los programas instalados con estos comandos:

Code: (bash) You are not allowed to view links. Register or Login
sudo apt-get update
sudo apt-get upgrade

Tras esto, instalaremos dos programas que nos permitirán crear el punto de acceso WiFi: hostapd y isc-dhcp-server.

Code: (bash) You are not allowed to view links. Register or Login
sudo apt-get install hostapd isc-dhcp-server
Configurar el servidor DHCP DHCP es el protocolo que hace que automáticamente se nos asigne una dirección IP al conectarnos a una red. Para configurarlo, abre su fichero de configuración:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/dhcp/dhcpd.conf
Busca las siguientes líneas:

Code: You are not allowed to view links. Register or Login
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

Cuando las hayas encontrado, coméntalas con un caracter almohadilla '#' delante:

Code: You are not allowed to view links. Register or Login
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Ahora busca las siguientes líneas:

Code: You are not allowed to view links. Register or Login
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

Descomenta la tercera línea para que quede así:

Code: You are not allowed to view links. Register or Login
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

Por último, añade las siguientes líneas al final del archivo:

Code: You are not allowed to view links. Register or Login
subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.10 192.168.100.50;
    option broadcast-address 192.168.100.255;
    option routers 192.168.100.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;
}

Ya hemos terminado de modificar este archivo, así que ciérralo con las teclas CTRL+X y luego Y. A continuación, abriremos otro archivo de configuración:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/default/isc-dhcp-server
Busca la línea INTERFACES="" y entre las comillas añade "wlan0": INTERFACES="wlan0". Una vez hecho esto, cierra y guarda el archivo. Configurar una IP estática en wlan0 A continuación, configuraremos una dirección IP estática para wlan0. De esta manera, siempre será la misma. Para ello, desactivamos la interfaz wlan0 con el siguiente comando:

Code: (bash) You are not allowed to view links. Register or Login
sudo ifdown wlan0
Una vez desactivada la interfaz, hay que modificar su configuración:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/network/interfaces
Después de la línea allow-hotplug wlan0, añade lo siguiente:

Code: You are not allowed to view links. Register or Login
iface wlan0 inet static
  address 192.168.100.1
  netmask 255.255.255.0

Y comenta con un '#' las tres líneas siguientes. El archivo completo debe quedar así:

Code: You are not allowed to view links. Register or Login
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0

iface wlan0 inet static
  address 192.168.100.1
  netmask 255.255.255.0

#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

Cierra el archivo y guárdalo. Tras esto, asigna la IP a la interfaz wlan0 y habilítala con el siguiente comando:

Code: (bash) You are not allowed to view links. Register or Login
sudo ifconfig wlan0 192.168.100.1
Configurar el punto de acceso

Ahora toca configurar el punto de acceso (SSID, contraseña, tipo de seguridad, etc.). Para ello, vamos a crear un nuevo archivo con el siguiente comando:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/hostapd/hostapd.conf
Debido a que acabamos de crearlo, no tiene ningún contenido, por lo que hay que pegar lo siguiente:

Code: You are not allowed to view links. Register or Login
interface=wlan0
driver=rtl871xdrv
ssid=RPi_PA
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=contrasena
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podéis cambiar el SSID de RPi_PA (Raspberry Pi Punto de Acceso) al que queráis, así como la contraseña (wpa_passphrase). Asegúrate de que el archivo no tiene líneas extra ni espacios al final de cada línea. A continuación, debemos decirle a la Raspberry Pi dónde encontrar el archivo de configuración que acabamos de crear. Para ello, modificamos la línea #DAEMON_CONF del siguiente archivo:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/default/hostapd
La vamos a dejar así: DAEMON_CONF="/etc/hostapd/hostapd.conf". Acuérdate de quitar la almohadilla para descomentar la línea. Guarda y cierra el archivo. Configuración de NAT NAT (Network Address Translation) es el protocolo que permite que muchos clientes puedan conectarse a Internet a través de una única conexión IP "tunelando" la conexión. Debes hacer esto incluso si sólo vas a tener un cliente conectado. Abre el siguiente archivo de configuración:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/sysctl.conf
Añade la siguiente línea al final:

Code: You are not allowed to view links. Register or Login
net.ipv4.ip_forward=1
Estos cambios se aplicarán cuando reiniciemos el sistema, pero para hacerlo inmediatamente puedes introducir lo siguiente en consola, que tiene el mismo objetivo que lo anterior:

Code: (bash) You are not allowed to view links. Register or Login
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Ahora hay que configurar las iptables para hacer la "traducción" entre la interfaz Ethernet (Eth0) y la WiFi (wlan0):

Code: You are not allowed to view links. Register or Login
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

El problema de esto es que habría que ejecutar los comandos anteriores cada vez que encendamos la Raspberry Pi, pero para que sea automático introducimos lo siguiente:

Code: (bash) You are not allowed to view links. Register or Login
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
A continuación volvemos al archivo de configuración de las interfaces de red que hemos modificado con anterioridad:

Code: (bash) You are not allowed to view links. Register or Login
sudo nano /etc/network/interfaces
Al final del todo, hay que añadir la línea siguiente:

Code: You are not allowed to view links. Register or Login
up iptables-restore < /etc/iptables.ipv4.nat
Actualizar hostapd

Dependiendo de dónde hayáis comprado vuestro adaptador WiFi, este tutorial funcionará o no. Para intentar arreglarlo, actualizaremos a una versión nueva de hostapd que proporcionan desde AdaFruit:

Code: (dos) You are not allowed to view links. Register or Login
wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip
unzip adafruit_hostapd_14128.zip

Ahora toca intercambiar la versión antigua por la nueva:

Code: (bash) You are not allowed to view links. Register or Login
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
sudo mv hostapd /usr/sbin
sudo chmod 755 /usr/sbin/hostapd

¿Funcionará?

Para ver si todo funciona correctamente, ejecuta este comando e intenta conectarte a la red WiFi que verás desde tu ordenador y que acabamos de crear:

Code: (bash) You are not allowed to view links. Register or Login
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf


Puedes dejar de ejecutar el comando anterior y tener acceso a la terminal pulsando Control+C.
Últimos detalles

Ahora que ya sabemos que funciona, vamos a crear un daemon que se ejecutará cada vez que la Raspberry Pi se encienda:

Code: (bash) You are not allowed to view links. Register or Login
sudo service hostapd start
sudo service isc-dhcp-server start

Es posible conocer el estado de los daemon con los siguientes comandos:

Code: (bash) You are not allowed to view links. Register or Login
sudo service hostapd status
sudo service isc-dhcp-server status

Finalmente, para habilitar los daemon:

Code: (bash) You are not allowed to view links. Register or Login
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Una vez hecho esto, ya tendremos nuestro punto de acceso WiFi configurado para que podamos acceder a Internet a través de nuestra Raspberry Pi conectada a un puerto Ethernet. Este tutorial ha quedado bastante largo y es un poco tedioso, pero merece la pena hacerlo porque es la primera parte de otro que publicaré pronto. ¡Un saludo!

Fuente: geekytheory.com

Offline PikachuDorado

  • *
  • Ex-Staff
  • *****
  • Posts: 371
  • Actividad:
    0%
  • Reputación 1
  • Im just a Pikachu
    • View Profile
    • Soporte Ava
Grande Stiu, cuando me desocupe de las notebooks y vuelva a la Raspi, lo pruebo.
GRACIAS :D
Pikaa~


Offline PikachuDorado

  • *
  • Ex-Staff
  • *****
  • Posts: 371
  • Actividad:
    0%
  • Reputación 1
  • Im just a Pikachu
    • View Profile
    • Soporte Ava
Casi pasa un año de que dije que lo iba a hacer, y auno no lo hice.
Siempre tengo otras cosas para hacer, pero ya que me estableci en un lugar fijo, con conexion 100% propia, decente y un modem totalmente configurable, puedo empezar a divertirme en el barrio.
Pikaa~


Offline Stiuvert

  • *
  • Ex-Staff
  • *****
  • Posts: 2650
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • View Profile
El punto de acceso que se puede crear con las Rapberry es aceptable, pero no es apropiado para usarlo como punto de acceso para tareas importantes o prolongadas como puede ser en el trabajo, en unas oficinas o en tu casa durante un largo tiempo.

Un saludo