tcpdump: out.pcap: अनुमति से इनकार किया


15
[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

मुझे त्रुटि क्यों मिली ??

मुझे क्या करना चाहिए?

जवाबों:


21

मैं Centos 5 पर कोशिश की, अभी भी tmp या रूट फ़ोल्डर पर भी ऐसा ही है। tcpdump मैन पेज से, पहली बार savefile खोलने से पहले -Z विकल्प (डिफ़ॉल्ट रूप से सक्षम) के साथ उपयोग किए जाने पर विशेषाधिकार छोड़ दिए जाते हैं। क्योंकि आपने "-C 1" निर्दिष्ट किया है, इसलिए अस्वीकृत की गई फ़ाइल आकार पहले से 1 तक पहुँचने के कारण अस्वीकृत हो गई है, और नई फ़ाइल बनाते समय यह अनुमति अस्वीकृत त्रुटि को बढ़ाएगा। तो बस -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)                           = ?

आप ऊपर दिए गए स्ट्रेस रिजल्ट को देख सकते हैं, tcpdump ने विशेषाधिकार को उपयोगकर्ता और समूह pcap (77) में छोड़ दिया।

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

Tcpdump मैन पेज से, -सी

# 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 ]

-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

/tmpया किसी अन्य विश्व लेखन योग्य निर्देशिका से कमांड चलाने का प्रयास करें । मुझे याद है कि निर्देशिका में tcpdump के साथ समस्याएँ हैं जो विश्व के लिए उपयुक्त नहीं हैं, मुझे कोई सुराग नहीं है कि क्यों :) :)

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

5

आपका tcpdump 'tcpdump' उपयोगकर्ता के विशेषाधिकार छोड़ रहा है, मैन पेज की जांच करें ("-Z tcpdump" डिफ़ॉल्ट है, और tcpdump उपयोगकर्ता के पास रूट के होमर में लिखने की अनुमति नहीं है)। जैसा कि डैनियल टी। ने आपको बताया था, अपनी कैप्चर को विश्व-योग्य निर्देशिका जैसे / tmp, या कम से कम एक निर्देशिका में चलाएं जहाँ आपने उपयोगकर्ता या समूह 'tcpdump' को लिखने की अनुमति दी हो।


5

जब मैं इस Permission deniedमुद्दे में भाग गया तो यह पता चला कि मैं .capइसके बजाय फ़ाइल पर एक एक्सटेंशन डाल रहा था .pcap। जैसा कि रिचएल ने टिप्पणी में बताया है, उबंटू पर AppArmor प्रोफाइल /etc/apparmor.d/usr.sbin.tcpdumpइसका कारण बनता है।

  # 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
यह Ubuntu (/etc/apparmor.d/usr.sbin.tcpdump) के लिए AppArmor प्रोफ़ाइल को चालू करता है। केवल tppdump बाइनरी को .pcap एक्सटेंशन वाली फाइलों पर लिखने की अनुमति देता है। AppArmor उबंटू में डिफ़ॉल्ट रूप से चालू है, जिसने मुझे बाहर कर दिया।
रिच एल

3

SELinux चल रहा है? टाइप करके देखें टर्मिनल है:

/usr/sbin/getenforce

यदि यह कहता है Enforcing, तो आप SELinux को अक्षम करने और tcpdump को फिर से आज़माने की कोशिश कर सकते हैं , यह देखने के लिए कि क्या SE इसे रोक रहा था।


@ हॉक लैगिंग अपने बैश आउटपुट से, ऐसा लगता है कि वह रूट के होम डायर से कमांड चला रहा है।
mako_reactor

1

त्रुटि संदेश मेरे लिए बहुत मायने नहीं रखता है। SELinux एक संभावित स्पष्टीकरण है, हालाँकि। स्टेक के माध्यम से tcpdump शुरू करने से आपके पास क्या हो सकता है

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

1

आपको निर्देशिका का मोड बदलना चाहिए जिसके तहत आप tcpdump चला रहे हैं।

चामोद 777

अब कमांड tcpdump -vv -i any -s0 -w file_name.pcap चलाएं

यह काम करना चाहिए ...!!


1
'काम' के कुछ मूल्यों के लिए। अब आपके पास एक निर्देशिका है जिसमें पैकेट पर कब्जा शामिल है जिसमें अच्छी तरह से उजागर संवेदनशील डेटा शामिल हो सकते हैं, जो कि होस्ट तक पहुंच के साथ किसी के द्वारा भी पढ़ा जा सकता है। "अरे डॉक्टर, मेरे पास एक फाँसी है" का जवाब विवादास्पद के साथ नहीं दिया जाना चाहिए, चाहे वह पूरी तरह से हो, जो हैंगनल समस्या का समाधान करता हो।
डोपघोटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.