ปัญหาการอนุญาต 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 setcap 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
Sivan Sigal

ดูที่นี่ askubuntu.com/questions/39281/…
g_p

นี่เป็นปัญหาเช่นกันเพราะไม่ต้องการเปลี่ยนซอร์สโค้ดที่ฉันใช้ ... นอกจากนี้สิ่งที่DreamCoderแนะนำควรใช้งานได้ แต่ไม่แปลกเลย ใครมีข้อเสนออื่น
Sivan Sigal

คำตอบ:


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จัดการกับเน็ตเวิร์กอินเตอร์เฟสและอ่านแพ็กเก็ต raw!

พบได้ที่นี่: กำหนดค่า tcpdump เพื่อทำงานในรูปแบบที่ไม่ใช่รูท


ฉันก็สามารถที่จะ จำกัด cap_net_raw,cap_setpcap=epนี้บิตและการใช้งานเพียงแค่ การลบออกiเป็นเพราะโปรแกรมของฉันไม่จำเป็นต้องแยกออก นี่เป็นไบนารีที่กำหนดเองดังนั้น ymmv
ด่าน

นอกจากนี้ยังใช้iftopกับโปรแกรมที่แสดงการใช้เครือข่ายตามที่อยู่ IP / ชื่อ DNS
HeatfanJohn

0

บางทีนี่อาจใช้ได้ คล้ายกับสิ่งที่โพสต์แล้ว ไม่ได้ทำการทดสอบบน Ubuntu

(ใช้กลุ่มที่ผู้ใช้ของคุณเป็นสมาชิก) chgrp wireshark / usr / sbin / tcpdump

setcap '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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.