Wicd (Español)

From ArchWiki
Revision as of 13:28, 11 July 2013 by Pedro (Talk | contribs) (Fallo importando pynotify, notificaciones desactivadas)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary end

Wicd es un gestor de conexiones de red que puede manejar interfaces inalámbricas y cableadas, de forma similar y alternativa a NetworkManager. Wicd está escrito en Python y GTK+, por lo que necesita de la instalación de un menor número de dependencias repecto de otros gestores de red. Alternativamente, está disponible una versión de Wicd para KDE, escrito en Qt, desde el repositorio AUR. Wicd también se puede ejecutar desde el terminal en una interfaz diseñada con las bibliotecas curses, que no requiere una sesión de servidor X, ni área de notificación (véase #Ejecutar Wicd).

Instalación

Paquete base

Instale wicd, disponible en los repositorios oficiales. Incluye todo lo necesario para ejecutar el demonio wicd, el cliente wicd-cli y la interfaz de terminal wicd-curses.

Cliente GTK

Para un front-end GTK, instale wicd-gtk, disponible en los repositorios oficiales. Incluye todo lo necesario para ejecutar la interfaz GTK de wicd y el archivo de inicio automático para que el icono aparezca en la bandeja del sistema.

Cliente KDE

Para un front-end KDE, instale wicd-kdeAUR, disponible del repositorio AUR.

Notificaciones

Para activar las notificaciones visuales sobre el estado de la red, es necesario instalar notification-daemon.

Si no está usando GNOME, instale xfce4-notifyd, en lugar de notification-daemon, ya que demanda muchos paquetes GNOME innecesarios.

Alternativa

Los script de compilación de wicd-bzrAUR están disponibles en AUR, en los que se basa la última rama de desarrollo. Si necesita una versión alternativa o simplemente quiere crear su propio paquete, puede construirlo fácilmente usando ABS.

Para empezar

Configuración inicial

Wicd provee un demonio que debe ser iniciado.

Advertencia: La ejecución de varios gestores de red a voluntad simultáneamente causarán problemas, por lo que es importante desactivar los demás demonios de gestión de red.

En primer lugar, detenga todos los demonios de red que estén en ejecución (como netctl, netcfg, dhcpcd, NetworkManager).

Desactive los servicios de gestión red existentes, netcfg, netcfg, dhcpcd, y networkmanager. Remítase a Systemd (Español)#Usar las unidades.

Nota: Puede que tenga que detener y desactivar el demonio network, en lugar de netcfg, que es actualmente sustituido por el servicio network. Si no está seguro, pruebe a desactivar ambos.

Inicie el demonio wicd de systemd y active el servicio para que arranque al inicio del sistema.

Agregue su cuenta al grupo users:

# gpasswd -a NOMBREDEUSUARIO users
Nota: El grupo Unix que permite a dbus acceder a wicd, está sujeto a cambios, y puede ser diferente de network. Compruebe qué grupo viene indicado en la policy presente en /etc/dbus-1/system.d/wicd.conf, y añada su propio usuario a dicho grupo.

Si ha agregado el usuario a un grupo nuevo, reinicie sesión de usuario.

Ejecutar Wicd

Para iniciar la interfaz de Wicd, ejecute:

$ wicd-client

Para forzar que se inicie minimizado en el área de notificación, ejecute:

$ wicd-client --tray

Si el entorno de escritorio no tiene un área de notificación, ejecute:

$ wicd-client -n

Las órdenes anteriores solo funcionarán si ha instalado el paquete wicd-gtk. Si no ha instalado wicd-gtk, entonces use wicd-cli o wicd-curses.

$ wicd-curses
Nota: Wicd no le pedirá una clave de acceso. Para utilizar conexiones cifradas (WPA/WEP), amplie la red a la que desea conectarse, pulsando Advanced en las opciones de la red y escribiendo la información necesaria.

Inicio automático

El paquete wicd-gtk pone un archivo en /etc/xdg/autostart/wicd-tray.desktop, para iniciar automáticamente wicd-client al iniciar sesión en el DE/WM. Si es así, poner wicd en la lista de demonios de /etc/rc.conf es suficiente.

Si /etc/xdg/autostart/wicd-tray.desktop no existe, puede añadir wicd-client para que al arrancar el DE/WM la aplicación se inicie al conectarse a la sesión.

Note: Si wicd-client es añadido al inicio de DE/WM cuando /etc/xdg/autostart/wicd-tray.desktop existe, tendrá un problema al existir dos wicd-client corriendo simultáneamente.

Scripts

Wicd tiene la capacidad de ejecutar scripts durante todas las etapas del proceso de conexión (post/pre conectar/desconectar). Basta con colocar un script dentro de la carpeta de la etapa pertinente en /etc/wicd/scripts/ y hacerlo ejecutable.

Los scripts son capaces de recibir tres parámetros, a saber:

$1 - el tipo de conexión (inalámbrica/por cable).
$2 - el ESSID (nombre de red).
$3 - el BSSID (gateway MAC).

Detener los ataques de ARP spoofing

El siguiente script se puede utilizar para establecer un ARP estático, para detener los ataques ARP spoofing. Basta con cambiar los valores dentro de la declaración para que coincida con los de las redes a las que desea permitir entradas para ARP estáticas.

#!/bin/bash
#Set the parameters passed to this script to meaningful variable names.
connection_type="$1"
essid="$2"
bssid="$3"

if [ "${connection_type}" == "wireless" ]; then

       #Change below to match your networks.
       case "$essid" in
               YOUR-NETWORK-NAME-ESSID)
                       sudo arp -s 192.168.0.1 00:11:22:33:44:55
                       ;;
               Netgear01923)
                       sudo arp -s 192.168.0.1 10:11:20:33:40:50
                       ;;
               ANOTHER-ESSID)
                       sudo arp -s 192.168.0.1 11:33:55:77:99:00
                       ;;
               *)
                       echo "Static ARP not set. No network defined."
                       ;;
       esac
