Hacer un Access Point o Wireless Router con una tarjeta Wifi
Cuantas veces se ha querido compartir internet sin tener que hacer un tendido de red y no se dispone tampoco un wireless router pero gracias a hostapd, un demonio que permite poner muchas tarjetas wifi en modo master permite actuar a la tarjeta wifi como un Access Point
hostapd Permite crear un AP con conexión incluso encriptada en seguridad WPA2, el alcance de señal viene dado por el que posea el dispositivo. Para GNU/Linux soporta todos los dispositivos cuyos módulos de kernel sean dependientes del driver mac80211. Para saber que nuestra tarjeta depende de este driver se debe poner en la consola:
sudo su lsmod |grep mac80211
Y si se obtiene algo parecido a esto:
mac80211 154480 1 ath9k
cfg80211 119060 3 ath9k,mac80211,ath
Perfecto nuestra tarjeta wifi tiene soporte
Sumario
Identificar el modelo de la tarjeta wifi
Escribimos en un terminal:
lspci 03:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01)
Instalar paquetes
Una vez que se sabemos que nuestro dispositivo es dependiente del driver mac80211 instalamos los paquetes necesarios:
sudo apt-get install firestarter dhcp3-server hostapd bridge-utils wireless-tools
Reiniciamos el equipo
Debido a que hostapd lo requiere para cargar módulos en el kernel.
Luego procedemos a editar los archivos de configuración necesarios.
sudo gedit /etc/network/interfaces
Este archivo nos permite definir un dispositivo que actua como puente o switch virtual con una IP por defecto que será para asignar las IPs dinámicas en la red, sea LAN o WLAN, para ello editamos y dejamos de la siguiente manera:
# The loopback network interface auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.100.1 network 192.168.100.0 netmask 255.255.255.0 broadcast 192.168.100.255 bridge-ports wlan0 eth0
Si se desea solo compartir por el dispositivo wifi se debe dejar así:
# The loopback network interface auto lo iface lo inet loopback auto wlan0 iface wlan0 inet static address 192.168.100.1 network 192.168.100.0 netmask 255.255.255.0 broadcast 192.168.100.255
Reiniciamos el demonio para que la configuración tenga efecto:
sudo /etc/init.d/networking restart
Y verificamos con
ifconfig brctl show
Si se desea solo compartir por el dispositivo wifi se debe comprobar así:
ifconfig wlan0
Configuramos el servicio DHCP
sudo gedit /etc/default/dhcp3-server
Este archivo nos permitirá definir que interfaz es la que será utilizada para asignar las direcciones IP. Modificamos la siguiente línea:
INTERFACES="br0"
Si se desea solo compartir por el dispositivo wifi se debe dejar así:
INTERFACES="wlan0"
Definir el rango de DHCP
sudo gedit /etc/dhcp3/dhcpd.conf
Este archivo nos permitirá definir el rango de IPs y los parámetros de red de cada cliente que se conecte a la LAN o WLAN, para ello editamos y dejamos de la siguiente manera:
DHCP configuration ddns-update-style interim; ignore client-updates; subnet 192.168.100.0 netmask 255.255.255.0 { option routers 192.168.0.1; option domain-name-servers 208.67.222.222, 208.67.220.220; option ip-forwarding on; range dynamic-bootp 192.168.100.10 192.168.100.15; default-lease-time 21600; max-lease-time 43200; }
NOTA: El domain-name-servers debe tener las IPs de DNS de su ISP separado por comas, la manera mas facil de ver cuales son los DNS del ISP es conectarse al internet y revisar el archivo /etc/resolv.conf, los DNS son aquellas IPs después de la palabra nameserver, en el ejemplo hemos colocado los DNS de Opendns.com
Reiniciamos el demonio para que la configuración tenga efecto:
/etc/init.d/dhcp3-server restart
Habilitar el Kernel
Necesitamos habilitar el kernel para que los equipos se conecten a Internet mediante nosotros
sudo gedit /etc/sysctl.conf
Editamos y activamos lo siguiente:
net.ipv4.conf.forwarding=1
Usar Firestarter
Firestarter es una aplicación que nos permite compartir Internet
Se debe estar conectado a Internet. Sea que desee compartir Internet tanto para la LAN como para WLAN o solo por WLAN es necesario que se tenga ya configurado el caso correspondiente con el paso de nano /etc/network/interfaces para proseguir con firestarter.
Para ejecutar firestarter en consola se debe poner lo siguiente:
sudo firestarter
Si es la primera vez se ejecuta, se verá un Asistente que se explicará a continuación, si no es ese el caso, en Cortafuegos - Ejecutar Asistente se halla el mismo.
Damos clic en Adelante. Seleccionamos el dispositivo de salida a Internet, en este caso ppp0. Marcamos los checkbox. Damos clic en Adelante. Activamos el checkbox. Seleccionamos el dispositivo de área local, br0 o wlan0, según sea el caso. Damos clic en Adelante. Damos clic en Guardar. A continuación se debe dirigir a Editar -> Preferencias, en la nueva ventana se debe dirigir a Cortafuegos -> Configuraciones de red y activar el checkbox Activar DHCP para la red local. Damos clic en Detalles del servidor DHCP, se marca en Crear una configuración DHCP nueva y en IP mas baja colocamos una IP mayor a 192.168.0.0 y en IP mas alta colocamos una IP menor a 192.168.0.255. Damos clic en Aceptar. Detenemos e iniciamos Firestarter y continuamos este Como.
sudo gedit /etc/default/hostapd
Este archivo nos permite establecer si queremos que hostapd funcione como demonio y que archivo de configuración debe tomar para correr.
Editamos y activamos lo siguiente:
RUN_DAEMON="yes" DAEMON_CONF="/etc/hostapd/hostapd.conf" sudo gedit /etc/hostapd/hostapd.conf
El archivo por defecto incluye mucha documentación importante acerca de si mismo. Aquí se define los parámetros de la red WLAN que crearemos.
La configuración ejemplo con WPA2 es:
interface=wlan0 driver=nl80211 bridge=br0 hw_mode=g channel=1 ssid=mac80211 test wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP wpa_passphrase=12345678
Si se desea dejar la conexión abierta puede hacerse así:
interface=wlan0 driver=nl80211 bridge=br0 hw_mode=g channel=1 ssid=mac80211 test
Si se desea solo compartir por el dispositivo wifi debe quitarse la línea bridge=br0 por ser un parámetro únicamente en caso de que el dispositivo wifi sea parte de un bridge.
Reiniciamos el demonio para que la configuración tenga efecto:
/etc/init.d/hostapd restart
Una vez terminado se ejecuta lo siguiente:
sudo iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0 -j MASQUERADE
Tomando en cuenta que ppp0 es el dispositivo que se conecta a Internet y que 192.168.100.0 es la red tanto del bridge como del DHCP server.