tcpdump izinleri sorunu


13

TCpdump çalıştırmakta sorun yaşıyorum. Ben kök olmayan kullanıcı ile tcpdump çalıştırmak gerekir. Sorunum için web'de arama yaptım ve şunu anladım:

sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

Bu benim kullanıcı ile tcpdump çalıştırmak için etkinleştirdi ama sonra var:

you don't have permission to capture on that device

yakalamaya çalıştığım herhangi bir cihazda.

Ayrıca küçük bir kaba kuvvet gitti ve yaptı:

sudo chmod +s /usr/sbin/tcpdump

Bu da olmadı.


Tcpdump kök ayrıcalıkları gerektirir, ikili dosyaya belirli Linux yetenekleri ayarlamanız gerekir: $ sudo setcap cap_net_raw, cap_net_admin = eip / usr / sbin / tcpdump
DreamCoder

Bunu da yaptım ama almaya devam ediyorum:tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
Sivan Sigal


Bu da sorunlu çünkü çalıştığım kaynak kodunu değiştirmek istemiyorum ... Ayrıca, ne DreamCoder önerilen çalışması gerekir ama garip değil. Başka teklifiniz var mı?
Sivan Sigal

Yanıtlar:


28

Biraz geç oldu, ama aynı problemi yaşadım. Ham paket yakalamalarına ve ağ arabirimi manipülasyonunatcpdump izin vermek için izin ve yetenek vermeniz gerekir .

Bir yakalama grubu ekleyin ve kendinizi gruba ekleyin:

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

Ardından, grubunu değiştirin tcpdumpve izinleri ayarlayın:

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

Son olarak, gerekli izinleri setcapvermek tcpdumpiçin kullanın :

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

Dikkatli olun, bu grup pcap herkesin ağ arayüzleri manipüle ve ham paketleri okumak için izin verecektir !

Burada buldum : tcpdump'ı kök olmayan olarak çalışacak şekilde yapılandırın


Bunu biraz sınırlayabilir ve sadece kullanabilirsiniz cap_net_raw,cap_setpcap=ep. Programın kaldırılması, iprogramımın çatallanmasına gerek olmadığıydı. Bu özel bir ikili içindir, yani ymmv.
Dan

Bu aynı zamanda iftopIP adresi / DNS adı ile ağ kullanımını gösteren bir program için de çalıştı
HeatfanJohn

0

Belki bu işe yarayabilir. Daha önce yayınlananlara benzer. Ubuntu üzerinde test edilmemiştir.

(kullanıcınızın üyesi olduğu bir grup kullanın) chgrp wireshark / usr / sbin / tcpdump

setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump

getcap / usr / sbin / tcpdump kullanarak / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.