fi

Cambiar la dirección MAC con macchanger

Véase el artículo relacionado.

El siguiente script se puede utilizar para cambiar la dirección MAC de las interfaces de red.

Para cambiar la MAC cada vez que se conecta a una red, coloque el script en el directorio /etc/wicd/scripts/preconnect/

Eche un vistazo a macchanger --help para ajustar la orden macchanger a sus necesidades.

#!/usr/bin/env bash

connection_type="$1"

if [[ "${connection_type}" == "wireless" ]]; then
    ip link set wlan0 down
    macchanger -A wlan0
    ip link set wlan0 up
elif [[ "${connection_type}" == "wired" ]]; then
    ip link set eth0 down
    macchanger -A eth0
    ip link set eth0 up
fi

Solución de problemas

Error al obtener la dirección IP

Si wicd falla repetidamente para obtener una dirección IP mediante el cliente dhcpcd por defecto, trate de instalar y usar dhclient en su lugar. No se olvide de seleccionar dhclient como el principal cliente dhcp en las opciones de wicd después.

Si wicd puede obtener una dirección IP para una interfaz wired y no puede, en cambio, obtener una dirección IP para una interfaz wireless, pruebe a desactivar las características de ahorro de energía («powersaving») de la tarjeta inalámbrica:

# iwconfig wlan0 power off

Desconectar Random

Causa #1

Si dmesg dice wlan0: deauthenticating from MAC by local choice (reason=3) y se pierde la conexión Wi-Fi, es probable que tenga un valor demasiado agresivo para el ahorro de energía en su tarjeta Wi-Fi [1]. Pruebe a desactivar las funciones powersaving de la tarjeta inalámbrica:

# iwconfig wlan0 power off
Si tiene instalado el paquete pm-utils, puede ser la razón del powersaving del sistema [2]. Pruebe poniendo:
#!/bin/sh
/sbin/iwconfig wlan0 power off
en el archivo /etc/pm/power.d/wireless (créelo si no existe y hágalo ejecutable) y compruebe si las cosas mejoran.

Si su tarjeta no es compatible con iwconfig wlan0 power off, compruebe la BIOS para las opciones de administración de energía. Como referencia, desactivar la administración de energía PCI-Express en la bios de un Lenovo W520 resuelve el problema.

Causa #2

Si está experimentando desconexiones frecuentes con la red inalámbrica y dmesg muestra mensajes como:

ieee80211 phy0: wlan0: No probe response from AP xx:xx:xx:xx:xx:xx after 500ms, disconnecting

pruebe cambiando el ancho de banda del canal a 20MHz desde la página de configuración del router.

Fallo importando pynotify, notificaciones desactivadas

Para el caso de que el paquete python2-notify no se instále automáticamente. Puede instalarlo desde los repositorios oficiales.

Mensaje de error de conexión con Dbus

Puede que reciba mensajes de error de dbus y no sea capaz de conectarse a las redes.

  • NOTA: Si wicd de repente deja de funcionar y emite mensajes haciendo responsable a dbus, es muy probable que tenga que quitar wicd completamente, incluso con todos sus archivos de configuración, y volver a instalarlo desde cero:
