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

আমি সেন্টোস 5 এ চেষ্টা করেছি, এখনও টেম্পে বা রুট ফোল্ডারে একই। tcpdump ম্যান পৃষ্ঠা থেকে, প্রথম সেভফিলটি খোলার আগে -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 ব্যবহারকারী এবং গোষ্ঠী পিসিপ (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বা অন্য কোনও বিশ্ব লিখনযোগ্য ডিরেক্টরি থেকে। আমার মনে আছে টিসিপিডাম্প নিয়ে যে ডিরেক্টরিগুলি বিশ্ব লিখনযোগ্য নয়, তাতে আমার কোনও ক্লু নেই - :)

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

5

আপনার tcpdump 'tcpdump' ব্যবহারকারীর জন্য সুবিধাগুলি ছাড়ছে, ম্যান পৃষ্ঠাটি পরীক্ষা করুন ("-Ztcpdump" ডিফল্ট, এবং tcpdump ব্যবহারকারীর কাছে রুটের হোমডির লেখার অনুমতি নেই)। ড্যানিয়েল টি। আপনাকে যেমন বলেছিল / ওয়ার্ড-রাইটিং-এ / tmp এর মতো ডিরেক্টরিতে আপনার ক্যাপচারটি চালান, বা কমপক্ষে একটি ডিরেক্টরি যেখানে আপনি ব্যবহারকারী বা গোষ্ঠী 'tcpdump' লেখার অনুমতি দিয়েছেন।


5

আমি যখন এই Permission deniedইস্যুতে দৌড়েছি তখন দেখা গেল যে আমি .capফাইলটির পরিবর্তে একটি এক্সটেনশন রেখেছি .pcap। রিচএল মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, উবুন্টুতে অ্যাপআর্মার প্রোফাইলটি এর /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
এটি উবুন্টু (/etc/apparmor.d/usr.sbin.tcpdump) এর জন্য অ্যাপআর্মার প্রোফাইলটি সরিয়ে দেয় কেবলমাত্র tcpdump বাইনারিটিকে একটি .pcap এক্সটেনশানযুক্ত ফাইলগুলিতে লেখার অনুমতি দেয়। উবুন্টুতে ডিফল্টভাবে অ্যাপআর্মার চালু আছে, যা আমাকে ধরা দিয়েছে।
ধনী এল

3

SELinux চলছে কি? টাইপ করে চেক করুন টার্মিনাল:

/usr/sbin/getenforce

যদি এটি বলে Enforcing, আপনি এসইইলিনাক্সকে অক্ষম করে আবার টিসিপিডাম্প চেষ্টা করে দেখতে পারেন, এসই এটি বন্ধ করে দিচ্ছে কিনা তা দেখতে।


@ হউক লেজিং তার বাশ আউটপুট থেকে দেখে মনে হচ্ছে তিনি মূলের বাড়ির দির থেকে কমান্ডটি চালাচ্ছেন।
mako_reactor

1

ত্রুটি বার্তাটি আমার কাছে খুব একটা বোঝায় না। যদিও সেলইনাক্স একটি সম্ভাব্য ব্যাখ্যা। আপনি স্ট্রেসের মাধ্যমে টিসিপিডাম্প শুরু করে কী ঘটছে তার নিবিড় নজর দিতে পারেন:

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

1

আপনি যে ডিরেক্টরিটির অধীনে tcpdump চালাচ্ছেন তার মোডটি পরিবর্তন করা উচিত।

chmod 777

এখন tcpdump -vv -i যে কোনও -s0 -w file_name.pcap কমান্ডটি চালান

এটার কাজ করা উচিত ...!!


1
'কাজের' নির্দিষ্ট মানগুলির জন্য। আপনার এখন একটি ডিরেক্টরি রয়েছে যার মধ্যে প্যাকেট ক্যাপচার রয়েছে যা এতে অভ্যন্তরীণভাবে সংবেদনশীল ডেটা থাকতে পারে যা হোস্টে অ্যাক্সেস সহ যে কেউ পাঠযোগ্য। "আরে ডাক্তার, আমার একটি হ্যাঙ্গেনেল আছে" এর উত্তোলন দিয়ে উত্তর দেওয়া উচিত নয়, এটি হ্যাঙ্গিনেলের সমস্যাটি কতটা সম্পূর্ণ সমাধান করে।
ডোপঘোতি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.