tcpdump: out.pcap: autorizzazione negata


14
[root@localhost ~]# cat /etc/issue
Fedora release 17 (Beefy Miracle)
Kernel \r on an \m (\l)
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.6.10-2.fc17.i686 #1 SMP Tue Dec 11 18:33:15 UTC 2012 i686 i686 i386 GNU/Linux
[root@localhost ~]# tcpdump -i p3p1 -n -w out.pcap -C 16
tcpdump: out.pcap: Permission denied

Perché visualizzo l'errore ??

Cosa dovrei fare?

Risposte:


21

ho provato su Centos 5, sempre lo stesso anche su cartella tmp o root. dalla pagina man di tcpdump, i privilegi vengono rilasciati se usati con l'opzione -Z (abilitata per impostazione predefinita) prima di aprire il primo file di salvataggio. poiché hai specificato "-C 1", l'autorizzazione negata si verifica a causa della dimensione del file già raggiunta 1 e quando si crea un nuovo file genererà un errore di autorizzazione negata. quindi basta specificare l'utente -Z

# strace tcpdump -i eth0 -n -w out.pcap -C 1
fstat(4, {st_mode=S_IFREG|0644, st_size=903, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aea31934000
lseek(4, 0, SEEK_CUR)                   = 0
read(4, "root:x:0:root\nbin:x:1:root,bin,d"..., 4096) = 903
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x2aea31934000, 4096)            = 0
setgroups(1, [77])                      = 0
setgid(77)                              = 0
setuid(77)                              = 0
setsockopt(3, SOL_SOCKET, SO_ATTACH_FILTER, "\1\0\0\0\0\0\0\0\310\357k\0\0\0\0\0", 16) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0

recvfrom(3, 0x7fff9563d35f, 1, 32, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
fcntl(3, F_SETFL, O_RDWR)               = 0
setsockopt(3, SOL_SOCKET, SO_ATTACH_FILTER, "\1\0\17\0\0\0\0\0P\327\233\7\0\0\0\0", 16) = 0
open("out.pcap", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
write(2, "tcpdump: ", 9tcpdump: )                = 9
write(2, "out.pcap: Permission denied", 27out.pcap: Permission denied) = 27
write(2, "\n", 1
)                       = 1
exit_group(1)                           = ?

puoi vedere il risultato della traccia sopra, tcpdump ha lasciato cadere i privilegi in user e group pcap (77).

# grep 77 /etc/group
pcap:x:77:
# grep 77 /etc/passwd
pcap:x:77:77::/var/arpwatch:/sbin/nologin

Dalla pagina man di tcpdump, -C

# man tcpdump
       -C     Before writing a raw packet to a savefile, check whether the file is currently larger than file_size and, if so,
              close the current savefile and open a new one.  Savefiles after the first savefile will have the name  specified
              with  the -w flag, with a number after it, starting at 1 and continuing upward.  The units of file_size are mil-
              lions of bytes (1,000,000 bytes, not 1,048,576 bytes).

              **Note that when used with -Z option (enabled by default), privileges are dropped before opening first savefile.**


# tcpdump --help
tcpdump version 3.9.4
libpcap version 0.9.4
Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
                [ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
                [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
                [ -W filecount ] [ -y datalinktype ] [ -Z user ]
                [ expression ]

Specificare l'utente specifico con l'utente -Z

# tcpdump -i eth0 -n -w out.pcap -C 1 -Z root
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
35 packets captured
35 packets received by filter
0 packets dropped by kernel     

8

Prova a eseguire il comando da /tmpo qualsiasi altra directory scrivibile dal mondo. Ricordo di aver avuto problemi con tcpdump in directory che non sono scrivibili dal mondo, non ho idea del perché - :)

         cd /tmp
         tcpdump -i p3p1 -n -w out.pcap -C 16 

5

Il tuo tcpdump sta abbandonando i privilegi per l'utente 'tcpdump', controlla la pagina man ("-Z tcpdump" è l'impostazione predefinita e l'utente tcpdump non ha i permessi per scrivere nell'homeed di root). Come ti ha detto Daniel T., esegui la tua acquisizione in una directory scrivibile in tutto il mondo come / tmp, o almeno in una directory in cui hai dato all'utente o al gruppo le autorizzazioni di scrittura "tcpdump".


5

Quando ho riscontrato questo Permission deniedproblema, si è scoperto che stavo inserendo .capun'estensione nel file anziché .pcap. Come RichL ha sottolineato nei commenti, il profilo AppArmor su Ubuntu /etc/apparmor.d/usr.sbin.tcpdumpcausa questo.

  # uname -a ; lsb_release -a
  Linux bidder-lb4 3.2.0-76-virtual #111-Ubuntu SMP Tue Jan 13 22:33:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 12.04.5 LTS
  Release:        12.04
  Codename:       precise

5
Risulta che il profilo AppArmor per Ubuntu (/etc/apparmor.d/usr.sbin.tcpdump) consente solo al binario tcpdump di scrivere su file con estensione .pcap. AppArmor è attivo di default in Ubuntu, che mi ha sorpreso.
Rich L

3

SELinux è in esecuzione? Verificare digitando è il terminale:

/usr/sbin/getenforce

Se dice Enforcing, puoi provare a disabilitare SELinux e provare di nuovo tcpdump, per vedere se SE lo stava fermando.


@Hauke ​​Laging Dal suo output bash, sembra che stia eseguendo il comando dalla home directory di root.
mako_reactor,

1

Il messaggio di errore non ha molto senso per me. SELinux è una possibile spiegazione, però. Puoi dare un'occhiata più da vicino a ciò che sta accadendo avviando tcpdump attraverso la strace:

strace tcpdump -i p3p1 -n -w out.pcap -C 16

1

dovresti cambiare la modalità della directory in cui stai eseguendo tcpdump.

chmod 777

Ora esegui il comando tcpdump -vv -i any -s0 -w nome_file.pcap

Dovrebbe funzionare ...!!


1
Per alcuni valori di "lavoro". Ora hai una directory che include l'acquisizione di pacchetti che può contenere al suo interno dati sensibili esposti, leggibili da chiunque abbia accesso all'host. "Ehi dottore, ho un hangnail" non dovrebbe essere risposto con l'amputazione, non importa quanto completamente risolva il problema del hangnail.
DopeGhoti,
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.