[COMO] configurar wifi con WPA/PSK e ip local estática en consola con script de inicio...

Imagen de Dokan
0 puntos

Escribo esto un tanto para aclararme, otro tanto por si sirve a alguien, y otro más por si alguien quiere aportar.

He instalado Ubuntu Server 10.04 y tengo la intención de utilizar determinados puertos para según qué cosas (ssh, phpmyadmin, mlnet, ...) para lo que necesitaba que la ip del equipo en la red (localhost) fuera estática, todo ello conectado mediante wifi y por consola ya que no se me ha instalado ningún entorno de ventanas (esto no lo sabía), aunque hay mucha información para hacer esto mismo he creído conveniente hacer un «compendio» para facilitar las cosas.

Pero empecemos con el rollo.
En esto me las he visto configurando primero como explica DaniFP en «Bloguear por bloguear...», hasta he hecho el script de inicio que recomienda, pero sin reparar que yo uso WPA/PSK y eso es para WEP. Al encontrar este problema he ido a parar al foro de Debian donde rioport enlaza y resume la solución de tuxwarrior. Pero ya me había hecho el script del primer enlace, así que he configurado según tuxwarrior y modificado luego el script de DaniFP, mareando un poco toda la información que tenía hasta el momento. Al pasarle el script para que inicie me ha tirado un error, así que he tenido que configurarlo siguiento las instrucciones del wiki de Debian sobre LSBInitScripts. Con todo esto he conseguido conectar, pero con ip dinámica (aquí fue donde descubrí que necesitaba que fuera estática). Así que vuelta a buscar y descubro que en estos mismos foros McNolo había dado una solución interesante. Pues nada, reconfiguramos otra vez, ahora usando interfaces tal y como McNolo describe, y configurando el script para que inicie todo con boot.
Ahora sí, voy a los detalles, aquí teneis la información que me ha sido útil:

1. Ejecutamos la orden para hacer acciones como root.
:~$ sudo bash
Después introducimos la clave y en la próxima línea nos indicará con una almohadilla que estamos en la versión de consola de root:
:~#

2. Comprobaciones previas.
Lanzamos el comando «ifconfig» para asegurarnos de que no hay problemas con los drivers de nuestra tarjeta wifi.

:~# ifconfig wlan0 up
:~#

Tal vez muestre alguna información o en el peor de los casos indicará que hay problemas con los drivers (como fue mi caso), con suerte aportará alguna url con la solución debiendo procurarte algún ordenador con acceso a la red para seguir investigando.

También debemos conocer la interfaz apropiada que necesitamos configurar, así que lanzamos un iwconfig:

:~# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:"ApoloXIII"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:19:15:68:28:91   
          Bit Rate=54 Mb/s   Tx-Power=15 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=51/70  Signal level=-59 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

En este caso hay que configurar apropiadamente wlan0.

3. Entiendo que conocemos el essid (nombre de la wifi) y la clave, así que hay que crear un archivo de configuración con la información de la red wifi a la que queremos conectar, para esto usaremos la siguiente línea de órdenes:

:~# wpa_passphrase "NOMBRE DE LA RED" CONTRASEÑA >> /etc/wpa_supplicant/wpa.conf

Esto crea el archivo wpa.conf en la ruta indicada con la información necesaria.

4. En este paso vamos a comprobar que hasta aquí todo ha ido bien. Lanzamos un comando para conectar vía wifi usando la configuración creada, pero con dhcp. Aquí debemos sustituir «wext» por nuestro driver wifi, si no sabeis cual es consultad a google, porque yo he usado el mismo que indicaban en los enlaces y ha funcionado.

# wpa_supplicant -i wlan0 -d wext -c /etc/wpa_supplicant/wpa.conf -B && dhclient wlan0

En caso de que algo falle puedes repasar que no se te haya pasado nada, ante las dudas consulta con Google y pregunta.

5. Ha funcionado con dhcp, así que podemos seguir configurando la ip estática. Editamos el archivo de interfaces para configurar la nuestra apropiadamente, para ello podemos usar nano por ejemplo (control+o luego intro para guardar y control+x para salir):

:~# nano /etc/network/interfaces

Deberíamos añadir esta información:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# indicamos que la ip va a ser fija con static
iface wlan0 inet static
# indicamos nuestra ip y nuestra máscara de red
address 192.168.1.8
netmask 255.255.255.0
# indicamos la puerta de enlace (gateway, ip del router)
gateway 192.168.1.1
# indicamos el nombre de la red wifi (essid)
wireless-essid MiRedWifi
# indicamos que use WPA para el driver que corresponda
# en mi caso el driver «wext»
wpa-driver wext
# indicamos donde está la configuración de la encriptación WPA
wpa-conf /etc/wpa_supplicant/wpa.conf
# indicamos que arranque la red
auto wlan0

6. Creamos un script de inicio para que se conecte durante el ídem. Para ello, con nano por ejemplo creamos el archivo «/etc/init.d/conectar_wifi.sh»:

:~# nano /etc/init.d/conectar_wifi.sh

Y le añadimos las siguientes líneas (la información de inicio es de mi cosecha siguiendo el manual, podría mejorarse, o no, tampoco lo sé):

### BEGIN INIT INFO
# Provides:                   Conectar_wifi
# Required-Start:        $network $named $portmap $syslog
# Required-Stop:        $network $named $portmap $syslog
# Default-Start:            2 3 4 5
# Default-Stop:            0 1 6
# Short-Description:   Inicia conexión wifi durante el inicio del sistema.
# Description:              Ídem.
### END INIT INFO

#!/bin/bash
sudo ifup wlan0

7. Como últimos pasos, damos permisos de ejecución al archivo creado en el paso 6:

:~# chmod 0755 /etc/init.d/conectar_wifi.sh

Añadimos a los archivos de inicio un enlace al mismo:

:~# update-rc.d conectar_wifi.sh defaults

Y terminamos saliendo del modo root de la consola:

:~# exit
:~$

Espero no haberme equivocado y que esto os sirva de ayuda como a mi me sirvieron muchas veces los que encontré por estos lares.
Saludos a todos.