tcpdump अनुमतियों की समस्या


13

Tcpdump चलाने में परेशानी हो रही है। मुझे गैर-रूट उपयोगकर्ता के साथ tcpdump चलाना होगा। मेरी समस्या के लिए वेब खोजा और मुझे लगा कि मुझे चाहिए:

sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

इसने मुझे अपने उपयोगकर्ता के साथ tcpdump चलाने में सक्षम बनाया लेकिन फिर मुझे मिला:

you don't have permission to capture on that device

किसी भी उपकरण पर मैंने कब्जा करने की कोशिश की।

थोड़ा-सा बल भी गया और किया:

sudo chmod +s /usr/sbin/tcpdump

यह भी नहीं किया।


Tcpdump को मूल विशेषाधिकारों की आवश्यकता है, आपको बाइनरी के लिए विशिष्ट लिनक्स क्षमताएं निर्धारित करनी होंगी: $ sudo set cap_net_raw, cap_net_admin = eip / usr / sbin / tcpdump
DreamCoder

क्या वह भी लेकिन मुझे मिलता रहा:tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
सिवान सिगल

यहाँ देखें। askubuntu.com/questions/39281/…
g_p

यह भी समस्याग्रस्त है क्योंकि स्रोत कोड को बदलना नहीं चाहता जो मैं चला रहा हूं ... इसके अलावा, ड्रीमकोडर ने जो सुझाव दिया है वह काम करना चाहिए, लेकिन अजीब नहीं है। किसी को भी एक और प्रस्ताव है?
सिवान सिगल

जवाबों:


28

थोड़ी देर हो चुकी है, लेकिन मुझे बस यही समस्या थी। आपको कच्चे पैकेट कैप्चर और नेटवर्क इंटरफ़ेस हेरफेरtcpdump की अनुमति देने के लिए अनुमति और क्षमता देने की आवश्यकता है ।

एक कैप्चर समूह जोड़ें और अपने आप को इसमें जोड़ें:

sudo groupadd pcap
sudo usermod -a -G pcap $USER

अगला, tcpdumpअनुमतियों के समूह को बदलें और सेट करें:

sudo chgrp pcap /usr/sbin/tcpdump
sudo chmod 750 /usr/sbin/tcpdump

अंत में, आवश्यक अनुमति setcapदेने tcpdumpके लिए उपयोग करें :

sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

सावधान रहें, कि इस समूह के सभी लोग अनुमति देगा PCAP नेटवर्क इंटरफेस में हेरफेर और कच्चे पैकेट को पढ़ने के लिए!

इसे यहां मिला: गैर-रूट के रूप में कार्य करने के लिए tcpdump कॉन्फ़िगर करें


मैं इसे थोड़ा सीमित कर सकता था और सिर्फ उपयोग कर सकता था cap_net_raw,cap_setpcap=epiमेरे कार्यक्रम को कांटा लगाने की आवश्यकता नहीं होने के कारण इसे हटाना पड़ा। यह एक कस्टम बाइनरी के लिए है, इसलिए ymmv।
दान

यह iftopएक प्रोग्राम के लिए भी काम करता है जो आईपी पते / डीएनएस नाम से नेटवर्क उपयोग दिखाता है
हीटफैन जॉन

0

शायद यह काम कर सकता है। जैसा पहले ही पोस्ट किया गया था, वैसा ही। यह ubuntu पर परीक्षण नहीं किया गया है।

(ऐसे समूह का उपयोग करें जिसका आपका उपयोगकर्ता सदस्य है) chgrp wirehark / usr / sbin / tcpdump

सेट 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump

getcap / usr / sbin / tcpdump का उपयोग करके आपको / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip देखना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.