Qual è il modo meno privilegiato per consentire a node.js di accedere agli adattatori di rete su Linux?

0

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?

    
posta bright-star 30.11.2014 - 01:43
fonte

1 risposta

1

Basato su una ricetta di Jeremy Stretch from Packetlife :

Ingredienti

  1. setcap (di solito viene fornito con il pacchetto libpcap2-bin) - ti permetterà di impostare il permesso / le capacità speciali del kernel di cui ha bisogno il nodo quando è in esecuzione come un normale account utente.

Cucina

A. Fornisci funzionalità di acquisizione del nodo:

setcap 'cap_net_raw,cap_net_admin=eip' /usr/loca/bin/node

B. Rapporto sul successo.

C. ???

D. Profit.

Spero che questo aiuti!

    
risposta data 30.11.2014 - 15:04
fonte