\   /\          __    _____        _____     _____ _ _____
)  ( ')        |  |  |  _  |   ___|  _  |___|  |  |_|_   _|___
(  /  )        |  |__|     |  |  _|     |_ -|     | | | | | .'| 
 \(__)|        |_____|__|__|  |___|__|__|___|__|__|_| |_| |__,|

 
 Vamos a configurar nuestra Raspberry como AP, de esta forma
a traves de nuestra Raspberry crearemos un SSID al que nos podremos
conectar desde el movil o desde cualquier PC mediante wifi.
La idea es conectar la Raspberry a Internet a traves de Ethernet, y
que nos ofrezca salida a Internet a nosotros que estaremos conectados
a ella mediante Wifi.

El primer paso es instalar los paquetes que necesitaremos.

sudo at-get install dnsmasq hostapd
Smiley face El siguiente paso es deshabilitar el DHCP en nuestra interfaz wifi con lo cual necesitaremos estar conectados a la Raspberry o a traves de Ethernet o directamente por HDMI. En mi caso dispongo de la wifi incorporada (wlan0) y de un adaptador wifi (wlan1) con lo cual podre continuar conectado a ella por SSH mientras realizo las configuraciones. Para deshabilitar el DHCP en la interfaz wifi que usaremos como AP editaremos el fichero sudo nano /etc/dhcpcd.conf.
sudo nano /etc/dhcpcd.conf
En el archivo que estamos editando agregaremos al final del todo lo siguiente.
denyinterfaces wlan0
Smiley face Ahora configuraremos una IP estatica a nuestra wifi, para ello editaremos el siguiente archivo.
sudo nano /etc/network/interfaces
Deberemos comentar con # las lineas referentes a nuestro interfaz wifi (wlan0) y agregar lo siguiente:
allow-hotplug wlan0
iface wlan0 inet static
    address 172.16.1.1
    netmask 255.255.255.0
    network 172.16.1.0
    broadcast 172.16.1.255
Quedando de la siguiente manera. Smiley face Reiniciamos el servicio dhcpd, y para cargar la configuracion "bajamos" y "subimos" la interfaz wifi con los siguientes comandos.
sudo service dhcpcd restart
sudo ifdown wlan0
sudo ifup wlan0
Bien, ahora el siguiente paso es configurar Hostapd para que podamos crear nuestro AP. Para ello editaremos el fichero /etc/hostapd/hostapd.conf.
sudo nano /etc/hostapd/hostapd.conf
Agregaremos el siguiente contenido.
#Nombre de nuestro SSID
ssid=test
#Nuestra password (minimo 8 caracteres)
wpa_passphrase=aaaaaaaa
#Nuestra interfaz wifi
interface=wlan0
auth_algs=3
channel=7
driver=nl80211
hw_mode=g
logger_stdout=-1
logger_stdout_level=2
max_num_sta=5
rsn_pairwise=CCMP
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
Una vez guardado el contenido ejecutamos el siguiente comando.
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Y nos aparecera algo como lo siguiente. Smiley face En este momento ya deberiamos ver nuestra wifi visible. Para que se ejecute automaticamente dicha configuracion y tal y como encendamos nuestra Raspberry tengamos el punto de acceso visible modificaremos el siguiente archivo.
sudo nano /etc/default/hostapd
Y agregaremos la siguiente linea para que coja la configuracion que hemos creado anteriormente.
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Quedaria de la siguiente manera. Smiley face Ahora es paso de configurar el DHCP. Para ello modificaremos el archivo /etc/dnsmasq.conf Tambien realizaremos una copia de seguridad del fichero original por si algo fuera mal, los comandos serian los siguientes.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bck
sudo nano /etc/dnsmasq.conf
Y agregaremos el siguiente contenido.
bogus-priv
no-resolv
server=8.8.8.8
expand-hosts
#El rango que vamos a dar (desde la 1.10 a la 1.99 con 12 horas de release time)
dhcp-range=172.16.1.10,172.16.1.99,255.255.255.0,12h
#La ip de nuestra interfaz wlan0
dhcp-option=option:router,172.16.1.1
#windows 7 float fix
#http://brielle.sosdg.org/archives/522-Windows-7-flooding-DHCP-server-with-DHCPINFORM-messages.html
dhcp-option=252,"\n"
###### logging ############
log-facility=/var/log/dnsmasq.log
log-async
log-dhcp
Quedando de la siguiente manera. Smiley face Si reiniciamos los servicios, ya podremos conectarnos a nuestro AP y obtener la direccion IP correcta.
sudo service hostapd start  
sudo service dnsmasq start 
Ahora lo que nos faltaria es "darle internet" que no es lo menos importante! Para ello primero tendremos que habilitar el forwarding. Editamos el siguiente fichero.
sudo nano /etc/sysctl.conf
Y descomentamos la siguiente linea:
net.ipv4.ip_forward=1
Smiley face Y ahora creamos las siguientes reglas en iptables.
sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE  
sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
Recordad que yo estoy usando wlan1 para tener Internet, en vuestro caso si usais Ethernet debereis sustituir wlan1 por eth0 !!! Ahora ya deberiais poder conectar a vuestro AP y deberiais tener acceso a Internet. Para que los cambios realizados en iptables continuen despues de reiniciar ejecutaremos.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Ahora editaremos el siguiente fichero.
sudo nano /etc/rc.local
Y justo encima de la linea exit 0 pondremos:
iptables-restore < /etc/iptables.ipv4.nat  
Smiley face Reiniciamos la Raspberry y ya la tenemos funcionando como AP!!!!