WireShark no detecta ninguna interfaz de red en OSX

WireSharkAcabo de instalar WireShark para OSX y me topé con que al abrir el programa me arrojó un feo error que protesta formalmente por no poder encontrar los módulos MIBS y que no me deja capturar nada (algo un tanto importante dado que sin esto no es muy útil la aplicación).

Googleando, encontré que esto ocurre porque al parecer en los últimos release de OSX, el directorio cambio desde el por defecto. Para solucionar el problema, hay que cambiar el path en Edit->Preferences->Name Resolutions->SMI (MIB and PIB) paths e incluir /usr/share/snmp/mibs/

MIBs path configuration

MIBs path configuration

Genial!, reinicié y la ventana de error ya no aparece, sin embargo, al buscar las interfaces de red para realizar la captura no aparece ninguna.  Esta vez, el problema está asociado a un tema de permisos sobre los dispositivos bpf (Berckley Packet Filter), los que por ahora en mi mac tienen credenciales

macworks2:dev radaworks$ ls -l bpf*
crw-------  1 root  wheel   23,   0 Feb 18 08:14 bpf0
crw-------  1 root  wheel   23,   1 Feb 18 08:26 bpf1
crw-------  1 root  wheel   23,   2 Feb 18 08:26 bpf2
crw-------  1 root  wheel   23,   3 Feb 17 09:58 bpf3
crw-------  1 root  wheel   23,   4 Feb 17 08:27 bpf4

Ok, necesitamos poder leer estos dispositivos. Por credenciales sólo root puede abrirlos, suena bien, ahora que sólo él o alguien con sus credenciales pueda leerlo nos dificulta la pista. Que WireShark se ejecute con credenciales de root no me resulta atractivo por muy probado y libre que sea el software. Por lo que lo más sano es otorgale permisos de lectura para el resto.

La solución perezosa?

sudo chmod go+r /dev/bpf*

Lo cual funciona bastante bien para mi

Seleccionando interfaz de red en WireShark

Seleccionando interfaz de red en WireShark

El problema con esto es que cualquiera puede leer el dispositivo… no suena bien. La solución final debiera ser el crear un nuevo grupo por ejemplo bpfusers y hacer que el grupo de los devices sea bfusers y no wheel, por supuesto es necesario que el usuario en cuestion pertenezca tambien a ese grupo.

Sin embargo, en Leopard esto no es tan sencillo dado que no es llegar y agregar el grupo en /etc/group y la aplicación que existía para esto netInfo fue removida. Por ahora tendré que vivir tranquilo o bien cambiar los permisos en la medida que use WireShark.

Tags: , , , ,

4 Responses to “WireShark no detecta ninguna interfaz de red en OSX”

  1. Raul says:

    Cambiate a Linux, y te cambiará la vida… :P

  2. Radaworks says:

    Pero no quiero cambiarla para peor :D jejeje

  3. iic1102 says:

    Dos dudas:
    Se supone que hay que escribir sudo chmod go+r /dev/bpf* con cada reinicio de OSX?
    El Wireshark pone la tarjeta de red en modo promiscuo??? Esto implicaría que leeria paquetes de otros equipos en mi red local???

    Saludos

  4. Alex Bustos says:

    Al parecer en cada reinicio de OSX vuelve las credenciales sobre los dispositivos a su configuración original asi que efectivamente hay que hacerlo en cada reinicio.

    En realidad Wireshark trata de ponerse en modo promiscuo, pero depende de la tarjeta de red si esto es o no permitido. En el peor de los casos, escucharas tu trafico más el tráfico broadcast que exista en la red.

Leave a Reply