===== FreeBSD configurando Wireless ===== {{ :informatica:wifi.jpg?200 | WiFi }} Esto esta escrito para la persona que acaba de instalar FreeBSD y necesita configurar rapidamente una conexión inaambrica. Cubre conexion inalambrica sin autenticacion, WEP y configuracion personal WPA/WPA2. Se supone que ya ha obtenido su tarjeta reconocida por el sistema. La mayor parte de esto se toma de la pagina *Wireless* del Manual de FreeBSD, dejando de lado la mayoría de las explicaciones y opiniones. En el ejemplo, utilizaremos una tarjeta **Atheros**, que su sistema FreeBSD ve como ''ath0'', y es una de las tarjetas mas comunes. Tenga en cuenta que en FreeBSD-11 y en adelante, no vera ''ath0''. {{ :informatica:freebsd:logo-reverse.png?610 | FreeBSD }} ==== El sistema ve tu tarjeta WiFi? ==== En FreeBSD-10.XY y versiones posteriores, pruebe el comando ''ifconfig''. Con suerte, muestra tu tarjeta. Si no, eso esta mas alla del alcance de este articulo, pero puede comenzar tratando de averiguar el modelo y ver si es compatible, o encontrar una conexion inalambrica USB que funcione. Puede ser tan simple como cargar un modulo un arranque. Cada version de FreeBSD admite mas tarjetas. Vea a continuacion FreeBSD-11 y versiones posteriores. # sysctl net.wlan.devices Este comando deberia mostrarle su hardware de wireless. === NOTA1 IMPORTANTE: === En FreeBSD-11, hacer ''ifconfig'' o ''ifconfig -l'', ya no mostrara dicho ath0 (o iwm0, o cualquier designacion que use su tarjeta). En su lugar, puede ejecutar ''sysctl net.wlan.devices'', que deberia mostrarle si el sistema ha detectado tu tarjeta. Si es asi, continue con el siguiente paso. === NOTA2 IMPORTANTE: === A veces, incluso si el sistema ve su tarjeta, tendra que editar ''/boot/loader.conf''. Una vez que conozca su tarjeta, por ejemplo, una ''iwm'', consulte la pagina del manual. Por ejemplo, cualquier cosa que use el controlador ''urtwn'', como el peque~no Edimax 7811-UN, requiere dos lineas en ''/boot/loader.conf'' if_urtwn_load="YES" legal.realtek.license_ack=1 La mayoria de las tarjetas Intel, que usan el controlador ''iwm'', tambien requeriran que se agreguen lineas a ''/boot/loader.conf'', por lo tanto, una vez que se determina el controlador, ejecute el //man//, por ejemplo, si esta usando iwm, ''man iwm'' para ver si se necesita algo en ''/boot/loader.conf''. ==== Configurar el dispositivo LAN ==== Primero, uno crea el dispositivo wlan0. Suponiendo que la tarjeta es **ath0**, el comando es: # ifconfig wlan0 create wlandev ath0 Deberia ver que el dispositivo ha sido creado. Para que esto suceda automaticamente al arrancar, agregue lo siguiente a ''/etc/rc.conf''. wlans_ath0 = "wlan0" ==== Conectarse a una red abierta ==== Entonces si por ejemplo, estas en la Biblioteca Publica de tu cuidad, y tiene una red ''wireless abierta'' (sin password), llamada ''movistar2,4GHZ\_464CBF''. Ha creado su dispositivo `wlan0` como se describe, asi que conectelo a la red de ''movistar2,4GHZ\_464CBF''. Primero conseguimos el nombre de la red. # ifconfig wlan0 up scan SSID/MESH ID BSSID CHAN RATE S:N INT CAPS movistar2,4GHZ_464CBF 84:aa:9c:46:4c:bf 6 54M -82:-96 100 EP RSN BSSLOAD HTCAP WPS WME Electrolinux 00:1d:7e:45:30:0c 6 54M -90:-96 100 EP RSN WME Esto busca redes disponibles y devolvera una lista de ellas. En este caso, queremos conectarnos a la red ''movistar2,4GHZ\_464CBF'', asi que usaremos: # ifconfig wlan0 ssid movistar2,4GHZ_464CBF Esperemos que vea que esta conectado, y al ejecutar **ifconfig ath0** mostrara que esta conectado. Obtenga una direccion de la red WiFi con: # dhclient wlan0 Deberias ver que tiene algo similar a esto con una direccion IP de la red: wlan0: flags=8843 metric 0 mtu 1500 ether aa:bb:cc:dd:ee:ff inet 192.168.1.110 netmask 0xffffff00 broadcast 192.168.1.255 groups: wlan ssid movistar2,4GHZ_464CBF channel 6 (2437 MHz 11g ht/20) bssid 84:aa:9c:46:4c:bf regdomain 101 indoor ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF AES-CCM 2:128-bit txpower 20 bmiss 7 scanvalid 60 protmode CTS ampdulimit 64k ampdudensity 8 shortgi -stbctx stbcrx -ldpc wme burst roaming MANUAL media: IEEE 802.11 Wireless Ethernet MCS mode 11ng status: associated nd6 options=29 ==== WEP (no la use) ==== WEP es bastante inseguro, y probablemente no deberia usarlo, pero si lo esta usando, primero cree el dispositivo ''wlan0'' como se describio anteriormente. Suponiendo que su ssid WEP es ''mywep'' y tiene una contraseña de ''1234'', el comando seria: # ifconfig wlan0 ssid wepmode on wepkey <0x8787887878> webextkey 1 Eso es usar la version hexadecimal de la clave. No estoy seguro que esto funcione, que es especificar la version ASCII en la linea de comando, ya que no he visto una red WEP en mucho tiempo, despues de 2 minutos en google no lo he encontrado, no segui insistiendo. En Linux, creo que uno solia usar ''-s'' (como en una cadena), asi que hacer algo como: ifconfig wlan0 ssid wepmode on wepkey -s webextkey 1 Puede funcionar, pero no lo puedo comprobar. En general, REALMENTE NO deberias usar WEP. ==== WPA/WPA2/Personal ==== Este es el valor predeterminado para la mayoria de los enrutadores domesticos. Asumiendo que su red se llama ''mywpa'' y su password es ''1234'', una vez mas, primero cree el dispositivo con ''ifconfig wlan0 create wlandev ath0''. Luego cree un archivo ''wpa\_supplicant.conf''. Por ahora, el archivo ''wpa\_supplicant.conf'' puede permanecer en su directorio $HOME mientras realiza la prueba. # vim /etc/wpa_supplicant.conf network={ ssid="mywpa" psk="1234" } Si su router tiene la red oculta, como lo hacen algunos de los routers Linksys mas antiguos, entonces deberia ser ligeramente diferente. # vim /etc/wpa_supplicant.conf network={ scan_ssid=1 ssid="mywpa" psk="1234" } Para ejecutar esto desde la línea de comandos (necesitaa privilegios de **root** o usar **doas** o **sudo**). # ifconfig wlan0 -i wlan0 -c wpa_supplicant.conf Esto te mostrara lo que esta sucediendo. Una vez que este seguro de que esta funcionando, puede ejecutarlo en segundo plano, agregando la opcion *-B*. # ifconfig wlan0 -B -i wlan0 -c wpa_supplicant.conf Una vez que esta asociado con la red, puede usar *dhclient* para obtener una direccion. (Ejecutar ifconfig wlan0 debería mostrar que eta asociado). # dhclient wlan0 Para que este sea automatico, mueva su ''wpa_supplicant.conf'' a ''/etc/'' y agregue lo siguiente a ''/etc/rc.conf''. (Asumimos que ya tiene wlans0_ath0 = "wlan0" en /etc/rc.conf) ifconfig_wlan0="WPA SYNCDHCP" Y deberia ejecutar a continuacon: # service netif restart Y tambien puede ser necesario ejecutar: # service routing restart Su configuracion de `wpa` debe asociar su tarjeta con la red y obtener una direccion a traves de DHCP. ===== Configurando SSID y PASSWORD ===== Si bien la siguiente parte va mas alla de ser un inicio rapido, si esta guardando un archivo `wpa_supplicant.conf`, puede usar el comando ''wpa_passphrase'' para crear dicho archivo. (Creo que requiere una contrase~na de 8 caracteres, que es una buena cosa, asi que la usaremos en este ejemplo). # wpa_passphrase mywpa 12345678 > wpa_supplicant.conf Esto produce un archivo que contendra: network={ ssid="mywpa" #psk="12345678" psk=271e5385c39a01edd8c0de9e62b1f3f392271df59365508935f6815234817736 } Luego puede eliminar la línea comentada ''#psk="12345678"'' y copiar el archivo a ''/etc/wpa_supplicant.conf''. (Nuevamente, si se trata de una red oculta, inserte el ''scan_ssid=1'' sobre la linea ''ssid="mywpa"'').