Linux limita naturalmente tutti tranne il superutente a prelevare traffico direttamente dagli adattatori di rete. Nel caso di Wireshark / dumpcap, setuid root è usato SOLO per dumpcap, limitando i privilegi necessari per Wireshark eseguito dall'utente:
Wireshark has implemented Privilege Separation which means that the Wireshark GUI (or the tshark CLI) can run as a normal user while the dumpcap capture utility runs as root. This can be achieved by installing dumpcap setuid root. The advantage of this solution is that while dumpcap is run as root the vast majority of Wireshark's code is run as a normal user (where it can do much less damage).
Nel caso di node_pcap
, si verifica un problema simile: il processo node.js richiede un superutente per ascoltare l'adattatore , ma questa è una scelta sbagliata.
Qual è un modo sensato per conferire a un nodo il privilegio sufficiente per acquisire pacchetti e nient'altro al di fuori dell'account che lo esegue?