Este es un artículo bastante bueno (aunque un poco desactualizado [si 2006 está desactualizado]) que describe cómo hacerlo desde la línea de comandos.
http://www.linux.com/archive/feed/55617
Suponiendo que su dispositivo inalámbrico funciona bien, probablemente pueda sumergirse directamente en la sección de puente a mitad de camino.
El acceso protegido a Wi-Fi versión 2 ( WPA2 ) se está convirtiendo en el estándar de facto para proteger las redes inalámbricas, y una característica obligatoria para todos los nuevos productos de Wi-Fi certificados por la Alianza de Wi-Fi . Todos conocemos las debilidades de seguridad de su predecesor, WEP; esta vez lo hicieron bien. Aquí se explica cómo implementar el protocolo WPA2 en un host Linux y crear un punto de acceso inalámbrico seguro (WAP) para su red.
La mayoría de los WAP comerciales de nivel de consumidor funcionan de la misma manera simple: crean un puente entre una interfaz de red cableada (Ethernet) y una inalámbrica. Eso es exactamente lo que haremos nosotros también. La parte WAP será manejada por el hostapddaemon, por lo que debe elegir una interfaz inalámbrica que admita. Entre los NIC admitidos están aquellos con los conjuntos de chips Prism 2 / 2.5 / 3, Atheros ar521x y Prism GT / Duette / Indigo; hay una lista disponible en la página de inicio de hostapd, junto con enlaces para controladores de Linux para cada conjunto de chips. Tengo una tarjeta PCI basada en Atheros AR5212 instalada en mi WAP, que es compatible con hostapd. Aunque cualquier sistema Pentium (o más reciente) funcionará, algunas tarjetas inalámbricas PCI requieren PCI 2.2 para funcionar, así que asegúrese de verificar las especificaciones de la placa base de su sistema antes de comprar. También necesitará una interfaz Ethernet que sea compatible con Linux para conectar su WAP a la LAN; La mayoría de las interfaces integradas funcionarán bien.
Mi configuración se basa en Debian Testing (Etch), pero cualquier distribución GNU / Linux con un kernel 2.6 reciente funcionará. El núcleo debe ser compatible con 802.1d Ethernet Bridging (CONFIG_BRIDGE) y LAN inalámbrica (CONFIG_NET_RADIO). La mayoría de los núcleos de stock predeterminados tienen estas características habilitadas, pero si prefiere crear su propio núcleo, asegúrese de incluir estas opciones. Los únicos otros paquetes que necesita instalar, además de hostapd, son bridge-utils y wireless-tools . Las principales distribuciones de GNU / Linux ofrecen paquetes binarios para todos estos programas, pero si prefiere construirlos desde la fuente, puede encontrar más información en sus páginas de inicio.
Antes de unir las dos interfaces, debemos colocar la interfaz inalámbrica (en mi caso ath0; ajustarla para que coincida con su configuración) en modo hostap o Master. Por lo general, esto es tan simple como ejecutar iwconfig ath0 mode Master, pero dado que el soporte de wlan en Linux aún no está estandarizado, algunos controladores pueden necesitar una configuración adicional. Si tiene una interfaz basada en Atheros, también debe ejecutar lo siguiente: wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
antes del iwconfig
comando. Después de eso, iwconfig ath0
volverá a correr mode:Master
, entre otros.
Ahora creemos el puente. Asumiremos que la interfaz Ethernet es eth0:
ifconfig eth0 0.0.0.0 up
ifconfig ath0 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
Y para detener el puente, debes ejecutar:
ifconfig br0 down
ifconfig eth0 0.0.0.0 down
ifconfig ath0 0.0.0.0 down
brctl delif br0 eth0
brctl delif br0 ath0
brctl delbr br0
Opcionalmente, puede dar una dirección IP a la interfaz br0 si desea acceder al host WAP desde la red, utilizando, por ejemplo, SSH. Cada distribución ofrece su propia forma de configurar la red; Si usa Debian (o cualquier distribución basada en Debian, como Ubuntu) puede concluir todos los comandos anteriores simplemente agregando lo siguiente a su /etc/network/interfaces
archivo:
auto ath0 br0
iface ath0 inet manual
pre-up wlanconfig ath0 destroy
pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
post-down wlanconfig ath0 destroy
wireless-mode master
iface br0 inet manual
bridge_ports eth0 ath0
Tenga en cuenta que ifupdown
maneja eth0 automáticamente, por lo que no necesita una estrofa separada para ello /etc/network/interfaces
. Para verificar que el puente esté configurado correctamente, ejecute brctl show
. Deberías obtener algo como esto a cambio:
bridge name bridge id STP enabled interfaces
br0 8000.00032f2481f0 no ath0
eth0
Antes de comenzar a meterse con hostapd, necesitamos una frase de paso para WPA2. Como con todas las contraseñas, debe ser aleatorio y, por lo tanto, difícil de adivinar. Una buena manera de obtener una frase de contraseña aleatoria es visitar el Generador de contraseñas de seguridad ultra alta de Gibson Research Corp. y usar la tercera contraseña que crea, la que se titula 63 caracteres alfanuméricos aleatorios (az, AZ, 0-9). Tener una frase de contraseña que incluya caracteres ASCII no alfanuméricos (por ejemplo,!, @, Etc.) puede ser tentador, pero a algunos clientes, a saber, Windows XP, no parece gustarles.
Ahora crea un nuevo archivo de texto llamado /etc/hostapd/wpa_psk
y pega tu frase de contraseña como:
00:00:00:00:00:00 PASSPHRASE
La primera parte con los ceros significa 'hacer coincidir todas las direcciones MAC' y hace exactamente eso. También puede usar diferentes frases de contraseña para cada cliente agregando una nueva línea al archivo con la dirección MAC de cada cliente y su frase de contraseña. Asegúrese de que solo la raíz tenga acceso a ese archivo ejecutando chmod 600 /etc/hostapd/wpa_psk
.
Ahora cree una copia de seguridad del archivo de configuración principal de hostapd /etc/hostapd/hostapd.conf
y manténgalo como referencia al ejecutarlo mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
. Cree un nuevo archivo hostapd.conf y pegue las siguientes líneas en él:
interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=My_Secure_WLAN
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
stakey=0
Reemplace las partes en cursiva con información que coincida con su configuración. Si desea permitir que solo clientes específicos se conecten, elimine el carácter # de las dos líneas anteriores y copie las direcciones MAC de esos clientes /etc/hostapd/accept
, y haga que este archivo sea accesible solo por root (chmod 600). Para obtener más información sobre las opciones utilizadas, lea los comentarios en el archivo de copia de seguridad que creó anteriormente (hostapd.conf.orig).
Inicie el demonio hostapd ( /etc/init.d/hostapd start
) y /var/log/daemon.log
verifique que funcione. Si el demonio no aparece, aumente el nivel de depuración ( option debug=
en hostapd.conf) a 4 e intente nuevamente.
Ahora, si busca redes inalámbricas disponibles desde un cliente, debería ver su ESSID. Para conectarse al WAP desde un cliente Linux, debe instalar wpa_supplicant y crear un archivo de configuración, wpa_supplicant.conf (en Debian, instalado en /etc/wpa_supplicant/
) de la siguiente manera:
update_config=1
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="My_Secure_WLAN"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk="PASSPHRASE"
priority=5
}
Nuevamente, reemplace las partes en cursiva para que coincidan con su configuración y ejecución wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
(reemplace eth1
con el nombre de su interfaz wlan y escriba con el controlador apropiado para su tarjeta; ejecute wpa_supplicant sin ninguna opción para obtener más información). Este comando inicia wpa_supplicant en primer plano e intenta conectarse al WAP. Si el resultado es el siguiente, ya está todo listo:
Trying to associate with 00:11:22:33:44:55 (SSID='My_Secure_WLAN' freq=0 MHz)
Associated with 00:11:22:33:44:55
WPA: Key negotiation completed with 00:11:22:33:44:55 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed (auth) [id=0 id_str=]
Dé una dirección IP estática a su interfaz inalámbrica (o ejecute un cliente DHCP) e intente hacer ping a un host dentro de su LAN para verificar que la conexión funciona.
Felicitaciones, acaba de crear un punto de acceso inalámbrico altamente personalizable. Aunque esta configuración es ideal para el uso en el hogar o la pequeña oficina, necesita algo más robusto en la empresa, con autenticación con un servidor RADIUS, o incluso mejor, una VPN.