Linux, naturalmente, restringe a todos, excepto a los superusuarios, de atraer tráfico directamente desde los adaptadores de red. En el caso de Wireshark / dumpcap, setuid root se usa SOLO para dumpcap, restringiendo los privilegios necesarios para que Wireshark sea ejecutado por el usuario:
Wireshark ha implementado la Separación de privilegios, lo que significa que la GUI de Wireshark (o la CLI de tshark) puede ejecutarse como un usuario normal mientras que la utilidad de captura de volcado se ejecuta como root. Esto se puede lograr mediante la instalación de dumpcap setuid root. La ventaja de esta solución es que mientras dumpcap se ejecuta como root, la gran mayoría del código de Wireshark se ejecuta como un usuario normal (donde puede hacer mucho menos daño).
En el caso de node_pcap
, ocurre un problema similar: el proceso node.js necesita un superusuario para escuchar el adaptador , pero esa es una mala elección.
¿Cuál es una manera sensata de otorgar a un proceso de nodo el privilegio suficiente para capturar paquetes y nada más fuera de la cuenta que lo ejecuta?