Autorizzazione al cambio del dispositivo wireless wlan0


0

Voglio essere in grado di cambiare il permesso di wlan0 in modo da poter usare tcpdump per ascoltarlo senza elevarmi alla radice.

Attualmente:

tcpdump -i wlan0

dà:

tcpdump: wlan0: You don't have permission to capture on that device

quando io faccio:

sudo tcpdump -i wlan0 

funziona come previsto.

Risposte:


1

Una piccola spiegazione: non è il dispositivo wlan0 che ti impedisce di catturarlo come utente non root. Questo è il comportamento del kernel ed è per motivi di sicurezza. È lo stesso motivo per cui non puoi fare dd if=/dev/zero of=/dev/sdacome utente non root; cancellerebbe il tuo disco rigido. Detto questo, ci sono modi in cui puoi ignorare il comportamento predefinito del kernel (ah, la bellezza di Linux) per ottenere la funzionalità che desideri.

Puoi fare una delle due cose:

Ti consiglio di modificare il tuo file sudoers in modo da non richiedere una password in modo da poterlo inserire sudo tcpdump -i wlan0senza che sia necessario inserire una password ogni volta. Modificando il file sudoers ti assicuri che tu e solo tu sia in grado di farlo e tutti gli altri utenti del sistema siano esclusi.

Per farlo:

sudo visudo

Quindi aggiungere le seguenti righe al file:

Cmnd_Alias TCPDUMP_WLAN0 = /usr/bin/tcpdump -i wlan0
[username] ALL= NOPASSWD: TCPDUMP_WLAN0 #Be sure to replace [username] with your username

Ciò richiede comunque di digitare "sudo" ogni volta, ma è possibile impostare un alias bash anche per questo in modo che tutto ciò che fai sia digitare tcpdumpe venga eseguito sudo tcpdump -i wlan0. Per fare ciò basta modificare il file ~ / .bashrc e aggiungere la riga:alias tcpdump="/usr/bin/tcpdump -i wlan0"

L'uso del file sudoers è il modo più attento alla sicurezza di fare le cose. Ora, se sei davvero irremovibile di non usare sudociò che mai, allora ti darò quello che vuoi. Tuttavia, il comando seguente garantirà a tutti gli utenti la possibilità di eseguire questo programma con le funzionalità necessarie, quindi non esiste un controllo utente accurato.

Tieni presente che questo non è testato, tuttavia dovrebbe funzionare. In caso contrario, ho una terza soluzione di seguito.

sudo setcap cap_net_admin+ep /usr/bin/tcpdump

Infine, se non funziona, puoi impostare il file stesso. Quello che fa è che esegue il programma come proprietario del file (in questo caso, root). Come sopra, chiunque esegua questo file diventerà root per eseguirlo. Dovresti davvero usarlo solo come ultima risorsa e solo se ti fidi completamente che il programma non è sfruttabile e non può in alcun modo essere usato come leva per compromettere il tuo sistema.

sudo chmod u+s /usr/bin/tcpdump
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.