La configuración de punto de acceso pasa por dar ciertos parámetros a la tarjeta de red y poner en marcha el demonio dhcpd(8) que acompaña a la instalación base de OpenBSD.
Hay una serie de valores que serán variables en cada instalación. Los definimos a continuación:
$IP: Dirección de red del nodo.
$NET: Dirección de la red del nodo.
$MASK: Máscara de red del nodo.
$SSID: Identificador para la red wireless.
$CHAN: Canal (dependiendo del país puede haber restricciones).
$NAME: Nobre del nodo.
$TX: Tasa de transmisión (consultar la página de manual de wicontrol(8)).
La tarjeta de red puede configurarse en la instalación como una tarjeta de red normal, con lo que posteriormente tendremos que añadir parámetros extra por ser una tarjeta WLAN.
Si no hemos configurado los parámetros básicos de la tarjeta durante la instalación del sistema, tendremos que realizar nosotros a mano los pasos que habría hecho el programa de instalación.
En primer lugar averiguamos el nombre que tiene nuestro interface wireless mediante el uso de dmesg(8). Habitualmente será wi0 si solo disponemos de una tajeta WLAN.
Creamos en /etc un fichero llamado hostname.IF, siendo IF el nombre de nuestra intreface WLAN (normalmente será hostname.wi0), con el siguiente contenido:
inet $IP $MASK NONE |
Y con esto nos encontramos en el mismo punto en el que estaríamos si hubieramos configurado el interface en la instalación.
En el siguiente apartado veremos como introducir los parámetros propios de las tarjetas wireless.
Suponiendo que el interface de nuestra tarjeta es wi0, editamos /etc/hostname.wi0, que debe contener:
inet $IP $MASK NONE |
Ahora vamos a añadir los parámetros especiales de la tarjeta wireless, que son: el SSID y la configuración del modo de funcionamiento.
Editamos el fichero y lo dejamos como sigue:
inet $IP $MASK NONE nwid $SSID mediaopt hostap |
El resto de parámetros de la tarjeta se deben configurar con wicontrol(8). Para ello aprovechamos que toda linea que comience por ! en el fichero de configuración se tratará como una orden a ejecutar.
Con las llamadas a wicontrol(8), el fichero queda así:
inet $IP $MASK NONE nwid $SSID mediaopt hostap !wicontrol -t $CHAN !wicontrol -s "$NAME" !wicontrol -t $TX |
Ahora solo quedaría reiniciar el sistema para comprobar que los cambios en la configuración son correctos. Para ello ejecutaremos ifconfig(8) y wicontrol(8) y obtendremos algo así:
# ifconfig wi0 wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:90:4b:23:89:8a nwid elxwifi powersave off media: IEEE802.11 DS1 hostap status: active inet 10.1.1.21 netmask 0xffffff00 broadcast 10.1.1.255 inet6 fe80::290:4bff:fe23:898a%wi0 prefixlen 64 scopeid 0x1 # wicontrol wi0 NIC serial number: [ 99SA01000000 ] Station name: [ blackshell ] SSID for IBSS creation: [ elxwifi ] Current netname (SSID): [ elxwifi ] Desired netname (SSID): [ elxwifi ] Current BSSID: [ 00:90:4b:23:89:8a ] Channel list: [ 8191 ] IBSS channel: [ 10 ] Current channel: [ 10 ] Comms quality/signal/noise: [ 0 81 27 ] Promiscuous mode: [ Off ] Process 802.11b Frame: [ Off ] Port type (1=BSS, 3=ad-hoc, 6=Host AP): [ 6 ] MAC address: [ 00:90:4b:23:89:8a ] TX rate (selection): [ 1 ] TX rate (actual speed): [ 2 ] Maximum data length: [ 2304 ] RTS/CTS handshake threshold: [ 2347 ] Create IBSS: [ Off ] Antenna diversity (0=auto,1=pri,2=aux): [ ] Microwave oven robustness: [ On ] Roaming mode(1=firm,3=disable): [ 1 ] Access point density: [ 1 ] Power Management: [ Off ] Max sleep time: [ 100 ] Intersil Prism2-based card: [ 1 ] Card info: [ PRISM2.5 ISL3874A(Mini-PCI), Firmware 1.3.6 ] Encryption: [ Off ] Encryption algorithm: [ Firmware WEP ] Authentication type (1=OpenSys, 2=Shared Key): [ 1 ] TX encryption key: [ 1 ] Encryption keys: [ ][ ][ ][ ] |
En el ejemplo $IP=10.1.1.21, $NET=10.1.1.0, $MASK=255.255.255.0, $SSID=elxwifi, $CHAN=10, $NAME=blackshell y $TX=1.
Como se puede apreciar en la última parte de la salida de wicontrol(8) no hemos activado el cifrado WEP.
A este respecto quiero comentar que es mejor emplear WEP que no hacerlo, aunque se ha demostrado es un método de cifrado vulnerable y puede dar una sensación de falsa seguridad, tampoco se puede decir que sea trivial romperlo y al menos nos asegurará estar a salvo de miradas indiscretas de usuarios con pocos conocimientos.
La configuración que necesita un PA para el servidor DHCP es muy sencilla.
En primero lugar preparamos el sistema para arrancar el demonio dhcpd(8).
Para que el servidor arranque es necesario que exista el fichero /var/db/dhcpd.leases. Para ello podemos ejecutar:
# touch /var/db/dhcpd.leases |
Editamos /etc/rc.conf poniendo en el campo dhcpd_flags el valor "-q" (incluyendo las comillas).
Por último hay que indicar en /etc/dhcpd.interfaces los nombres de las interfaces que tendrá que gestionar el servidor DHCP. Si nuestra tarjeta wireless es wi0, ejecutaremos:
# echo wi0 > /etc/dhcpd.interfaces |
En este punto el sistema está listo para correr el demonio dhcpd en el siguiente arranque. Ahora resta introducir la configuración de dhcpd en /etc/dhcpd.conf:
subnet $NET netmask $MASK { range $IP0 $IP1; } |
subnet 10.1.1.0 netmask 255.255.255.0 { range 10.1.1.22 10.1.1.30; } |
Es importante destacar que $IP (10.1.1.21 en el ejemplo) nunca debe estar en el intervalo definido en range porque es la propia IP del punto de acceso y no debe asignarse.
Esta configuración es tremendamente sencilla y probablemente queramos ajustar un poco más el comportamiento del servidor DHCP. Para ello es aconsejable consultar la página del manual de dhcp-options(5).