pacman -R wicd
rm -Rf /etc/wicd /var/log/wicd /etc/dbus-1/system.d/wicd*
pacman -S wicd

Compruebe este enlace para conocer más detalles: https://bbs.archlinux.org/viewtopic.php?pid=577141#p577141

Puede encontrar que wicd-client devuelve mensajes de error de conexión relativos a dbus («Could not connect to wicd's D-Bus interface») cuando wicd no está funcionando a causa de un problema con un archivo de configuración. Aparentemente, en ocasiones una cuenta vacía se agrega a /etc/wicd/wired-settings.conf, en cuyo caso solo tiene que eliminar los corchetes:

[] 

y reiniciar wicd.

Cuando se ejecuta el demonio wicd con `rc.d` no imprimirá error alguno en el archivo `pid` que aquel crea. Si está seguro que wicd no se está ejecutando elimine este archivo:

 rm /var/run/wicd/wicd.pid

Problemas después de actualizar el paquete

A veces wicd client no se carga después de una actualización del paquete debido a errores de dbus.

Una posible solución consiste en eliminar los archivos de configuración ubicados en el directorio /etc/wicd/.

# systemctl stop wicd
# rm /etc/wicd/*.conf
# systemctl start wicd

Algunas notas sobre front-end gráficos para sudo

Si recibe un error acerca de que wicd falla al no encontrar un programa gráfico con sudo, ejecute una de las siguientes órdenes:

$ ktsuss wicd-client -n
$ gksudo wicd-client -n
$ kdesu wicd-client -n

Estos programas requieren los paquetes ktsuss (que se encuentra en el AUR), gksu y kdesu, respectivamente.

Configurar wicd para trabajar con eduroam

Nota: Se aconseje probar primero el paquete wicd-eduroamAUR de AUR. Aparecerá en wicd la opción para «eduroam». Si no funciona, intente lo que sigue.

Este perfil solo funcionará para las instituciones eduroam que utilizan el protocolo TTLS, pero no funcionará para el caso que venga usado el protocolo PEAP.

Cree el archivo /etc/wicd/encryption/templates/ttls-80211, y guarde lo siguiente:

/etc/wicd/encryption/templates/ttls-80211
name = TTLS for Wireless
author = Alexander Clouter
version = 1
require anon_identity *Anonymous_Username identity *Identity password *Password 
optional ca_cert *Path_to_CA_Cert cert_subject *Certificate_Subject
-----
ctrl_interface=/var/run/wpa_supplicant
network={
       ssid="$_ESSID"
       scan_ssid=$_SCAN

       key_mgmt=WPA-EAP
       eap=TTLS

       ca_cert="$_CA_CERT"
       subject_match="$_CERT_SUBJECT"
 
       phase2="auth=MSCHAPv2 auth=PAP"

       anonymous_identity="$_ANON_IDENTITY"
       identity="$_IDENTITY"
       password="$_PASSWORD"
}

Abra un terminal:

cd /etc/wicd/encryption/templates
echo ttls-80211 >> active

Abra wicd, elija TTLS para Wi-Fi en las propiedades de eduroam e introduzca los valores adecuados para su conexión. El formato del subject match debe mostrar algo así: «/CN=server.example.com».

NB. Este ajuste funciona en algunos caso comentando subject_match, aunque no es seguro, pero podría servir para conectase.

Dos procesos wicd-client (y eventualmente dos iconos en la bandeja del sistema)

Consulte la nota Wicd (Español)#Ejecutar Wicd sobre el archivo autostart en /etc/xdg/autostart, consulte el post del foro y envíe los errores a algunos de los Wicd (Español)#Enlaces externos proporcionados. Resumidamente, si /etc/xdg/autostart/wicd-tray.desktop existe, solo es necesario el servicio wicd en el sistema y debe eliminarlo del archivo autostart del DE/WM.

Contraseña incorrecta usando PEAP con TKIP/MSCHAPV2

La plantilla de conexión PEAP con TKIP/MSCHAPV2 requiere que el usuario introduzca la ruta a un certificado CA, además de introducir el nombre de usuario y contraseña. Sin embargo, esto puede causar problemas, dando como resultado que wicd notifique un mensaje de error de una contraseña incorrecta *. Una posible solución es el uso de PEAP con GTC en lugar de TKIP/MSCHAPV2 que no requiere para conectar la ruta al certificado CA.

Wicd salta al obtener la dirección IP de WLAN

Esto podría ser causado al estar ejecutándose dhcpcd junto con wicd como servicio systemd. Una solución sería la de detener/desactivar dhcpcd.

# systemctl stop dhcpcd
# systemctl disable dhcpcd

Enlaces externos