La Raspberry Pi puede ser configurada como un punto de acceso wifi para conectar apps o bien para enrutar a internet, además podemos proteger la red mediante WPA2, WEP o sin nada. En este breve tutorial configuraré la Raspberry pi como punto de acceso para que una app se conecte a ella, sin salida a internet. Dispongo conectado un pincho Wifi USB como interfaz wlan0.

En el caso de querer salida a internet, habría que configurar también Iptables.

Instalación de paquetes

sudo apt-get install hostapd udhcpd

Archivos de configuración

Editamos el fichero udhcpd.conf y ponemos la siguiente configuración:

sudo nano /etc/udhcpd.conf
start           192.168.0.20
end             192.168.0.21
 
interface       wlan0
 
opt     dns     192.168.10.2 192.168.10.10
option  subnet  255.255.255.0
opt     router  192.168.10.2
opt     wins    192.168.10.10
option  dns     129.219.13.81
option  domain  local
option  lease   864000

Editamos el fichero udhcpd:

sudo nano /etc/default/udhcpd

y comentamos la línea:

#DHCPD_ENABLED="no"

Asignamos una IP a la interfaz wlan0:

sudo ifconfig wlan0 192.168.0.20

y sustituimos el contenido de /etc/network/interfaces:

sudo nano /etc/network/interfaces

por el siguiente:

auto lo
 
iface lo inet loopback
iface eth0 inet dhcp
 
#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
 
iface wlan0 inet static
address 192.168.0.20
netmask 255.255.255.0

Creamos el fichero hostapd.conf:

sudo nano /etc/hostapd/hostapd.conf

y creamos el punto de acceso con WPA2/PSK:

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

Editamos el fichero hostapd:

sudo nano /etc/default/hostapd

y sustituímos #DAEMON_CONF=»» por:

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

NAT

Configuramos Nat:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Editamos el fichero sysctl.conf:

sudo nano /etc/sysctl.conf

y añadimos al final:

net.ipv4.ip_forward=1

ejecutamos estos comandos de iptables:

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

ejecutamos:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

editamos el fichero /etc/network/interfaces y añadimos al final:

up iptables-restore < /etc/iptables.ipv4.nat

Arrancar el servicio

sudo service hostapd start
sudo service udhcpd start

Lo activamos en el rc.d para que inicie al arrancar:

sudo update-rc.d hostapd enable
sudo update-rc.d udhcpd enable

Fuente: elinux.org